What Are Contracts?
Contracts are optional side tasks that players can accept from NPCs located around the map. These contracts add variety to house robberies by giving players specific objectives like breaking objects, stealing items, or littering. Contracts spawn randomly inside houses and reward players upon completion.Contracts are configured in
config/contracts.lua and provide an additional layer of gameplay beyond standard house robberies.Global Configuration
Basic Settings
boolean
required
Enable or disable the entire contracts system. When disabled, contract NPCs won’t spawn and contracts won’t appear in houses.
boolean
default:"false"
If
true, reward amounts are hidden in the contract acceptance dialog. Players won’t see the exact payout until they complete the contract.Required Items
Configure which items players need to complete different contract types:string or boolean
default:"melee"
Item required to break objects. Use
"melee" to allow any melee weapon, a specific item name, or false for no requirement.string or boolean
default:"bag"
Item required to steal objects. Set to a specific item name or
false for no requirement.string or boolean
default:"false"
Item required for littering contracts. Set to a specific item name or
false for no requirement.string or boolean
default:"x_burner"
Item required to take pictures of completed contracts. Using
"x_burner" is recommended for immersion with the messaging system.Contract NPCs
NPCs are the characters players interact with to accept and turn in contracts. You can set up multiple npc coords which allows the npc to spawn randomly at one of the locations instead of always spawning in one spot.NPC Configuration
string
required
The ped model to use for the contract NPC. Example:
"g_m_y_korean_01"vector4
required
Position and heading where the NPC spawns
string
Scenario animation for the NPC (standing, sitting, etc.). Example:
"WORLD_HUMAN_STAND_IMPATIENT_UPRIGHT"Use this OR Animation, not both.table
Custom animation for the NPC with
Dict and Anim propertiesUse this OR Scenario, not both.You can use either
Scenario (simpler, just a scenario name) or Animation (more control with dict/anim), but not both at the same time.Dialog Configuration
Customize the text that appears when players interact with contract NPCs.Initial Dialog
string
required
The first message shown when approaching the NPC
string
required
Text for the accept button
string
required
Text for the decline button
Accepting Contracts
string
required
Message shown when viewing available contracts
string
required
Text for the accept contracts button
string
required
Text for the decline button
End Conversation
string
required
Final message after accepting contracts
string
required
Text for the goodbye button
Contract Types
There are three types of contracts, each with unique mechanics and configuration options.1. Steal Objects Contracts
Players must steal specific items from houses and return them to the NPC.string
required
Contract title shown in the UI
string
required
Contract description shown in the UI
string
required
Font Awesome icon for the contract. Example:
"fas fa-briefcase"string
required
Prop model that spawns in the house
table
required
Animation configuration with
Dict and Anim properties OR Scenario property (use one or the other)number
required
Seconds before the animation stops
boolean
required
If
true, player turns to face the prop before interactingtable
Optional prop attached to player during animation with
Model, Bone, Offset, and Rotationtable
required
Reward configuration including
Exp, Type (money/item), Item, Amount (min/max), and MetaData2. Break Objects Contracts
Players must break specific objects and take a picture as proof.string
required
Prop model for the intact object
string
required
Prop model that replaces the intact object after breaking
string
required
Sound effect when breaking:
"glass", "electronics", "thud", or false for no soundtable
required
Animation configuration for breaking the object including
Animation (with Dict and Anim) OR Scenario, DelayUntilCancelled, TurnToFaceProp, and optional AnimationProptable
required
Animation configuration for taking the picture including
Animation (with Dict and Anim) OR Scenario, DelayUntilCancelled, TurnToFaceProp, and optional AnimationProp3. Littering Contracts
Players must pick up an object, scatter litter, and take a picture as proof.string
required
Prop model for the initial item to pick up
string
required
Prop model that spawns as scattered litter
string
Sound effect when littering:
"poop", "spill", "trash", or false for no soundtable
required
Animation for picking up the initial object (can use
Animation with Dict/Anim OR Scenario)table
required
Animation for scattering the litter (can use
Animation with Dict/Anim OR Scenario)table
required
Animation for taking the picture proof (can use
Animation with Dict/Anim OR Scenario)Reward Configuration
All contracts share the same reward structure:number
required
Experience points awarded upon completion (if using an XP system)
string
required
Type of reward:
"money" for direct cash or "item" for inventory itemsstring
Item name if
Type = "item". Leave empty if Type = "money"table
required
Reward amount with
min and max values for randomizationboolean
required
If
true, adds metadata to the reward item (used for marked money or item info)Animation Props
Animation props are optional attachments that appear on the player during animations, making interactions more immersive.string
required
Prop model to attach to the player
number
required
Bone ID where the prop attaches. Common bones:
57005- Head18905- Left hand60309- Right hand24817- Weapon slot
vector3
required
Position offset from the bone attachment point
vector3
required
Rotation angles for the prop in degrees
Remove the entire
AnimationProp table if you don’t want a prop to appear during the animation.Adding Contracts to Presets
Contracts are linked to house presets. In your preset configuration, specify which contracts can spawn:Complete Configuration Example
View Complete Contracts Configuration
View Complete Contracts Configuration
Tips for Creating Contracts
Balance Rewards
- Steal Objects: Higher rewards as they require carrying items out
- Break Objects: Medium-high rewards requiring breaking and photo proof
- Littering: Lower rewards as they’re simpler tasks
- Scale rewards based on contract difficulty and time investment
Choose Appropriate Props
- Check the GTA V Props Database for prop names
- Use recognizable models that fit the contract theme
- Ensure broken models clearly show damage
- Consider prop size for littering contracts (smaller = more realistic)
Animation Selection
- Match animations to the action (punching for breaking, bending for picking up)
- Keep
DelayUntilCancelledvalues reasonable (1-4 seconds) - Use scenarios for simple standing animations
- Test animations with different character models
"WORLD_HUMAN_STAND_MOBILE"- Standing with phone"WORLD_HUMAN_BINOCULARS"- Looking through binoculars"WORLD_HUMAN_GUARD_STAND"- Standing guard"WORLD_HUMAN_CLIPBOARD"- Writing on clipboard
["Animation"] = {Dict = "...", Anim = "..."} with ["Scenario"] = "SCENARIO_NAME"
Sound Effects
- Glass: Picture frames, windows, glass items
- Electronics: Phones, laptops, tablets, TVs
- Thud: Heavy objects, furniture
- Trash: Cans, garbage, paper
- Spill: Liquids, drinks
- Poop: Organic materials (use sparingly)
Required Items
- Set
"melee"for break contracts to encourage weapon use - Require a bag for steal contracts to create more immersion
- Use
"x_burner"for pictures to integrate with burner phone system - Set to
falseif you want contracts accessible to everyone
Dialog Text
- Keep initial dialog friendly and inviting
- Make confirmation buttons clear (“Accept” vs “Decline”)
- Provide instructions in the end conversation
- Consider your server’s roleplay style and lore
