Labs and production
Everything on this page is in config/config_labs.lua.
Interiors
Labs use GTA Online interiors. Every lab is a separate instance (routing bucket), so two labs that use the same interior never see each other.
| Key | Interior |
|---|---|
meth | Meth lab |
coke | Cocaine lockup |
weed | Weed farm |
counterfeit | Counterfeit cash factory |
documents | Document forgery office |
bunker | Bunker |
acid | Acid lab (game build 2802) |
warehouse_small, warehouse_medium, warehouse_large | Warehouses |
clubhouse_1, clubhouse_2 | Biker clubhouses |
vehicle_warehouse | Vehicle warehouse |
nightclub | Nightclub (game build 1290) |
facility | Facility (game build 1290) |
Each interior defines its exit, panel (laptop), storage and work stations, and the entity sets loaded for each upgrade level.
Tip: positions can be fine-tuned in game without touching the file: Admin panel > Interiors > Visit, stand where a point should be and press its button. The new positions are saved in the database and apply to every lab using that interior.
Lab types
meth = {
label = 'Meth Lab', icon = 'flask', interior = 'meth', mode = 'production',
price = 1800000,
product = { item = 'meth_bag', amount = 10 },
cycle = 600, supplies = 10,
capacity = { product = 400, supplies = 200 },
ingredients = { chemicals = 5, pseudoephedrine = 10 },
supplyPrice = 900,
station = { duration = 15, boost = 90, cooldown = 120 },
heat = 0.12,
sale = { min = 380, max = 460 },
},
| Field | Meaning |
|---|---|
interior | Key of Config.Interiors |
mode | production (makes items), laundering (turns dirty money into clean) or hq (no production) |
price | Default price when a lab of this type is put on sale |
product | Item produced and amount per cycle |
cycle | Seconds per production cycle, before upgrades |
supplies | Supplies used per cycle |
capacity | Base storage for product and supplies |
ingredients | Items that can be dropped in, and how many supplies each unit adds |
supplyPrice | Price of one supply unit bought from the lab panel (paid from the treasury) |
station | Active work: seconds of work, production seconds gained, cooldown in seconds |
heat | Heat per unit produced (0–100 scale) |
sale | Price per unit in sale missions (dirty money) |
Included types
| Type | Product | Interior |
|---|---|---|
meth | meth_bag | meth |
coke | coke_bag | coke |
weed | weed_bag | weed |
counterfeit | counterfeit_cash | counterfeit |
documents | fake_id | documents |
weapons | weapon_parts | bunker |
acid | acid_tab | acid |
laundering | clean money | warehouse_small |
hq | none | admin’s choice |
Laundering
laundering = {
label = 'Money Laundering', icon = 'refresh', interior = 'warehouse_small', mode = 'laundering',
price = 1200000,
laundering = { perCycle = 25000, cycle = 300, fee = 0.20, capacity = 500000, payoutCurrency = 'bank' },
station = { duration = 12, boost = 60, cooldown = 120 },
heat = 0.00002, -- per dollar laundered
},
Members deposit dirty money. Every cycle seconds up to perCycle is washed, minus fee, and can be collected in payoutCurrency.
Headquarters
hq = {
label = 'Headquarters', icon = 'home', interior = 'clubhouse_1', mode = 'hq',
price = 1000000,
interiors = { 'clubhouse_1', 'clubhouse_2', 'bunker', 'warehouse_large', 'facility', 'nightclub', 'vehicle_warehouse' },
},
A headquarters produces nothing. It is a private place for the organization, where the boss or an admin can place a stash, wardrobe or panel. Admins pick the interior from the list.
Upgrades
Each lab has four upgrades, paid from the treasury. Prices are multiplied by the lab type price / 1,000,000, so expensive labs cost more to upgrade.
| Upgrade | Effect |
|---|---|
equipment | Production speed: the cycle time is divided by the value. Also raises base quality |
staff | Amount produced per cycle is multiplied by the value |
security | Heat generated is multiplied by the value |
capacity | Storage capacity is multiplied by the value |
equipment = {
label = 'Equipment', visualFrom = 1,
levels = {
{ price = 0, value = 1.00 },
{ price = 350000, value = 1.20 },
{ price = 700000, value = 1.40 },
{ price = 1200000, value = 1.65 },
},
},
Upgrades also change the interior props (entity sets), so members can see the lab improve.
Production
Config.Production = {
Tick = 60, -- seconds between production updates on the server
OfflineProduction = true, -- labs keep producing while nobody is online (calculated on restart)
}
Each cycle consumes supplies and adds product, until the storage is full or the supplies run out.
Work tables
Working a table (station) takes duration seconds with its animation, adds boost seconds of production instantly, and then has a cooldown.
Quality
Config.Quality = {
Enabled = true,
BasePerEquipment = { 45, 55, 65, 75 }, -- base quality for equipment level 0, 1, 2, 3
PerStationWork = 4, -- added each time a table is worked
MaxAboveBase = 25, -- work can't push it more than this above the base
DecayPerHour = 3, -- falls back towards the base
PriceAt0 = 0.75,
PriceAt100 = 1.30,
}
Quality goes from 0 to 100. It starts from the equipment level and goes up when members work the tables. It only affects the price of sale missions: from ×0.75 at quality 0 to ×1.30 at quality 100.
Lab shop
Config.LabShop = {
Purchasable = true, -- false = only admins assign labs
Currency = 'dirty',
PayFromTreasury = true, -- true = paid from the treasury, false = from the boss' pocket
NPC = {
model = 'g_m_m_armboss_01',
coords = vector4(1240.45, -3168.20, 7.10, 270.0),
scenario = 'WORLD_HUMAN_SMOKING',
blip = { enabled = true, sprite = 473, color = 2, scale = 0.75, label = 'Real Estate (Underground)' },
},
FromPanel = true, -- labs can also be bought from the organization panel
SellBackRatio = 0.5, -- part of the price returned when a lab is sold
}
Only labs an admin has put for sale appear in the shop. Admins choose the price and the location when they create the lab.
Supply missions
Config.SupplyMissions = {
Cooldown = 900, -- seconds per lab
Reward = 60, -- supplies delivered (capped to capacity)
VehicleSpawnDistance = 300.0, -- the vehicle is created when you get this close (max 400)
BlipDelay = 30, -- seconds before the criminal blip shows to rivals
ThiefReward = 25000, -- dirty money for a rival who steals the van and takes it to a thief drop point
Types = { ... }, -- mission types, vehicles and pickup locations
}
The members go to the pickup, take the vehicle and drive it back to the lab’s vehicle point. Rivals see the vehicle after BlipDelay seconds and can steal it.