Oxy Run
Street-level drug delivery runs. Sign in with a shady plug, drive out to a supplier, grab the packages, then carry the box on foot — you can't drive while holding it — to a string of buyers who pull up one by one at the drop, and get paid per hand-off, while laundering any dirty cash you're carrying on the side.
Every payout is issued by the server through a one-time session token: the client can only ask to start and report each hand-off, it can never award itself loot, skip the cooldown, or forge a dispatch alert.
Supported backends (auto-detected, no config needed)
| Layer | Supported |
|---|---|
| Framework | qb-core, qbx_core, es_extended |
| Inventory | ox_inventory (native), qb-inventory, ESX native (items via install/items/esx.sql); the carried-box prop is ox_inventory-native and approximated on others |
| Dispatch | ps-dispatch, kartik-mdt (v1/v2), cd_dispatch, qs-dispatch (or none) |
| Phone (mail) | yseries, lb-phone, qb-phone (or none — falls back silently) |
| Sign-in emote | rpemotes / rpemotes-reborn / dpemotes (optional — native fallback if none) |
Detection lives in client/functions.lua and server/functions.lua — both are open files, so you can add your own backends there.
Install
Everything you need is in the install/ folder.
ensure jj-oxyruninserver.cfg, after ox_lib, ox_target, your framework and inventory.- Add the items from
install/items/ox_inventory.txtorinstall/items/qb-inventory.txt(skip ones you already have). - Copy
install/images/into your inventory's image folder.
No database required.
How a run works
- Player targets the sign-in ped — a sign-in animation + short bar play, then the server validates: within 4m of the plug, off cooldown, enough cops on duty, can afford the buy-in, and a delivery route is free. It charges the buy-in, reserves a route, issues a one-time token and picks a random supplier + drop count.
- Player drives to the supplier (marked on GPS) and grabs the packages one box per interaction — server confirms proximity and hands over one
packageitem per grab, up to the run's drop count. - Player carries the box on foot to the drop (marked on GPS) — entering a vehicle while holding packages is blocked. Buyer vehicles pull up one at a time; targeting each one plays a short hand-off — server re-validates the token, proximity, pacing and that the player still holds a package, consumes one package, pays clean cash, rolls loot, launders dirty money, feeds jj-perks XP and may ping dispatch.
- After the last drop the run ends, the finish email is sent, and the reserved route is freed.
Abandoning a run (disconnect, or leaving it idle past Config.RunTimeout) frees its route automatically.
Next: head to Configuration for the full config key reference.