QBCoreQBoxESX

Hunting

A full hunting loop: animals spawn in zones across the map, you track and shoot them, skin the carcass for meat and pelts, cook the meat on a placeable stove, and sell the haul to a hunter NPC — with a weekly tournament, a leaderboard and per-level perks on top.

💡

Any dead animal of a huntable species can be skinned — the ones this resource seeds and the map's own ambient wildlife alike. Loot quantities, trophy rolls and payouts are all decided server-side.

Requirements

ResourceRequiredNotes
ox_libYesCallbacks, menus, progress bars, locales
ox_targetYesHardcoded — there is no qb-target path
oxmysqlYesProgression, tournaments and leaderboard
A frameworkYeses_extended, qbx_core or qb-core
An inventoryYesox_inventory or qb-inventory only
jj-perksStrongly recommendedDrives the hunting level — see below
ps-dispatchOptionalPolice alerts on illegal kills
⚠️

ox_core is not supported and will refuse to start. Inventories other than ox_inventory and qb-inventory are not supported either.

Install

  1. Drop jj-hunting into your resources folder.
  2. Add the items from install/items/ox_inventory.txt or install/items/qb-inventory.txt.
  3. Copy the 20 PNGs from install/images/ into your inventory's image folder (ox_inventory/web/images/ or qb-inventory/html/images/).
  4. Add to server.cfg, after your framework, inventory, ox_lib, ox_target and oxmysql:
ensure jj-hunting
  1. Restart. The five database tables create themselves on first boot — the SQL import is optional.
⚠️

The folder must stay named jj-hunting. The schema loader and every NUI call reference that name literally — renaming it stops the database from being created and breaks the entire interface.

Items

26 items ship in total:

GroupItems
Raw meat6 — deer, boar, rabbit, mountain lion, coyote, chicken hawk
Cooked meat6 — one per animal, restores hunger when eaten
Pelts6 — one per animal, sold to the hunter
Trophyjjhunt_antlers — rare drop, also the perk trophy item
Stovejjhunt_stove — placeable cooking prop

Weapons come from stock game items (weapon_sniperrifle, ammo-sniper, weapon_knife) and need no definitions.

⚠️

If you enable the licence requirement, you also need a huntinglicense item. No image ships for it — supply your own huntinglicense.png or the icon will 404.

qb-inventory

On ox_inventory everything is wired through the item definitions. On qb-inventory the stove, raw meats and cooked meats are registered as usable items automatically — nothing to do by hand.

Item images follow the detected inventory too. Config.ui.itemImg ships as nil, which resolves to the right path for whichever inventory is running; set it only if you keep icons somewhere else.

jj-perks setup

jj-hunting uses jj-perks as the source of truth for a player's hunting level. That level gates the illegal animals and drives every bonus.

⚠️

The hunting perk category is not enabled in jj-perks by default. Until you add it, every player sits at level 0 — mountain lion, coyote and chicken hawk stay permanently unhuntable and no bonus ever applies. Nothing warns you that this is the cause.

Add a hunting category to jj-perks' config with a 10-level curve matching config/perks.lua:

curve = { [1]=200, [2]=800, [3]=1800, [4]=3200, [5]=5200,
          [6]=7800, [7]=11000, [8]=14500, [9]=18000, [10]=20000 }

Running without jj-perks at all is possible but not recommended — the level never rises, so only deer, boar and rabbit are ever huntable.

Database

Five tables, all created automatically: jj_hunting_players, jj_hunting_tournaments, jj_hunting_tournament_history, jj_hunting_pending_prizes and jj_hunting_state. Importing install/jj_hunting.sql by hand is optional.

When jj-perks is running, the all-time leaderboard also reads jj-perks' own XP table. If that table is missing or renamed the leaderboard falls back to local data rather than erroring.

First run

  1. Head to the hunter NPC at the default location north of the map (blip: Hunting).
  2. Buy a sniper rifle, ammo and a stove from the Shop tab.
  3. Drive to any hunting zone — the Zones tab shows them all on a map.
  4. Shoot an animal, then target the carcass and skin it. No knife item is required.
  5. Place your stove, cook the raw meat, and sell the pelts back at the hunter.
💡

Seeded animals take a short while to appear after a restart — the spawn pass runs on an interval. You can still hunt the map's own wildlife in the meantime.

Next: Configuration.