Cannabis Cultivation
A complete cannabis cultivation business — 30 grow pots with real watering and plant health, drying racks on a cure timer, trim tables, a warehouse, staff on wages and a seven-tab owner dashboard. Build it anywhere in-game with /omegasetup.
A complete cannabis cultivation business, not a one-button drug script. Thirty grow pots with real watering and plant health, drying racks that cure on a timer, trim tables, a warehouse, staff on wages, and an owner dashboard over the top of it.
Frameworks: Qbox (qbx_core) · QBCore (qb-core) — auto-detected, no config.
The chain
clone → grow → harvest → dry → trim → warehouse → sell
- Plant a clone in any of the 30 pots. Paid from the business vault.
- Water it. Growth only accrues while a plant has water.
- Feed nutrients — optional; faster growth and a better final cure.
- Harvest at 100% → wet bud carrying its strain, weight and quality.
- Hang it on a drying rack. Real cure timer; leave it too long and the quality drops a tier.
- Collect the dried bud and take it to a trim table.
- Trim → packaged flower, banked straight into the warehouse stash.
- Sell in bulk at the loading dock, or ship into a partner shop.
Plants that behave like plants
The part most grow scripts get wrong. Neglect costs you time and yield — not the plant.
| one watering covers | 1.5 h of growing (~2 per cycle) |
| grace after that | 10 h |
| health starts falling | 11.5 h after the last watering |
| dead at | 3.3 days of total neglect |
| recovery once watered | full health in ~3.3 h |
| untended grow time | 8.3 h, vs 2.5 h tended |
A dry plant crawls at 30% speed. A room survives a night unattended — players log off, and a timer that kills a full crop overnight is a support ticket, not a challenge. Damage is recoverable too: water a sorry-looking room and it heals back, so you get a smaller harvest instead of a write-off.
Every number above is in config.lua with the resulting hours written next to it, so you can retune without doing the arithmetic yourself.
Yield and quality both track health at harvest, across four tiers — Schwag → Mids → Top Shelf → Exotic — which then multiplies how much packaged flower a batch trims out to.
Walk-up [E]
Walk up and press E. One press does the obvious thing for whatever you are standing at, and the prompt tells you what that is before you press it:
| Pot state | [E] does | Chevron |
|---|---|---|
| empty | plant a clone | green |
| thirsty | water it | yellow |
| growing, unfed | feed nutrients | teal |
| ready | harvest | green |
| dead | clear the pot | red |
Chevron colour doubles as a status board — you can stand at the end of a row and see which pots need water without walking it. Drying racks work the same way.
Trim tables are the exception and use the third eye. They sit in a tight row with the drying racks hanging directly over them, so chevrons a metre and a half apart end up competing for the same [E] — aiming at the table you want is clearer.
Config.Interaction switches pots, trim, racks and stations between marker and target individually. Both paths run identical code, so nothing behaves differently either way.
The dashboard
Seven tabs at the office terminal: Overview · Grow Floor · Drying · Warehouse · Shipping · Staff · Finance. Live pot grid with per-plant progress and health, rack timers, stock by strain, payroll, vault, and a full ledger.
All icons are inline SVG — no icon font and no CDN, so nothing renders as blank squares when a client has no internet. Colours, fonts and layout are all in html/ and open for you to change.
Ownership and staff
Purchasable in-game at the terminal (price configurable, sellable back). The owner hires staff into four grades — Trimmer → Grower → Head Grower → Manager — and each completed task pays a wage from the vault.
No job is created, so nothing else on your server needs to know this resource exists. Clones, nutrients and wages all come out of the vault: let it run dry and the floor stops, which is the pressure that makes the business a business.
Requirements
- ox_lib
- ox_inventory
- ox_target
- oxmysql
- Qbox or QBCore
No map is included. Build the factory in whatever interior you like with /omegasetup — see below.
Installation
- Drop
rr-omegagrowinto your resources andensure rr-omegagrowafter ox_lib, oxmysql, ox_inventory, ox_target and your framework. - Paste
install/items.lua.txtintoox_inventory/data/items.lua, then restart ox_inventory. - Start the server. Database tables are created automatically
(
install/install.sqlis included for reference only). - Lay the factory out where you want it — run
/omegasetup(next section). - Walk to the terminal and press
[E]to buy the factory.
Build it wherever you like — in-game
No coordinates, no config editing. Run /omegasetup, walk your interior, and place the factory where you want it.
← → / mouse wheel change tool
[E] place here
[G] remove the nearest point of this kind
[ENTER] done
Tools: Grow Pot (Bay A / B / C) · Drying Rack · Trim Table · Management Terminal · Staff Board · Supply Bench · Warehouse Storage · Loading Dock.
A HUD shows the current tool and a running count, every existing point is drawn colour-coded so you can see what you have built, and the one [G] would remove is ringed in red. Everything saves as you place it — there is no unsaved state, and [ENTER] and [BACKSPACE] both simply close the HUD.
Changes apply immediately, for every player online. No restart.
Place as many pots as you want, in as many bays as you want — 30 is the shipped default, not a limit. The stations are one each; placing one again moves it.
Owner or admin (Config.AdminAce) only. The server re-checks on every single placement and clamps the coordinate to where it actually sees your ped, so the HUD is a convenience, not the security boundary.
What happens to plants when you edit
A point's identity is its idx, which is what a growing plant keys on — and an idx is never reused. Remove a pot and its plant is deleted with it; place a new one and it gets a fresh number. A retired pot can never hand its plant to a different pot somewhere else in the room.
Starting over
/omegareset throws away the in-game layout and goes back to whatever config.lua ships with. It clears every planted pot and drying rack; the business, vault, staff and warehouse are untouched.
config.lua is the seed, used on a fresh install and by /omegareset. Once the layout table exists, it is the truth. If you would rather work in the config file, /omegacapture 10 still records coordinates as you walk and copies them to your clipboard, ready to paste.
If your interior has plants modelled into the room already, set
bakedon a bay inconfig.luato that model name and the resource will hide them and take those spots over. Pots placed in-game never need it.
Selling the product
- Bulk broker at the loading dock, out of the box. Prices fall the more you dump in one run, with a cooldown, so a big harvest is worth splitting.
- Partner shop (
Config.Shipping.partner, auto-detects) — push packaged flower straight into another resource's ox_inventory stash. Works with any shop whose shelf stock is a stash. Point it at the resource and stash id.
The trim tables output the standard weed_* item ids, so product from here drops into most dispensary scripts without repackaging. Change Config.Strains to sell anything else.
Commands
| Command | Who | What |
|---|---|---|
/omegasetup | owner / admin | The placer. Build the whole factory in-game. |
/omegareset | owner / admin | Throw away the in-game layout, back to config.lua. Clears plants and racks. |
/omegacapture [n] | anyone | Record where you stand, in config format. Copied to clipboard. |
/omegazones | anyone | Draw every configured point for 30 s. |
/omegaplants | anyone | Per-pot render + reach diagnostic. |
/omegadiag | anyone | Server vs client plant state, side by side. |
/omegarevive | owner / admin / console | Bring every dead plant back at full health. |
Admin access: the command.omegaadmin ACE (Config.AdminAce).
What's open, what's escrowed
Escrowed via Cfx.re asset escrow. Left fully open for you to edit:
config.lua— every coordinate, price, timer, strain and balance numberhtml/— the entire dashboard: HTML, CSS, JS, logoinstall/,README.md,CHANGELOG.md,LICENSE
Encrypted: the gameplay logic in client/ and server/.
Support
Through the store you purchased from. Please include your framework, the output of /omegadiag, and anything red in your F8 console.
Last updated 2026-09-27
Join the City