Skip to content

Zones

Core Gangs uses a zone-based territory system. Zones are map areas that organizations can capture, defend, and profit from.

Database & Zone Changes

If you modify or remove zones that are already claimed in-game, the old zone data will persist in the database. You must clear the affected zone entries from the DB for changes to take effect. Otherwise the old zones will still appear in-game even though they no longer exist in your config.

Finding Zone IDs

Use the /currentzone command in-game. The zone ID will print to your F8 console.

Zone Types

Generation
Automatically produces items over time and deposits them into a zone storage. Think weed farms, meth labs.
Processing
Converts raw materials from storage into finished products. Coca leaves become cocaine, chemicals become drugs.
Sales
Sells items from storage in exchange for special currency. The final step in the drug pipeline.
House
Gang house with secure storage. Can be captured via war or assigned by admin.
Continental
Safe zone where killing is prohibited. Includes a shop that sells items for special currency. Not capturable.

Generation Zones

Produce items automatically and deposit them into a storage:

lua
Zones = {
    [6740] = {
        Title = 'WEED HARVEST',
        Picture = 'https://i.imgur.com/5ZQJ6Xs.png',
        Description = {
            'Produces weed every minute',
            'Retrieve the product from the storage'
        },
        Type = 'generation',
        Storages = {
            ['generation-storage01'] = {
                InventoryType = 'stash',
                Coords = vector3(-1148.14, -1451.23, 4.53 - 0.98),
                Prop = 'prop_weed_tub_01',
                Rotation = 33.3160,
                slot = 50,
                maxWeight = 2500000,
                OnlyOwnerCanAccessStorage = false,
            },
        },
        NPCs = {
            ['mp_m_weed_01'] = {
                Coords = vector3(-1147.59, -1452.12, 4.60 - 0.98),
                Rotation = 30.7270,
                animDict = 'amb@lo_res_idles@',
                animName = 'world_human_lean_male_foot_up_lo_res_base'
            },
        },
        GenerationItems = {
            { itemName = 'weed_skunk', itemAmount = 1 },
            { itemName = 'weed_purplehaze', itemAmount = 1 },
        },
        Time = 60000, -- ms between generation cycles
    },
}

Processing Zones

Convert items stored in the zone's storage into other items:

lua
[5725] = {
    Title = 'COCAINE PROCESSING',
    Type = 'processing',
    Storages = { ... },
    ProcessingItems = {
        {
            ProcessingFromItem = 'coca_leaf',
            ProcessingFromItemAmount = 10,
            ProcessingToItem = 'cokebaggy',
            ProcessingToItemAmount = 1
        },
        {
            ProcessingFromItem = 'cokebaggy',
            ProcessingFromItemAmount = 10,
            ProcessingToItem = 'coke_small_brick',
            ProcessingToItemAmount = 1
        },
    },
    Time = 60000,
},

Sales Zones

Sell items from storage in exchange for currency:

lua
[5164] = {
    Title = 'COCAINE SALES',
    Type = 'sales',
    Storages = {
        ['sales-storage01'] = {
            InventoryType = 'stash',
            Coords = vector3(-798.56, 884.49, 203.60 - (2 * 0.98)),
            Rotation = 287.79,
            Npc = 's_m_y_dealer_01',  -- NPC model (instead of Prop)
            animDict = 'amb@code_human_in_bus_passenger_idles@male@sit@base',
            animName = 'base',
            slot = 50,
            maxWeight = 2500000,
            OnlyOwnerCanAccessStorage = false,
        },
    },
    SalesItems = {
        { SaleItem = 'cokebaggy', SaleAmount = 10, SalePriceForAmount = 100 },
        { SaleItem = 'coke_small_brick', SaleAmount = 1, SalePriceForAmount = 100 },
    },
    Time = 60000,
},

House Zones

Gang houses provide secure storage. Configured in Config.HouseZones:

lua
HouseZoneCapture = true, -- Allow capturing house zones via war

HouseZones = {
    [7067] = {
        Title = 'BALLAS GANG HOUSE',
        Picture = 'https://i.imgur.com/5ZQJ6Xs.png',
        Description = {
            'Gang house with storage',
            'Provide a secure storage for your gang'
        },
        Type = 'house',
        Storages = {
            ['house-storage01'] = {
                InventoryType = 'stash',
                Coords = vector3(115.59, -1952.19, 20.75 - 0.98),
                Prop = 'prop_weed_tub_01',
                Rotation = 49.17,
                slot = 50,
                maxWeight = 2500000,
            }
        },
        NPCModels = { 'csb_ballasog', 'g_f_y_ballas_01' },
        NPCWeapons = { 'weapon_pistol', 'weapon_microsmg' },
    },
},

INFO

Set HouseZoneCapture = false to prevent wars on house zones — they'll need to be assigned via the setZoneToOrg export instead.

Continental Zones

Safe zones where killing is prohibited. They include a shop that sells items for special currency.

lua
Continentals = {
    [8025] = {
        Title = 'CONTINENTAL AREA',
        Type = 'continental',
        ShopNPCs = {
            ['s_m_y_devinsec_01'] = {
                Coords = vector3(1196.96, -3253.45, 7.10 - 0.98),
                Rotation = 88.46,
            }
        },
        Shop = {
            ['items'] = {
                ['lockpick'] = 10,
                ['armor'] = 50,
                ['bandage'] = 5,
            },
            ['weapons'] = {
                ['weapon_smg'] = 200,
                ['weapon_assaultrifle'] = 500,
                ['weapon_pistol'] = 100,
            }
        },
        ShopOpenHours = {00, 11}, -- false = 24/7, or {open, close}
    },
},
lua
KillInContinentalZoneSetBounty = true,
BountyPriceSetOnContinentalKill = 200,

Storage Options

Every zone storage supports these fields:

FieldTypeDescription
InventoryTypestringInventory type (e.g., 'stash')
Coordsvector3Position (subtract 0.98 for character height)
PropstringGTA prop model for interaction (or use Npc for NPC model)
RotationnumberHeading of the prop/NPC
slotnumberInventory slot count
maxWeightnumberMaximum weight capacity
OnlyOwnerCanAccessStoragebooleanRestrict to org owner only

TIP

Storage names must be globally unique across all zones and house zones.

Blacklisted Zones

Prevent specific zones from appearing on the map:

lua
BlackListedZones = {
    [5083] = true,
    [6352] = true,
    -- Add zone IDs to exclude
},

Zone Behavior When Unowned

lua
EnableGenerationWhenZoneIsNotOwned = true,
EnableProcessingWhenZoneIsNotOwned = true,
EnableSellingWhenZoneIsNotOwned = true,