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
}
