Config

The default configuration provided with Possible Gang MDT.

Important

The resource folder on your server must be named exactly possible-gang-mdt.

The default configuration provided with Possible Gang MDT.

Lua
return {    Debug = false,    Framework = "qbx", -- qbx, qb-core, esx    loggingModule = {        enabled   = true,        service   = '', -- 'oxlib' or 'your_webhook_discord'    },    -- Gang cooldown for players leaving/ joining a gang    GangCooldown = {        Enabled = true, -- Whether the cooldown system is enabled        Duration = 24, -- Cooldown duration in hours        Message = "You must wait %d hours before joining another gang" -- Message shown to players    },    CacheInterval = 0, -- How often you want the data to be cached for, there's lots of db calls so ideally this isn't low (in seconds)    Emotes = "scully",    MDTKey = 'F6', -- The keybind for opening the MDT    -- Gang strike configuration    MaxStrikes = 3, -- Maximum number of strikes before severe penalties    -- Territory coordinates for navigation    GangLevelCap = {        Enabled = true, -- When enabled, a gang's level will determine how many territories they can own        BaseAmount = 2, -- Minimum number of territories any gang can own regardless of level        LevelsPerTerritory = 100, -- How many levels needed per territory (level 100 = 1 territory, level 200 = 2 territories)        GangCap = 12 -- Maximum number of territories a gang can own regardless of level    },    TerritoriesV2 = true, -- If you own Possible Territories V2, set this to true (for custom map display)    DefaultMapStyle = 'atlas', -- 'atlas' or 'satellite'    -- Default colors for unowned territories    DefaultTerritoryColors = {        fill = "#000000", -- Default fill color for unowned territories (black)        border = "#bbbbbb" -- Default border color for unowned territories    },    Territories = {        {            name = "Observatory",            coords = vector3(-422.3, 1141.61, 325.85)        },    },    GangLevelsV2 = true, -- Set to true if using Possible Gang Levels V2    ---------------------------------------------------------------    -- Gang Level Ranges Configuration    ----------------------------------------------------------------    -- Define XP requirements for each level    -- Each level requires the CUMULATIVE XP amount specified    -- For example: Level 1 = 0 XP, Level 2 = 100 XP, Level 3 = 250 XP, etc.    LevelRanges = {        [1] = 0,        [2] = 200,        [3] = 800,        [4] = 1800,        [5] = 3200,        [6] = 5000,        [7] = 7200,        [8] = 9800,        [9] = 12800,        [10] = 16200,        -- Add more levels as needed    },    -- These should match your Possible Gang Levels unlocks in the format below    ShopUnlocks = {        { itemLabel = 'Lockpick', itemSpawnName = 'lockpick', unlockLevel = "1" },        { itemLabel = 'Radio', itemSpawnName = 'radio', unlockLevel = "2" },        { itemLabel = 'Bandage', itemSpawnName = 'bandage', unlockLevel = "5" },        { itemLabel = 'Armor', itemSpawnName = 'armour', unlockLevel = "7" },        { itemLabel = 'Walther P99', itemSpawnName = 'weapon_pistol', unlockLevel = "10" },        { itemLabel = 'Bandage', itemSpawnName = 'bandage', unlockLevel = "10" },        { itemLabel = 'Radio', itemSpawnName = 'radio', unlockLevel = "15" },        { itemLabel = 'Lockpick', itemSpawnName = 'lockpick', unlockLevel = "20" },        { itemLabel = 'Armor', itemSpawnName = 'armour', unlockLevel = "25" },    },    -- These should match your Possible Gang Levels stash progression in the format below    StashUnlocks = {        { itemLabel = '+5000 Storage', unlockLevel = "1" },        { itemLabel = '+5000 Storage', unlockLevel = "5" },        { itemLabel = '+5000 Storage', unlockLevel = "10" },        { itemLabel = '+5000 Storage', unlockLevel = "15" },        { itemLabel = '+5000 Storage', unlockLevel = "20" },        { itemLabel = '+5000 Storage', unlockLevel = "25" },        { itemLabel = '+5000 Storage', unlockLevel = "30" },        { itemLabel = '+5000 Storage', unlockLevel = "35" },        { itemLabel = '+5000 Storage', unlockLevel = "40" },    },    SlotUnlocks = {        { itemLabel = '+5000 Storage', unlockLevel = "1" },        { itemLabel = '+5000 Storage', unlockLevel = "5" },        { itemLabel = '+5000 Storage', unlockLevel = "10" },        { itemLabel = '+5000 Storage', unlockLevel = "15" },        { itemLabel = '+5000 Storage', unlockLevel = "20" },        { itemLabel = '+5000 Storage', unlockLevel = "25" },        { itemLabel = '+5000 Storage', unlockLevel = "30" },        { itemLabel = '+5000 Storage', unlockLevel = "35" },        { itemLabel = '+5000 Storage', unlockLevel = "40" },    },    -- These should match your turfs in Possible Turfs    TurfShop = {        {            turfName = 'Kortz Center', -- Must match the name of your turf in Possible Turfs            -- Your turf shop items and their requirements            items = {                {itemLabel = 'Lockpick', itemSpawnName = 'lockpick', turfPointsRequired = "1" },                {itemLabel = 'Lockpick', itemSpawnName = 'lockpick', turfPointsRequired = "5"},                {itemLabel = 'Lockpick', itemSpawnName = 'lockpick', turfPointsRequired = "10"},                {itemLabel = 'Lockpick', itemSpawnName = 'lockpick', turfPointsRequired = "15"},                {itemLabel = 'Lockpick', itemSpawnName = 'lockpick', turfPointsRequired = "20"},            },            -- The location of the turf boss            location = vector3(-2240.5, 258.36, 174.6)        },        {            turfName = 'Power Station',            items = {                {itemLabel = 'Lockpick', itemSpawnName = 'lockpick', turfPointsRequired = "1" },                {itemLabel = 'Lockpick', itemSpawnName = 'lockpick', turfPointsRequired = "5"},                {itemLabel = 'Lockpick', itemSpawnName = 'lockpick', turfPointsRequired = "10"},                {itemLabel = 'Lockpick', itemSpawnName = 'lockpick', turfPointsRequired = "15"},                {itemLabel = 'Lockpick', itemSpawnName = 'lockpick', turfPointsRequired = "20"},            },            location = vector3(2745.51, 1521.99, 24.5),        },    },    GangWar = {        MinimumRank = 3, -- Minimum gang rank required to request/accept wars        WagerAmounts = {1000, 5000, 10000, 25000, 50000}, -- Available wager amounts        KillAmounts = {5, 10, 15, 20, 25}, -- Available kill targets        WarTimeout = 30 -- Time in minutes before a war request expires    },    TerritoryManagement = {        MinimumRank = 2, -- Minimum gang rank required to change peaceful status    },    GangCap = 10, -- The cap of your gang (calcs against positions left in a roster)    MinimumRankManagement = 3, -- Minimum rank to recruit/kick members    -- These must match how you set your grades up in core    Gangs = {        ['none'] = {            label = 'No Gang',            grades = {                [0] = { name = 'Unaffiliated' }            }        },        ['ballas'] = {            label = 'Ballas',            grades = {                [0] = { name = 'Recruit' },                [1] = { name = 'Enforcer' },                [2] = { name = 'Shot Caller' },                [3] = {                    name = 'Boss',                    isboss = true,                    bankAuth = true                }            },        },        ['vagos'] = {            label = 'Vagos',            grades = {                [0] = { name = 'Recruit' },                [1] = { name = 'Enforcer' },                [2] = { name = 'Shot Caller' },                [3] = {                    name = 'Boss',                    isboss = true,                    bankAuth = true                }            },        },    },    -- Default permissions for each grade level    -- These are used when a gang hasn't customized their permissions in the MDT    -- Permissions: open_gang_stash, open_turf_shop, open_territory_stash, manage_members, manage_territories, manage_wars    -- Note: The highest grade (boss) always has all permissions regardless of this config    DefaultGradePermissions = {        [0] = {            open_gang_stash = false,            open_turf_shop = false,            open_territory_stash = false,            manage_members = false,            manage_territories = false,            manage_wars = false        },        [1] = {            open_gang_stash = true,            open_turf_shop = true,            open_territory_stash = false,            manage_members = false,            manage_territories = false,            manage_wars = false        },        [2] = {            open_gang_stash = true,            open_turf_shop = true,            open_territory_stash = true,            manage_members = false,            manage_territories = true,            manage_wars = false        },        -- Add more grade levels as needed for your server        -- [3] = { ... },        -- [4] = { ... },    },    RecruitPlayerDistance = 5.0, -- Distance to recruit players    -- If a gang colour is predefined you should use it, alternatively if you're creating a new gang you should duplicate one of the setups, this is due to color-mix limitations of fivem    -- I'd suggest using/ reusing one of the below themes otherwise generate a colour pallete and use rgb for the shades I have done so in the pre configured ones    GangColors = {        ballas = {            primary = {                [50] = "249, 249, 255",                [100] = "#e1e1ff",                [200] = "#c8c8ff",                [300] = "#b0b0ff",                [400] = "152, 152, 255",                [500] = "128, 128, 255",                [600] = "#6d6dd9",                [700] = "90, 90, 179",                [800] = "#46468c",                [900] = "#333366",                [950] = "32, 32, 64"            }        },        vagos = {            primary = {                [50] = "254, 253, 247",                [100] = "#f9f7da",                [200] = "#f5f0bc",                [300] = "#f1ea9f",                [400] = "236, 227, 129",                [500] = "232, 221, 100",                [600] = "#c5bc55",                [700] = "162, 155, 70",                [800] = "#807a37",                [900] = "#5d5828",                [950] = "58, 55, 25"            }        },        families = {            primary = {                [50] = "243, 252, 247",                [100] = "#c6efda",                [200] = "#98e2bc",                [300] = "#6bd59e",                [400] = "61, 201, 129",                [500] = "16, 188, 99",                [600] = "#0ea054",                [700] = "11, 1323, 69",                [800] = "#096736",                [900] = "#064b28",                [950] = "4, 47, 25"            }        },        triads = {            primary = {                [50] = "253, 245, 246",                [100] = "#f4cdd2",                [200] = "#eca5af",                [300] = "#e37d8c",                [400] = "219, 85, 104",                [500] = "210, 45, 69",                [600] = "#b3263b",                [700] = "147, 31, 48",                [800] = "#741926",                [900] = "#54121c",                [950] = "53, 11, 17"            }        },        marabunta = {            primary = {                [50] = "245, 248, 252",                [100] = "#d0dbf0",                [200] = "#acbfe5",                [300] = "#87a2d9",                [400] = "98, 134, 206",                [500] = "61, 105, 194",                [600] = "#3459a5",                [700] = "43, 74, 136",                [800] = "#223a6b",                [900] = "#182a4e",                [950] = "15, 26, 49"            }        }    },    -- You need to get your weapon hashes and define your weapons here for the turf leaderboards    weaponMappings = {        { hash = '-134954891', name = 'SF-19 Pistol', spawnName = 'WEAPON_X19' },        { hash = '1976190304', name = 'SF-17 Pistol', spawnName = 'WEAPON_X17M' },        { hash = '1593441988', name = 'Combat Pistol', spawnName = 'WEAPON_COMBATPISTOL' },        { hash = '-619010992', name = 'Machine Pistol', spawnName = 'WEAPON_MACHINEPISTOL' },        { hash = '324215364',  name = 'Mini UZI', spawnName = 'WEAPON_MICROSMG' },        { hash = '-1121678507', name = 'Scorpion', spawnName = 'WEAPON_MINISMG' },        { hash = '453432689', name = 'Wather Pistol', spawnName = 'WEAPON_PISTOL' }    }}
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