Config
The default configruation provided with Possible House Robberies.
The default configruation provided with Possible House Robberies.
return { Debug = true, -- Set to true to enable debug mode Framework = "qb", -- Framework to use (qb or esx) NotifyPosition = "top", loggingModule = { enabled = true, service = 'oxlib', -- 'oxlib' or webhook URL for Discord }, -- Skill System configuration SkillSystem = { enabled = true, type = "qb", -- "qb" for QB-Core metadata, "cw-rep" for cw-rep skillName = "thieving", -- QB-Core metadata skill name or cw-rep skill name maxAreaSize = 80, -- Maximum area size (80% of the circle) areaIncreasePerLevel = 0.5, -- Each level increases area size by 0.5% maxSpeedReduction = 0.5, -- Maximum speed reduction (0.5 = 50% slower) speedIncreasePerLevel = 0.01, -- Each level reduces speed by 1% xpPerLevel = 100, -- XP needed per level (only used for QB) maxLevel = 100, -- Maximum skill level (only used for QB) -- XP reward amounts for different actions xpRewards = { tier1 = { lockpick = {min = 1, max = 2, chance = 100}, loot = {min = 5, max = 8, chance = 90}, safe = {min = 20, max = 25, chance = 100} }, tier2 = { lockpick = {min = 2, max = 4, chance = 75}, loot = {min = 8, max = 12, chance = 90}, safe = {min = 25, max = 35, chance = 100} }, tier3 = { lockpick = {min = 4, max = 8, chance = 50}, loot = {min = 10, max = 15, chance = 90}, safe = {min = 35, max = 50, chance = 100} }, tier4 = { lockpick = {min = 8, max = 16, chance = 25}, loot = {min = 10, max = 15, chance = 90}, safe = {min = 35, max = 50, chance = 100} }, }, -- Skill level requirements for different tiers requirements = { tier1 = 0, -- No requirement for tier 1 tier2 = 5, -- Level 10 required for tier 2 tier3 = 10, -- Level 25 required for tier 3 tier4 = 15, -- Level 40 required for tier 4 }, notifications = { enabled = true, levelUp = "Your thieving skill has increased to level %d!", xpGain = "Thieving XP: +%d", requirementFailed = "You need thieving level %d to rob this house!" } }, -- Time restrictions for robbing houses (24-hour format - in game time) RobberyTime = { enabled = true, start = 18, finish = 5, message = "Houses can only be robbed between 6pm and 5am" }, RequiredItem = { name = "lockpick", removeOnSuccess = false, -- Whether to remove the item after successful use removeOnFail = { enabled = true, -- Whether to remove the item after failed use chance = 80 -- Percentage chance (0-100) to lose the item on failure } }, -- Skill check settings by tier SkillCheck = { tier1 = { difficulty = { areaSize = 50, -- Size of success area in degrees (larger = easier) speedMultiplier = 1, -- Speed multiplier (lower = easier) inputs = {"e"} -- Default input key }, amount = 4 -- Number of skill checks to perform }, tier2 = { difficulty = { areaSize = 40, speedMultiplier = 1.5, inputs = {"e", "w"} }, amount = 5 }, tier3 = { difficulty = { areaSize = 30, speedMultiplier = 2, inputs = {"e", "w", "q", "r"} }, amount = 6 }, tier4 = { difficulty = { areaSize = 25, speedMultiplier = 2, inputs = {"e", "w", "q", "r"} }, amount = 7 }, safe = { -- Safe cracking skill check settings for ox_lib minigame option tier1 = { difficulty = { areaSize = 45, speedMultiplier = 1.2, inputs = {"e", "q"} }, amount = 3 }, tier2 = { difficulty = { areaSize = 35, speedMultiplier = 1.7, inputs = {"e", "q", "r"} }, amount = 4 }, tier3 = { difficulty = { areaSize = 25, speedMultiplier = 2.2, inputs = {"e", "q", "r", "space", "f"} }, amount = 5 }, tier4 = { difficulty = { areaSize = 25, speedMultiplier = 2.2, inputs = {"e", "q", "r", "space", "f"} }, amount = 5 }, } }, -- Cooldown the house goes onto after being robbed (this is synced between all players) Cooldown = 30, Dispatch = { enabled = true, type = "ps-dispatch", -- ps-dispatch, cd_dispatch, core-dispatch, etc. alertChance = { lockpickSuccess = 40, -- Chance to alert police when successfully lockpicking (%) lockpickFail = 75, -- Chance to alert police when failing lockpick (%) timeExpired = 100, -- Chance to alert police when time expires (%) residentSpotted = 95 -- Chance to alert police when resident spots player (%) }, -- Custom functions for different dispatch systems systems = { ["ps-dispatch"] = { type = "client", -- Runs on client callback = function(coords, houseLabel) exports["ps-dispatch"]:HouseRobbery(coords) end }, ["cd_dispatch"] = { type = "server", -- Runs on server callback = function(coords, houseLabel) local data = {displayCode = '10-90', description = 'House Robbery', isImportant = 1, recipientList = {'police'}, length = '10000', infoM = 'fa-info-circle', info = 'House Alarm at ' .. houseLabel} local dispatchData = {dispatchData = data, caller = 'Alarm', coords = coords} TriggerServerEvent('cd_dispatch:AddNotification', dispatchData) end }, ["core-dispatch"] = { type = "server", callback = function(coords, houseLabel) local data = {displayCode = '10-90', description = 'House Robbery', isImportant = 1, recipientList = {'police'}, length = '10000', infoM = 'fa-info-circle', info = 'House Alarm at ' .. houseLabel} local dispatchData = {dispatchData = data, caller = 'Alarm', coords = coords} TriggerServerEvent('dispatch:server:notify', dispatchData) end } } }, MinimumPolice = 0, -- Number of police required for robbing -- House Tier Definitions - Increment the tiers, making them more difficult - but more rewarding. Add as many tiers as you want, make sure to update tiers elsewhere in the config. HouseTiers = { [1] = { time = 5, -- Time in minutes the player can stay inside -- Shell configuration (optional) shell = { enabled = true, -- Set to true to use a shell instead of fixed interior model = "shell_trailer", -- The shell model to spawn coords = vector3(4000.0, 4000.0, 10.0), -- Where to spawn the shell offset = vector3(0.0, 0.0, 0.0) -- Offset from shell coords for player spawn }, interior = vector3(3998.55, 3998.05, 11.11), -- Interior coordinates (routing bucket) -- Territory integration territories = { enabled = true, influence = 2, -- Amount of influence to give gang stashItems = { {name = "cash", min = 100, max = 500, chance = 90}, {name = "weed_white-widow", min = 1, max = 2, chance = 20}, {name = "weapon_knife", min = 1, max = 1, chance = 10} }, gangXP = 20 -- Amount of XP to reward the gang }, -- Default resident configuration for this tier resident = { enabled = false, spawnChance = 10, -- Percent chance to spawn a resident detectionRadius = 5.0, -- How close player needs to be for resident to detect them locations = { { coords = vector3(262.62, -1004.19, -98.26), heading = 90.0 }, { coords = vector3(261.06, -996.49, -98.57), heading = 180.0 }, { coords = vector3(256.61, -996.28, -99.01), heading = 270.0 } }, models = { "cs_bankman", "a_f_y_vinewood_04", "a_m_y_vinewood_04", "cs_tomepsilon" }, weapons = { "WEAPON_BAT", "WEAPON_KNIFE", "WEAPON_PISTOL" }, loot = { {name = "cash", min = 100, max = 500, chance = 90}, {name = "rolex", min = 1, max = 1, chance = 20}, {name = "phone", min = 1, max = 1, chance = 10} } }, -- Safe configuration for this tier safe = { enabled = true, prop = "prop_ld_int_safe_01", -- Safe prop to spawn minigame = "pd-safe", -- Minigame to use (pd-safe, ox_lib skill check, etc.) difficulty = {numbers = 1}, -- 1 number for tier 1 (easiest) spawnChance = 5, spawnLocations = { { coords = vector3(3997.02, 4001.73, 11.18), -- Shower area heading = 90.0 } }, loot = { {name = "goldbar", min = 1, max = 1, chance = 20}, {name = "cash", min = 100, max = 1000, chance = 90}, {name = "rolex", min = 1, max = 2, chance = 40} } }, -- Loot spots for this tier interior lootSpots = { { coords = vector3(4001.88, 3998.77, 11.12), type = "kitchen", label = "Kitchen Cabinet", loot = { {name = "cash", min = 10, max = 100, chance = 50}, {name = "beer", min = 1, max = 3, chance = 70}, {name = "bread", min = 1, max = 2, chance = 60}, {name = "water", min = 1, max = 2, chance = 65} } }, { coords = vector3(3995.49, 3998.75, 11.11), type = "bedroom", label = "Bedroom Drawers", loot = { {name = "cash", min = 100, max = 300, chance = 70}, {name = "watch", min = 1, max = 1, chance = 30}, {name = "chain", min = 1, max = 1, chance = 20}, {name = "phone", min = 1, max = 1, chance = 40} } } } }, [2] = { time = 6, -- Time in minutes the player can stay inside shell = { enabled = false, -- Set to true to use a shell instead of fixed interior model = "shell_jester", -- The shell model to spawn coords = vector3(4000.0, 4000.0, 10.0), -- Where to spawn the shell offset = vector3(0.0, 0.0, 0.0) -- Offset from shell coords for player spawn }, interior = vector3(266.11, -1007.61, -101.01), -- Interior coordinates (routing bucket) -- Territory integration territories = { enabled = true, influence = 3, -- Amount of influence to give gang stashItems = { {name = "cash", min = 500, max = 3000, chance = 90}, {name = "rolex", min = 1, max = 3, chance = 50}, {name = "diamond", min = 1, max = 2, chance = 20} }, gangXP = 30 -- Amount of XP to reward the gang }, -- Spawn resident in the house resident = { enabled = true, spawnChance = 10, -- Percent chance to spawn a resident detectionRadius = 5.0, -- How close player needs to be for resident to detect them locations = { { coords = vector3(262.62, -1004.19, -98.26), heading = 90.0 }, { coords = vector3(261.06, -996.49, -98.57), heading = 180.0 }, { coords = vector3(256.61, -996.28, -99.01), heading = 270.0 } }, models = { "cs_bankman", "a_f_y_vinewood_04", "a_m_y_vinewood_04", "cs_tomepsilon" }, weapons = { "WEAPON_BAT", "WEAPON_KNIFE", "WEAPON_PISTOL" }, loot = { {name = "cash", min = 100, max = 500, chance = 90}, {name = "rolex", min = 1, max = 1, chance = 20}, {name = "phone", min = 1, max = 1, chance = 10} } }, safe = { enabled = true, prop = "prop_ld_int_safe_01", -- Safe prop to spawn minigame = "pd-safe", -- Minigame to use (pd-safe, ox_lib skill check, etc.) difficulty = {numbers = 2}, -- 2 numbers for tier 2 (medium) spawnChance = 10, spawnLocations = { { coords = vector3(259.33, -1003.64, -99.01), heading = 90 } }, loot = { {name = "goldbar", min = 1, max = 2, chance = 30}, {name = "cash", min = 500, max = 3000, chance = 90}, {name = "rolex", min = 1, max = 3, chance = 50}, {name = "diamond", min = 1, max = 2, chance = 20} } }, lootSpots = { { coords = vector3(263.67, -995.45, -99.01), type = "kitchen", label = "Kitchen Cabinet", loot = { {name = "cash", min = 100, max = 300, chance = 65}, {name = "beer", min = 1, max = 4, chance = 70}, {name = "wine", min = 1, max = 2, chance = 60}, {name = "water", min = 1, max = 2, chance = 50} } }, { coords = vector3(261.96, -995.44, -99.01), type = "livingroom", label = "Living Room Cabinet", loot = { {name = "cash", min = 200, max = 500, chance = 70}, {name = "phone", min = 1, max = 2, chance = 50}, {name = "tablet", min = 1, max = 1, chance = 30}, {name = "goldchain", min = 1, max = 1, chance = 40} } }, { coords = vector3(258.54, -997.24, -99.01), type = "livingroom", label = "Living Room Table", loot = { {name = "cash", min = 300, max = 600, chance = 75}, {name = "watch", min = 1, max = 2, chance = 40}, {name = "rolex", min = 1, max = 1, chance = 20}, {name = "goldchain", min = 1, max = 2, chance = 35} } }, { coords = vector3(261.33, -1002.51, -99.01), type = "bedroom", label = "Nightstand", loot = { {name = "cash", min = 200, max = 400, chance = 65}, {name = "phone", min = 1, max = 1, chance = 40}, {name = "pistol_ammo", min = 1, max = 2, chance = 15}, {name = "jewelry", min = 1, max = 1, chance = 30} } } } }, [3] = { time = 7, interior = vector3(4001.5, 3989.72, 11.06), -- Interior coordinates (routing bucket) shell = { enabled = true, -- Set to true to use a shell instead of fixed interior model = "furnitured_midapart", -- The shell model to spawn coords = vector3(4000.0, 4000.0, 10.0), -- Where to spawn the shell offset = vector3(0.0, 0.0, 0.0) -- Offset from shell coords for player spawn }, -- Territory integration territories = { enabled = true, influence = 4, -- Amount of influence to give gang stashItems = { {name = "cash", min = 2000, max = 10000, chance = 90}, {name = "rolex", min = 2, max = 4, chance = 70}, {name = "laptop", min = 1, max = 1, chance = 50} }, gangXP = 40 -- Amount of XP to reward the gang }, resident = { enabled = true, spawnChance = 25, -- Percent chance to spawn a resident detectionRadius = 5.0, -- How close player needs to be for resident to detect them locations = { { coords = vector3(4005.1, 4007.95, 11.06), heading = 256.04 } }, models = { "cs_bankman", "a_f_y_vinewood_04", "a_m_y_vinewood_04", "cs_tomepsilon" }, weapons = { "WEAPON_BAT", "WEAPON_KNIFE", "WEAPON_PISTOL" }, loot = { {name = "cash", min = 100, max = 500, chance = 90}, {name = "rolex", min = 1, max = 1, chance = 20}, {name = "phone", min = 1, max = 1, chance = 10} } }, safe = { enabled = true, prop = "prop_ld_int_safe_01", -- Safe prop to spawn minigame = "pd-safe", -- Minigame to use (pd-safe, ox_lib skill check, etc.) difficulty = {numbers = 3}, -- 3 numbers for tier 3 (hardest) spawnChance = 80, spawnLocations = { { coords = vector3(4004.29, 4010.12, 11.06), heading = 0.0 }, }, loot = { {name = "goldbar", min = 1, max = 3, chance = 60}, {name = "diamond", min = 1, max = 3, chance = 40}, {name = "cash", min = 2000, max = 10000, chance = 90}, {name = "rolex", min = 2, max = 4, chance = 70}, {name = "laptop", min = 1, max = 1, chance = 50} } }, lootSpots = { { coords = vector3(4004.19, 3994.97, 11.06), type = "hallway", label = "Hallway Cabinet", loot = { {name = "cash", min = 200, max = 500, chance = 70}, {name = "wine", min = 1, max = 2, chance = 80}, {name = "whiskey", min = 1, max = 2, chance = 75}, {name = "water", min = 1, max = 3, chance = 60} } }, { coords = vector3(4001.03, 4000.98, 11.06), type = "stand", label = "Letter Area", loot = { {name = "cash", min = 500, max = 1000, chance = 75}, {name = "goldchain", min = 1, max = 2, chance = 60}, {name = "tablet", min = 1, max = 1, chance = 50}, {name = "diamond", min = 1, max = 1, chance = 15} } }, { coords = vector3(3999.01, 4000.53, 11.06), type = "kitchen", label = "Kitchen Cabinet", loot = { {name = "cash", min = 600, max = 1200, chance = 80}, {name = "rolex", min = 1, max = 2, chance = 40}, {name = "goldchain", min = 1, max = 3, chance = 50}, {name = "diamond", min = 1, max = 1, chance = 20} } }, { coords = vector3(4006.34, 4003.73, 11.06), type = "bedroom", label = "Nightstand", loot = { {name = "cash", min = 300, max = 800, chance = 70}, {name = "pistol_ammo", min = 2, max = 5, chance = 30}, {name = "rolex", min = 1, max = 1, chance = 40}, {name = "weed_white-widow", min = 1, max = 2, chance = 30} } }, { coords = vector3(3993.0, 4006.0, 11.06), type = "livingroom", label = "TV Stand", loot = { {name = "cash", min = 800, max = 1500, chance = 80}, {name = "laptop", min = 1, max = 1, chance = 40}, {name = "pistol_ammo", min = 2, max = 5, chance = 40}, {name = "weapon_pistol", min = 1, max = 1, chance = 10} } } } }, [4] = { time = 7, interior = vector3(-174.33, 497.82, 137.65), -- Interior coords for this tier shell = { enabled = false, -- Set to true to use a shell instead of fixed interior model = "", -- The shell model to spawn coords = vector3(4000.0, 4000.0, 10.0), -- Where to spawn the shell offset = vector3(0.0, 0.0, 0.0) -- Offset from shell coords for player spawn }, -- Possible territories integration only enable if you own https://possible-scripts.tebex.io/package/6045013 territories = { enabled = true, influence = 4, -- Amount of influence to give gang stashItems = { {name = "cash", min = 2000, max = 10000, chance = 90}, {name = "rolex", min = 2, max = 4, chance = 70}, {name = "laptop", min = 1, max = 1, chance = 50} }, gangXP = 40 -- Amount of XP to reward the gang }, resident = { enabled = true, spawnChance = 50, -- Percent chance to spawn a resident detectionRadius = 5.0, -- How close player needs to be for resident to detect them locations = { { coords = vector3(-166.27, 485.58, 133.84), heading = 97.79 } }, models = { "cs_bankman", "a_f_y_vinewood_04", "a_m_y_vinewood_04", "cs_tomepsilon" }, weapons = { "WEAPON_BAT", "WEAPON_KNIFE", "WEAPON_PISTOL" }, loot = { {name = "cash", min = 100, max = 500, chance = 90}, {name = "rolex", min = 1, max = 1, chance = 20}, {name = "phone", min = 1, max = 1, chance = 10} } }, safe = { enabled = true, prop = "prop_ld_int_safe_01", -- Safe prop to spawn minigame = "pd-safe", -- Minigame to use (pd-safe, ox_lib skill check, etc.) difficulty = {numbers = 3}, -- 3 numbers for tier 3 (hardest) spawnChance = 75, spawnLocations = { { coords = vector3(-173.12, 489.36, 130.04), heading = 0.0 }, }, loot = { {name = "goldbar", min = 1, max = 3, chance = 60}, {name = "diamond", min = 1, max = 3, chance = 40}, {name = "cash", min = 2000, max = 10000, chance = 90}, {name = "rolex", min = 2, max = 4, chance = 70}, {name = "laptop", min = 1, max = 1, chance = 50} } }, lootSpots = { { coords = vector3(-165.92, 496.97, 137.65), type = "kitchen", label = "Kitchen Area", loot = { {name = "cash", min = 200, max = 500, chance = 70}, {name = "wine", min = 1, max = 2, chance = 80}, {name = "whiskey", min = 1, max = 2, chance = 75}, {name = "water", min = 1, max = 3, chance = 60} } }, { coords = vector3(-166.72, 482.85, 137.27), type = "livingroom", label = "Living Room Table", loot = { {name = "cash", min = 500, max = 1000, chance = 75}, {name = "goldchain", min = 1, max = 2, chance = 60}, {name = "tablet", min = 1, max = 1, chance = 50}, {name = "diamond", min = 1, max = 1, chance = 15} } }, { coords = vector3(-162.7, 483.0, 137.24), type = "livingroom", label = "TV Stand", loot = { {name = "cash", min = 600, max = 1200, chance = 80}, {name = "rolex", min = 1, max = 2, chance = 40}, {name = "goldchain", min = 1, max = 3, chance = 50}, {name = "diamond", min = 1, max = 1, chance = 20} } }, { coords = vector3(-170.48, 481.89, 133.84), type = "bedroom", label = "Bedroom Cabines", loot = { {name = "cash", min = 300, max = 800, chance = 70}, {name = "pistol_ammo", min = 2, max = 5, chance = 30}, {name = "rolex", min = 1, max = 1, chance = 40}, {name = "weed_white-widow", min = 1, max = 2, chance = 30} } }, { coords = vector3(-173.28, 500.34, 130.04), type = "cellar", label = "Bookshelf", loot = { {name = "cash", min = 800, max = 1500, chance = 80}, {name = "laptop", min = 1, max = 1, chance = 40}, {name = "pistol_ammo", min = 2, max = 5, chance = 40}, {name = "weapon_pistol", min = 1, max = 1, chance = 10} } }, { coords = vector3(-175.69, 493.22, 130.04), type = "office", label = "Office Armoury", loot = { {name = "weapon_knife", min = 1000, max = 3000, chance = 90}, {name = "weapon_pistol", min = 1, max = 1, chance = 15} } }, { coords = vector3(-169.59, 490.99, 130.04), type = "cellar", label = "Office Desk", loot = { {name = "cash", min = 800, max = 1500, chance = 80}, {name = "laptop", min = 1, max = 1, chance = 40}, {name = "pistol_ammo", min = 2, max = 5, chance = 40}, {name = "weapon_pistol", min = 1, max = 1, chance = 10} } }, } } }, -- Don't touch this Houses = {}, -- Define house locations by tier here, the coords are for the front door (or lockpick area) HouseLocations = { -- Note: The full HouseLocations configuration is extensive with hundreds of locations -- This is a placeholder showing the structure. The full config would include all tiers -- with their respective house coordinates as provided in your original config. },}The full HouseLocations configuration contains hundreds of house coordinates organized by tier. Due to the extensive size, only the structure is shown above. You'll need to add all the house locations from your original configuration file to the HouseLocations table, organized by tier (1, 2, 3, 4).
