Documentation › Hunting System › Features › Hunting & Skinning

Hunting & Skinning

Spawning, skinning and blood minigames, carcasses, markets and the reward card.

Spawning

Animals spawn gradually around hunters inside zones (config_zones.lua) and flee when a moving hunter gets close.

Setting Default Meaning
Config.MaxAnimalsNearPlayer 6 Cap on live animals around one hunter
Config.MinSpawnDistance 60 m Animals never appear closer
Config.PNearAnimalToEscape 15 m Base flee distance (camouflage, night and weather change it)
Config.huntAllMap false Hunt anywhere instead of only in zones

Hunting weapons (Config.HuntingWeapons, the musket by default) only hurt animals. Shots at players or NPCs are cancelled by the server.

Skinning

Skinning needs a knife from Config.KnifesForHarvest. A headshot can guarantee a perfect hide and skip the minigame.

With Config.Skinning.mode = 'cut' (default) the camera moves above the carcass, the hunter holds a knife and cuts along lines laid over the animal's own skeleton:

  • Big game: incision → neck arc → legs (random order, sometimes a golden bonus cut) → peeling the hide → organs into the bucket.
  • Small game: incision, then the hide comes off like a glove.
  • Birds: plucking feathers, incision, organs.
  • Combos, a time limit and a per-stage result screen. Legendary animals have tighter lines and an extra cut.
lua
Config.Skinning = {
    mode         = 'cut', -- 'cut' | 'classic' (timing bar) | 'none'
    timeLimit    = 45,    -- seconds
    tolerance    = 1.0,   -- 1.5 easier, 0.7 harder
    cameraHeight = 1.0,   -- raise if big animals don't fit
}

With Config.ServerRollQuality = true the server decides the final quality, so the result can't be faked.

Blood draw

With a hunting_syringe, players draw blood from a carcass once. In minigame mode there are no panels or numbers on screen:

  1. The vein pulses on the animal's neck. Press on it and push the needle in with a short drag. A miss leaves a bruise (four tries).
  2. The syringe appears next to the carcass. Drag the plunger up slowly and steadily. Too fast pulls in air bubbles and the blood turns pale and frothy; too slow lets it clot and darken.
  3. One line of text sums up the sample. The purity sets the clean-blood chance between minCleanChance and maxCleanChance (capped by the server). Older carcasses clot faster.
lua
Config.BloodDraw = {
    mode           = 'minigame', -- or 'classic' (progress bar)
    minCleanChance = 10,
    maxCleanChance = 85,
    freshMinutes   = 3,
    clotMinutes    = 15,
}

Carcass transport

Unskinned deer, boar and rabbit carcasses can be carried (G to drop), loaded onto an allowed vehicle and handed to the butcher, who turns them into extra meat and sometimes a hide. Handed-over carcasses are removed and can't be used again.

lua
Config.Carcass = {
    processTime     = 10,  -- seconds at the butcher
    processMeatMult = 2.0, -- meat multiplier
    hideChance      = 70,  -- % chance of a hide
    allowedVehicles = { ['verus'] = true },
    express = { enable = true, pricePerMinute = 25, minPrice = 50 }, -- pay to finish now
}

Markets

NPC Buys Pays to
Hunter Hides, parts, raw meat (license required), crafted goods cash
Black market Everything, protected species too black money
Syringe buyer Blood syringes; barters items for syringes black money
Cooked meat buyer Cooked meat cash
Butcher Processes carcasses —
Tanner Crafts goods from hides (Tannery) —

NPC positions can be moved live in Admin → General → NPC positions.

Reward card

After skinning, a card slides in on the right with the animal, quality stars, its weight on the species range, loot, XP, record banners and contract progress. Legends get a gold version.

lua
Config.RewardScreen = {
    enable   = true, -- false = classic text notification
    duration = 7,    -- seconds on screen
}

Anti-cheat

Every animal a player spawns is reported to the server and checked: inside its zone, a species that lives there, not at the player's feet, not spawned dead, and within spawn and live limits. Bait, calls and trap catches get a one-time server ticket. Animals the server doesn't know can't be skinned, bled or loaded – the player sees "You can't use this animal" and the anticheat webhook gets an entry.

A headshot only counts when the skinner (or their party) killed the animal with a hunting weapon, and a headshot rate above maxHeadshotRate % over the last kills is ignored. Every reward is decided on the server: items are paid only after they really left the inventory, and every event and callback has a rate limit.

lua
-- config_main.lua
Config.AnimalGuard = {
    enable           = true,
    maxLivePerPlayer = 40,   -- animals one player may have spawned at the same time
    spawnsPerMinute  = 40,   -- zone / bird spawns one player may report per minute
    minSpawnDistance = 25.0, -- zone animals can't appear closer than this (m)
    maxHeadshotRate  = 75,   -- % of headshots in the last kills above which headshots are ignored
    headshotSample   = 20,   -- how many recent kills the rate is measured on
}

The registry turns off automatically with Config.NativeAnimal. If legit animals are ever refused, set enable = false and send us the console lines that start with suspicious.