Skip to main content
sh-fishing brings a complete fishing minigame to your FiveM server. Players purchase bait from a shop NPC, travel to one of the designated PolyZone fishing areas, cast their line with /fish, wait for a bite, then mash [E] to reel in their catch — and finally sell their haul to a buyer NPC for cash. The script runs in either a fully standalone mode (no external money system required) or integrates with NAT2K15 for persistent economy support.

Dependencies

You must install PolyZone before starting sh-fishing. Without it, the zone-restricted casting system will not function and the resource will throw errors on startup.

Gameplay Flow

1

Buy bait

Approach a bait shop NPC and purchase bait. Each purchase gives you Config.PurchaseBaitAmount units at Config.BaitPrice per transaction.
2

Travel to a fishing zone

Head to one of the six PolyZone fishing areas. Zone blips appear on the map when Config.LocationBlips = true.
3

Cast your line

Run /fish while standing inside a valid zone with bait in your inventory. Your character will play a casting animation and the line will go in.
4

Wait for a bite

The script waits a random number of seconds between Config.MinBaitTookTime and Config.MaxBaitTookTime before a fish bites. Stay patient.
5

Reel in with [E]

Once a fish bites, mash [E] as fast as you can. You have Config.TimetoMash seconds to register between Config.MashMin and Config.MashMax key presses — miss the window and the fish escapes.
6

Sell your catch

Take your fish to a buyer NPC sell point. Each fish earns Config.FishPrice in cash.

Commands

Configuration

Open config.lua to customise sh-fishing for your server. The most important settings are covered below.
config.lua
Increase Config.MashMin and Config.MashMax together to make fishing harder, or lower Config.TimetoMash to create a tighter reeling window.

Fishing Zones

sh-fishing ships with six PolyZone areas out of the box: All zone polygons are defined in locations.lua. This file is escrow-ignored, meaning you can edit it freely without affecting the encrypted portion of the resource.

Adding Custom Zones

To add a new fishing area, open locations.lua and append a new PolyZone polygon entry following the existing format. Each zone is a table of vector2 coordinates that form a closed polygon around the water you want to designate.
locations.lua
Do not rename the resource folder. sh-fishing checks its own resource name on startup and will immediately stop itself if the name does not match sh-fishing. Keep the folder name exactly as shipped.