Installation Guide
Step-by-step setup for Oxide Drugselling and its optional source resource integrations.
Prerequisites
Required Resources
| Resource | Purpose |
|---|---|
ox_lib | Locale, callbacks, animation loading, and utility helpers |
o-link | Framework and system abstraction used by the resource |
Optional Resources
| Resource | Purpose |
|---|---|
oxide-weed | Weed level checks, XP/sold tracking, and strain trait pricing bonuses |
oxide-meth | Meth level checks and XP/sold tracking |
oxide-cocaine | Cocaine/crack XP/sold tracking and purity-based pricing |
o-link Expectations
This resource depends on your server's o-link setup for:
- player-ready and player-unload lifecycle events
- player character identifiers
- inventory reads, item removal, item addition, and image path resolution
- dirty money account access when
Config.DirtyMoney.mode = 'account' - job lookups for police-count checks
- notifications
- dispatch alerts
- global ped targeting
Installation
Place the Resource
Place oxide-drugselling inside your server's resources folder.
Add Startup Order
Start framework and inventory dependencies before o-link, then start any optional source drug resources before oxide-drugselling.
ensure ox_lib
# your framework, inventory, and any dependencies required by o-link
ensure o-link
ensure oxide-weed # optional
ensure oxide-meth # optional
ensure oxide-cocaine # optional
ensure oxide-drugsellingReview Configuration
Adjust:
shared/config.luashared/config/selling.luashared/config/drugs.lua
Important areas:
- dirty money mode and account/item names
- player and NPC cooldowns
- police requirement and dispatch settings
- blacklisted and gang ped models
- shipped weed, meth, and cocaine item names
- pricing modifiers and metadata field names
See Configuration Reference for the full setting breakdown.
Confirm Item Support
oxide-drugselling does not register its own item set.
It sells whatever item names you define in Config.Drugs. If you use the shipped weed, meth, and cocaine entries, make sure those items already exist in the inventory system that o-link.inventory is using on your server.
Confirm Dirty Money Mode
The payout configuration lives in shared/config.lua:
Config.DirtyMoney = {
mode = 'account',
account = 'cash',
item = 'black_money',
}Notes:
mode = 'account'pays througho-link.moneymode = 'item'pays througho-link.inventory- if you use item mode, that item must already exist and be addable by your inventory backend
The shipped default pays into the regular cash account — that is clean money, not dirty money. If you want sales to pay dirty money, match your framework using the table below.
| Framework | Recommended setting | Why |
|---|---|---|
| ESX | mode = 'account', account = 'black_money' | ESX includes a black money account out of the box |
| QBX | mode = 'item', item = 'black_money' | ox_inventory (QBX's inventory) includes a black_money item out of the box |
| QBCore | mode = 'item' with your own item | QBCore has no black money account or item by default. Add a black_money item to qb-core/shared/items.lua, or use a money item you already have. The built-in markedbills item is marked unique (it doesn't stack), so it is not a good fit for payouts |
Verification
ox_lib, o-link, and oxide-drugselling load without dependency errors.o-link signals readiness.Optional Source Resource Behavior
If oxide-weed, oxide-meth, or oxide-cocaine are not running, the core selling system still works.
What gets skipped for an unavailable source resource:
- level gating for that drug type
- XP awards back into that resource
- sold-count tracking back into that resource
- weed trait bonus resolution when the trait export source is unavailable
Base pricing, negotiation, robbery flow, notifications, and dirty money payout still work.
Notes for UI Developers
The packaged web/dist build is already included and referenced by the manifest. Rebuilding the UI is only necessary if you edit files under web/src.