/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.
| Dependency | Required | Notes |
|---|---|---|
| PolyZone | ✅ Yes | Defines all fishing zone boundaries |
| NAT2K15 | ❌ Optional | Required only when Config.Framework = 'nat' |
| okokNotify | ❌ Optional | Required only when Config.Notify = 'okok' |
Gameplay Flow
Buy bait
Approach a bait shop NPC and purchase bait. Each purchase gives you
Config.PurchaseBaitAmount units at Config.BaitPrice per transaction.Travel to a fishing zone
Head to one of the six PolyZone fishing areas. Zone blips appear on the map when
Config.LocationBlips = true.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.Wait for a bite
The script waits a random number of seconds between
Config.MinBaitTookTime and Config.MaxBaitTookTime before a fish bites. Stay patient.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.Commands
| Command | Description |
|---|---|
/fish | Start fishing — must be inside a valid PolyZone area and have bait |
/fishinventory | Display your current bait count and fish count |
/propstuck | Emergency cleanup to remove any props stuck to your character |
Configuration
Openconfig.lua to customise sh-fishing for your server. The most important settings are covered below.
config.lua
Fishing Zones
sh-fishing ships with six PolyZone areas out of the box:| Zone | Location |
|---|---|
| Vespucci Ocean | Coastal waters along the western shoreline |
| Sandy Bridge 1 | River section near Sandy Shores (north section) |
| Sandy Bridge 2 | River section near Sandy Shores (south section) |
| Sandy Lake | Inland lake in the Sandy Shores region |
| Vespucci Ocean 2 | Extended coastal waters south of Vespucci |
| Paleto Ocean | Northern bay waters near Paleto Bay |
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, openlocations.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