Jobs Scripts

ds-advancedweed

ds-advancedweed

Advanced weed growing, full gene-pair genetics/breeding, NPC + player dealing, and

self-consumption for QBCore, Qbox and ESX, with a custom HTML/NUI menu

(no ox_lib/qb-menu dependency).

Features

  • Place grow pots, drying racks and DNA tables as owned, persistent world props.

  • Plant seeds/clones, water/feed them, watch them move through seedling → vegetative →

flowering → ready over real time (rate driven by the strain's genetics), then harvest.

  • Full Mendelian gene-pair genetics: every strain has real allele pairs per trait

(THC, CBD, yield, growth speed, resilience, bud color, smell). Breed two seeds at a

DNA table to cross every gene pair (with a small mutation chance) into a brand new

named hybrid. Or pay to attempt a targeted gene edit on a single seed (risk of failure

or destroying the seed).

  • Dry wet buds on a drying rack, then sell or smoke the cured bud.

  • Sell to configurable NPC dealers (price = base $/g × rarity × quality × market swing)

or directly to other players via a proximity deal-offer flow with an atomic,

scam-proof handoff.

  • Smoke buds/joints for a THC/quality-scaled screen + movement effect, with a rolling

tolerance system so chain-smoking gives diminishing returns.

  • Runs on QBCore, Qbox or ESX (auto-detected), and on ox_inventory or qb-inventory

(auto-detected) with a documented fallback mode for plain legacy ESX inventory.

Requirements

  • oxmysql

  • One of: qb-core, qbx_core (Qbox), or es_extended (ESX legacy/latest)

  • Recommended: ox_inventory — see "Inventory modes" below for why

Installation

  1. Drop this folder into your resources directory as ds-advancedweed.

  2. Add ensure ds-advancedweed to your server.cfg, after your framework,

oxmysql, and your inventory resource.

  1. Register the items:
  • ox_inventory: copy install/ox_inventory_items.txt into ox_inventory/data/items.lua.

  • qb-inventory,Any Inventory Thats Match qb-inventory Style EX: ps-inventory (no ox_inventory): copy install/qb_item.lua into qb-core/shared/items.lua.

  • plain ESX (no ox_inventory): run install/esx_item.sql against your database.

  1. The database tables are created automatically on first start

(see install/ds_advancedweeed.sql if you'd rather run it manually).

  1. Start the server. Watch the console for [ds-advancedweed] lines confirming the

detected framework and inventory mode.

  1. Give yourself a starter seed to test: /weed_giveseed OG Kush (admin-only, see

Config.AdminAce / Config.AdminGroups). /weed_liststrains lists the seed bank.

Inventory modes

Config.Inventory = 'auto' picks, in order:

  1. ox_inventory — if present, regardless of framework. This is the only inventory

with real per-item metadata on top of ESX, so it's the recommended setup everywhere.

  1. qb-inventory (QBCore/Qbox only) — native per-slot info table metadata.

  2. esx-basic — plain legacy ESX inventory has no per-item metadata at all. In this

mode hybrid breeding/genetics still run and are stored server-side, but sellable/

smokable buds collapse into four fixed quality-tier items (Config.BasicTierItems)

instead of carrying a strain name/genetics on the item. Seeds/clones/DNA-table

breeding are unavailable in this mode. Install ox_inventory if you want full

genetics on ESX — it works fine alongside ESX's job/money systems.

Configuration

Everything tunable lives in config/config.lua (items, growing rates, dealer

locations/pricing, player-trade distance, consumption/tolerance, optional dispatch

integration) and config/strains.lua (seed-bank starter strains and their hand-authored

genetics). The genetics model itself (trait ranges, gene-pair counts, mutation chance,

rarity thresholds, gene-edit cost/risk) is in Config.Genetics inside config/config.lua.

Config.Items' generic seed/clone/wet-bud/bud names are only used for bred/edited

hybrids. Each seed-bank strain in config/strains.lua (via its slug field) instead

gets its own dedicated item (e.g. weed_seed_og_kush) — see shared/strain_items.lua,

and paste the extra entries from install/ox_inventory_items.txt / install/qb_item.lua

alongside the base items.

Config.Placement.models uses generic prop hashes as placeholders for the pot/drying

rack/DNA table — swap these for your own props/models.

Config.Dispatch.enabled is false by default; flip it on and pick Config.Dispatch.type

(qs-dispatch / ps-dispatch / cd_dispatch / generic event) if you want dealer sales

to have a chance of alerting police.

Notes / known limitations

  • All interactions use a lightweight built-in proximity [E] prompt — no ox_target/

qb-target dependency. If two interactables are very close together (e.g. a dealer

right next to a player's pot) the hint prompt can flicker between them; keep dealer

spawns away from placeable spots.

← Back to Docs