Skip to main content

Requirements

  • A working cc_lib install (provides the framework, inventory, notification, and target wrappers).
  • ox_lib and oxmysql.
  • An inventory system — ox_inventory or qb-inventory.
  • A MySQL database reachable via oxmysql.
The treasure safe uses the built-in ox_lib skill check by default. cc_minigames is only needed if you switch to it in client/minigames.lua — see configuration.

Steps

1

Place the resource

Copy cc_fishing into a resources directory the server loads. The repo ships under resources/[cc]/cc_fishing/.
2

Database tables

The resource creates its four tables on first start (cfg.autoInstallDatabase = true), so there’s nothing to do here in most cases:
If your MySQL user can’t run CREATE TABLE at runtime, set cfg.autoInstallDatabase = false and import sql/install.sql by hand instead:
3

Add the inventory items

Add the item definitions below, then drop the matching PNGs into your inventory’s images folder (each filename must match the item’s image field). The block reuses the legacy fishing image names, so any existing fishing image pack plugs in directly.weapon_pistol and weapon_marksmanpistol are GTA weapon hashes — no item entry needed. lockpick ships in the default lists, so skip it if it’s already there.
Add the following items to ox_inventory/data/items.lua
Drop the matching item images into ox_inventory/web/images/ (filenames must match the name of the item).
fishingrod*, treasure_map, and logbook register their own item-use handlers server-side at boot. You don’t need to wire anything in items.lua for those.
4

Ensure after cc_lib

Order matters in server.cfg:
cc_fishing’s fxmanifest.lua declares cc_lib, ox_lib, and oxmysql as dependencies — FXServer won’t start it before they’re up. If you switch the treasure safe to cc_minigames, add ensure cc_minigames before cc_fishing.
5

Restart the server

Restart so the new items and resource load.
6

Verify in-game

  1. Drive to Cassidy Creek (default fishing NPC location, (1302.95, 4228.7, 33.91)). A boat-rod blip should be on your map.
  2. Buy an EZ Cast 2000 and some Earthworms from the NPC.
  3. Walk to the water’s edge, equip the rod, and use the cast prompt.
  4. After the bite, complete the minigame — the catch should land in your inventory with length and caught_at metadata visible on hover.
  5. Drive to the pawnshop NPC in Mission Row ((-1459.56, -413.97, 35.74)) and sell the catch.
Set cfg.debug = true in shared/config.lua for verbose server logging while you test.
7

Configure

Defaults are sensible, but most servers will want to move the NPCs, adjust payment sources, or rebalance prices. All tunables, NPC placement, and editable Lua files are covered in the configuration guide.