Server Configuration
File: configurations/config_server.lua
This file contains server-side configuration including level system, animal rewards, cooking configuration, and quality-based bonuses.
Level System
Config.MaximumLevel = 10
Config.Title = {
beginner = 1,
novice = 2,
apprentice = 4,
adept = 6,
expert = 8,
master = 10,
}
Configuration:
MaximumLevel
- Maximum hunting level players can reachTitle
- Title names and their level requirementsTitles are localized in
locales/
files
Title Progression:
Level 1: Beginner
Level 2-3: Novice
Level 4-5: Apprentice
Level 6-7: Adept
Level 8-9: Expert
Level 10: Master
Quality-Based Rewards
Config.IncreaseAmountByQuality = true -- Enable quality-based bonus amounts
When enabled, higher quality kills grant bonus items:
Quality 1: +0 bonus items (base amount)
Quality 2: +1 bonus item
Quality 3: +2 bonus items
Example:
Deer beef base amount: 3
Quality 1 kill: 3 beef
Quality 2 kill: 4 beef
Quality 3 kill: 5 beef
Animal Rewards
Configure what items players receive when butchering animals:
Config.AnimalRewards = {
['deer'] = {
meat = {
item = 'deer_meat',
parts = {
beef = {
amount = 3, -- Base amount
model = 'propk_deer_beef_raw',
item = 'deer_beef',
cook = {
method = {'grill', 'stick'}, -- Cooking methods
cookingTime = 10, -- Seconds
cookedModel = 'propk_deer_beef_cooked',
cookedItem = 'deer_beef_cooked'
}
},
rib = {
amount = 1,
model = 'propk_deer_rib_raw',
item = 'deer_rib',
cook = {
method = {'grill'},
cookingTime = 10,
cookedModel = 'propk_deer_rib_cooked',
cookedItem = 'deer_rib_cooked'
}
},
leg = {
amount = 4,
model = 'propk_deerleg_raw',
item = 'deer_leg',
cook = {
method = {'grill'},
cookingTime = 10,
cookedModel = 'propk_deerleg_cooked',
cookedItem = 'deer_leg_cooked'
}
},
},
},
hide = {
amount = 1
},
},
}
Reward Structure
Each animal can have:
Meat Parts:
amount
- Base number of itemsmodel
- Prop model for the raw meatitem
- Item name (must match inventory item)cook
- Cooking configuration (optional)method
- Array of cooking methods:'grill'
,'stick'
cookingTime
- Time in seconds to cookcookedModel
- Prop model for cooked meatcookedItem
- Cooked item name
Hide:
amount
- Number of hides to give
Cooking Methods
Two cooking methods are available:
Grill (
'grill'
)Requires
primitive_grill
oradvanced_grill
Can cook multiple items at once
Best for ribs and larger cuts
Stick (
'stick'
)Requires
campfire
Cooks one item at a time
Best for small cuts and quick cooking
Example Configuration:
cook = {
method = {'grill', 'stick'}, -- Can use both methods
cookingTime = 10,
cookedModel = 'propk_deer_beef_cooked',
cookedItem = 'deer_beef_cooked'
}
Complete Animal Examples
Deer (Large Animal)
['deer'] = {
meat = {
item = 'deer_meat',
parts = {
beef = { amount = 3, model = 'propk_deer_beef_raw', item = 'deer_beef', cook = {...} },
rib = { amount = 1, model = 'propk_deer_rib_raw', item = 'deer_rib', cook = {...} },
leg = { amount = 4, model = 'propk_deerleg_raw', item = 'deer_leg', cook = {...} },
},
},
hide = { amount = 1 },
}
Rabbit (Small Animal)
['rabbit'] = {
meat = {
item = 'rabbit_meat',
parts = {
body = { amount = 1, model = 'propk_rabbit_raw', item = 'rabbit_body', cook = {...} },
leg = { amount = 4, model = 'propk_rabbit_leg_raw', item = 'rabbit_leg', cook = {...} },
beef = { amount = 1, item = 'rabbit_beef', cook = {...} },
},
},
hide = { amount = 1 },
}
Bear (Dangerous Animal)
['bear'] = {
meat = {
item = 'bear_meat',
parts = {
beef = { amount = 7, model = 'propk_bear_beef_raw', item = 'bear_beef', cook = {...} },
rib = { amount = 1, model = 'propk_bear_rib_raw', item = 'bear_rib', cook = {...} },
leg = { amount = 4, model = 'propk_bear_arm_raw', item = 'bear_leg', cook = {...} },
},
},
hide = { amount = 1 },
}
Quality System
The quality system is based on shot location:
Quality Levels
Quality 3 (Perfect):
Headshot (bones 99 or 98)
Trapped animals
Grants best rewards and highest sell price
Quality 2 (Good):
Leg shot (bones 1-20)
Decent rewards and sell price
Quality 1 (Normal):
Body shot (all other bones)
Base rewards and sell price
Level Bonuses
Players receive quality bonuses based on their hunting level:
Every 3 levels grants +1 quality (up to max quality 3)
Example:
Level 1 player body shot = Quality 1
Level 3 player body shot = Quality 2
Level 6 player body shot = Quality 3
Level 9 player leg shot = Quality 3 (2 + 1 from level)
Note: Quality is calculated in game/client/main.lua
in the CheckHitAnimalQuality
function.
Sell Price Calculation
Final sell price = Base price × Quality multiplier
Example (Deer Beef):
Base price: $45 (from
Shared.Shop.Sell
)Quality 1: $45 × 1.0 = $45
Quality 2: $45 × 1.5 = $67.5
Quality 3: $45 × 2.0 = $90
Quality multipliers are configured in Shared Configuration.
XP Calculation
XP is awarded from multiple sources:
Hunting XP
Base XP from zone configuration (
animal.xp
)No quality modifiers for hunting XP
Selling XP
Quality-based XP when selling items:
Quality 3 Items:
20% chance to gain 3-4 XP per 10 items sold
30% chance for 1-2 XP if selling 5-9 items
Quality 2 Items:
15% chance to gain 1-2 XP per 10 items sold
20% chance for 1 XP if selling 5-9 items
Quality 1 Items:
No XP from selling
Quest XP
Defined per quest in
Shared.Quests
Awarded when quest is completed
Customizing Rewards
To add a new animal reward:
Add to AnimalRewards:
Config.AnimalRewards['wolf'] = {
meat = {
item = 'wolf_meat',
parts = {
beef = {
amount = 4,
model = 'propk_wolf_beef_raw',
item = 'wolf_beef',
cook = {
method = {'grill', 'stick'},
cookingTime = 12,
cookedModel = 'propk_wolf_beef_cooked',
cookedItem = 'wolf_beef_cooked'
}
},
rib = {
amount = 2,
model = 'propk_wolf_rib_raw',
item = 'wolf_rib',
cook = {
method = {'grill'},
cookingTime = 12,
cookedModel = 'propk_wolf_rib_cooked',
cookedItem = 'wolf_rib_cooked'
}
},
},
},
hide = {
amount = 2 -- Wolves give 2 hides
},
}
Add sell prices in Shared Configuration
Add items to inventory (see Installation Guide)
Best Practices
Balancing Economy
Consider rarity:
Common animals (deer, rabbit) = lower prices
Rare animals (lion, bear) = higher prices
Consider difficulty:
Passive animals = lower rewards
Aggressive animals = higher rewards
Quality system:
Encourage skillful hunting (headshots)
Reward experienced players (level bonuses)
Meat Amounts
Balance meat amounts based on:
Animal size (bear > deer > rabbit)
Realism (4 legs, multiple cuts of beef, etc.)
Server economy
Cooking Times
Small items (rabbit leg): 5-10 seconds
Medium items (deer beef): 10-15 seconds
Large items (bear rib): 15-20 seconds
Advanced Configuration
Fallback Models
If an animal part doesn't have a model, the system uses fallback models:
local fallbackModels = {
leg = 'propk_redpanda_arm_raw',
beef = 'propk_deer_beef_raw',
rib = 'propk_deer_rib_raw',
body = 'propk_pork_beef_big_raw',
}
You can omit model
from configuration if you want to use fallback.
Disabling Cooking
To make an item non-cookable, simply omit the cook
configuration:
hide = {
amount = 1,
item = 'wolf_pelt',
-- No cook configuration = cannot be cooked
}
Next Steps
Configure Client Settings for hunting zones
Review Shared Configuration for shop and quests
Check API Reference for custom integrations
Last updated