ShadowFishing
A premium fishing job with a tension minigame and a hundred levels of progression.
- Version
- 1.0.0
- Resource
- SF-Fishing
Overview#
SF-Fishing turns fishing into a real activity rather than a progress bar. Casting starts a minigame where you manage line tension while reeling in: pull too hard and the line snaps, too softly and the fish escapes. Progression runs from level 1 to 100 and unlocks rarer species. Water is detected natively, so any body of water on the map works, including modded ones.
Tension minigame
A real reeling mechanic: hold the tension in the green zone to land the fish.
Levels 1 to 100
Experience earned per catch unlocks rarer and more valuable species.
Native water detection
Uses the engine water probes, so every body of water works, including modded maps.
Rods and baits
Three rods, wooden, carbon and pro, and two baits that change your odds.
Fishmonger with live prices
An NPC buys your catch at a price that moves by up to fifteen percent.
Leaderboard
A public ranking of the best anglers on the server.
Server-side validation
Catches, experience and sales are all computed on the server, so the minigame cannot be faked.
Multi-framework and multi-inventory
Detects the framework and the inventory automatically.
Dependencies#
| Resource | Required | Why |
|---|---|---|
ox_lib | Yes | Interface, notifications and progress bars. |
oxmysql | Yes | Stores levels, experience and the leaderboard. |
dpemote / rpemotes | Optional | Provides the fishing emote when available. |
Installation#
- Drop the SF-Fishing folder into your server resources directory.
- Declare the items listed in ITEMS.md inside your inventory, together with their images.
- Add the ensure lines below to your server.cfg, after ox_lib and oxmysql.
- Place the fishmonger NPC and adjust the prices in config.lua.
- Restart the server: the tables are created on the first start.
ensure ox_lib ensure oxmysql ensure SF-Fishing
Configuration#
| Key | Default | What it does |
|---|---|---|
Config.Framework | 'auto' | Force esx, qbcore or standalone, or leave auto-detection on. |
Config.Inventory | 'auto' | Force an inventory, or leave auto-detection on. |
Config.Locale | โ | Language of the interface and the messages. |
Config.Water | โ | Water detection settings: probe depth and tolerance. |
Config.Fish | โ | The species: name, rarity, value and required level. |
Config.Rods | โ | The rods and what each one changes in the minigame. |
Config.Bait | โ | The baits and the bonus they give. |
Config.Levels | โ | The experience curve from level 1 to 100. |
Config.LevelRarity | โ | Which rarities become reachable at each level. |
Config.Seller | โ | Position, model and dialogue of the fishmonger NPC. |
Config.SellAccount | โ | Account credited when selling: cash, bank or a custom one. |
Config.Cooldown | โ | Delay between two casts. |
Config.Target | โ | Target system used to interact with the NPC. |
Config.Emote | โ | Emote played while fishing. |
Commands#
| Command | Permission | What it does |
|---|---|---|
/pecher | โ | Start fishing. Also bound to the F key and to the rod item. |
/peche | โ | Show your level, your experience and your statistics. |
/pecheclassement | โ | Show the leaderboard of the best anglers. |
/sf_fishing_giveitem [id] [item] [qty] | Admin | Give a fishing item to a player. |
/sf_fishing_xptest [amount] | Admin | Grant experience to test the progression. |
/sf_fishing_diag | Admin | Run a diagnostic of the framework and inventory bridges. |
/sf_fishing_debug | Admin | Toggle debug mode. |
/sf_fishing_loadme | Admin | Reload your own player data. |
Exports#
| Signature | Side | Returns |
|---|---|---|
exports['SF-Fishing']:useRod() | client | Starts a fishing session, as the rod item does. |