lation scripts
scriptsmembershipdocs
see the scripts
Skip to Content
lation ui
lation interact
lation banking
lation shops
lation jobs
lation weed
Admin panelGrowingLabsStrainsConfigurationDevelopersChangelog
lation chop shop

classics

money laundering
drug sales
coke processing
meth crafting
metal detecting
scuba diving
lation weed

Configuration

Every lation weed setting with its default and limits, as edited in game under /weedadmin > Config, plus the files you still edit by hand.

lation weed has no config.lua. Every gameplay setting lives in the database (the lation_weed_config table, one row per section) and is edited in game under /weedadmin > Config, where a change applies to the server and every player the moment it saves. The editor itself is covered on the admin panel page.

On the first start, each section is written from shared/defaults.lua. After that, editing that file changes nothing on your server except what a reset to default puts back.

The sections below follow the editor's cards, and the tables follow the groups inside each section. The first column is the option's name in the editor. The key is its path inside the section, as an export and GetRuntimeConfig have it. Options marked restart apply after restart lation_weed; there are four.

A few things are still files: config/icons.lua, config/animations.lua and locales/en.json. See files at the end.

Setup

General

OptionKeyDefaultNotes
Debug modedebugOffPrints debug lines in the server console and F8. It costs a lot of resource time, so keep it off in production. With it on, placing a pot prints the ground hash under it in F8.
Plant overlayduiOnThe status panel over plants within 1.7 m. See plant status.
Overlays at onceduiMaxVisible00 to 100. Only the closest this many plants show a panel; 0 shows every plant in range.
Remove abandoned plants aftercleanup7 daysrestart. 0 to 365. Plants not updated in this many days, such as a grown plant nobody harvests, are deleted 10 seconds after the resource starts. 0 never removes one.
Version checkversionOnrestart. Prints a line in the server console when an update is out

Integrations

OptionKeyDefaultChoices
Interaction systeminteractautorestart. auto, ox_target, qb-target, interact, custom
Text UItextuiautoauto, lation_ui, ox_lib, jg-textui, okokTextUI, qbcore, custom
Notification systemnotifyox_liblation_ui, ox_lib, esx, qb, okok, sd-notify, wasabi_notify, custom
Progress barprogressox_liblation_ui, ox_lib, qbcore, custom
Minigameminigameox_liblation_ui, ox_lib, custom
Context menumenuox_liblation_ui, ox_lib, custom
Dialogsdialogsox_liblation_ui, ox_lib, custom

auto for the interaction system uses the first of ox_target, qb-target and interact that is running. auto for Text UI, which shows the placement controls, checks lation_ui, ox_lib, jg-textui, okokTextUI, then qb-core. The minigame is the skill check of lab raids, and the dialogs are the quantity prompts and confirmations. custom does nothing until you write the call yourself in client/utils/ui.lua or client/utils/interact.lua, which ship open.

Police

OptionKeyDefaultNotes
Police jobspolicepolice, sheriffUp to 20 jobs. They raid labs with the police raid settings and count toward the police tables can require. On Qbox and QBCore only players on duty count.

Items

OptionKeyDefaultNotes
Plant pot itemitems.plant_potls_plant_potThe usable item that starts placing a pot, and the one a harvest can give back. A new name works when it saves, and the old one stops working.
Water itemitems.waterls_watering_canWaters a plant
Plant revive itemitems.plant_revivels_plant_reviveRevives a dying plant

Item metadata

All off by default. Items with metadata turned on must be unique or non-stacking in your inventory (unique = true or stack = false).

OptionKeyWhen on
Water carries metadatametadata.waterWatering cans carry durability, and one bought at the supply shop starts at 100. Watering adds as much water as the can has left, up to full, and takes that much off the can. Without it, one can fills the plant and is used up.
Fertilizer carries metadatametadata.fertilizerFertilizers carry durability the same way
Plant revive carries metadatametadata.plant_revivePlant revives carry durability the same way
Buds carry metadatametadata.budsHarvested buds get a purity equal to the plant's health at harvest
Joints carry metadatametadata.jointsRolled joints keep the purity of the buds they were made from
Bags carry metadatametadata.baggedBags keep the purity of the buds they were made from

The durability field is durability on ox_inventory and jaksam_inventory, durabilityPercent on tgiann-inventory, and quality on the others.

Pot models

OptionKeyDefaultNotes
Stage 1 modelstages.1bzzz_growing_freepot_aThe empty pot every plant starts as
Stage 2 modelstages.2bzzz_growing_freepot_bThe pot with soil, before a seed goes in

Both are shared by every strain, which set stages 3 to 8 themselves. The editor marks them with a warning: a new model changes every plant already at that stage.

Placement controls

OptionKeyDefaultNotes
Placement speedcontrols.speed0.0150.001 to 1. How far the pot or table moves each frame in freeform mode
Placement distancecontrols.maxDistance7.5 m1 to 50. How far the pot or table can move from where you started. The server only accepts a pot within 5 m of the player, so keep this at 5 or less if you want every spot the preview allows to work.
Disabled controlscontrols.disable30, 31, 44, 22Up to 20 GTA control IDs turned off while placing

Each key has a GTA control ID (control) and the label shown in the controls panel (keybind):

ActionKeyControlLabel
Move forwardcontrols.forward32W
Move backwardcontrols.backward33S
Move leftcontrols.left34A
Move rightcontrols.right35D
Rotate leftcontrols.rotateL44Q
Rotate rightcontrols.rotateR38E
Switch modecontrols.toggleMode29B
Confirmcontrols.confirm22SPACE
Cancelcontrols.cancel73X

Colors

OptionKeyDefaultNotes
Greencolors.green#10b981Healthy, go-ahead states in menus and the placement controls
Yellowcolors.yellow#ffdb16Warnings and middling values in menus
Redcolors.red#ef4444Dangers, cancel actions and failing values in menus and the placement controls

Growth

Growth engine

OptionKeyDefaultNotes
Tick intervalinterval3000 ms100 to 60,000. Time between growth ticks
Groupsgroups151 to 100. Plants are split into this many groups and each tick updates one, so every plant updates once every interval x groups: 45 seconds by default.

Both apply the moment they save. A plant's update works out its growth from the time since its last one, so these change how often plants update, not how long a strain takes to grow, and plants keep their progress. The editor marks both with a warning: leave them alone unless support asks you to change them.

Plant health

OptionKeyDefaultNotes
Fertilizer re-apply levelreapplyFertilizer20%0 to 100. Fertilizer can only go on when the plant's fertilizer is at or below this, so players can't swap from a growth fertilizer to a yield one right before harvest. 100 allows it any time.
Death timerdeathTimer30 min0 to 10,080. How long a plant can stay at 0% health before it is destroyed. 0 turns plant death off.
Revive healthreviveHealth25%1 to 100. Health a plant revive gives back: a plant at 0% comes back at 25%

New plants

What a new pot starts with.

OptionKeyDefaultNotes
Starting stagedefault.stage11 (an empty pot) or 2 (a pot with soil already in it)
Starting growthdefault.growth0%
Starting healthdefault.health100%1 to 100
Starting waterdefault.water20%
Starting fertilizerdefault.fertilizer20%
Default fertilizerdefault.fertilizerTypels_basic_fertilizerThe fertilizer a plant takes when its seed goes in. Removing this fertilizer asks for another to take its place.

Planting

Where and how players can put pots down, and what a harvest gives back.

Placement

OptionKeyDefaultNotes
Plants per playermax121 to 200. The most plants one player can own at once. Plants put down by lab workers don't count.
Starting placement modedefaultModeGrid (grid)Or Free-form (freeform). Players switch with B.
Grid cell sizegridSize1.25 m0.5 to 10
Minimum spacingminDistance0 m0 to 50. The least distance between two plants; 0 allows them side by side.
Collision checkcollisionOnKeeps pots out of walls, bushes, trees and other objects

Ground check

OptionKeyDefaultNotes
Ground checksoil.enableOnPots go down only on the ground materials below
Allowed ground materialssoil.types17 hashes (below)The ground material hashes pots may go on

The default hashes:

[2409420175, 3008270349, 3833216577, 223086562, 1333033863, 4170197704, 3594309083, 2461440131, 1109728704, 2352068586, 1144315879, 581794674, 2128369009, -461750719, -1286696947, -1885547121, -1907520769]

To find a ground's hash, turn on Debug mode and place a pot there: F8 prints it.

Zones

OptionKeyDefaultNotes
Blocked zonesblacklistNoneUp to 50 zones, each a center and a radius, where players can't use a pot
Only plant in zoneswhitelist.enableOffWhen on, players can only use a pot inside one of the planting zones. With none, nothing can be planted anywhere.
Planting zoneswhitelist.zonesNoneUp to 50. Where planting is allowed while Only plant in zones is on

The zones are checked against where the player stands when they use the pot.

Plant blips

OptionKeyDefaultNotes
Map blipblips.enabledOnA map blip on each plant, for its owner only
Blip spriteblips.sprite4691 to 957
Blip colorblips.color20 to 85
Blip scaleblips.scale0.80.1 to 5
Blip labelblips.labelWeed Plant

Harvest

OptionKeyDefaultNotes
Pot return chanceharvest.potReturnChance0%The chance a player gets their plant pot back on harvest
Worker pot return chanceharvest.workerPotReturnChance0%The chance a pot goes back into the lab stash when a botanist harvests

Seed return for players

OptionKeyDefaultNotes
Return seeds to playersharvest.seedReturn.player.enableOffGives the player seeds of the harvested strain
Minimum healthharvest.seedReturn.player.minHealth80%Seeds only come back from a plant at or above this health
Return chanceharvest.seedReturn.player.chance100%The chance once the health condition is met
Fewest seedsharvest.seedReturn.player.min11 to 50
Most seedsharvest.seedReturn.player.max21 to 50

Seed return for workers, harvest.seedReturn.worker, has the same five options and defaults for botanist harvests (Return seeds to workers first). Those seeds go into the lab stash.

Strains

OptionKeyDefaultNotes
StrainsentriesThe six default strainsUp to 50

In the editor the strains are one list: add, reorder and remove them, and open one for its settings. In an export and in GetRuntimeConfig, each strain sits under its key, such as og_kush, and order holds the list's order. Every strain setting is on the strains page.

Soils and fertilizers

Soils and fertilizers are separate sections with the same fields: one list each (entries), up to 50. Each entry's key is its item name.

OptionKeyNotes
NamelabelShown in the menu where players pick one
DescriptiondescriptionThe line under it, up to 120 characters
ImageimageImage used in menus
IconiconIcon used in menus and on the plant overlay
Show modifiersdisplayModifiersShows the bonuses in that menu. On by default.
Growth bonusmodifiers.growth0 to 100. Percent faster growth while this soil or fertilizer is on the plant. Applies from each plant's next update.
Yield bonusmodifiers.yield0 to 100. Percent more buds at harvest
SoilGrowthYield
ls_basic_soil00
ls_enhanced_soil100
ls_premium_soil010
FertilizerGrowthYield
ls_basic_fertilizer00
ls_enhanced_fertilizer150
ls_premium_fertilizer015

Keep the first soil and the first fertilizer in each list at 0 growth and 0 yield. When a plant's fertilizer runs out, it falls back to the first fertilizer in the list.

See strains for how the bonuses are applied, and the admin panel for removing one that plants use.

Dealer

A seed dealer who moves between spots. Players buy seeds from them.

General

OptionKeyDefaultNotes
Seed dealerenableOnOff takes the dealer away within seconds; on brings him back.
Ped modelmodela_m_m_og_boss_01
Paymentaccountcashcash, bank, or an item such as black_money
Stays foravailable60 min1 to 1,440. How long the dealer stays at a spot
Returns afterrespawn90 min1 to 1,440. How long until they turn up again after leaving
Dealers at oncespawnCount11 to 20, each at a different spot
Jobs without the blipignoredJobsNoneUp to 20. Players with these jobs don't see the dealer blip; a job change shows or hides it at once.

Seeds for sale

The stock (inventory) is a list keyed by strain, up to 50. Stock is how many seeds one player can buy each time the dealer turns up, and it starts over when they move. Stock by level (stockByLevel) raises it for higher levels, using the highest row at or below the player's level, up to 20 rows.

StrainPriceRequired levelStockStock by level
og_kush250152: 7, 3: 9, 4: 11, 5: 13, 6: 15
banana_kush500253: 7, 4: 9, 5: 11, 6: 13
blue_dream750354: 7, 5: 9, 6: 11
purple_haze1000455: 7, 6: 9
orange_crush1250556: 7
cosmic_kush150065None

Locations

OptionKeyDefaultNotes
Locationslocations18 spotsUp to 50, each with a heading. The dealer avoids the last spots used when they can.

Map blip

OptionKeyDefault
Map blipblip.enableOn
Blip spriteblip.sprite140
Blip colorblip.color2
Blip scaleblip.scale0.8
Blip labelblip.labelSeed Dealer

Shop

A supply shop vendor who sells tools, soils, fertilizers, papers, baggies and the table.

OptionKeyDefaultNotes
Supply shopenableOn
Ped modelmodela_m_y_beach_02
Paymentaccountcashcash or bank
Opening hourshours.enableOffLimits the shop to in-game opening hours. Outside them the vendor isn't there; the blip stays.
Opens athours.open80 to 23
Closes athours.close200 to 23. An overnight window such as 22 to 6 works.
Locationslocations-1173.35, -1571.64, 3.66, 186.75Where the vendor stands, up to 50

The shop blip (blip.enable on, blip.sprite 140, blip.color 2, blip.scale 0.8, blip.label Smoke on the Water) has the same options as the dealer's.

Items for sale

The stock (inventory) is a list, up to 50. Each entry has an Item (item), a Name (label), a Price (price), a Required level (level), a Stock (stock), an Image (image) shown on hover and an Icon (icon, a Font Awesome name). Stock is the most one player can buy until the resource restarts, up to 10,000; 0 is unlimited. Every default item is level 1 with unlimited stock.

KeyItemPrice
waterls_watering_can50
basic_fertilizerls_basic_fertilizer75
enhanced_fertilizerls_enhanced_fertilizer150
premium_fertilizerls_premium_fertilizer250
basic_soills_basic_soil50
enhanced_soills_enhanced_soil100
premium_soills_premium_soil175
plant_potls_plant_pot25
plant_revivels_plant_revive150
rolling_paperls_rolling_paper10
empty_baggyls_empty_baggy10
weed_tablels_weed_table5000

Farms

Wild plots where players search plants for seeds: one list (entries), up to 20. One farm ships, mount_chiliad_farm.

OptionKeyDefaultNotes
EnabledenabledOnTurns the farm off without deleting it
Required levellevel1The level a player needs to search
Spot cooldowncooldown45 s5 to 3,600. How long before the same plant can be searched again. Each plant has its own timer.
Nothing chancenothing15%0 to 100. The chance a search finds nothing, rolled before the seed loot
Spawn propsspawnOffPuts a prop at each plant spot while a player is in the zone
Prop modelmodelprop_weed_01Used when Spawn props is on
Zone centercenter2225.805, 5576.971, 53.857The middle of the zone and the blip
Zone radiussize15 m1 to 500
Search spotscoords19 spotsUp to 100. The plants players can search
Map blipblip.*On, sprite 469, color 2, scale 0.8, label Weed Farm

A farm added in the editor starts with a nothing chance of 20%, its blip off and no seed loot.

Seed loot

When a search finds something, one strain is picked at random from the entries (seeds) at or below the player's level, weighted by Weight, and the player gets between Fewest seeds and Most seeds of it. With no entries, a farm finds nothing.

StrainWeight (chance)Fewest (min)Most (max)Required level (level)
og_kush60141
banana_kush40132
blue_dream30123
purple_haze20124
orange_crush15125
cosmic_kush10116

Labs

How labs are sold, stored, staffed and raided. How players use them is on the labs page.

General

OptionKeyDefaultNotes
Labs per playermaxPerPlayer11 to 10
Revoke idle labs aftercleanup45 daysrestart. 0 to 365. Days without activity before a lab goes back on sale: the price isn't refunded, the wallet goes back to the owner and the stash is emptied. Checked 10 seconds after the resource starts. 0 turns it off.
Sell refundsellRefundPct0.5The share of the price paid that selling refunds, 0 to 1. The editor shows it as a percent (50%).
Marketplace viewshopModeMap (map)Or List (list): how the marketplace opens

Accounts

OptionKeyDefaultNotes
Purchase accountaccounts.purchasebankWhat players pay for a lab with
Sale accountaccounts.sellbankWhere the owner is paid when a lab is sold or closed: the refund and what is left in its wallet
Deposit accountaccounts.depositbankWhere deposits into the lab wallet come from
Withdrawal accountaccounts.withdrawbankWhere wallet withdrawals go

Every account takes bank, cash or an item such as black_money.

Map blips

OptionKeyDefaultNotes
Map blipsblips.enabledOnA blip on the labs you own
Blip sprite, color, scale and labelblips.sprite, blips.color, blips.scale, blips.label499, 2, 0.8, Weed Lab

Storage

OptionKeyDefaultNotes
Base stash slotsbaseStashSlots101 to 500. Slots every lab stash starts with
Base stash weightbaseStashWeight50000Weight every lab stash starts with, in grams (50 kg)

The storage tiers, storageTiers, are bought in order from inside the lab, paid from the lab wallet. Each adds to the one before. In the editor they read Bronze: added slots, Bronze: added weight, Bronze: price, and so on.

TierKey+ Slots (addSlots)+ Weight (addWeight, g)Price (price)
BronzestorageTiers.bronze10250005000
SilverstorageTiers.silver205000015000
GoldstorageTiers.gold4010000040000

A change to the stash sizes applies to every lab stash when it saves.

Workers

OptionKeyDefaultNotes
Workersworkers.enableOnLets owners hire workers. Off hides the Workers tab.
Pay cycleworkers.wageInterval48 min1 to 10,080. Real minutes between wages
Water thresholdworkers.waterThreshold20%Botanists water plants below this
Fertilizer thresholdworkers.fertThreshold20%Botanists fertilize plants below this
Worker paceworkers.workerAnimMultiplier20.1 to 10. Multiplies how long each job takes a worker. 1 is a player's speed, 2 is half speed.
Botanist hire costworkers.botanist.hireCost5000Paid once from the lab wallet
Botanist wageworkers.botanist.dailyCost250Paid from the lab wallet each pay cycle
Botanist pedworkers.botanist.pedModela_m_m_farmer_01
Packager hire costworkers.packager.hireCost5000
Packager wageworkers.packager.dailyCost250
Packager pedworkers.packager.pedModela_m_m_farmer_01
Rolling paper itemworkers.packager.rollingPaperls_rolling_paperWhat a packager uses per joint
Empty baggy itemworkers.packager.emptyBaggyls_empty_baggyWhat a packager uses per bag
Buds per jointworkers.packager.budsPerJoint11 to 100
Buds per bagworkers.packager.budsPerBag11 to 100

A lab holds up to 10 botanists and 4 packagers; those limits aren't settings.

Raids

OptionKeyDefaultNotes
Raidsraids.enableOnLocked labs can be broken into
Players may raidraids.allowPlayersOnCivilians can raid
Owner must be onlineraids.playersRequireOwnerOnlineOffCivilians can only raid while the owner is online. Police aren't affected.
Police may raidraids.allowPoliceOnPolice (the police jobs under Setup) can raid
Retry cooldownraids.cooldownMinutes15 min0 to 1,440. After a failed attempt, how long before the same player can try the same lab again; 0 is none. Cleared by a restart.
Notify the ownerraids.notifyOwnerOnTells the owner in game when a break-in succeeds. The onLabRaidBreached hook runs either way.

Raids by players and Raids by police have the same options side by side, under raids.players and raids.police:

OptionKeyPlayersPoliceNotes
Players need an item, Police need an itemrequireItemOnOnThe item must be in the inventory to start
Players' item, Police itemitemlockpickpolice_stormram
Consume the itemconsumeItemattemptattemptWhen the item is used up: never, attempt (on a failed attempt) or success
Skillcheck roundsskillcheck.rounds3 x medium3 x mediumUp to 5 rounds, each easy, medium or hard. With none, one medium round is played.
Skillcheck keysskillcheck.inputsw, a, s, dw, a, s, dSingle letters or digits; one is picked for each round. Empty uses W, A, S and D.

Lab locations

The labs (entries) are a list, up to 50, each keyed by a lowercase key:

FieldKeyNotes
NamelabelThe name in the marketplace and at the entrance
Entrancex, y, z, wWhere the entrance is, and its heading
Priceprice
Required levellevelThe level a player needs to buy it
ImageimageThe marketplace picture; nui:// and https:// paths work
Purchase promptpurchaseInteractionShows Purchase at the entrance. On by default.
Marketplace listingmarketplaceListingLists the lab in the marketplace and lets players buy it there. On by default.

Turn both off to sell a lab only through your own script with the purchaseLab export, which ignores both.

KeyNamePrice
la_mesa_1La Mesa150000
mission_row_1Mission Row125000
la_puerta_1La Puerta115000
downtown_vinewood_1Downtown Vinewood175000
morning_wood_1Morning Wood215000
great_chaparral_1Great Chaparral105000
grand_senora_desert_1Grand Senora Desert129000
zancudo_river_1Zancudo River95000
grapeseed_1Grapeseed92500
paleto_bay_1Paleto Bay85200

Every default lab is level 1, with both switches on and a picture in config/labs/. Removing a lab someone owns asks you to confirm; see deleting things that are in use.

Tables

Portable tables players put down to roll joints and bag weed.

OptionKeyDefaultNotes
Portable tablesenableOnPlayers can put tables down with the table item
Table itemitemls_weed_tableThe item that places and picks up a table. A new name works when it saves, and the old one stops working.
Prop modelmodelbkr_prop_weed_table_01aPlaced tables change to a new model when it saves
Owner onlylockedOffOnly the owner can pick up their table
Tables per playerlimit11 to 20. The most tables one player can have out
Required levellevel1The level a player needs to put down or use a table
Solid tablecollisionsOnThe table blocks movement; off, players walk through it
Allow rollingallow.rollingOn
Allow baggingallow.baggingOn
Require policerequirements.police.enableOffA table can only go down while enough police are on duty
Police requiredrequirements.police.count30 to 50
Blocked zonesrestrictedNoneUp to 50 zones, each a center and a radius, where tables can't go

Per-strain recipes

Each strain has an entry under buds with rolling and bagging values. The same values apply at the packaging stations inside labs. A strain with no entry can't be rolled or bagged.

OptionKeyDefault (rolling and bagging)Notes
EnabledenabledOnShows the strain in the rolling and bagging menus
Buds per joint, Buds per bagremove_bud11 to 100. Buds used per action
Rolling item, Bagging itemremove_item.rolling.item, remove_item.bagging.itemls_rolling_paper, ls_empty_baggyThe item used up with the buds
Rolling items per joint, Bagging items per bagremove_item.rolling.quantity, remove_item.bagging.quantity11 to 100
Joints per roll, Bags per filladd_item11 to 100. Joints or bags given per action
Rolling duration, Bagging durationduration2500 ms500 to 60,000. Per action
Rolls per session, Bags per sessionmax_actions151 to 100. The most actions in one go

Joints

Each strain's joint has its own entry (entries), keyed by strain. A strain with no entry, or with Usable off, has no joint that can be smoked. The defaults are the same for all six.

OptionKeyDefaultNotes
UsableusableOnPlayers can smoke the joint from their inventory. Applies when it saves.
Required levellevel1The level a player needs to smoke it
Smoke timeduration10000 ms500 to 60,000

The effects apply when the player finishes smoking. Several can be on at once, each with its own switch.

EffectKeyDefaultNotes
Healeffects.healthOn, Health restored (amount) 500 to 200
Relieve stresseffects.stressOn, Stress removed (amount) 50Passed to the joint hook, which relieves stress through your HUD. See hooks.
Armoreffects.armorOn, Armor added (amount) 20, Armor cap (max) 100Adds armor up to the cap
Speed boosteffects.speedOff, Speed multiplier (multiplier) 1.49, Boost duration (duration) 30000 msFaster sprinting. The multiplier is 1 to 1.49.
Screen effecteffects.screenOn, Timecycle modifier (effect) stoned_monkeys, Effect duration (duration) 30000 ms
Walk styleeffects.walkOn, Movement clipset (clipset) move_m@drunk@a, Walk duration (duration) 30000 ms
Camera shakeeffects.shakeOn, Shake name (name) DRUNK_SHAKE, Intensity (intensity) 2.0, Shake duration (duration) 30000 msIntensity 0 to 10

Experience

OptionKeyDefaultNotes
Level ladderlevels0, 2500, 10000, 20000, 50000, 100000The total XP for each level, up to 50 levels. Level 1 is always 0. Saving it moves every player to the level their XP reaches, and those moved up are told.
Farm searchrewards.plants_searched5XP for finding seeds at a farm
Harvestrewards.plants_grown50XP for a harvest
Per budrewards.bud_produced5XP for each bud a harvest gives
Per jointrewards.joints_rolled3XP for each joint a player rolls
Per bagrewards.weed_bagged3XP for each bag a player packs

Each reward is multiplied by the XP multiplier of the strain it comes from (see strains). Set a reward to 0 to turn it off; the player's lifetime counts still go up. Lab workers earn nobody XP.

Logging

OptionKeyDefaultNotes
Logging serviceserviceNone (none)Or Fivemanage (fivemanage, needs fmsdk running) or Discord (discord)
ScreenshotsscreenshotsOffAdds a screenshot to each log. Fivemanage only.
Webhook namediscord.nameWeedThe webhook's display name
Webhook URLdiscord.linkEmptyYour Discord webhook. Once set, the panel only shows that a value is set.
Avatar imagediscord.imagehttps://i.imgur.com/ILTkWBh.pngThe webhook's avatar
Footer imagediscord.footerhttps://i.imgur.com/ILTkWBh.pngThe footer icon

Set the webhook in the admin panel, never in shared/defaults.lua. The panel keeps it on the server: the logging settings are never sent to players.

Each event is a switch under events, all off by default.

EventKeyLogged when
Plant placednew_plantA player puts a pot down
Soil appliedsoil_appliedA player adds soil to a pot
Seed plantedseed_appliedA player plants a seed
Plant wateredplant_wateredA player waters a plant
Plant fertilizedplant_fedA player fertilizes a plant
Plant revivedplant_revivedA player revives a plant
Plant harvestedplant_harvestedA player harvests a plant
Plant destroyedplant_deletedA player destroys a plant
Joints rolledweed_rolledA player finishes rolling joints, or a packager rolls one
Weed baggedweed_baggedA player finishes bagging weed, or a packager bags one
Seeds boughtseed_purchasedA player buys seeds from the dealer
Supplies boughtshop_purchasedA player buys from the supply shop
Farm searchedfarms_searchedA player finds seeds at a farm
Lab boughtlab_purchasedA player buys a lab
Lab soldlab_soldA player sells a lab, with the refund and the wallet paid out
Lab raidedlab_raidedA player or police officer breaks into a lab
Worker hiredworker_hiredA player hires a lab worker
Worker firedworker_firedA player fires a lab worker
Configuration changedconfig_editedAn admin changes the configuration (one entry per visit to a section, up to 20 changes listed) or imports one

Language

Every string is in locales/<code>.json, and English is the only file that ships. Copy locales/en.json to a new file such as locales/de.json, translate the values, and pick it with a replicated convar so clients read it too:

server.cfg
setr lation:locale "de"

If the file for the chosen language is missing, English is used.

Files

These ship open. A change to the animations, icons or strings applies after restart lation_weed.

shared/defaults.lua

The shipped defaults: what each section is written from on the first start, what fills in an option a newer version adds, and what a reset in the admin panel puts back. Only the server reads it. Editing it doesn't change a server that already has its settings.

config/animations.lua

The animation, prop and length of each action. Lab workers use the same lengths, multiplied by Worker pace.

KeyUsed forLength (ms)
applySoilAdding soil5000
applySeedPlanting a seed1400
applyWaterWatering5000
applyFertilizerFertilizing5000
revivePlantReviving4000
destroyPlantDestroying4000
harvestPlantHarvesting25000
abortPlantingGiving up on a pot, picking up a table1400
searchFarmSearching a farm plant. The server also uses it to check how long a search took.6000
purchaseSeedsBuying from the dealer or the shop3000
placePotA botanist putting a pot down1400
packageProductRolling and bagging. Each strain's own duration under Tables replaces it.2500
useJointSmoking. The joint's own smoke time replaces it.10000
labRaidBreaking into a labNone (it plays during the skill check)

config/icons.lua

The Font Awesome icons and colors of the prompts, notifications, placement controls, menus and /weedstats.

locales/en.json

Every string players and admins read, the admin panel and the lab panels included. See language.

Still stuck? Ask in our Discord: the people who write the scripts answer.

Last updated November 10, 2026

Strains

The six default lation weed strains, every strain setting, how growth, yield and XP are worked out, and how to add, edit or remove a strain.

Developers

The lation weed server and client exports, the events it fires and its server and client hooks, with signatures, return shapes and Lua examples.

On this page

SetupGeneralIntegrationsPoliceItemsItem metadataPot modelsPlacement controlsColorsGrowthGrowth enginePlant healthNew plantsPlantingPlacementGround checkZonesPlant blipsHarvestSeed return for playersStrainsSoils and fertilizersDealerGeneralSeeds for saleLocationsMap blipShopItems for saleFarmsSeed lootLabsGeneralAccountsMap blipsStorageWorkersRaidsLab locationsTablesPer-strain recipesJointsExperienceLoggingLanguageFilesshared/defaults.luaconfig/animations.luaconfig/icons.lualocales/en.json
lation scripts

FiveM scripts for Qbox, QBCore and ESX servers, made to look and work like one product.

store

  • all scripts
  • membership
  • classics

help

  • docs
  • discord
  • email support

legal

  • terms
  • refunds
  • privacy
© 2026 Lation Labslationscripts.com
  • home
  • scripts
  • membership
  • docs