Pepper Hunting
Hunting as a leisure activity for every player – living wildlife in hunting zones, stalking with wind and tracks, hunting license with closed seasons and poaching, levels 1–50, hunting tablet, hunting dog, traps, legendary animals, group hunts and competitions for ESX, QBCore and Qbox.
Overview
Pepper Hunting turns hunting into a leisure activity for every player – no job and no business required. A real wildlife population lives in the hunting zones: the server knows which animals are where, they only spawn near hunters, and harvested game repopulates over time. Outside the zones, the city stays quiet.
Players hunt with dedicated hunting weapons that can only be drawn inside a hunting zone. Animals hear, see and smell: wind, noise and camouflage decide whether you get close enough. Tracks, binoculars, calls, bait and hunting stands help along the way. Shot placement determines the quality of the loot; wounded game flees and leaves a blood trail.
To hunt legally, players get a hunting license (theory quiz + shooting range) and respect closed seasons and daily quotas – otherwise it's poaching: the loot becomes illegal and the police can be called. A hunter level 1–50 (about 60 hours) unlocks endorsements, weapons and zones; the hunting tablet shows the collection, trophies, leaderboards and the map. On top of that there are a hunting dog, traps, legendary animals, hunting parties with drive hunts and competitions. Venison can be butchered for Pepper Eats.
Features
- Hunting zones: 6 presets (Paleto Forest, Mount Chiliad, Raton Canyon, Grapeseed fields, Tongva Hills, Great Chaparral) and as many more as you like – mark them out in-game with
/huntadmin(walk the outline), species, population, minimum level, blip - Living wildlife population per zone on the server, spawns only near hunters, repopulates over time – deer, boar, mountain lion, coyote, rabbit, hawk
- Dedicated hunting weapons (hunting rifle, shotgun, hunting knife) as items, can only be drawn inside a hunting zone, spent ammo is deducted
- Hit zones and quality: head/heart-lung = clean, body, haunch, leg – plus the right weapon, multiple hits and freshness → quality 0–100 and 1–5 stars
- Stalking: game hears you (crouching is quieter), sees you (field of view, line of sight) and smells you (wind per zone, changes every 10 minutes); predators attack
- Tracks (footprints, droppings, feeding spots, bedding areas) lead to game up to 450 m away; inspecting them shows species, age and direction
- Tracking wounded game: wounded animals flee, bleed and die – follow the blood trail, the shooter gets the animal
- Binoculars (species, sex, weight, achievable stars, wind), wind and noise indicator, camouflage clothing
- Calls for deer, boar and predators (calling too often scares them off), bait and salt licks
- Hunting stands: placeable (item) and fixed (admin) – from above, game sees and smells you less easily
- Field dressing with a hunting knife: meat, hides, pelts, antlers, boar tusks, claws and feathers as ox_inventory items with quality, hunter and "legal/illegal"
- Game dealer buys by quality with daily price fluctuation, the fence buys poached loot for a pittance
- Hunting license: theory exam (22 questions DE/EN, answers only on the server) and shooting range test, ID item, endorsements for big game, predators and night hunting
- Rules: closed seasons per species and weekday, daily quotas, night hunting – violations = poaching with a police alert (ps-, cd-, qs-, rcore-, core_dispatch or built-in)
- Hunting shop with 17 products; weapons and ammo only with the matching license and level
- Hunter level 1–50 (≈ 60 hours) with unlocks: endorsements, shop products, zones, more hunting stands, bait and traps
- Collection per species with milestones (XP + money); the taxidermist turns loot into trophies with points
- Hunting tablet (item or
/hunttablet): overview, level, collection, trophies, leaderboards, map, dog, party, competition, legends - Hunting dog (retriever, shepherd, husky) with name, feeding, affection and dog level: heel, sit, search (finds wounded game first), fetch
- Traps for small game (snare, box trap) – set them up, check them later
- Legendary animals (White Stag, Old Tusker, Shadow Stalker, Ghost Coyote) with rumors, hall of fame and special trophies
- Hunting parties of up to 6 hunters: field dress loot immediately, XP share, drive hunt
- Competitions (biggest deer, boar hunt, rabbit sprint, cleanest shot) on a schedule or started by admins, with prizes
- Pepper Eats integration: butcher venison at the game dealer for the restaurant kitchen
- Admin menu with zones, places (dealer, fence, license office, shooting range, hunting shop, taxidermist, kennel, hunting stands), overview, set license/level, competitions
- 3 Discord webhooks, server and client exports, German & English; config, locale files, bridges and install files are open
Requirements
| Dependency | Required/optional | Used for | Link |
|---|---|---|---|
| FiveM server build 7290 or newer | required | Per fxmanifest.lua (/server:7290) |
https://runtime.fivem.net/artifacts/fivem/ |
| OneSync | required | Game population and animals on the server | https://docs.fivem.net/docs/scripting-reference/onesync/ |
| ESX, QBCore or Qbox | required | Money, jobs, character (auto-detected) | https://github.com/esx-framework/esx_core · https://github.com/qbcore-framework/qb-core · https://github.com/Qbox-project/qbx_core |
| MySQL 8 or MariaDB 10.6+ | required | 12 tables for zones, hunters, licenses, trophies | – |
| oxmysql | required | Database access | https://github.com/overextended/oxmysql |
| ox_lib | required | Helpers, menus | https://github.com/overextended/ox_lib |
| ox_inventory | required | Loot with quality, hunting weapons, tools | https://github.com/overextended/ox_inventory |
| ox_target or qb-target | optional | Target dealers and loot, otherwise a hint text "[E] …" | https://github.com/overextended/ox_target |
| Dispatch script | optional | Poaching alerts (ps-dispatch, cd_dispatch, qs-dispatch, rcore_dispatch, core_dispatch), otherwise the built-in alert | – |
| Pepper Eats | optional | Venison as a restaurant ingredient | Pepper Eats |
Installation
- Copy the folder to
resources/[pepper]/pepper_hunting– do not rename. - Items: add the contents of
install/ox_items_en.lua(English) orinstall/ox_items.lua(German) toox_inventory/data/items.lua– before the last}of the file. - Copy all images from
install/images/toox_inventory/web/images/(32 images). - Important: ox_inventory takes away weapons that were not drawn from the inventory. Add the three game weapons used
by the hunting weapons to your
server.cfg(Pepper Hunting checks this on start and warns you):
# hunting rifle, shotgun, knife – exactly like this, no spaces, before ensure ox_inventory
setr inventory:ignoreweapons [100416529,487013001,-1716189206]
server.cfg:
ensure oxmysql
ensure ox_lib
ensure ox_inventory
# ensure ox_target # optional – or qb-target
# your framework (es_extended / qb-core / qbx_core) before it as usual
ensure pepper_hunting
add_ace group.admin pepper_hunting.admin allow
- The script creates its 12 database tables on start. Only if your database user isn't allowed to do that, import
install/pepper_hunting.sql. - Start the server. The console shows
Pepper Hunting 1.0.1 started (…, 6 hunting zones)(withConfig.Locale = 'en'). - In-game, open
/huntadminand check the preset places: the coordinates of the zones, dealers, license office, shooting range, hunting shop, taxidermist and kennel are good approximations – on custom maps or with MLOs, please take a look once and set them again if needed.
First test
- Open
/huntadminand check that the 6 preset zones are listed. - Give yourself a hunting license with
/huntadminor take the exam at the license office. - Buy a hunting knife and a hunting rifle with ammo at the hunting shop and go to a hunting zone (e.g. Paleto Forest).
- Use the hunting rifle as an item, take down an animal and field dress it with the hunting knife.
- Sell the loot at the game dealer and look at the collection in the hunting tablet (
/hunttablet).
Configuration
All settings are open in config/:
| File | Contents |
|---|---|
config.lua |
Language, framework, command, keys, zones, spawning, shooting, loot, stalking (perception, wind, tracks, tracking wounded game, binoculars, calls, bait, hunting stands), trade |
animals.lua |
Species: models, size, suitable weapons, weight, loot, XP, senses, attack; hit zones |
zones.lua |
Preset hunting zones (only used for an empty database) |
weapons.lua |
Hunting weapon items → game weapon + ammo, knife, "zone only" |
items.lua |
All items with price/weight (install/ox_items.lua is generated from it) |
places.lua |
Preset places and place types, NPC models, blips |
license.lua |
Hunting license, fees, endorsements, license per species, closed seasons, quotas, poaching/police, shooting range, quiz, hunting shop |
progression.lua |
Level curve, XP sources, unlocks, collection milestones, taxidermist, tablet, leaderboards |
extras.lua |
Hunting dog, traps, legendary animals, hunting parties + drive hunt, competitions, Pepper Eats |
server.lua |
Webhooks, admin ACE, quiz answers (never sent to clients) |
Common adjustments:
- Stalking difficulty:
Config.Perception.Difficulty(0.6 = easy, 1.0 = challenging) - Playtime to level 50:
Config.Level.XpCurve(1.25 ≈ 60 hours), event weekend:Config.Level.XpMultiplier = 2.0 - Without hunting license rules (everything legal):
Config.License.Enabled = false - Prices:
Config.Items(selling),Config.Shop.Items(hunting shop),Config.Trade.StarFactor
Stalking
Config.Perception = {
Difficulty = 0.85,
Sight = 42.0,
Scent = 85.0,
Camo = 0.55,
Stand = 0.45,
}
| Option | Default | Description |
|---|---|---|
Difficulty |
0.85 |
All ranges × factor (0.6 = easy, 1.0 = challenging) |
Sight |
42.0 |
How far game sees a hunter in front of it (metres) |
Scent |
85.0 |
Scent range with wind blowing from hunter to animal |
Camo |
0.55 |
Camo clothing: sight range × factor |
Stand |
0.45 |
On a hunting stand: sight and scent × factor |
Hunting license and poaching
Config.License = {
Enabled = true,
Item = 'hunt_license',
RequireItem = false,
Account = 'bank',
Fees = { theory = 250, practice = 400, card = 100 },
}
| Option | Default | Description |
|---|---|---|
Config.License.Enabled |
true |
false = no rules, nothing counts as poaching |
Config.License.RequireItem |
false |
true = license only counts with the card item in the inventory |
Config.License.Fees |
250 / 400 / 100 | Theory, shooting range, replacement card |
Config.License.Extensions |
big game 2500, predators 3500, night 1500 | Extension prices (minimum level 5 / 12 / 8 from progression.lua) |
Config.ClosedSeasons |
deer on Sundays, mountain lion on Sundays + Wednesdays | Weekdays with closed season (server time) |
Config.Quotas |
deer 4, boar 5, mountain lion 1, coyote 6, rabbit 20, hawk 8 | Legal kills per day and species |
Config.Poaching.ReportChance |
0.6 |
Chance that a witness calls the police |
Config.Poaching.PoliceJobs |
police, sheriff, ranger (grade 0) |
Who receives poaching alerts |
Config.Poaching.FenceFactor |
0.6 |
Share of the price the fence pays |
Levels
Config.Level = {
Max = 50,
XpCurve = 1.25,
XpMultiplier = 1.0,
}
| Option | Default | Description |
|---|---|---|
Max |
50 |
Highest hunter level |
XpCurve |
1.25 |
> 1 slower, < 1 faster (1.25 ≈ 60 hours to level 50) |
XpMultiplier |
1.0 |
All XP × factor, e.g. 2.0 for an event weekend |
Creating hunting zones
/huntadmin→ Zones → "New hunting zone", enter a name.- Mark the outline: walk, drive or fly along the border and press E at every corner – X removes the last point, Enter closes the outline, ESC cancels. Glowing walls show the outline.
- Weight the species with sliders, choose the population (animals at the same time) and optionally From hunter level.
- Create. The population is there immediately; "Redistribute population" resets it.
Locations (game dealer, fence, license office, shooting range, hunting shop, taxidermist, kennel, fixed hunting stand):
/huntadmin → Locations → "New location" → choose type and name → "Set" → stand at the spot, turn to face the right
direction, E. For the shooting range, the position is the shooting position; the targets are placed in the direction
you're facing.
How hunting works
- Gear up: hunting shop (knife, binoculars, calls, bait; shotgun and rifle with a license). Use a hunting weapon item = draw it, use it again = holster it. If you leave the zone, it is holstered automatically.
- Stalking: at the bottom right, wind (arrow relative to your viewing direction) and noise show how well you're doing. Upwind and crouched, you get closest.
- Tracks become visible from 30 m – inspect them with E: species, age, direction to the next track.
- Shooting: heart-lung or head = full quality. A hit in the haunch or leg: the animal flees – follow the blood trail.
- Field dress the animal (hunting knife), then go to the game dealer (legal loot) or the taxidermist (trophy).
- Party members may field dress your kills immediately; others only after 90 seconds.
Hunting license and rules
- License office: theory exam – 10 random questions, 8 must be correct (fee per attempt).
- Shooting range: you are placed at the shooting position and get a loaner rifle – hit 4 of 6 targets within 120 seconds. Afterwards the hunting license (ID with a number) is in your inventory.
- Endorsements at the office: big game (deer, boar, from level 5), night hunting (from level 8), predators (coyote, mountain lion, from level 12).
- Poaching: without the matching license, during the closed season, above the daily quota or at night without the endorsement. The loot is illegal (only the fence buys it), gives no XP, and with a 60 % chance a witness calls the police – with an approximate location on the map.
Levels, collection and trophies
- Level 1–50: XP from legal kills (more for clean shots), field dressing, exams, trophies, the first sighting of a species, traps and milestones. Level 10 ≈ 4 h, 20 ≈ 11 h, 30 ≈ 22 h, 50 ≈ 60 h.
- Unlocks are shown in the tablet: endorsements, shop products, zones (Mount Chiliad from 10, Raton Canyon from 15, Great Chaparral from 20), more hunting stands, bait and traps.
- Collection: every species with count, best quality and heaviest animal; milestones at 1/10/50/100 kills.
- Taxidermist: antlers, boar tusks, coyote and mountain lion pelts (legal, from 40 % quality) become a trophy with points based on weight and quality – visible on the trophy wall and in the leaderboard.
Hunting dog
At the kennel (from level 8): retriever (fetches better), shepherd (tracks farther) or husky. The dog whistle
calls it / sends it home. Commands in the tablet or with /huntdog call|follow|sit|search|fetch|home. Search shows
the direction and distance to the nearest animal – your own wounded game first, then the dog follows the blood trail.
Fetch brings small game without a knife. Feeding (dog food item) and petting keep it happy; if it dies in-game, it
is injured for 20 minutes or the vet can help.
Traps, legends, parties, competitions
- Traps: set a snare (rabbits) or box trap (rabbits, birds) inside a zone and check it after 20–30 minutes. The same rules apply as for hunting.
- Legendary animals appear rarely (rumors for hunters from level 15), are tougher and heavier and move on after 40 minutes. Whoever takes one down first enters the hall of fame.
- Hunting parties: invite players by server ID in the tablet. Together: field dress loot immediately, 25 % XP share when nearby, drive hunt (leader in the zone, from 3 hunters): for 8 minutes, game is driven towards the line of shooters.
- Competitions start on a schedule (
Config.Events.Schedule) or via/huntadmin→ "Competitions …". Sign-up and live leaderboard in the tablet, prizes for places 1–3.
Pepper Eats
If Pepper Eats is running (with the game recipes), the game dealer shows "Butcher for the kitchen (Pepper Eats)": deer, boar and rabbit meat become restaurant ingredients. Without Pepper Eats, this section is hidden – Hunting works unchanged.
Webhooks
In config/server.lua (ServerConfig.Webhooks):
| Key | Contents |
|---|---|
admin |
Zones/places created, changed, deleted; hunting license/level set by admins |
hunting |
Poaching, legendary animals (sighted, killed), competitions |
security |
Suspected cases from the plausibility check |
Framework integration
The bridges in bridge/ (open) detect ESX, QBCore and Qbox automatically (Config.Framework = 'auto'). Money is handled
by the framework, items by ox_inventory, police alerts by bridge/server/dispatch.lua.
Commands and permissions
| Command | Who | What |
|---|---|---|
/huntadmin |
Admins | Zones, places, overview, set license/level, competitions |
/hunttablet |
everyone | Hunting tablet (also as an item), name in Config.Tablet.Command |
/huntdog <command> |
Dog owners | call, follow, sit, search, fetch, home |
/huntparty accept / decline |
Invited players | Accept or decline a hunting party invite |
Permissions:
| Permission | How |
|---|---|
Admin menu /huntadmin |
ACE pepper_hunting.admin (ServerConfig.AdminAce) or a group from Config.AdminGroups |
| Hunting | all players – legal with a hunting license, otherwise poaching |
| Police alerts | jobs from Config.Poaching.PoliceJobs (minimum grade) |
Keys (Config.Keys, GTA control IDs):
| Key | Purpose |
|---|---|
| E | Place a point (outline), inspect a track |
| X | Remove the last point |
| Enter | Finish the outline |
| ESC | Cancel placement |
| F | Leave a hunting stand, lower the binoculars |
| Q | Rotate a hunting stand while placing it |
Exports
Server
exports.pepper_hunting:getZones() -- all hunting zones
exports.pepper_hunting:getZoneAt(x, y) -- zone at a position or nil
exports.pepper_hunting:getPlayerZone(src) -- zone the player stands in, or nil
exports.pepper_hunting:getHunter(src) -- level, XP, statistics, collection
exports.pepper_hunting:getLevel(src) -- hunter level
exports.pepper_hunting:addXp(src, amount) -- add XP
exports.pepper_hunting:getLicense(src) -- hunting license with extensions
exports.pepper_hunting:hasLicense(src) -- true/false
exports.pepper_hunting:giveLoot(src, species, quality, weight) -- give loot items
exports.pepper_hunting:startEvent(template) -- start a competition
exports.pepper_hunting:getDog(src) -- hunting dog or nil
Client
exports.pepper_hunting:isInHuntingZone()
exports.pepper_hunting:getCurrentZone()
exports.pepper_hunting:openTablet()
FAQ
The hunting weapon disappears right away.
ox_inventory removes weapons that were not drawn from the inventory. Add
setr inventory:ignoreweapons [100416529,487013001,-1716189206] without spaces and before ensure ox_inventory to your
server.cfg. The server console prints the correct line on start.
No animals show up in the hunting zone.
Check that the zone is active and that you have the zone's minimum level. Animals only spawn near hunters.
Config.Debug = true shows zone outlines and animal markers.
The items have no images or are missing.
Add the contents of install/ox_items_en.lua (or ox_items.lua) to ox_inventory/data/items.lua and copy all images from
install/images/ to ox_inventory/web/images/. The console lists missing items by name on start.
Do I need to import the SQL file?
No. The script creates its 12 tables on start and adds missing columns. You only need install/pepper_hunting.sql if your
database user is not allowed to create tables.
Dealers or places are in the wrong spot.
/huntadmin → Locations → set the place again. The presets are approximations; on custom maps or with MLOs, take a look.
The police get no poaching alert.
Is a supported dispatch script running? Otherwise the built-in alert for the jobs in Config.Poaching.PoliceJobs is used.
A witness only reports with a 60 % chance (Config.Poaching.ReportChance).
"Butcher for the kitchen" is missing at the game dealer.
Pepper Eats must be running and its game recipes must not be switched off (Config.WildRecipes).
Can I play without hunting license rules?
Yes: Config.License.Enabled = false. Then everyone may hunt everything and nothing counts as poaching.
How do I create my own hunting zone?
In game with /huntadmin → Zones → "New hunting zone", then mark the outline with E. The presets from
config/zones.lua are only created on an empty database (Config.Zones.SeedPresets).
How do I change texts or the language?
Language via Config.Locale ('de' or 'en'), texts in locales/de/*.json or locales/en/*.json. Item names live in
ox_inventory/data/items.lua.
How do I make levelling faster or slower?
Config.Level.XpCurve in config/progression.lua (1.25 ≈ 60 hours to level 50). For an event weekend,
Config.Level.XpMultiplier = 2.0.
Stalking is too hard.
Lower Config.Perception.Difficulty (default 0.85, 0.6 = easy). The factor affects hearing, sight and scent.
Which inventories are supported?
Only ox_inventory. Loot carries quality, hunter and "legal/illegal" as metadata.
Support
Discord → ticket (category "Script Support") at https://discord.gg/6NaFJWKDYu, link your purchase with /verify first.
Permanently tested on the Pepper Scripts dev server.
Changelog
Current: 1.0.1 (2026-10-25) – "Butcher for the kitchen" no longer appears when Pepper Eats has switched off the game recipes. All changes are listed in CHANGELOG.md in the resource.
Found a mistake? Report it on Discord.