Gameplay

ShadowFishing

A premium fishing job with a tension minigame and a hundred levels of progression.

Version
1.0.0
Resource
SF-Fishing
Version 1.0.0 Resource SF-Fishing Frameworks ESX ยท QBCore ยท QBX ยท Standalone Bundled languages 5 Store page View

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#

ResourceRequiredWhy
ox_libYesInterface, notifications and progress bars.
oxmysqlYesStores levels, experience and the leaderboard.
dpemote / rpemotesOptionalProvides the fishing emote when available.

Installation#

  1. Drop the SF-Fishing folder into your server resources directory.
  2. Declare the items listed in ITEMS.md inside your inventory, together with their images.
  3. Add the ensure lines below to your server.cfg, after ox_lib and oxmysql.
  4. Place the fishmonger NPC and adjust the prices in config.lua.
  5. Restart the server: the tables are created on the first start.
server.cfg
ensure ox_lib
ensure oxmysql
ensure SF-Fishing

Configuration#

KeyDefaultWhat 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#

CommandPermissionWhat 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]AdminGive a fishing item to a player.
/sf_fishing_xptest [amount]AdminGrant experience to test the progression.
/sf_fishing_diagAdminRun a diagnostic of the framework and inventory bridges.
/sf_fishing_debugAdminToggle debug mode.
/sf_fishing_loadmeAdminReload your own player data.

Exports#

SignatureSideReturns
exports['SF-Fishing']:useRod()clientStarts a fishing session, as the rod item does.

Good to know#

The minigame runs on the client but the outcome is decided by the server: modifying the interface does not change what you catch.
Prices move by plus or minus fifteen percent, so a rare fish is not always worth the same.
The item list and the images to add to your inventory are documented in ITEMS.md, shipped with the resource.