Config

The default configruation provided with Possible House Robberies.

The default configruation provided with Possible House Robberies.

Lua
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.    },}

Note

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).

JDB-NET Logo
Partner Service

Self-hosted unlimited logs with managed Grafana

JDB-NET provides a self-hosted solution with unlimited logs, a fully managed Grafana instance, and unlimited users. Perfect for FiveM servers that need comprehensive logging and monitoring.

Check out JDB-NET