Troubleshooting
Turn on Config.debug to draw the zone spheres in-game — it answers "is this even a hunting zone?" instantly, which is behind a surprising number of reports.
Mountain lion, coyote and chicken hawk never appear
Those three are level-gated (5, 5 and 9). If your hunting level is stuck at 0, they will never spawn for you.
The usual cause is jj-perks. The hunting perk category isn't enabled in jj-perks by default. Without it every player stays at level 0 forever, all illegal animals stay locked, and every perk bonus reads zero — with nothing in the console to explain why.
Fix: add a hunting category to jj-perks' config with the 10-level curve from config/perks.lua, then relog.
To confirm the level is the problem, check what the Animals tab shows as your current level. If it says 0 after a session of hunting, XP isn't reaching jj-perks.
No animals anywhere
Work through these in order:
- Wait a minute. Spawning runs on a 60-second interval, not instantly on restart.
- Check you're in a zone. Enable
Config.debugto see the spheres, or open the Zones tab. - Get closer. Animals only render within 80% of
cullDistance, capped at 150 units. - Check your level if only the common three are missing — see above.
On plain ESX, animals may never render at all. The client waits on a logged-in state flag that qb-core and Qbox set but vanilla es_extended does not. If you're on ESX and no animals appear anywhere regardless of zone or level, this is why — contact support rather than working through the list above.
Two players see different animals
Working as designed. Animals and stoves are spawned client-side and are not networked, which is what keeps the resource cheap to run with many zones active.
Consequences to expect:
- Players in the same zone see different animals in different places.
- You can't see or use another player's stove.
- You can't watch a friend skin a carcass.
The kill itself is still server-authoritative — one spawn yields exactly one payout, so nobody can double-claim.
A player lost their stove
Placed stoves are held in server memory only. Disconnecting or a server restart clears that state, and because pickup depends on it, the item is gone.
There's no recovery beyond giving the item back manually. Advise players to pick stoves up before logging off.
Broken images in the shop or sell tab
Item images follow the detected inventory automatically. If icons are still blank, either the PNGs were never copied into your inventory's image folder, or Config.ui.itemImg has been set to a path that does not exist — clear it back to nil to restore auto-detection.
ui = {
itemImg = 'nui://qb-inventory/html/images/',
}
If only some icons are broken, those specific PNGs weren't copied from install/images/. The licence item is the common one — no image ships for it at all.
The hunter's menu doesn't open
- The folder must be named exactly
jj-hunting— every NUI call and the database loader use that name literally. - If
license.gateis'all'and licences are required, players without one can't open the menu at all. That's intended, but easy to forget. - Confirm ox_target is running — it's a hard requirement with no fallback.
Skinning fails or does nothing
- You must be within about 2 units of the carcass, and it must be one you registered the kill on.
- Carcasses expire — skin within 15 minutes of the kill.
- If licences are on with gate
'harvest'or'all', you need the licence item. - Check the animal isn't above your level.
No knife item is needed — if you added that requirement expecting it to exist, that's the confusion.
The skin option shows a blank icon
The default icon is Font Awesome Pro and doesn't exist in the free set ox_target bundles. Change it in config/icons.lua to any free icon, e.g. fas fa-utensils.
Eating cooked meat doesn't restore hunger
The hunger event defaults to hud:client:UpdateNeeds, which only your HUD will act on if it's qb-hud or compatible.
Set Config.hudEvent to your HUD's own event name, or false to stop firing it. The key isn't in the shipped config — add it to config/config.lua.
Tournament prize never paid
- Prizes settle at week rollover (Monday, UTC), not when the week's leader changes.
- If the winner was offline, the prize is held and granted on their next login.
- Prizes pay to the bank, not cash — check the right balance.
- Each week can only pay out once by design, so a re-run won't double-pay.
The all-time leaderboard is empty
It reads jj-perks' XP table directly. If jj-perks isn't running, or its table has been renamed or modified, the query fails quietly and returns nothing rather than erroring.
The weekly tournament board is independent and will still work.
No police alerts on illegal kills
- ps-dispatch must be running — it's the only dispatch supported.
dispatch.enabledmust betrue.- With
illegalOnly = true(the default), only illegal animals alert. Deer, boar and rabbit never will.
Cooked meat can't be sold
Intended. Only raw meat, pelts and antlers have sale prices — cooking is for eating, not for profit.
Still stuck? Enable Config.debug, reproduce, and bring both console outputs to Discord.