πŸ“œCONFIG

You can check out default QBCore ad ESX config.

Config = {
    ------------------------
    -- FRAMEWORK SETTINGS --
    ------------------------
    -- Framework use
    -- you can choose between :
    -- 'qb-core'
    -- 'esx'
    Framework = 'qb-core',

    -- Framework resource name is the name of the resource folder
    -- by default it's :
    -- 'qb-core' for qb-core framework
    -- 'es_extended' for esx framework
    FrameworkResource = 'qb-core',

    ------------------------
    ------- ESX ONLY -------
    ------------------------
    -- Framework version (ESX ONLY)
    -- if you use lower than 1.8 
    -- OR use ESX with getSharedObject event, set it to false
    NewFrameworkVersion = true,

    -- Framework event (ESX ONLY)
    -- to retrieve esx framework (on old version)
    SharedObject = 'esx:getSharedObject',

    ------------------------
    -- INVENTORY SETTINGS --
    ------------------------    
    -- You can choose between :
    -- 'qb-inventory' (If you use lj-inventory / ps-inventory or any fork of qb-inventory set qb-inventory)
    -- 'core_inventory' : https://www.c8re.store/
    -- 'ox_inventory' : https://github.com/overextended/ox_inventory
    -- 'qs-inventory' (version higher or equal to 2.2.8) : https://buy.quasar-store.com/
    UseInventory = 'qb-inventory',

    ------------------------
    -- QB-INVENTORY ONLY ---
    ------------------------
    -- Here you can set the resource folder name (if you use lj-inventory / ps-inventory or any other qb-inventory fork inventory)
    QBInventoryResourceName = 'qb-inventory',

    ------------------------
    ---- BASIC SETTINGS ----
    ------------------------
    -- UI
    OpenKey = 'F9', -- Key for opening the menu

    TransfertOwnershipWhenOwnerLeave = true, -- Transfert the ownership of the organization to the most "stats" player from the org (all the stats added up)
    RemoveOrganizationWhenEveryMembersLeaveIt = true, -- Will remove the organization from database and set neutral all the zone when all the members of an organization lease it 

    -----------------------------------
    ----- ZONE PROTECTION LEVELS ------
    -----------------------------------
    DefaultProtectionValue = 3, -- Default protection value for default zones (zones that are not in database)
    ProtectionValuePrice = 100, -- This price will be multiplied by protection value to get the price for protection level
    MaxProtectionLevel = 5, -- Maximum protection level that can be set on zone

    ------------------------
    ---- NPCS SETTINGS -----
    ------------------------
    DefaultNPCValue = 0, -- Default number of npcs that will spawn to protect the zone (Performance Heavy if set to high)
    NPCValuePrice = 100, -- Default price for one more npc that will spawn to protect the zone
    MaxNPCValue = 5, -- Maximum number of npcs that can be spawned to protect the zone
    NPCSpawnWithWeaponInHand = true, -- Weapon of the npc is display in his hand when he wnader in area
    NPCAttackOnlyWhenWarOnNPCZone = true, -- Npc only attack if a war is start in the zone, else, won't attack anymore (even if you are another organization / player without organization)
    NPCAttackOtherDefaultGroup = false, -- Allow NPC to attack other NPC group like VAGOS / LOST / F4L / COP
    NPCRevertAfterCapture = true, -- Will revert npc value to default after zone is captured, existing npc will stop attacking and will be release / surrender
    NPCStopAttackingOnWarEnd = true, -- NPC will stop attacking on war end (even if enemy take or don't take the zone)
    NPCModels = {"g_m_m_chicold_01", "csb_brucie2", "g_m_y_korean_02", "csb_vincent"}, -- Setup the npc model name (Can be retrieve here : https://docs.fivem.net/docs/game-references/ped-models/)
    NPCWeapons = {"weapon_pistol", "weapon_microsmg", "weapon_pumpshotgun"}, -- Weapon that can be add to Npc spawn to defend the zone.

    -------------------------
    ---- BOUNTY SETTINGS ----
    -------------------------
    IsBountyCK = false, -- !!WARNING!! Do completed bounties count as Character Kill (automatically deletes character, check functions_override.lua to implement inventory and others information removal)
    IsBountyStatWipe = true, -- !!WARNING!! Completed bounties will wipe criminals role stats (will revert to base role ex. Pickpocket)
    MinimalBounty = 200, -- Minimal bounty that can be set on player

    -- ZONE WAR SETTINGS
    BaseZoneWarTime = 10, -- Time in minutes after which zone will be captured

    MinimumOnline = 2, -- Amount of players that need to be online to start zone war for an owned zone by another organization

    OwnedZoneAdvantage = 1000, -- Amount of points your organization gets if you own the zone when the war start to your territory
    WarScoreIncrease = 5, -- Amount of points added every second from each player to your organizations score in battle

    OrganizationCooldown = 5, -- Time in minutes after which player can start another zone war
    ZoneCooldown = 10, -- Time in minutes after which all players can start another war in the same zone

    CurrencyAward = 200, -- Amount of special currency awarded to each criminal in winning organization

    -- ORGANIZATIONS
    CanCreateOrganizations = true, -- Can players create organizations
    OrganizationCreationPrice = 500, -- Price for creating organization

    -- SPECIAL CURRENCY (Inventory Item)
    -- Dont forget to add this item to your inventory items.lua in qb-core
    CurrencyName = 'bitcoin', -- Name of special currency

    -- MULTIPLIER ZONE DRAW SHAPE
    -- The shape will be drawn around the important zones
    CubeShape = false, -- Cube shape
    CircleShape = false, -- Circle shape
    DiamondShape = true, -- Diamond shape

    -- ZONES
    -- !!!IMPORTANT!!!! FIND ZONE BY TYPING /CURRENTZONE
    -- You can create any zone you want.
    -- Go in game, find the place where yo uwant to set the zone
    -- Type /currentzone and open you F8 console, the number display is the zone number
    -- Then add the title, image, storage and all other parameters like in hte example provide with the script bellow
    -- Value zones are special areas that can be captured by organizations
    -- These zones provide value for organization in various ways
    -- ValueTypes: processing, sales, storage, generation, moneywash
    Zones = {
        -- key return by the command /currentzone 
        -- /!\ Make sure every time you change the coords you check the zone with /currentzone command and update the table key if needed to change the location on the map too /!\
        -- If you only change the coords without the zone number you can probably have a zone and coords that doesn't match on the map
        [6442] = {
            Title = 'WEED HARVEST',
            Picture = 'https://i.imgur.com/5ZQJ6Xs.png',
            Type = 'generation', --  processing, sales, storage, generation, moneywash
            Storages = {
                ['generation-storage01'] = {
                    InventoryType = 'stash',
                    Coords = vector3(713.53668212891, -964.27502441406, 29.395343780518),
                    Prop = 'prop_tool_box_05',
                    Rotation = 10.0,
                    slot = 50, -- qb-inventory integration
                    maxWeight = 2500000 -- qb-inventory integration
                }
            },
            NPCs = {
                ['u_m_m_aldinapoli'] = {
                    Coords = vector3(715.89758300781, -962.39373779297, 29.395343780518),
                    Rotation = 50.0,
                    animDict = nil,
                    animName = nil
                }
            },

            -- GENERATION TYPE SETTINGS
            GenerationItem = 'weed', -- Item that will be generated
            Time = 60000, -- Time in miliseconds after which item will be generated
            GenerationAmount = 1 -- Amount of items that will be generated
        },

        -- key return by the command /currentzone 
        -- /!\ Make sure every time you change the coords you check the zone with /currentzone command and update the table key if needed to change the location on the map too /!\
        [6028] = {

            Title = 'COCAINE PROCESSING',
            Picture = 'https://i.imgur.com/5ZQJ6Xs.png',
            Type = 'processing', --  processing, sales, storage, generation, moneywash

            Storages = {
                ['processing-storage01'] = {
                    InventoryType = 'stash',
                    Coords = vector3(-1329.8134765625, -406.20141601563, 42.299514770508),
                    Prop = 'prop_tool_box_05',
                    Rotation = 0,
                    slot = 50, -- qb-inventory integration
                    maxWeight = 2500000 -- qb-inventory integration
                }
            },

            NPCs = {
                ['u_m_m_aldinapoli'] = {
                    Coords = vector3(-1327.7449951172, -405.06851196289, 42.299514770508),
                    Rotation = 50.0,
                    animDict = nil,
                    animName = nil
                }
            },

            -- PROCESSING TYPE SETTINGS
            ProcessingFrom = 'poppyplant', -- Item that will be processed from
            ProcessingTo = 'cocaine', -- Item that will be processed to
            Time = 60000, -- Time in miliseconds after which item will be processed
            ProcessingFromAmount = 1, -- Amount of items that will be processed
            ProcessingToAmount = 2 -- Amount of items that will be processed

        },

        -- key return by the command /currentzone
        -- /!\ Make sure every time you change the coords you check the zone with /currentzone command and update the table key if needed to change the location on the map too /!\
        [5810] = {

            Title = 'COCAINE SALES',
            Picture = 'https://i.imgur.com/5ZQJ6Xs.png',
            Type = 'sales', --  processing, sales, storage, generation, moneywash

            Storages = {
                ['sales-storage01'] = {
                    InventoryType = 'stash',
                    Coords = vector3(973.36932373047, -123.14975738525, 73.289237976074),
                    Prop = 'prop_tool_box_05',
                    Rotation = 0,
                    slot = 50, -- qb-inventory integration
                    maxWeight = 2500000 -- qb-inventory integration
                }
            },

            NPCs = {
                ['u_m_m_aldinapoli'] = {
                    Coords = vector3(975.84338378906, -124.64277648926, 73.186317443848),
                    Rotation = 50.0,
                    animDict = nil,
                    animName = nil
                }
            },

            -- SALES TYPE SETTINGS
            -- Reward will be the CurrencyName set in the config file
            SaleItem = 'cocaine', -- Item that will be sold
            Time = 60000, -- Time in miliseconds after which item will be sold
            SaleAmount = 1, -- Amount of items that will be sold
            SaleFullPrice = 10 -- Price for the amount written above
        }

    },

    HouseZoneCapture = false, -- By enabling this you will be able to capture houses
    HouseZones = {
        -- key return by the command /currentzone 
        [7067] = {
            Title = 'GANG HOUSE',
            Picture = 'https://i.imgur.com/5ZQJ6Xs.png',
            Type = 'house',
            Storages = {
                ['house-storage01'] = {
                    InventoryType = 'stash',
                    Coords = vector3(121.41872406006, -1926.7189941406, 20.001792907715),
                    Prop = 'prop_tool_box_05',
                    Rotation = 0,
                    slot = 50, -- qb-inventory integration
                    maxWeight = 2500000 -- qb-inventory integration
                }
            }
        }

    },

    -- Continentals are special zones that are not capturable but they serve as a safezone for all criminals
    -- Killing on continental grounds (killer OR victim in the continental zone) will grant you status of excomunicado and you will get a bounty (Can be disable with KillInContinentalZoneSetBounty set to false)
    -- Also they are used for shopping with special currency
    KillInContinentalZoneSetBounty = true, -- Set a bounty on the player direclty if he killed someone in the Continental zone
    BountyPriceSetOnContinentalKill = 200, -- The bounty amount set to the player if the player killed in continental zone or tha amount add to an existing bounty set to this player
    Continentals = {

        -- key return by the command /currentzone
        -- /!\ Make sure every time you change the coords you check the zone with /currentzone command and update the table key if needed to change the location on the map too /!\
        [7945] = {
            Title = 'CONTINENTAL AREA',
            Picture = 'https://static.wikia.nocookie.net/john-wick8561/images/f/f1/Nyc.png/revision/latest?cb=20230513173806',
            Type = 'continental',

            ShopNPCs = {
                ['u_m_m_aldinapoli'] = {
                    Coords = vector3(1196.9603, -3253.4490, 7.0952 - 0.98),
                    Rotation = 88.4567,
                    animDict = nil,
                    animName = nil
                }
            },

            Shop = {
                ['items'] = {
                    ['lockpick'] = 10,
                    ['armor'] = 50,
                    ['bandage'] = 5,
                    ['medikit'] = 20,
                },
                ['weapons'] = {
                    ['weapon_smg'] = 200,
                    ['weapon_assaultrifle'] = 500,
                    ['weapon_knife'] = 20,
                    ['weapon_pistol'] = 100,
                }
            }
        }
    },

    -- Criminal titles asigned for achieved criminals
    -- Higher number titles are more exclusive
    CriminalTitles = {

        [1] = {
            Title = 'Pickpocket',
            Color = '#6e6e6e',
            Background = '#454545',

            -- REQUIRED
            Require = {
                ['kills'] = 0,
                ['headshots'] = 0,
                ['captured'] = 0,
                ['bounties'] = 0
            }
        },
        [2] = {
            Title = 'Bandit',
            Color = '#87b5ff',
            Background = '#214173',

            -- REQUIRED
            Require = {
                ['kills'] = 20,
                ['headshots'] = 2,
                ['captured'] = 0,
                ['bounties'] = 0
            }
        },
        [3] = {
            Title = 'The Don',
            Color = '#bf49eb',
            Background = '#711c91',

            -- REQUIRED
            Require = {
                ['kills'] = 50,
                ['headshots'] = 10,
                ['captured'] = 10,
                ['bounties'] = 10
            }
        },
        [4] = {
            Title = 'Baba Yaga',
            Color = '#db212a',
            Background = '#591215',

            -- REQUIRED
            Require = {
                ['kills'] = 100,
                ['headshots'] = 20,
                ['captured'] = 20,
                ['bounties'] = 20
            }
        }

    },

    Text = {

        ['name_already_used'] = 'This name is already being used',
        ['required_organization_name'] = 'Organization name is required',
        ['required_organization_color'] = 'Organization color is required',
        ['required_organization_picture'] = 'Organization picture is required',
        ['invalid_hex_color'] = 'This color code is not an hexadecimal color code',
        ['not_your_zone'] = 'This is not your zone!',
        ['already_in_war'] = 'Your organization is already in war',
        ['only_owner'] = 'Only organization owner is allowed to do this',
        ['not_enough_currency'] = 'You dont have enough currency',
        ['not_enough_space'] = 'You dont have enough space',
        ['account_required'] = 'You need to create your account first',
        ['feature_turnedoff'] = 'This feature is turned off!',
        ['no_nearby_zone'] = 'You dont have a zone that is connected to this one!',
        ['not_online'] = "The criminal is not online!",
        ['invited'] = "Criminal was invited",
        ['received_invite'] = "You received an invite from organization",
        ['already_invited'] = "Already invited!",
        ['success'] = "Operation successful!",
        ['name_cant_contain_spaces'] = 'You cant use spaces!',
        ['cooldown'] = 'Unavailable due to cooldown',
        ['already_accepted'] = 'You cannot take another bounty once current one is settled',
        ['bounty_set'] = 'Bounty registered!',
        ['bounty_deleted'] = 'Bounty deleted!',
        ['bounty_set_continental'] = 'A bounty was set to you head. Killing somone in continental zone is prohibited',
        ['bounty_increase_continental'] = 'The bounty on your head has been increased. Killing somone in continental zone is prohibited',
        ['bounty_to_low'] = 'The bounty amount is lower than the minimum required ({{amount}} {{currency}}(S))',
        ['waypointSet'] = 'Waypoint was set!',
        ['zone_capture_global'] = 'Zone war started!',
        ['owned_zone_capturing'] = 'Your zone is being captured!',
        ['not_enough_online'] = 'Zone is underprotected',
        ['zone_max_level_reached'] = 'Max level of zone protection have been reached',
        ['npc_max_level_reached'] = 'Max level of gang protection have been reached'
    }

}

function SendTextMessage(msg)

    SetNotificationTextEntry('STRING')
    AddTextComponentString(msg)
    DrawNotification(0, 1)

    -- QBCore.Functions.Notify(msg, 'error', 5000)

end

Last updated