Installation

Install oxide-weed, register every required item, and verify cultivation, processing, and selling.

Step-by-step setup for oxide-weed. Follow the steps in order — most issues come from skipping one.

Before You Start

oxide-weed works on QBCore, QBX, and ESX. It detects your framework automatically — there is nothing framework-specific to configure in the script itself. The only framework-side work is adding the items to your inventory (step 4).

You need these resources installed and working first:

ResourceWhat it does
ox_libProvides translations, callbacks, and UI helpers
oxmysqlConnects the server to your MySQL database
o-linkConnects weed to your framework (players, inventory, money, notifications, targeting)

If you already run other Oxide resources, you have all three.

Installation Steps

1. Place the resource

Put the oxide-weed folder inside your server's resources folder.

2. Set the startup order

In your server.cfg, make sure the dependencies start before weed:

ensure ox_lib
ensure oxmysql
ensure o-link
ensure oxide-weed

Your framework and inventory resources should already start before o-link — if other Oxide resources work on your server, this is already correct.

3. Database — nothing to do

The resource creates its own database tables the first time it starts, so there is no SQL script to run. (sql/install.sql is still included if you prefer to create the tables yourself or want to see the schema.)

These are the eight tables it creates:

TableWhat it stores
drugs_progressionEach player's weed level, XP, and lifetime totals
drug_equipmentWeed tables, totes, water containers, drying racks, freeze dryers, and brick presses placed in the world
drug_plantsEvery growing plant — its strain, timers, water, owner, and quality
drug_lampsGrow lamps and which plant each one is helping
drug_heatersHeaters and which weed table each one is attached to
drug_drying_slotsWhat's drying where, so nothing is lost on a server restart
drug_strainsEvery strain players have created or discovered
oxide_settingsThe live settings edited with /weed settings, shared across Oxide resources

It is safe to run oxide-weed alongside oxide-meth or oxide-cocaine — the first two tables and oxide_settings are shared between Oxide resources on purpose, and each resource only creates them if they don't exist yet.

4. Add the items to your inventory

oxide-weed needs every item below to exist in your inventory with the exact spelling shown. A single typo in an item name will break that step of the pipeline.

"Must be usable" means the player can right-click/use the item from their inventory. The script handles what happens when it's used — your inventory just needs to allow it.

Growing supplies

ItemLabelMust be usable
cannabis_seedCannabis SeedYes
plant_potPlant PotNo
waterWaterNo
fertilizerFertilizerNo
watering_canWatering CanYes
growing_manualGrowing ManualYes

Equipment (all must be usable)

ItemLabel
grow_lampGrow Lamp
weed_heaterHeater
weed_tableWeed Table
storage_toteStorage Tote
water_container_smallSmall Water Container
water_container_largeLarge Water Container
drying_rackDrying Rack
freeze_dryerFreeze Dryer
brick_pressBrick Press

Harvest and processing

ItemLabelMust be usable
weed_budWeed BudNo
dried_weed_budDried Weed BudNo
pruned_weed_budPruned Weed BudNo
cannabis_leafCannabis LeafNo
pollenPollenNo
trimming_scissorsTrimming ScissorsYes
baggyBaggyNo

Finished products

ItemLabelMust be usable
weed_1gWeed (1g)No
weed_eighthWeed (1/8 oz)No
weed_quarterWeed (1/4 oz)No
weed_halfWeed (1/2 oz)No
weed_ounceWeed (1 oz)No
weed_brickWeed BrickNo

Smoking

ItemLabelMust be usable
rolling_papersRolling PapersYes
cigarillo_wrapsCigarillo WrapsYes
lighterLighterNo
jointJointYes
bluntBluntYes

Watch out for these common naming mistakes:

  • the item is water, not water_bottle
  • rolling_papers is plural
  • baggy must match exactly — don't substitute another bag item

If you use qb-inventory (default QBCore), add the items to qb-core/shared/items.lua. Set useable = true on the items marked "must be usable" above:

cannabis_seed = { name = 'cannabis_seed', label = 'Cannabis Seed', weight = 1, type = 'item', image = 'cannabis_seed.png', unique = false, useable = true, shouldClose = true, description = 'A seed ready for planting' },
weed_bud = { name = 'weed_bud', label = 'Weed Bud', weight = 100, type = 'item', image = 'weed_bud.png', unique = false, useable = false, shouldClose = true, description = 'A fresh cannabis bud' },
weed_table = { name = 'weed_table', label = 'Weed Table', weight = 7000, type = 'item', image = 'weed_table.png', unique = false, useable = true, shouldClose = true, description = 'A work table for processing weed' },
-- ...repeat for every item in the tables above

If you use ox_inventory (common on QBX and ESX), add the items to ox_inventory/data/items.lua. Every item is usable by default in ox_inventory, so a minimal entry is enough:

['cannabis_seed'] = { label = 'Cannabis Seed', weight = 1 },
['weed_bud'] = { label = 'Weed Bud', weight = 100 },
['weed_table'] = { label = 'Weed Table', weight = 7000 },
-- ...repeat for every item in the tables above

If you use the default ESX inventory, items live in your database. Add a row to the items table for each item:

INSERT INTO `items` (`name`, `label`, `weight`) VALUES
    ('cannabis_seed', 'Cannabis Seed', 1),
    ('weed_bud', 'Weed Bud', 1),
    ('weed_table', 'Weed Table', 7);
-- ...repeat for every item in the tables above

The script registers which items are usable at startup, so there is no extra "usable" setup on ESX.

5. Copy the item images

Copy all the .png files from item images/ into your inventory's image folder:

  • qb-inventory: qb-inventory/html/images/
  • ox_inventory: ox_inventory/web/images/

The filenames already match the item names, so no renaming is needed.

One item has no image in this folder: water. Most servers already have a water item with an image — if yours doesn't, use any water bottle image you like, named water.png.

6. Review the configuration

The defaults work out of the box. To adjust anything — prices, timers, strains, store stock, NPC locations, zones — use the in-game editor: give yourself admin permission (see Admin) and run /weed settings. Changes apply immediately, are saved to the database, and survive restarts.

The files under shared/config/ only supply the factory defaults that seed the database on first start. If you'd rather pre-set values before ever starting the resource, you can edit them there first — but once the resource has started, use /weed settings (file edits no longer take effect for existing settings).

See Configuration for every setting explained and how the database-backed settings work.

Check That It Works

  1. Start the server and confirm ox_lib, oxmysql, o-link, and oxide-weed all start without errors in the console.
  2. Give yourself admin permission for the test commands (see Admin), then run /weed kit in game — you should receive a full set of seeds, supplies, and equipment.
  3. Use the cannabis seed from your inventory and plant it on open ground. Water and fertilize it when prompted.
  4. Run /weed grow to skip the growing time, then harvest the plant.
  5. Use the weed table item to place a table, put your fresh buds on it to dry, and run /weed dry to skip the drying time.
  6. Collect the dried buds, use the trimming scissors to prune them, then bag them at the table with a baggy.
  7. Visit the supply store (The Germinator — marked on the map by default) and confirm the shop opens and you can buy something.
  8. Run /weed stats and confirm your level and XP card appears.

If any step fails, see Troubleshooting.

Good To Know

  • Players learn the system in game. The growing_manual item opens a full illustrated guide covering planting, genetics, drying, processing, and selling. Hand it out or sell it — players don't need out-of-game instructions.
  • Items keep their strain and quality through the whole chain. Strain data is stored on the item itself, so buds, bags, and bricks can be traded between players without losing anything.
  • The drying rack and brick press are not sold anywhere by default. They unlock at levels 3 and 8, but the store doesn't stock them out of the box — add them to the store's customItems list or sell them through your own shops.
  • Dirty money only applies to the scientist. The Germinator store always charges regular cash. What counts as "dirty money" is set under Dirty Money in /weed settings.
  • The interface ships pre-built. There is nothing to compile. Rebuild the web folder only if you edit the source code under web/src.
  • Translations: all player-facing text lives in locales/en.json (a Spanish translation, es.json, is included).

Next Steps