Oxide Drugselling
Street, corner and trap phone drug selling for FiveM — NPC clients who text orders, hand-offs and dead drops, heat and witnesses, and police tools for seized phones and stings.
oxide-drugselling gives players three ways to sell drugs: offer to any pedestrian on the street, work a corner while buyers walk or drive up, or run a TrapFone burner phone full of NPC clients who text orders, haggle, and meet at a booked time or collect from a dead drop. Every price, refusal, robbery and police alert is decided on the server.
Heat, witnesses and the in-game time of day shape how risky each deal is. Police can read seized phones, trace burner numbers, send phone reports to an MDT case, and post undercover buyers with a sting phone.
The shipped package prices weed, meth, cocaine and pills, but the system is not limited to them. New drug types are added through Config.Drugs by listing the sellable items, how their metadata is grouped, optional progression exports, and an ordered pricing modifier pipeline.
Key Features
- Street selling — A global ped interaction through
o-link.targetbrings an ambient pedestrian over and opens a cinematic sell panel. - Corners — Players start a corner wherever they stand with
/corneror the radial menu. Buyers ask for a drug from a configurable demand list, mostly one the player carries, and pay a per-drug multiplier for what they asked for. - Trap phone — Each phone item carries its own number, PIN, battery and client book. NPC clients with personas, hours and trust text orders; players accept, counter or cut the quantity, then book a hand-off or a dead drop.
- Meets and dead drops — Hand-offs check position, timing and travel speed. Dead drop bags and cash sit in the world, where anyone can take them.
- Reputation and bulk buyers — Client trust builds a phone's reputation tier, which raises order rates, book size and price tolerance, and unlocks bulk buyers with bodyguards.
- Heat and witnesses — Area, corner, dealer and phone-number heat decays over time and raises refusal, alert and robbery odds. Nearby NPCs can crowd a buyer off or call it in.
- Police tools — Evidence view on seized phones, number traces, MDT bridges in
server/integrations/evidence/, a sting phone and a delayed heat map. - Burner life — SIM swaps, destroying a phone, battery and charging, no-signal areas, burner-to-burner texting and passing a meet to a crew member.
- Metadata-aware inventory grouping — Sellable items are grouped by a configurable metadata key so different strains, variants, batches or quality tiers never mix in one sale.
- Pricing pipeline engine — Fair price is calculated from base price, multiplier modifiers and bonus modifiers in the order defined per drug type, including prices set by the drug's own resource.
- Dirty money abstraction — Payouts and robbery deductions use the framework's own dirty money, an
o-linkmoney account or an inventory item. - Live in-game configuration — Almost every setting is edited with
/drugselling settings, stored in the database and applied without a restart. Drop spots and no-signal areas are placed in the world. - Optional source-resource progression — Drug types can call exports on their source resources for level gating, XP awards, sold tracking and trait lookups. Missing resources degrade gracefully instead of blocking selling.
Requirements
Required
| Resource | Purpose |
|---|---|
o-link (1.9.1 or newer) | Framework and system abstraction layer used by the resource |
ox_lib | Locale and utility helpers |
oxmysql | Stores phones, clients, messages, orders, dead drops, heat and live settings |
| A targeting resource | The Offer Drugs option on pedestrians |
Optional
| Resource | Purpose |
|---|---|
oxide-weed | Weed level checks, XP/sold tracking, and strain trait pricing bonuses |
oxide-meth | Meth XP/sold tracking |
oxide-cocaine | Cocaine/crack XP/sold tracking |
oxide-pills | Pill pricing by buyer, batch, packing and brand, plus XP/sold tracking |
oxide-gangs | Territory price and buyer-density modifiers, and sale influence reporting |
oxide-police | Seized-phone reports attached to MDT cases |
oxide-weather | Server-side in-game clock |
o-link modules used
callbackframeworkcharacterjobmoneyinventorydispatchnotifytargetradialhelptextprogressbarplacementgangweatherlogger(opt-in audit logging throughoxide-logger)- framework lifecycle events
Database
Seven tables, created automatically on first start (sql/install.sql holds the same statements for a manual install): oxide_settings (live configuration), drugselling_heat, drugselling_phones, drugselling_clients, drugselling_messages, drugselling_orders and drugselling_drops.
Frontend
The packaged UI is Vue 3 + Vite and powers:
- the sell panel for street offers, corner buyers, meet hand-offs and dead drops
- the TrapFone trap phone, evidence view and sting phone
- dead drop markers
- the admin settings editor
Supported Frameworks
| Framework | Support |
|---|---|
| QBCore | Full |
QBX (qbx_core) | Full |
| ESX | Full, with a supported inventory |
| Others | Any framework o-link supports |
Trap phones need an inventory that keeps item metadata. See Installation → Which inventory you need.
Quick Start
Place oxide-drugselling in your resources folder and start it after o-link:
ensure ox_lib
ensure oxmysql
# your framework, inventory and targeting resources
ensure o-link
ensure oxide-drugsellingAdd the four items (trap_phone, trap_sim, trap_charger, sting_phone) to your inventory and copy their images. See Installation → Adding the items.
Restart the server. The resource creates its own database tables on the first start.
As an admin, run /drugselling settings and check Police jobs, Sale money, and the evidence and sting jobs. Settings live in the database from the first start; the menu is where you change them.
Run /drugselling kit for a trap phone, SIM, battery pack and sting phone, then try a street sale, /corner and the phone. See Installation → Verification.
Documentation
Installation
Items, dirty money, database, load order and first checks in game.
Configuration
The in-game settings menu, every setting, and the drugs file.
Features
Street, corners, the trap phone, meets, drops, heat and police tools.
Admin
The /drugselling commands, player commands and permissions.
Exports
Server exports, events, hooks and drug resource exports.
Evidence Bridge
Send seized-phone reports to your own MDT.
Troubleshooting
Common setup and runtime problems and fixes.