🛠️Configuration
This document describes all configuration options for the DevHub House Robbery resource.
Shared Configuration (configs/shared.lua
)
configs/shared.lua
)Debug Configuration
Controls debug output for the house robbery system.
Shared.Debug = {
Enabled = false, -- Set to true to enable all debug prints
Levels = {
Info = true, -- General information
Success = true, -- Success operations
Warning = true -- Warning and potential issues
}
}
Enabled: Enables/disables all debug prints.
Levels: Controls specific debug message types.
House Tiers Configuration
Defines different house interior templates with their props and entry points.
Shared.HouseTiers = {
["tier1"] = {
{
props = House1,
entry = vec3(918.5439, -933.0507, -90.4959),
},
-- Additional tier1 house configurations...
},
["tier2"] = {
-- Tier2 house configurations...
},
["tier3"] = {
-- Tier3 house configurations...
}
}
tier1/tier2/tier3: Different house difficulty tiers with varying loot quality and quantity.
props: Reference to the house's lootable prop configuration (House1, House2, etc.).
entry: Vector3 coordinates for the interior entry point.
House Props Configuration
Each house (House1, House2, etc.) contains a list of lootable items:
House1 = {
{
itemName = "dh_hr_tv",
coords = vec3(926.965942, -933.610474, -90.365089),
rotation = vec3(0.010000, 0.010000, -179.990005),
prop = "ex_prop_ex_tv_flat_01"
},
-- More items...
}
itemName: The item given to the player when the prop is collected.
coords: World coordinates of the prop inside the house interior.
rotation: Rotation of the prop (vec3 or vec4 format).
prop: The prop model name.
Client Configuration (configs/client.lua
)
configs/client.lua
)Default Location
Defines where players are teleported if they're in a house area without permission.
Config.DefaultLocation = vec3(215.1511, -805.2712, 30.8125)
DefaultLocation: Coordinates for the default teleport location (usually outside the restricted area).
Server Configuration (configs/server.lua
)
configs/server.lua
)Alarm Triggering Function
Custom function to handle alarm triggering when sensors are activated.
function TriggerAlarm(source, coords)
-- TODO Implement alarm triggering logic
-- Example: Notify police, trigger dispatch, etc.
end
source: The player's server ID who triggered the alarm.
coords: The coordinates where the alarm was triggered.
Usage: Customize this function to integrate with your police/dispatch system.
Tier Chance Configuration
Defines the probability of encountering higher-tier houses.
Config.TiersChance = {
["tier2"] = 50, -- 50% chance for tier2
["tier3"] = 25, -- 25% chance for tier3
}
tier2: Percentage chance for tier2 houses (50%).
tier3: Percentage chance for tier3 houses (25%).
Note: If neither tier2 nor tier3 is selected, tier1 is used by default (25% remaining chance).
House Coordinates
Defines all available house locations for each tier across the map.
Config.HousesCoords = {
["tier1"] = {
vec4(118.40, -1921.16, 21.32, 236.39),
vec4(100.99, -1912.22, 21.41, 333.73),
-- More coordinates...
},
["tier2"] = {
vec4(-565.67, 761.20, 185.42, 229.32),
-- More coordinates...
},
["tier3"] = {
vec4(-189.04, 1008.74, 232.13, 272.66),
-- More coordinates...
},
}
tier1/tier2/tier3: Arrays of vec4 coordinates (x, y, z, heading) for house entrances on the map.
Usage: These coordinates mark where players can start a robbery.
Cooldown System
Controls how long players must wait before starting another robbery.
Config.Cooldown = 30 * 60 -- 30 minutes in seconds
Cooldown: Time in seconds before another robbery can be started (default: 30 minutes).
Sensor Activation System
Defines the probability of triggering a sensor based on the number of items collected.
Config.PropSensorActivationPercent = {
[1] = 5, -- 5% chance on 1st item
[2] = 5, -- 5% chance on 2nd item
[3] = 10, -- 10% chance on 3rd item
[4] = 10, -- 10% chance on 4th item
[5] = 20, -- 20% chance on 5th item
[6] = 20, -- 20% chance on 6th item
[7] = 25, -- 25% chance on 7th item
[8] = 25, -- 25% chance on 8th item
[9] = 30, -- 30% chance on 9th item
[10] = 30, -- 30% chance on 10th item
}
Key: Number of items collected.
Value: Percentage chance to trigger the alarm sensor.
Behavior: For items beyond 10, the chance remains at 30%.
Example: Collecting the 5th item has a 20% chance to trigger the alarm.
Translation Configuration (configs/translation.lua
)
configs/translation.lua
)Customize all user-facing text in the resource.
Shared.Lang = {
["weight_too_heavy"] = "Weight is too heavy for you, you need to unlock the skill first",
["select_weight"] = "SELECT WEIGHT",
["confirm"] = "CONFIRM",
["move"] = "MOVE",
['kg'] = "KG",
["already_exercising"] = "You are already exercising",
["station_busy"] = "Station is busy",
["start_exercise"] = "Start Exercise",
}
Modify these strings to change the language or customize messages.
Add your own language translations by following the same format.
Skill Tree Configuration (configs/skillTree.lua
)
configs/skillTree.lua
)Enable/Disable Skill Tree
To enable the skill tree integration, modify Shared.DevhubSkillTreeEnabled
in configs/shared.lua
:
Shared.DevhubSkillTreeEnabled = true -- Set to false if you don't want to use devhub_skillTree
Skill Category
Defines the skill tree category for the house robbery system.
Shared.SkillsCategory = {
skill = 'gym', -- Category identifier
title = 'Gym', -- Display title
}
Robbery Flow
Player approaches a house entrance from
Config.HousesCoords
.Tier is randomly selected based on
Config.TiersChance
.Player enters the house interior (teleported to
entry
coordinates).Player collects lootable props (items defined in House1, House2, etc.).
Sensor chance increases with each item collected (
Config.PropSensorActivationPercent
).If sensor triggers,
TriggerAlarm()
function is called.Player exits the house
Customization
Add new houses: Create new house prop configurations (e.g.,
House7
) and add entries toShared.HouseTiers
.Modify loot tables: Edit the
itemName
values in each house configuration to change available loot.Adjust difficulty: Modify
Config.TiersChance
andConfig.PropSensorActivationPercent
to change risk/reward balance.Add more locations: Expand
Config.HousesCoords
arrays with new vec4 coordinates.Customize alarm behavior: Implement your logic in the
TriggerAlarm()
function inserver.lua
.Change cooldown: Modify
Config.Cooldown
to adjust wait time between robberies.Integrate with skill tree: Enable
Shared.DevhubSkillTreeEnabled
and configure skills inskillTree.lua
.
Advanced Configuration
Adding a New House Interior
Create a new house configuration in
configs/shared.lua
:
House7 = {
{itemName = "dh_hr_laptop", coords = vec3(x, y, z), rotation = vec3(rx, ry, rz), prop = "prop_laptop_01a"},
{itemName = "dh_hr_gold_cd", coords = vec3(x, y, z), rotation = vec3(rx, ry, rz), prop = "prop_cd_case_01"},
-- Add more props...
}
Add the new house to a tier in
Shared.HouseTiers
:
["tier1"] = {
{
props = House7,
entry = vec3(x, y, z),
},
}
Modifying Sensor Difficulty
To make robberies easier or harder, adjust the sensor activation percentages:
Easier (Lower Alarm Chance):
Config.PropSensorActivationPercent = {
[1] = 2,
[2] = 2,
[3] = 5,
[4] = 5,
[5] = 8,
-- etc.
}
Harder (Higher Alarm Chance):
Config.PropSensorActivationPercent = {
[1] = 15,
[2] = 20,
[3] = 25,
[4] = 30,
[5] = 40,
-- etc.
}
Item Configuration
The resource includes item configuration files for different inventory systems:
items/esx_items.lua
: ESX framework itemsitems/qb_items.lua
: QBCore framework itemsitems/img/
: Item images for inventory systems
Ensure the items defined in itemName
fields match your inventory system's item names.
Required Resources
⚠️ IMPORTANT: Asset Dependency
This resource requires the devhub_houseRobbery_assets
resource to function properly.
Installation Steps:
Ensure both resources are in your resources folder:
resources/ ├── [devhub]/ │ ├── devhub_houseRobbery/ │ └── devhub_houseRobbery_assets/
Start both resources in your
server.cfg
in the correct order:ensure devhub_houseRobbery_assets ensure devhub_houseRobbery
Why is this required?
devhub_houseRobbery_assets
contains all prop models, textures, and interior assets.Without it, props will not spawn and interiors will not load correctly.
Troubleshooting
Resource not starting:
✅ Verify
devhub_houseRobbery_assets
is started beforedevhub_houseRobbery
.Check server console for any asset loading errors.
Players can't start robberies:
Check if
Config.Cooldown
has expired.Verify
Config.HousesCoords
contains valid coordinates.Ensure players have the required items/permissions (if implemented).
✅ Confirm
devhub_houseRobbery_assets
is running.
Alarms not triggering:
Implement the
TriggerAlarm()
function inserver.lua
.Check
Config.PropSensorActivationPercent
values are greater than 0.
Props not spawning:
✅ First, ensure
devhub_houseRobbery_assets
is started!Verify prop model names in house configurations are valid.
Check coordinates are within the interior boundaries.
Enable debug mode to see error messages.
Restart both resources in the correct order.
Last updated