Oxide Pills
Hands-on pill production for FiveM — mill, blend, press, sort and pack tablets by hand, with a hidden quality profile on every batch, player brands, counterfeits, a rotary press crew and a pharma delivery run.
oxide-pills is a hands-on pill production resource for FiveM roleplay servers, built around a five-stage production line:
Mill -> Blend -> Press -> Sort -> Pack
Players grind raw actives with a mortar or a blade grinder, pour their own formula into a stand mixer by hand, press tablets on a hand-cranked or electric press, pick the duds off the catch tray, and pack the rest into baggies, labelled pharmacy bottles or sealed blister cards. Every batch carries a hidden quality profile (potency, integrity, imprint, finish and consistency) stored on the server against a batch ID, and nobody sees the numbers until someone destroys a tablet at the light box to read them.
The resource ships with 5 product lines (Party Pills, NOVA Bars, VELA Blues, AXIA Percs and AURA Capsules), 17 placeable stations (a lab workbench, 11 benchtop machines and 5 floor machines), 59 inventory items, 3 packings, player brands with 8 symbols, 4 street buyer types, a 10-level progression track, a three-role rotary press crew, and a pharma delivery run across 7 drop points. On top of that come overdoses, mystery powder that might be fentanyl, police evidence, and brands that build a reputation across the server. oxide-pills runs on QBCore, QBX and ESX through o-link.
Key Features
- Server-Enforced Production — Clients send discrete gestures (grinder revolutions, pours, crank strokes, scrubs) and the server applies every timing, cap and rate limit. A client never submits a score
- Per-Tablet Quality Simulation — Each tablet is scored from the press state when it was struck, the batch is the average of the tablets kept, and only the batch ID rides on the item. There is no single "purity" number
- Level-Based Information Reveal — Gauges show zones at levels 1-2, exact values at 3-5, and each tablet's defect at 6-10 (
Config.Skill.Reveal). Level never lowers a stat; it only narrows the spread between tablets - Five Product Lines — Party Pills, NOVA Bars, VELA Blues, AXIA Percs and AURA Capsules, each with its own potency window and defects (snapped bars, dented and leaking capsules), plus counterfeit match scoring for VELA Blues and AXIA Percs
- Milling by Hand — A mortar and pestle ground by circling the mouse, and a blade grinder you pulse and knock clean before it cakes. The ball mill grinds a whole load at once, and rejects can be reground
- Hand-Poured Stand Mixer — Pick up each ingredient and pour for as long as you want it in the bowl, with per-ingredient pour rates, fill-dependent uniformity and 6 dye colours for party pills
- Two Single-Punch Presses — A crank press where pace sets the fill and uneven strokes cost quality, and an electric press with 4 speeds. Both have 5 fill-depth and 5 force detents
- Die Residue and Die Wear — Residue builds as you press and is scrubbed off the die by hand with a brush. Wear is stored on the die set and follows it from press to press
- Tray Sorting — Throw out crumbled, capped, chipped, picked, blurred and patchy tablets before the batch is counted. Sorting is restart-safe, with an optional reject bin, and thrown-out tablets become reject items
- Die Engraver and Player Brands — Cut tooling to a product line and stamp its face. Brands have server-unique names and one of 8 symbols, 2 per character, with reputation from -100 to 1000 across 5 tiers that sales build and overdoses and seizures damage
- Three Packings — Baggies (12 per bag, filled by dragging piles), labelled bottles (30 per bottle, 5 label templates) and sealed blister cards (10 per card), each with its own packed item per line and its own knock protection
- Finishing Stations — Granulating sieve, drum tumbler, pan coater and hardness tester. The tumbler, ball mill and coater run on their own and hold their output for the player who loaded them
- Capsule Filling Board — AURA Capsules are filled by hand on a 5 x 6 plate: spread, tamp and cap 30 shells at a time
- Rotary Press Crew — A floor press for up to three players (feeder, sorter and packer), or one player alone, with a 3-blend hopper, 4 turret speeds, a 24-tablet output tray and per-role XP
- Dust — Milling and pressing put powder in the air. A wearable dust mask other players can see, and a placeable dust collector, keep it off your lungs
- Mystery Powder and Reagent Tests — A reagent test kit (5 tests) shows a sample's drug class by colour. Mystery powder lots are rolled server-side as MDMA, a cutting agent, amphetamine or fentanyl
- Taking Pills and Overdoses — Usable pills with 3 effect types, overdoses from hot batches or stacked doses,
oxide-medicalconditions when installed, and brand reputation penalties - Pills That Break — Crashes, falls and time break tablets, scaled by integrity and packing. Broken tablets become rejects that can be ground back down
- Street Pricing — Sales through
oxide-drugselling2.0.0 or newer are priced by thePriceForexport, with 4 buyer archetypes fixed by ped model who each judge a batch differently - Pharma Delivery Run — From level 5: 4 drops per run chosen from 7 points, one blister card handed over per drop, cash pay per tablet, and laundering that uses each framework's own dirty money by default
- Pill ID (RxTrace) — A brand and counterfeit-imprint lookup, standalone or as an
oxide-tabletapp, with on-duty police evidence logging and an optional press serial trail - 10-Level Progression — Stored per character in the shared
drugs_progressiontable, with XP for every stage, stations and product lines unlocked by level, and two level-10 perks - In-Character Manual — The
pill_manualitem (Pressing Manual) covers the whole trade, from milling to selling - Live Settings Editor —
/pills settingsstores every setting in the database, validates on save and applies without a restart. Placement zones are drawn in the world - Placement Controls — Workbench slots, blocked or allowed zones, ownership checks, and a per-item job and gang usage whitelist
- Police Alerts — Optional alerts per production stage and delivery handoff, with a per-site cooldown, through any dispatch resource
o-linksupports (includingoxide-dispatch). Off by default - Gang Territory —
oxide-gangsterritory modifiers for machine speed, output and delivery pay - Model Safety — Missing models are reported to admins instead of hanging, and
Config.ModelSwapsreplaces them on older game builds - One Command —
/pills statsand/pills pillidfor players, plus admin subcommands/pills settings,/pills kit,/pills setleveland/pills traytest - Developer API — Server exports
GetPlayerLevel,GetPlayerProgression,AddXP,AddSold,PriceFor,GetSettingandSetSetting
Requirements
Required
| Resource | Purpose |
|---|---|
o-link (1.9.1 or newer) | Framework abstraction for character identity, inventory and item metadata, money, notify, targeting, station placement, usable items, dispatch and logging |
ox_lib | Locale and animation loading |
oxmysql | Database access for progression, equipment, batches, brands and settings |
| A targeting resource | Station interaction options through o-link: ox_target, qb-target, sleepless_interact, tgiann-target or oxide-target |
ox_inventory (ESX only) | ESX's built-in inventory and hex_4_inventory are not supported. QBX and QBCore run on their default inventories |
Check your o-link version. Versions before 1.9.0 can't place pill stations, and 1.9.0 puts police alert blips in the wrong place when you don't run a dispatch resource. Use o-link 1.9.1 or newer. See Installation.
Optional
| Resource | Purpose |
|---|---|
oxide-drugselling (2.0.0 or newer) | Street sales, priced per buyer through the PriceFor export. Older versions can't sell pills |
oxide-tablet | Pill ID as a tablet app. Without it, players use /pills pillid |
oxide-medical | Overdoses recorded as medical conditions that EMS can see and treat. Without it, pills plays its own overdose effect |
oxide-gangs | Territory speed, yield and price modifiers for the lab and the delivery run |
A dispatch resource supported by o-link (such as oxide-dispatch) | Police alerts from labs and delivery handoffs, placed at the lab. With none installed, police get a short notification and a 30-second blip on the lab. Alerts are off by default |
Supported Frameworks
| Framework | Support | Inventory |
|---|---|---|
QBCore (qb-core) | Full | qb-inventory (the default, with the pill items set to unique = true) or ox_inventory |
QBX (qbx_core) | Full | ox_inventory (the default) |
ESX (es_extended) | Full | ox_inventory only |
oxide-pills talks to your framework through o-link, so there is no framework-specific setup in the script. Run a supported inventory, register the items, and it works. On QBX, also check the laundering setting (see Installation).
Database
All tables are created automatically at first start — no SQL script to run.
| Table | Stores |
|---|---|
drugs_progression | Shared drug progression table; pill rows use drug = 'pills' |
drug_equipment | Shared placed-equipment table; pill rows use types prefixed with pills_ |
pills_workbenches | The table model and slot count each workbench was placed with |
pills_machine_mounts | Which workbench slot each benchtop machine occupies |
pills_batches | The hidden quality profile, stamp, brand and history of every pressed batch |
pills_machine_state | Press die residue, plus trays and machine output waiting to be collected |
pills_die_wear | The wear the server has recorded for each die set, by serial |
pill_brands | Player brands with reputation, sales, seizures and overdoses |
pills_lots | The true drug class of each mystery powder lot |
pills_seizures | Pills logged as police evidence, and where |
pills_serials | Press serial numbers and who placed each press |
oxide_settings | Shared live-settings storage; pill rows use resource = 'oxide-pills' |
Frontend
Vue 3 + Vite + Tailwind CSS for the stage HUDs, station menus, the stats card, Pill ID, the in-game Pressing Manual, and the admin settings editor. The interface ships ready to use in web/dist. There is nothing to build, compile, or install for it.
Quick Start
Place oxide-pills in your resources folder.
Start it after your framework, your other scripts and o-link:
# 1. Framework — everything your framework requires (qb-core, es_extended, qbx_core, etc.)
ensure <framework>
# 2. Scripts — your other resources (phone, inventory, garages, etc.)
ensure <your-other-scripts>
# 3. o-link — the bridge. Starts after your framework/scripts, before any Oxide resource.
ensure o-link
# 4. Oxide resources — keep these together, ideally in a folder named [oxide]
ensure oxide-pillsAdd the pill items to your inventory: paste items/ox_inventory_items.lua into ox_inventory, or add the qb-inventory block from Installation to qb-core/shared/items.lua.
Copy the images from items/ into your inventory's image folder, then restart the server. The database tables are created automatically on first start.
Decide how players get the raw ingredients. Nothing is sold anywhere by default — put them in a shop, a black market or a job reward.
Look over the starting values in shared/config/, then fine-tune anything you like in game with /pills settings.
See the Installation Guide for the full setup flow.
Settings are stored in the database after the first start
The shared/config files are the starting values only. The first time the resource runs, it copies them into your database, and from then on you change settings in game with /pills settings (admin only). Editing the config files on a server that has already started once won't change most settings. See Configuration.
Progression Highlights
| Level | Unlocks |
|---|---|
1 | Workbench, Crank Press, Stand Mixer, Reject Bin, Dust Collector, Mortar, Party Pills, baggies |
2 | Blade Grinder |
3 | Light Box, Die Engraver, NOVA Bars; readings show exact numbers |
4 | Brands |
5 | Electric Press, Label Printer and bottles, VELA Blues, AXIA Percs, the delivery run |
6 | Hardness Tester, Drum Tumbler, granulating; the press names each tablet's defect |
7 | Capsule Filling Board, Ball Mill, Pan Coater, AURA Capsules |
8 | Blister Sealer and blister cards |
9 | Rotary Press |
10 | Die sets wear 40% slower; brand reputation builds 25% faster |
The full table is in Features.
Documentation
Installation
Dependencies, inventory support, all 59 items, and verifying the lab.
Configuration
Every setting, its menu location and default.
Features
Every station, the tablet profile, brands, selling, and progression.
Admin Tools
The /pills command, the settings menu, and permissions.
API Reference
Server exports and item metadata.
Troubleshooting
Common problems and how to fix them.