Features

How every part of Oxide Drugselling works — street selling, the sell menu, negotiation, heat, witnesses, corners, the TrapFone trap phone, clients, meets, dead drops, reputation, bulk buyers, burner life, and police evidence and sting tools.

How every part of oxide-drugselling works, from the player's side of the screen. All the numbers below are the shipped defaults. Change them in-game with /drugselling settings (see Configuration).

Ways To Sell

There are five ways a sale can happen. They all finish the same way on the server: the drug's level requirement is checked, the items are checked and taken, the price is worked out, the player is paid in dirty money (a dead drop can leave the cash at the drop instead), XP goes to the drug's own resource, heat is added, and your sale hook runs.

MethodHow it happens
streetA player offers drugs to a pedestrian
cornerA buyer comes to a player working a corner
phoneA player hands over to a phone client at a booked meet
dropA phone client collects a package from a dead drop
bulkA player hands over to a bulk buyer

Every decision that matters (the price, whether a buyer refuses, whether police are called, whether the player is robbed) is made on the server. A player can't change the outcome from their own game.

Street Selling

A player looks at a regular pedestrian and picks Offer Drugs from their targeting menu. The option only shows when:

  • street selling is switched on
  • the player carries at least one sellable drug
  • the player isn't already selling, isn't working a corner, and doesn't have the trap phone open
  • the pedestrian isn't a player, isn't dead, and isn't part of a mission or another script
  • neither of them is in a vehicle
  • the pedestrian isn't on the Never sell to list (cops, paramedics, soldiers, rangers, security guards)
  • the player's short cooldown from their last sale (5 seconds) has passed

The pedestrian walks over. If they can't get within a few metres in 8 seconds, the player sees "They couldn't get to you".

The server checks the buyer is really standing there and that nobody has tried to sell to this buyer in the last 2 minutes. If someone has, the player sees "They just dealt with you. Try someone else."

If fewer police are online than Police needed online, the player sees "Not enough police online".

The camera moves in on the buyer and the sell menu opens.

The player sends an offer and the server decides what happens (see Negotiation).

If the player walks more than 5 metres away, the sale closes.

Other players nearby see the buyer walk over, react and (if it comes to that) pull a gun.

The Sell Menu

The same menu is used for street sales, corner buyers, meets and dead drops. It sits down the right of the screen, with the camera on the buyer, and lists:

  • Product: the drugs the player carries, with item pictures and how many they have. A corner buyer's drug is marked Wanted and picked for them.
  • Variant: when an item comes in different strains, purities or batches, each one with its grade, how many there are and its fair price. They're never sold as one stack.
  • Set your price: Quantity and Price, changed with the left and right arrows. Each price step is 5% of the fair price, from half to double it.
  • Their reaction: a meter (Good Deal, Fair, Pushing It, Too High) drawn from the same limits the server uses, with the quality and the bonus tags that explain why an item is worth more.
  • Make Offer.

The header shows the title, what a corner buyer asked for ("They want 2 x Weed") or the agreed deal at a meet ("Agreed: 3 x meth for $450"), and a Dangerous warning when the buyer is a gang member who might rob the player.

KeyWhat it does
Arrow Up / DownMove through the menu
Arrow Left / RightChange the quantity or the price
EnterPick the highlighted row, or make the offer
Backspace or EscWalk away

The mouse works too. After an offer, the menu shows the answer: the deal and what was earned, a counter-offer (Accept or Decline), a refusal with the reason, or a robbery with what was lost. It closes itself 3 seconds after anything but a counter-offer.

At a meet or dead drop the quantity and price are already agreed, so the menu only lists the stacks that could fill the order (a stack that's too small is greyed out), and the button reads Hand Over.

Negotiation

Every drug has a fair price: what the goods are really worth, worked out by the pricing pipeline. When a street or corner buyer gets an offer, the server compares the asking price to the fair price:

Asking price vs. fair priceWhat happens
90% of fair or lessAccepted
Above 90%, up to 125%50% chance it's accepted, otherwise the buyer counters
Above 125%Refused

A counter-offer is 95% of the fair price, and the player has 60 seconds to take it. A counter is the buyer's last word: the player can accept it or walk away, but can't make a new offer to the same buyer. Before paying on a counter, the server checks again that the buyer is still there and enough police are online.

Before the price is even looked at, the server works through the risks in this order:

  1. Crowd: too many people around and the buyer won't deal (Witnesses).
  2. Police alert: a witness calls it in, or the alert chance comes up (Police Alerts).
  3. Refusal: a flat 15% chance the buyer just says no, adjusted by the time of day, gang territory and heat.
  4. Robbery: gang members only (Robbery).
  5. Price: the table above.

A police alert can go out even when the deal goes through.

Heat

Heat is how much attention something has drawn. Selling warms up four things at once:

Heat onKeyLoses per real minute
AreaThe part of the map the sale was in (a grid of 250 m squares)1.5
CornerThe corner being worked2.0
DealerThe player's character1.0
NumberThe phone number that made a phone deal0.75

How much heat is added:

EventHeat
Any sale2, plus 0.25 per unit sold
A corner saleThe sale's heat × 1.5
A witness who calls it in4 per witness: to the area on the street and at meets, to the corner on a corner
A police alert8 to the area
A robbery5 to the area
A burner-to-burner text0.5 to the sender's number
A completed police sting16 to the area and to the dealer's number

Heat tops out at 100. The hottest of everything a sale touches raises the risk in a straight line, up to these extra chances at 100 heat:

At maximum heatExtra chance
Buyer refuses+25%
Police are alerted+30%
Buyer robs+10%

So at 50 heat, a street sale has +15% alert chance on top of the normal 15%.

Heat is saved to the database once a minute, so it survives a restart. An admin can check the heat where they stand with /drugselling heat (see Admin).

Witnesses

The server counts the living, non-player people within 15 m of a sale, not counting the buyer. At a bulk buyer's meet, their own bodyguards don't count either (see Bulk Buyers).

  • 4 or more people nearby: the buyer won't deal. The player sees "Too many people around."
  • Fewer than that: each person has a 5% chance to call it in. One snitch is enough for a police alert, and each one adds heat.

Players work somewhere quieter, or accept the risk.

Time Of Day

The in-game hour changes how willing buyers are (accept) and how busy things are (demand):

HoursLabelAcceptDemand
21:00 to 04:00Night1.21.3
04:00 to 10:00Morning0.70.6
14:00 to 18:00Afternoon1.01.1
Any other hour—1.01.0
  • Accept divides the refusal chance. At night 15% becomes 12.5%; in the morning it becomes about 21%.
  • Demand makes corner buyers arrive faster and phone clients text more often.

The server reads the in-game clock from oxide-weather if you run it. Otherwise it asks up to three players' games for the time once a minute, takes the middle answer, and keeps its own copy running between checks. Until it has its first answer after a restart, the clock is unknown: every hour counts as 1.0, and phone clients answer at any hour.

Robbery

Buyers on the Gang models list (Families, Ballas, Lost MC, the Mexican gangs, Salvadorans and Koreans by default) have a 15% chance of robbing the player on the street or at a corner, plus any extra from heat.

When it happens:

  • up to 3 units of the offered drug are taken
  • 25% of the player's dirty money is taken
  • the robber pulls a pistol, holds the player up for a few seconds, then runs
  • the player sees a Robbed screen with what they lost, and the area gets 5 heat

Phone clients and bulk buyers can rob too, at a meet. See Meets and Bulk Buyers.

Police Alerts

WhereWhat can trigger an alert
Street and cornersA witness calling it in, or the 15% alert chance (plus heat) on every offer
Phone meetsA witness calling it in, or the heat alert chance. There's no flat chance
Police stingsEvery hand-off to an undercover buyer, and every dead drop an undercover buyer collects

The alert carries the code (10-31 for sales, 10-66 for stings), the message, and a map blip at the spot where it happened.

  • Without a dispatch resource, every player with a job on the Police jobs list gets a notification and a map blip.
  • With a dispatch resource that o-link supports (ps-dispatch, cd_dispatch, qs_dispatch, lb-tablet and others), the alert goes into your dispatch system. With most of them, the alert is handed to your dispatch resource through an online police officer's game (an on-duty one, if Only on-duty police is on), so an alert only goes out while such an officer is online.

The server decides every alert. It never goes through the seller's game, so a seller can't block it. Write the Police jobs as your framework names them (for example police), because the same list decides who counts toward Police needed online.

Dirty Money

Sale money is paid as dirty money, and robberies take from the same place. Every sale that pays shows a notification, like "Paid $75 for 3 x Weed (1g)", and picking up cash from a dead drop shows "You picked up $450". If a street, corner or meet sale can't pay (for example, the inventory has no room for the bills), the sale is cancelled and the drugs are given back. A dead drop that can't pay the player leaves the cash at the drop instead.

SettingQBCoreQBXESX
Framework dirty money (default)markedbills items, one bill per sale with its worth written on itblack_money items, $1 eachblack_money account
An accountThe account you nameThe account you nameThe account you name
An item ($1 each)The item you pickThe item you pickThe item you pick

When a robber takes marked bills, they take the biggest bills first and hand back the change as a new bill.

Corners

A player carrying drugs can work a corner wherever they're standing. Buyers then come to them.

Working a corner

Type /corner, or pick Work corner in the radial menu. The player must be on foot with something to sell.
The server checks enough police are online and that nobody else is working a corner within 40 m. The corner is the spot where they started, and the player can move up to 15 m from it.
Every so often (between 25 and 70 seconds, faster at busy times of day) a buyer is sent. The player gets a notification: "Someone is approaching". What they want only shows once they're standing there.
A walk-up buyer is a local already nearby when there is one, otherwise someone who walks up from about 35 m away. A drive-up buyer parks at the kerb nearest the player, gets out and walks over; after the deal they walk back to their car and drive off. The Buyers setting picks walk-up, drive-up or both.
Standing next to the buyer shows [E] Deal: they want 2 x Weed. The sell menu opens with the request at the top, and the quantity can't go above what they asked for.
The player sells what was asked, offers something else, or closes the menu to send the buyer away.
/corner again, or the radial item (now Stop corner), stops it.

What buyers ask for

The Demand list sets the drugs buyers ask for, how often, and what they pay against the fair price. A buyer asks for 1 to 3 units of one drug from that list. Drugs whose items don't exist on your server are skipped.

Most buyers ask for a drug the player is carrying, so someone who only sells one drug still gets steady business. 15% of buyers ask for anything on the list instead, even a drug the player doesn't have.

  • Selling what they asked for uses that drug's price multiplier. A multiplier of 1.5 means corner buyers value it 50% higher.
  • Offering something else works, but buyers accept a substitute only 60% as often, and the multiplier doesn't apply. A refusal here reads "That's not what they came for."
  • Offering more than they asked for is refused: "They don't want that many." The sell menu already stops the quantity at what they asked for.

Everything else (witnesses, alerts, refusals, gang robberies, counter-offers) works as on the street. A buyer who counters only takes their own counter; the player accepts it or sends them away. Corner sales add 1.5× the normal heat, to the area, the dealer and the corner itself.

When a corner closes

ReasonWhat the player sees
/corner or the radial item"You stopped working the corner"
Walked more than 15 m (plus 5 m of slack) from the spot"You left the corner"
3 minutes without dealing with a buyer"The corner went quiet"
An admin switched corners off"Corner selling was switched off"
Ran out of product when a buyer arrived"You're out of product"

Street selling is paused while a player works a corner. If the player hasn't started dealing with a buyer within 75 seconds of them being sent, the buyer leaves and the next one is scheduled.

The Trap Phone

A cheap TrapFone candybar (a parody of the prepaid phones sold at gas stations) with a small colour screen, a signal meter, a battery meter and a clock. Drive it with the keyboard, or click its keys with the mouse.

Opening it

  • Use the Trap Phone item from the inventory, or
  • press the Open trap phone key. It's unbound by default; players set it in Settings → Key Bindings → FiveM. It opens the first trap phone they carry (the same as /trapphone).

While it's open the player holds a phone and plays a texting animation. The phone takes the whole keyboard, so no other key or hotkey does anything, but the player can still walk on foot with W A S D and run by holding Shift, even while typing. The mouse becomes a cursor for the phone's keys, so the camera doesn't turn. The phone puts itself away if they die, swim or are knocked over.

Controls

KeyWhat it does
Arrow Up / DownMove through a list, or scroll a conversation
EnterSelect. On the home screen it opens the menu; in a conversation it opens the options
1 to 9Pick that numbered row in a list
BackspaceBack. While typing, it deletes a character
EscBack. On the home screen it closes the phone
EndBack to the home screen. On the home screen it closes the phone
W A S D, ShiftWalk, and run while Shift is held (on foot)
0 to 9 while typing textLetters by tapping: press 2 once for a, twice for b, three times for c. 0 is a space, 1 is punctuation
# or Tab while typing textSwitch between lower case, upper case and digits

The numpad works too. With the mouse, click any key on the phone:

Key on the phoneSame as
Left key under the screen, green key, OKEnter
Right key under the screenBackspace
Direction padThe arrow keys
Red keyEnd
Number keys, * and #Typing, or picking a numbered row

Screens

  • Home: the clock, how many new texts are waiting (or the phone's reputation tier), and the phone's number.
  • Messages: every conversation, newest first. New ones are marked with *.
  • Contacts: the phone's clients, with their type, trust, hours, what they thought of the last batch, and how many deals they've done. Burner numbers the phone has texted are listed too.
  • Meets: booked meets, soonest first, with the time, the street and Set GPS.
  • New text: text another burner's number.
  • Settings: Vibrate only / Ring on, Set PIN / Change PIN / Remove PIN, Insert SIM (only when carrying a SIM), Backlight off / Backlight on, Power off and Destroy phone. A switched-off phone gets no new orders and can't be traced, and texts sent to it wait until it's back on. Using it again switches it back on.

One phone, one book

Every phone item gets a hidden ID the first time it exists. Its number, PIN, battery, clients, texts and meets are all saved under that ID in the database. That means:

  • The book belongs to the phone, not the character. Hand the phone to someone and the whole book goes with it.
  • The first person to use a phone becomes its registered owner. That's the name a police trace can show (if you allow it).
  • A new phone starts with 3 clients who live near where it was first used.
  • A PIN locks it. Anyone other than the registered owner who uses a PIN-locked phone has to type the PIN. Three wrong tries lock them out for 60 seconds. A phone without a PIN opens for anyone.
  • A blank phone from a shop or a give-item command gets its own number the first time it's used.

Battery

Default
Drain while switched on0.35% per real minute (a full phone lasts almost 5 hours)
Each text sent0.5%
Charging in a vehicle4% per real minute, just by sitting in any vehicle with the phone
Battery pack (trap_charger)+60% after 8 seconds

To use a battery pack, have the phone open, or carry only that one phone. A dead phone gets no new orders (texts sent to it wait until it's charged), can't send, can't be traced and can't be read by police. A switched-off phone that still has charge switches back on when an officer uses it.

Signal

  • Admins can draw no-signal areas (tunnels, basements) in the settings menu.
  • No signal indoors can make every interior a dead zone. It's off by default.

Without signal the phone can't send, and incoming texts wait until it's back in signal. The signal meter on the status bar shows empty.

Ringing

When a text arrives while the phone is put away, the phone slides half up from the bottom-right of the screen showing who it's from and what they said, then slides back after a few seconds. Several texts show one after another.

If the phone isn't on silent, it also rings, and everyone within 12 m hears it. On Vibrate only, nobody hears it; the holder still sees the text.

Clients

The phone's NPC clients are made on the server. Each one has an alias, a look, a home area, a persona, the hours they answer, a trust level, and a memory of your last deal.

Personas

PersonaHow commonBudget (share of base value)Counters before walkingGoes above their offer byOrder size
Broke2045% to 75%15%1 to 2
Cheap2570% to 90%38%1 to 3
Rushed1590% to 110%110%1 to 3
Regular3090% to 105%212%1 to 4
Rich10115% to 160%220%2 to 6

How far a client will stretch also grows with their trust (from 0.9× at trust 0 to 1.2× at trust 100) and with the phone's reputation tier.

Hours

Each new client answers during one of these windows on the in-game clock, and only orders during it:

WindowHours
Evenings17:00 to 01:00
Late nights21:00 to 05:00
Days09:00 to 18:00
Any timeAll day

Trust

Trust runs from 0 to 100. New clients start at 40.

What happenedTrust
A completed deal+5
On time+3
Late−6
Very late−12
No-show−18
A good batch (well above what they expect)+4
A bad batch (well below)−8
Their dead drop was taken by someone else before they got there−12
You took your own dead drop back−6
You cancelled a booked meet−6
They didn't follow you to a new number−10

At 5 or below, the client texts that they're done (for example "done with u") and leaves the book. The Contacts screen shows trust as Tight (80+), Good (55+), OK (30+) or Shaky.

Quality memory

After every deal the client remembers what they got. The quality is read from the pricing pipeline, so it means the same thing for every drug: the batch's fair price against the item's base price.

  • Fire: 15% or more above base. Trust +4, and their next offer is 8% higher.
  • Fine: in between.
  • Trash: 20% or more below base. Trust −8, and their next offer is 10% lower.

Getting more clients

  • Starter clients: 3 when the phone is first used.
  • Street buyers: after a completed street sale, 15% ask for the number.
  • Corner buyers: after a completed corner sale, 20% ask for the number.
  • Introductions: after a deal, a client with trust 70+ and 3+ deals has a 25% chance to introduce a friend who lives nearby.

New clients only join if the player is carrying a working phone with room in its book. The book holds 5 clients, plus more at higher reputation tiers. Players can rename or delete a contact from its Contacts page (names are typed on the keypad, like a text).

Orders

Every 30 seconds, each client of every phone carried by an online player may text an order. A client only orders if:

  • the phone is switched on, charged and carried
  • it's inside the client's hours
  • they know the phone's current number
  • they don't already have an order open, and their last order ended at least 7 minutes ago (half that after Not now or Don't got it)
  • the phone has fewer than 4 open orders

The chance is 10% per client per check, times the phone's reputation order rate, times the time-of-day demand.

A new phone doesn't wait for that: the first of its starter clients answers at any hour and texts an order about 20 seconds after the phone is first used.

What clients ask for

Clients ask forItems that fill it
gramsweed_1g
eighthsweed_eighth
methany meth baggy
cokecocaine_bag
rockcrack_bag
party pillsparty_pill and molly_capsule, loose, bagged or blister-packed
barsbar_pill, loose, bagged, bottled or blister-packed
bluesblue_pill, loose, bagged, bottled or blister-packed
percsperc_pill, loose, bagged, bottled or blister-packed

Only rows whose items exist on your server are used. Each client prefers one or two of them.

The text and the replies

A client's text reads like "u around? need 2 grams. got $40". Their opening offer is the cheapest listed item's base price × quantity × their persona's budget share (moved up or down by what they thought of your last batch). The player opens the conversation and presses Enter for options:

OptionWhat happens
Accept $XThe price is agreed. The client asks when to meet
Counter priceType a price. If it's within how far they'll stretch, it's agreed. If not, they meet you in the middle, until their counters run out; then they walk
Offer lessOnly shown when they asked for more than 1. Type a smaller quantity. They keep the same price per unit, and it's agreed
Don't got itOnly shown when the player isn't carrying enough of what they asked for. The order closes with no penalty, and they'll ask again sooner than usual
Not nowThe order closes with no penalty, and they'll ask again sooner than usual
DeclineThe order closes

A client waits 5 real minutes for an answer (and again for a time to be picked) before giving up with a text like "too slow".

Booking

Once the price is agreed, Pick a time:

  • The client offers up to 3 times inside their hours: the first at least 2 in-game hours ahead, then every 2 in-game hours, skipping any time outside their hours.
  • Then How?: Hand-off or Dead drop (bulk buyers only do hand-offs).
  • While picking a time, the options also have Decline, and Don't got it when the player isn't carrying enough.

A hand-off point is on a pavement or road 40 to 220 m from the client's home (a dead drop uses a drop spot, see Dead Drops), and the client texts the street name and time. The meet appears on the Meets screen with Set GPS. A booked meet's options are Set GPS, Pass to number (see Burner Life) and Cancel meet (trust −6).

On a server with the standard GTA clock, two in-game hours pass in about four real minutes.

Meets

A hand-off is face to face.

From 30 in-game minutes before the booked time, the client appears once the player carrying the phone comes within 150 m of the meet point. About one in three drive up.
At the booked time they text that they're there. If the player is very late, they text again asking where they are.
Once the player is within 25 m of the client and inside the hand-over area, the client comes to them: on foot they walk over, by car they pull up at the nearest kerb. If the player leaves the area, a client on foot walks back to the meet point.
Standing next to the client (or their car) shows [E] Hand over 3 x meth for $450.
The sell menu opens with the deal locked in. The player picks which stack to hand over (only items that fill the order are listed) and presses Hand Over.

The server then checks the player is within 30 m of the meet point, it's inside the meet window, the client is standing there, enough police are online (Police needed online), the player is allowed to sell that drug (level requirement), the player has the full quantity, and the player didn't get there faster than any vehicle could drive.

Timing

When the player hands overCounts as
From 30 in-game minutes before to 10 after the booked timeOn time
Up to 60 in-game minutes afterLate
Up to 180 in-game minutes afterVery late
Later than thatNo-show: the client texts, loses 18 trust, gives up and leaves, and the order fails

What can go wrong

  • Crowd: 4+ people around and the client won't deal yet. The meet stays booked; move somewhere quieter.
  • Alert: a witness, or the heat alert chance, calls the police. This is checked before the crowd, so a heat alert can go out even when the client won't deal.
  • Robbery: 25% at trust 0, falling to nothing at trust 35 (plus heat). The client takes up to the order's quantity and 25% of the player's dirty money, then leaves the book. The phone's reputation isn't touched.

A successful hand-off pays the agreed price, not a price based on quality. The quality still counts: the client remembers it (see Quality memory).

Dead Drops

Instead of meeting, the player leaves the package and walks away.

The drop point is the drop spot nearest the client's home. 10 spots in south Los Santos ship by default, and admins add more with /drugselling drops. With no spots, clients only offer hand-offs.
A marker floats over the drop point for the player carrying the phone once they're within 20 m. It shows what to leave, the booked time and the distance.
Standing within 3 m of the point shows [E] Leave the package: 3 x meth. The package can be left from 30 in-game minutes before the booked time until the no-show time.
The player picks the stack and presses Hand Over. A bag appears on the ground where they stand, so they have to be right at the point (within 4 m). The marker changes to Package left. Leaving it needs enough police online and the drug's level requirement, like any other sale.
60 real seconds later the client collects it.

Payment depends on Payment:

  • Left at the drop (default): a cash envelope appears where the bag was, with a Your cash marker, and waits 10 real minutes.
  • Paid on collection: the money goes straight to the player, if they're online and carrying the phone. Otherwise it's left at the drop.

Only the player whose drop it is sees the markers. Everyone else just sees the bag or the envelope.

Anyone can see and take the bag, and the cash. Every player within 60 m sees them, and anyone on foot within 2 m gets [E] Take the bag or [E] Take the cash. Each player's game is only told about the drops near them, so nobody gets a map of every bag on the server.

If the bag is taken by...What happens
Someone elseThey get the drugs. The client texts (for example "someone took it before me"), trust −12, and the order fails
The player carrying the phone that handles the dropThe client texts, trust −6, and the order fails

Late or on time is judged when the package is left. There are no witness checks at a dead drop; heat is added when the client collects.

Reputation

Each phone has a reputation. Every change in any client's trust moves it by the same amount (it never drops below 0). Reaching a new tier sends a "Word is getting around" text from Network.

TierFrom reputationOrder rateExtra book slotsPrice stretchBulk buyers
Nobody01.0×+01.00×No
Corner Boy601.0×+21.03×No
Hustler1801.15×+41.06×No
Plug4001.3×+71.10×Yes
Kingpin8001.5×+101.15×Yes

Bulk Buyers

Big contacts who only deal with a phone at a tier with Bulk buyers (Plug and up).

  • While a phone has fewer than 2 bulk contacts, each order check has a 2% chance one reaches out.
  • They order big and pay 80% of base value, and will only go 5% above their opening offer.
  • Meets are always hand-offs, never dead drops.
  • They arrive with 2 bodyguards, in their car or on foot. The bodyguards don't count as witnesses: up to that many peds of the bulk buyer's models, standing within 15 m of the buyer, are left out of the count at a bulk meet.
  • Ambush: 12% at trust 0, falling to nothing at trust 100 (plus heat). The bodyguards open fire, the goods are taken and the bulk contact leaves the book. No cash is taken. After about 30 seconds the bodyguards put their guns away, stop attacking and leave.
  • A bulk contact orders again no sooner than 14 minutes after their last order ended (twice the normal client wait), during their hours, with the same 2% chance per order check.
They ask forItemsQuantity
ouncesweed_ounce, weed_brick3 to 8
methmeth_baggy, meth_baggy_glass, meth_baggy_blue_sky, meth_baggy_ice20 to 50
brickscocaine_brick1 to 3

Burner Life

SIM swap

A Prepaid SIM (trap_sim) gives a phone a new number. Use Settings → Insert SIM on the phone, or use the SIM item while the phone is open (or while carrying only that one phone).

  • The phone gets a new number. The old one stops existing: texts and traces to it fail.
  • The new number starts with no heat.
  • Every client stops ordering until they're told. In each client's conversation (or on their Contacts page), pick Send new number. The chance they follow is 35% at trust 0, rising to 100% at trust 100. If they don't, they text back (for example "who dis") and lose 10 trust.
  • Other burners that knew the old number have to be texted from the new one.

Destroying a phone

Settings → Destroy phone, confirmed twice. The item is removed, every text is wiped, every client is gone, and all open orders and meets fail. There's nothing left for police to read.

Burner-to-burner texting

New text, type the other phone's number (the dash is added for you), write the message and press Enter. Texts can be up to 160 characters. Each one uses battery and adds a little heat to the sender's number. The conversation appears under the number in Messages, and the number appears in Contacts.

Passing a meet

A crew can share one book. In a booked meet's conversation, pick Pass to number and type a crew member's burner number. Their phone gets a text saying who to meet and where, and the meet appears on their Meets screen. From then on, only the person carrying that phone can do the hand-off or leave the drop. Trust and reputation still go to the phone that owns the client.

Police: Seized Phones

A trap phone is a normal inventory item, so whatever your police use to search people, confiscate items or store evidence already moves it. No police resource is needed for this part.

Evidence View

An officer (a job on the Evidence → Jobs list, at or above Minimum grade, and on duty while Only on-duty police is on) who uses a trap phone they aren't the registered owner of gets Evidence View instead of the normal phone. The phone shows an EVIDENCE banner and is read-only:

  • the phone's number, and its registered owner if Names the registered owner is on
  • Messages: every conversation (reading them doesn't mark them as read)
  • Contacts: the clients, with type, trust and deal counts, and any burner numbers
  • Meets: booked meets, with time, street and Set GPS
  • Send report: send everything to an MDT case (see below)

The phone must have charge. A phone that was only switched off switches back on. A dead phone shows "The phone is dead. It needs a charge before you can read it." Charge it in a vehicle or with a battery pack.

Getting in

ModeWhat the officer has to do
Timed extraction (default)Wait through a 15-second progress bar. You can require a tool item for it
Needs the PINType the phone's PIN, if it has one. A phone without a PIN opens straight away
Opens straight awayNothing

Number traces

In Evidence View, a conversation with another burner number, or that number's Contacts page, has Trace number.

  • It works if the traced phone is switched on, charged, carried by an online player, and not inside a no-signal area (No signal indoors doesn't stop a trace). Otherwise: "No trace".
  • The officer's map shows a red circle with a 150 m radius and a pin, for 60 seconds. The phone is somewhere inside the circle, not necessarily at the pin.
  • Each officer can trace once every 2 minutes. A trace that finds nothing still uses it up.
  • It shows the registered owner's name only if Names the registered owner is on.

NPC clients don't have numbers, so only other players' burners can be traced.

Reports

Send report asks for a case number, then sends a report of the phone to your MDT through a bridge:

  • With oxide-police, the report is attached to that case as a case entry. The officer must be on duty and the case must belong to their department.
  • With no bridge running, the phone says "No case system".

Type the case number with the keypad: # switches to digits, and the dash is on key 1. See Evidence Bridge to connect another MDT, or to log reports without one.

Police: Stings And The Heat Map

The Sting Phone (sting_phone) works for players in Stings → Jobs (on duty, if Only on-duty police is on). It opens like a trap phone with an UNDERCOVER banner and up to three options: Post buyer, My stings and Heat map.

Post buyer

Pick what the fake buyer wants (the same list phone clients order from), type a quantity (1 to 100), then a price. The price can't be more than 1.5 times the goods' base value, so a sting can't be used to hand a dealer money. A quantity or price outside these limits shows "Not sent".
The server picks one dealer: a player carrying a working trap phone, not an officer who can use the sting phone, with heat of at least 10 (the highest of their number, the area they're in, or their own). Hotter dealers are more likely to be picked. If nobody qualifies: "Nobody bit".
The fake buyer joins that dealer's book as a new client and texts the order. It looks exactly like any other client.

Only one sting can be posted every 30 minutes, across the whole server.

What the officer learns

  • When the dealer books a meet, the officer gets a notification with the time and street.
  • My stings lists each running sting with its status (Waiting or Meet booked), and once booked the time, the street and Set GPS. A sting leaves the list when it ends.
  • When the dealer hands over, the goods are gone and the dealer isn't paid. The dealer sees "It's a setup!", the officer gets "The dealer handed over to your buyer", an Undercover buy completed (10-66) alert goes to police at the spot, and the area and the dealer's number get heat.
  • If the dealer books a dead drop instead, the undercover buyer "collects" it: the goods are seized, the alert goes out at the drop, and the dealer is never paid.
  • If the dealer declines, lets the order expire, cancels, takes their own drop back or doesn't show, the officer gets "Your sting went nowhere". The fake buyer leaves the dealer's book when the order ends.

Heat map

Heat map marks every area with heat of at least 30, as it was 5 minutes ago, with red circles on the officer's map for 60 seconds. The delay means it shows where dealers were, not where they are. Each officer can open it once every 30 seconds. The server keeps this history in memory, so for the first 5 minutes after a restart the map shows nothing.

Pricing Pipeline

Every sellable item has a fair price. It starts from the item's base price, and each modifier in the drug's config changes it:

fairPrice = basePrice * (all multipliers combined) * (1 + all bonuses added up)

Multipliers scale the price (purity, variant). Bonuses stack on top (strong strain traits). The whole calculation comes from the modifiers list in shared/config/drugs.lua.

Modifier typeWhat it reads
grade_multiplierA grade on the item (like purity = 'High')
score_multiplierA 0–100 score on the item, on a curve, with a grade fallback
variant_multiplierA variant on the item (like variant = 'blue_sky')
trait_bonusTraits looked up from another resource's export (weed strains)
metadata_bonusA number on the item that adds a bonus per step (weed generation)
export_multiplierA multiplier from another resource's export, which can price by who the buyer is (pills)

Shipped weed pricing

A score_multiplier on quality_score (falling back to the quality grade), a trait_bonus from oxide-weed's GetStrainData, and a metadata_bonus on generation.

ItemBase price
weed_1g25
weed_eighth75
weed_quarter140
weed_half260
weed_ounce480
weed_brick800

Shipped meth pricing

All 11 meth baggies have a base price of 140. A grade_multiplier on purity and a variant_multiplier on variant (from 0.7 for Street Mix to 1.6 for Blue Sky) set the real price.

Shipped cocaine pricing

ItemBase price
cocaine_bag200
crack_bag120
cocaine_brick2500

A grade_multiplier on purity scales it: Pure pays the most, down through High, Mid, Low and Dirty.

Shipped pills pricing

ItemLabel in the sell menuBase price
party_pillParty Pill30
molly_capsuleAURA Capsule35
bar_pillNOVA Bar25
blue_pillVELA 3045
perc_pillAXIA 1035

Bagged, bottled and blister-packed pills use the same base price as the loose pill. An export_multiplier asks oxide-pills for the price of each sale: it weighs who the buyer is, the batch, the packing and the brand. Without oxide-pills running, pills sell at base price.

Gang Territory

With oxide-gangs, gang territories change sales made inside them:

  • the territory's price setting multiplies what the buyer pays, for every way of selling
  • the territory's buyer density setting divides the street and corner refusal chance
  • every sale is reported to oxide-gangs, so it builds the seller's gang influence there (the gang system's own limits apply)

The price shown to the player is the price actually paid, bonus included. Without oxide-gangs, or outside any territory, nothing changes. The per-territory modifiers are set in oxide-gangs — see its configuration.

Progression Integration

Each drug can link back to the resource that makes it:

DrugResourceLevel neededXP per sale
Weedoxide-weed210 per gram (an ounce pays 240, a brick 350)
Methoxide-methnone15 per item
Cocaineoxide-cocainenone15 per item
Pillsoxide-pillsnone3 per item
  • Players below the level can't sell that drug, and see "Requires level 2". The server checks this on every way of selling: street, corner, phone hand-offs, bulk hand-offs and dead drops.
  • Every sale, whichever way it's made, gives XP and adds to the sold count in that resource. The sold count is the number of items.
  • Weed XP follows weight, so a crop earns the same XP whether it's sold as grams or as ounces and bricks. Each item's weight for XP is its xpUnits in shared/config/drugs.lua (see Configuration).
  • If the resource isn't running, the level check and XP are skipped and the sale goes through.

Sale Hook

Every completed sale can tell your other systems about it, without touching the protected code. Use either or both:

  • Config.OnDrugSold in shared/config.lua, where you write your own code
  • the oxide-drugselling:drugSold server event, from any of your resources

Both run on the server once the sale is settled (for a dead drop, when the client collects), with who sold, the drug and item, the quantity, the progression units (xpUnits), the price, the payout mode, and the method (street, corner, phone, drop or bulk). Sales to an undercover buyer aren't sales, so they don't run it. See Configuration → File-Only Settings and Exports → oxide-drugselling:drugSold.

Settings Menu

Admins change almost everything live with /drugselling settings: street selling, heat, corners, the phone, clients, meets, dead drops, reputation, evidence, bulk buyers, stings and model swaps. Drop spots and no-signal areas are placed directly in the world. See Configuration and Admin.

Protections

  • Every price, outcome, cooldown, payout and alert is decided on the server.
  • A street sale is priced against the buyer it started with. A player can't open with one buyer and finish with a better-paying one.
  • A buyer who makes a counter-offer only takes that counter. A player can't keep re-offering until a roll goes their way.
  • The drug's level requirement is checked on the server for every sale, not only in the sell menu.
  • Meet hand-offs check the player's position, the time, and how fast they got there.
  • Item removal is all or nothing: if taking the items fails part-way, what was taken is given back.
  • Other players' games only replay a buyer's movements and animations for an NPC the seller controls and is standing next to, and only this resource's own animations and weapons.
  • Each player's game is only told about the dead drops near them.
  • Each request a player can send is rate-limited:
RequestOnce every
Load sellable items3 s
Street offer5 s
Accept a counter-offer5 s
Start a corner2 s
Corner offer3 s
Open the phone by key1 s
Phone button0.25 s
Send a text or reply1.5 s
Meet hand-off2 s
Leave or take a drop1.5 s
Post a sting3 s

Next Steps