Skip to content

Zones

The zone system is the core of Core Gangs. Zones are map territories that organizations can capture, defend, and profit from. Each zone has a type that determines what it does — generate drugs, process materials, sell product, or serve as a gang house.

Zone Editor

Use /zoneeditor in-game to open the visual zone editor. This launches a freecam mode where you can create and configure zones directly on the map — no config editing needed.

TIP

Zones created through the editor are saved to the database automatically. You can also pre-define zone types in config that appear as templates in the editor.

Zone Type Templates

The editor uses templates defined in Config.ZoneTypeTemplates. Each template pre-configures what items a zone generates, processes, or sells:

lua
ZoneTypeTemplates = {
    ['weed_generation'] = {
        Title = 'Weed Farm',
        Type = 'generation',
        Time = 60000,
        GenerationItems = {
            { itemName = 'weed_baggy', itemAmount = 1 },
            { itemName = 'weed_ogkush', itemAmount = 1 },
            { itemName = 'weed_purplehaze', itemAmount = 1 },
        },
    },
    ['cocaine_processing'] = {
        Title = 'Cocaine Lab',
        Type = 'processing',
        Time = 60000,
        ProcessingItems = {
            {
                ProcessingFromItem = 'coca_leaf',
                ProcessingFromItemAmount = 10,
                ProcessingToItem = 'cokebaggy',
                ProcessingToItemAmount = 1
            },
        },
    },
    ['drug_sales'] = {
        Title = 'Drug Sales Point',
        Type = 'sales',
        Time = 60000,
        SalesItems = {
            { SaleItem = 'cokebaggy', SaleAmount = 10, SalePriceForAmount = 100 },
            { SaleItem = 'meth', SaleAmount = 5, SalePriceForAmount = 150 },
        },
    },
}

Available template types include:

TemplateTypeWhat it does
weed_generationgenerationProduces weed variants every 60s
oxy_generationgenerationProduces oxy every 90s
meth_generationgenerationProduces meth every 120s
xtc_generationgenerationProduces ecstasy every 100s
cocaine_processingprocessingCoca leaf → Cocaine → Bricks
crack_processingprocessingCocaine → Crack
drug_salessalesSells all drug types for currency

Zone Types

Generation
Auto-produces items over time into a zone storage. Weed farms, meth labs, oxy labs — set a timer and items appear.
Processing
Converts raw materials from storage into finished products. Coca leaves become cocaine, cocaine becomes bricks.
Sales
Sells items from storage in exchange for special currency. The final step in the drug pipeline.
Field
Grow and harvest plants. Multiple growth stages, owner bonuses, and drug-boosted yields.
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 for special currency. Not capturable.

Generation Zones

Produce items automatically on a timer and deposit them into storage:

lua
[6740] = {
    Title = 'WEED HARVEST',
    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,
        },
    },
    GenerationItems = {
        { itemName = 'weed_skunk', itemAmount = 1 },
        { itemName = 'weed_purplehaze', itemAmount = 1 },
    },
    Time = 60000, -- ms between generation cycles
},

Processing Zones

Convert raw items in storage into finished products:

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',
            animDict = 'amb@code_human_in_bus_passenger_idles@male@sit@base',
            animName = 'base',
            slot = 50,
            maxWeight = 2500000,
        },
    },
    SalesItems = {
        { SaleItem = 'cokebaggy', SaleAmount = 10, SalePriceForAmount = 100 },
        { SaleItem = 'coke_small_brick', SaleAmount = 1, SalePriceForAmount = 100 },
    },
    Time = 60000,
},

Field Zones

Fields grow plants that players can harvest. Plants go through 3 growth stages — small, medium, and large — and yield items based on how grown they are. Minimum 20% growth required to pick.

Growth

  • Plants take 10 minutes to fully grow (configurable)
  • Owner members get 1.2x faster growth
  • Non-owners grow at normal speed
  • Consuming drugs boosts yield — oxy gives 1.8x (see Consumables)

Picking Privileges

Who picks the plants determines where the harvest goes:

Gang Member
Full harvest + 1.5x owner bonus. Everything goes straight to your inventory. Your field, your product.
Non-Member / Rival Gang
Only 40% of the yield. The other 60% goes to the owning gang's zone storage automatically. The gang gets an alert with your location.

STEALING FROM A GANG'S FIELD

Anyone can pick from a gang-owned field — rival gangs, random civilians, doesn't matter. But they'll only walk away with 40% of the harvest. The owning gang gets the 60% majority deposited straight into their zone storage, plus a location ping on the thief. Risky move.

lua
-- Field settings in config
FieldGrowthTime = 600,              -- seconds to full growth (10 min)
FieldOwnerGrowthBoost = 1.2,        -- 20% faster growth for zone owners
FieldNonOwnerGrowthBoost = 1.0,     -- normal speed for non-owners
OwnerPickBonus = 1.5,               -- 1.5x yield for gang members
OwnerPickSplit = 0.6,               -- 60% of non-member picks go to gang storage
AlertOnEnemyPick = true,            -- ping gang when someone steals from their field

INFO

Plants only spawn on valid grass surfaces. The server generates initial plants and the client filters out any that land on invalid ground (concrete, water, etc).

House Zones

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

lua
HouseZoneCapture = true,

HouseZones = {
    [7067] = {
        Title = 'BALLAS GANG HOUSE',
        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,
            },
            ['weapons'] = {
                ['weapon_smg'] = 200,
                ['weapon_pistol'] = 100,
            }
        },
        ShopOpenHours = {00, 11}, -- false = 24/7
    },
},

Killing in a continental zone automatically sets a bounty on the killer:

lua
KillInContinentalZoneSetBounty = true,
BountyPriceSetOnContinentalKill = 200,

Zone Protection & Buffer Zones

Every zone has a protection level that creates a ring of buffer zones around it. The higher the protection, the more buffer zones surround the core territory.

lua
DefaultProtectionValue = 3,
ProtectionValuePrice = 100,      -- price per level
MaxProtectionLevel = 5,

Buffer zones act as a perimeter — they're "multiplier" type zones that extend the controlled area. The shape of the buffer ring is configurable:

lua
CubeShape = false,
CircleShape = false,
DiamondShape = true,    -- recommended

TIP

Higher protection = more buffer zones = larger controlled territory. Organizations pay currency to upgrade protection through the UI.

Zone Wars

Wars are how organizations fight for territory. An attacking org challenges the defenders for ownership of a zone.

How Wars Work

  1. An org member initiates a war on a zone they don't own
  2. Both sides earn points based on members present in the zone (+5 points/second/player)
  3. The defending org starts with a 500-point advantage (configurable)
  4. Street reputation further boosts the defender's advantage
  5. After the war timer ends, the org with the most points wins
  6. Winners get currency rewards and optional item drops

War Settings

lua
BaseZoneWarTime = 10,                    -- war duration (minutes)
PriceToStartWar = 0,                     -- currency cost to declare war
OwnedZoneAdvantage = 500,               -- defender head start
WarScoreIncrease = 5,                    -- points per second per player
OrganizationCooldown = 5,               -- minutes before org can war again
ZoneCooldown = 10,                       -- minutes before zone can be attacked again
CurrencyAward = 200,                     -- currency per winning member
MaximumOrganizationWars = 1,             -- max concurrent wars (0 = unlimited)
CriminalOnlineRequiredToStartWar = 2,
OnlyOwnerOfOrganizationCanStartWar = false,
OrganizationMembersRequiredOnlineToAttackZone = 2,

War Rewards

lua
Rewards = {
    ['bandage'] = 2,            -- fixed amount
    ['lockpick'] = {0, 3},      -- random between 0-3
},

Time Restrictions

Limit when wars can be started:

lua
TimeWhenWarCanStart = {
    { beginWar = {h = 21, m = 0}, endWar = {h = 24, m = 0} },
    { beginWar = {h = 0, m = 0}, endWar = {h = 2, m = 0} },
},

War Walls

During active wars, visual walls appear around the zone boundaries. These can be toggled for performance:

lua
DisplayWarWall = true,
DisplayWallWarForEveryone = false,     -- false = criminals only
DistanceToDisplayWall = 260.0,
EnableBackgroundWallEffect = true,
EnableSlidingTextWallEffect = true,
EnablePulseTextWallEffect = true,

TIP

Disable the wall effects if players experience FPS drops during wars.

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.

Unowned Zone Behavior

Control whether zones still function when no org owns them:

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

Blacklisted Zones

Prevent specific zones from appearing on the map:

lua
BlackListedZones = {
    [5083] = true,
    [6352] = true,
},