๐ ๏ธ Configuration
Shared Configuration (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)
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)
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)
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)
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_skillTreeSkill 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
entrycoordinates). - 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
itemNamevalues in each house configuration to change available loot. - Adjust difficulty: Modify
Config.TiersChanceandConfig.PropSensorActivationPercentto change risk/reward balance. - Add more locations: Expand
Config.HousesCoordsarrays with new vec4 coordinates. - Customize alarm behavior: Implement your logic in the
TriggerAlarm()function inserver.lua. - Change cooldown: Modify
Config.Cooldownto adjust wait time between robberies. - Integrate with skill tree: Enable
Shared.DevhubSkillTreeEnabledand 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:
Luaresources/ โโโ [devhub]/ โ โโโ devhub_houseRobbery/ โ โโโ devhub_houseRobbery_assets/ -
Start both resources in your
server.cfgin the correct order:Configensure devhub_houseRobbery_assets ensure devhub_houseRobbery
Why is this required?
devhub_houseRobbery_assetscontains 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_assetsis started beforedevhub_houseRobbery. - Check server console for any asset loading errors.
Players can't start robberies:
- Check if
Config.Cooldownhas expired. - Verify
Config.HousesCoordscontains valid coordinates. - Ensure players have the required items/permissions (if implemented).
- โ
Confirm
devhub_houseRobbery_assetsis running.
Alarms not triggering:
- Implement the
TriggerAlarm()function inserver.lua. - Check
Config.PropSensorActivationPercentvalues are greater than 0.
Props not spawning:
- โ
First, ensure
devhub_houseRobbery_assetsis 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.