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
oxmysqlOne of:
qb-core,qbx_core(Qbox), ores_extended(ESX legacy/latest)Recommended:
ox_inventory— see "Inventory modes" below for why
Installation
Drop this folder into your
resourcesdirectory asds-advancedweed.Add
ensure ds-advancedweedto yourserver.cfg, after your framework,
oxmysql, and your inventory resource.
- Register the items:
ox_inventory: copy
install/ox_inventory_items.txtintoox_inventory/data/items.lua.qb-inventory,Any Inventory Thats Match qb-inventory Style EX: ps-inventory (no ox_inventory): copy
install/qb_item.luaintoqb-core/shared/items.lua.plain ESX (no ox_inventory): run
install/esx_item.sqlagainst your database.
- The database tables are created automatically on first start
(see install/ds_advancedweeed.sql if you'd rather run it manually).
- Start the server. Watch the console for
[ds-advancedweed]lines confirming the
detected framework and inventory mode.
- 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:
- 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.
qb-inventory (QBCore/Qbox only) — native per-slot
infotable metadata.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.