/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
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:
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, 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