Config

The default configruation provided with Possible Gang Levels.

The default configruation provided with Possible Gang Levels.

LUA Copy
return {
    Debug = true, -- Set to true to enable debug mode
    Framework = "qb", -- Framework to use (qb or esx)
    InventoryType = "ox_inventory", -- Inventory type to use (qb_inventory or ox_inventory)
    loggingModule = {
        enabled   = true,
        service   = '', -- 'oxlib' or 'your_webhook_discord'
    },
    SkillSystem = {
        enabled = true,
        type = "qb", -- "qb" for QB-Core metadata, "cw-rep" for cw-rep
        skillName = "mining", -- QB-Core metadata skill name or cw-rep skill name
        baseTime = 1.0, -- Base multiplier (1.0 = 100% of duration)
        speedIncreasePerLevel = 0.02, -- Each level reduces duration by 2%
        maxSpeedReduction = 0.5, -- Maximum 50% reduction in mining time
        xpPerLevel = 100, -- XP needed per level (only used for QB)
        maxLevel = 100, -- Maximum skill level (only used for QB)
        notifications = {
            enabled = true,
            levelUp = "Your mining skill has increased to level %d!",
            xpGain = "Mining XP: %d/%d",
        }
    },
    MiningZones = {
        {
            name = "paydirt_zone_1",
            coords = vec3(2960.76, 2791.61, 40.48),
            radius = 50.0, -- Zone radius, we spawn rocks on enter so purposely make this larger to avoid user seeing rocks spawn
            debug = false, -- Set to true to see zone radius
            emote = "drill",
            progressLabel = "Digging for paydirt",
            targetLabel = "Dig for paydirt",
            targetIcon = 'fa-solid fa-person-digging',
            -- Rock Models can be found here https://gtahash.ru/?c=rocks
            rocks = {
                { model = `prop_rock_2_f`, coords = vec3(2975.57, 2785.54, 37.96),  min = 1, max = 3, duration = 5000 }, 
                { model = `prop_rock_1_h`, coords = vec3(2973.3, 2795.32, 39.9),  min = 1, max = 3, duration = 6000 },    
                { model = `prop_rock_2_f`, coords = vec3(2973.57, 2791.29, 39.0), min = 1, max = 3, duration = 4000 },  
                { model = `prop_rock_2_f`, coords = vec3(2969.83, 2794.14, 39.0), min = 1, max = 3, duration = 7500 },   
                { model = `prop_rock_1_e`, coords = vec3(2975.31, 2780.42, 36.69), min = 1, max = 3, duration = 10000 }, 
                { model = `prop_rock_1_e`, coords = vec3(2967.31, 2799.04, 39.17), min = 1, max = 3, duration = 5000 }, 
                { model = `prop_rock_1_e`, coords = vec3(2971.53, 2788.3, 37.75), min = 1, max = 3, duration = 4000 }, 
                { model = `prop_rock_1_e`, coords = vec3(2970.32, 2782.42, 37.03), min = 1, max = 3, duration = 6000 }, 
                { model = `prop_rock_2_f`, coords = vec3(2966.57, 2786.8, 38.15), min = 1, max = 3, duration = 10000 },
                { model = `prop_rock_1_h`, coords = vec3(2965.57, 2793.57, 39.25), min = 1, max = 3, duration = 5000 },
                { model = `prop_rock_1_e`, coords = vec3(2965.41, 2781.15, 37.5), min = 1, max = 3, duration = 7500 },
                { model = `prop_rock_1_h`, coords = vec3(2951.86, 2775.12, 37.29), min = 1, max = 3, duration = 5000 },
                
            },
            rewardItem = "paydirt",       
            rewardItemLabel = "Paydirt",
            blip = {
                Sprite = 632,
                Color = 5,
                Display = 4,
                Scale = 0.8,
                Name = "Paydirt"
            },
            skillXP = {
                min = 1,    -- Only used if SkillSystem is enabled and Framework is "qb"
                max = 3,    
                chance = 100,
            },
            territories = {
                influence = 10,        -- Influence gained per mining action in this zone
                rewardItem = 'cash',   -- Item to add to stash from this zone
                rewardAmount = 30,     -- Amount of item to add to stash from this zone
                rewardChance = 100,    -- Chance (in %) to add items to stash (1-100)
            },
        },
        {
            name = "paydirt_zone_2",
            coords = vec3(4991.75, -4451.33, 3.78),
            radius = 100.0, -- Zone radius, we spawn rocks on enter so purposely make this larger to avoid user seeing rocks spawn
            debug = false, -- Set to true to see zone radius
            emote = "drill",
            progressLabel = "Digging for paydirt",
            targetLabel = "Dig for paydirt",
            targetIcon = 'fa-solid fa-person-digging',
            -- Rock Models can be found here https://gtahash.ru/?c=rocks
            rocks = {
                { model = `prop_rock_4_c`, coords = vec3(4999.13, -4437.58, 3.0), min = 1, max = 3, duration = 5000 },
                { model = `prop_rock_2_c`, coords = vec3(4976.28, -4448.92, 2.41), min = 1, max = 3, duration = 5000 },
                { model = `prop_rock_1_d`, coords =  vec3(4979.32, -4458.65, 5.21), min = 1, max = 3, duration = 5000 },
                { model = `prop_rock_2_f`, coords = vec3(4983.75, -4452.92, 3.0), min = 1, max = 3, duration = 5000 },
                { model = `prop_rock_2_f`, coords = vec3(4985.36, -4446.85, 2.35), min = 1, max = 3, duration = 5000 },
                { model = `prop_rock_1_d`, coords = vec3(4986.77, -4464.2, 4.17), min = 1, max = 3, duration = 5000 },
                { model = `prop_rock_4_c`, coords = vec3(4984.88, -4459.11, 4.25), min = 1, max = 3, duration = 5000 },
                { model = `prop_rock_4_c`, coords = vec3(4987.75, -4459.14, 3.25), min = 1, max = 3, duration = 5000 },
                { model = `prop_rock_4_c`, coords = vec3(4987.1, -4456.3, 3.0), min = 1, max = 3, duration = 5000 },
                { model = `prop_rock_4_c`, coords = vec3(4987.1, -4456.3, 3.0), min = 1, max = 3, duration = 5000 },
                { model = `prop_rock_2_c`, coords = vec3(4993.73, -4465.24, 2.3), min = 1, max = 3, duration = 5000 },
                { model = `prop_rock_2_f`, coords = vec3(4991.5, -4459.78, 3.25), min = 1, max = 3, duration = 5000 },
                { model = `prop_rock_2_f`, coords = vec3(4997.93, -4460.07, 3.0), min = 1, max = 3, duration = 5000 },
                { model = `prop_rock_4_c`, coords = vec3(4991.09, -4455.9, 2.75), min = 1, max = 3, duration = 5000 },
                { model = `prop_rock_4_c`, coords = vec3(4988.35, -4451.15, 2.50), min = 1, max = 3, duration = 5000 },
                { model = `prop_rock_2_c`, coords = vec3(4981.27, -4440.82, 1.19), min = 1, max = 3, duration = 5000 },
                { model = `prop_rock_2_c`, coords = vec3(5003.24, -4456.31, 1.36), min = 1, max = 3, duration = 5000 },
                { model = `prop_rock_2_f`, coords = vec3(4997.64, -4452.44, 2.5), min = 1, max = 3, duration = 5000 },
                { model = `prop_rock_1_e`, coords = vec3(4993.16, -4449.54, 1.69), min = 1, max = 3, duration = 5000 },
                { model = `prop_rock_1_e`, coords = vec3(4987.08, -4441.38, 1.72), min = 1, max = 3, duration = 5000 },
                { model = `prop_rock_1_e`, coords = vec3(4993.01, -4442.88, 1.74), min = 1, max = 3, duration = 5000 },
                { model = `prop_rock_1_e`, coords = vec3(5000.36, -4445.77, 1.83), min = 1, max = 3, duration = 5000 },
                { model = `prop_rock_2_f`, coords = vec3(4993.02, -4436.78, 2.95), min = 1, max = 3, duration = 5000 },
                { model = `prop_rock_2_f`, coords = vec3(5005.63, -4449.62, 2.25), min = 1, max = 3, duration = 5000 },
            },
            rewardItem = "premium_paydirt",
            rewardItemLabel = "Premium Paydirt",
            blip = {
                Sprite = 632,
                Color = 5,
                Display = 4,
                Scale = 0.8,
                Name = "Premium Paydirt"
            },
            skillXP = {
                min = 2,
                max = 4,
                chance = 100,
            },
            territories = {
                influence = 20,        -- Double influence for premium zone
                rewardItem = 'cash',   -- Item to add to stash from this zone
                rewardAmount = 60,     -- Double reward amount for premium zone
                rewardChance = 100,    -- Chance (in %) to add items to stash (1-100)
            },
        },
    },
    SmeltingZones = {
        {
            name = "paydirt_smelting_zone",
            coords = vec3(1105.18, -2004.77, 29.61),
            radius = 10.0,
            debug = false,
            processableItems = {
                {
                    item = "paydirt",
                    label = "Paydirt",
                    progressLabel = "Smelting Paydirt...",
                    timeRange = { min = 10000, max = 15000 },
                    lootTable = "standard"
                },
                {
                    item = "premium_paydirt",
                    label = "Premium Paydirt",
                    progressLabel = "Smelting Premium Paydirt...",
                    timeRange = { min = 10000, max = 15000 },
                    lootTable = "premium"
                }
            },
            textUI = "Press [E] to smelt paydirt",
            blip = {
                Sprite = 436,
                Color = 9,
                Display = 6,
                Scale = 0.8,
                Name = "Paydirt Smelting"
            },
            territories = {
                influence = 15,        -- Influence gained per smelting action in this zone
                rewardItem = 'cash',   -- Item to add to stash from this zone
                rewardAmount = 50,     -- Amount of item to add to stash from this zone
                rewardChance = 100,    -- Chance (in %) to add items to stash (1-100)
            }
        },
        /* Example of a custom smelting zone
        {
            name = "ore_smelting_zone",
            coords = vec3(1120.50, -2000.30, 35.45),
            radius = 8.0,
            debug = false,
            processableItems = {
                {
                    item = "iron_ore",
                    label = "Iron Ore",
                    progressLabel = "Smelting Iron Ore...",
                    timeRange = { min = 8000, max = 12000 },
                    lootTable = "iron_ore_loot"
                },
                {
                    item = "gold_ore",
                    label = "Gold Ore",
                    progressLabel = "Smelting Gold Ore...",
                    timeRange = { min = 15000, max = 20000 },
                    lootTable = "gold_ore_loot"
                }
            },
            textUI = "Press [E] to process ore",
            blip = {
                Sprite = 436,
                Color = 46,
                Display = 6,
                Scale = 0.8,
                Name = "Ore Processing"
            },
            territories = {
                influence = 20,        -- Influence gained per smelting action in this zone
                rewardItem = 'cash',   -- Item to add to stash from this zone
                rewardAmount = 45,     -- Amount of item to add to stash from this zone
                rewardChance = 100,    -- Chance (in %) to add items to stash (1-100)
            }
        }
        */
    },
    RockRespawnTime = 20000, -- Time in milliseconds for rocks to respawn
    Emotes = 'scully', -- Scully emote or anything else to use rpemotes
    -- Define loot tables that can be referenced by smelting zones
    LootTables = {
        standard = {
            {item = "iron", chance = 20, minQty = 1, maxQty = 3},
            {item = "steel", chance = 30, minQty = 1, maxQty = 3},
            {item = "copper", chance = 10, minQty = 1, maxQty = 3},
            {item = "silverflake", chance = 10 , minQty = 1, maxQty = 3},
            {item = "goldflake", chance = 10, minQty = 1, maxQty = 3},
            {item = "emerald", chance = 5 , minQty = 1, maxQty = 3},
            {item = "sapphire", chance = 5, minQty = 1, maxQty = 3},
            {item = "ruby", chance = 5 , minQty = 1, maxQty = 3},
            {item = "diamond", chance = 2 , minQty = 1, maxQty = 3},
            {item = "metalscrap", chance = 8 , minQty = 1, maxQty = 3},
        },
        premium = {
            {item = "iron", chance = 20, minQty = 1, maxQty = 3},
            {item = "steel", chance = 30, minQty = 1, maxQty = 2},
            {item = "copper", chance = 10, minQty = 1, maxQty = 4},
            {item = "silverflake", chance = 10, minQty = 1, maxQty = 1},
            {item = "goldflake", chance = 10, minQty = 1, maxQty = 1},
            {item = "emerald", chance = 5, minQty = 1, maxQty = 1},
            {item = "sapphire", chance = 5, minQty = 1, maxQty = 1},
            {item = "ruby", chance = 5, minQty = 1, maxQty = 1},
            {item = "diamond", chance = 2, minQty = 1, maxQty = 1},
        },
        /* Example of custom loot tables
        iron_ore_loot = {
            {item = "iron_ingot", chance = 100, minQty = 1, maxQty = 2}
        },
        
        gold_ore_loot = {
            {item = "gold_bar", chance = 90, minQty = 1, maxQty = 1},
            {item = "gold_nugget", chance = 10, minQty = 2, maxQty = 5}
        }
        */
    },
    MaxMultipleItems = 3, -- Maximum number of different items to give from a single process
    MultipleItemChance = 5, -- Chance denominator for multiple items (1 in X chance)
    PossibleTerritories = false,  -- Integrates my paid territrory script - https://possible-scripts.tebex.io/package/6045013 set false if no likey
    -- Mning territory settings (used as fallback if no zone-specific settings are defined)
    Mining = {
        TerritoriesInfluence = 10,       -- Default influence gained per mining action
        TerritoriesRewardItem = 'cash',  -- Default item to add to stash
        TerritoriesRewardAmount = 30,    -- Default amount of item to add to stash
        TerritoriesRewardChance = 100,   -- Default chance (in %) to add items to stash (1-100)
    },    
    -- Smelting territory settings (used as fallback if no zone specific settings are defined)
    Smelting = {
        TerritoriesInfluence = 15,       -- Default influence gained per smelting action
        TerritoriesRewardItem = 'cash',  -- Default item to add to stash
        TerritoriesRewardAmount = 50,    -- Default amount of item to add to stash
        TerritoriesRewardChance = 100,   -- Default chance (in %) to add items to stash (1-100)
    },
    PossibleGangLevels = true,  -- Integrates my paid gang level script - https://possible-scripts.tebex.io/package/6036883 set false if no likey
    GangXPReward = 5, -- Only relevant if PossibleGangLevels is true
}