Admin Guide

The /pills command — the live settings editor, the lab kit, setting levels, the tray test, player commands, Machine Test debug mode, police alerts and permissions.

Commands for testing and managing oxide-pills.

Everything runs through one command, /pills, followed by a subcommand. Typing /pills on its own shows the list of subcommands.

Commands Overview

CommandWhat it doesWho can use it
/pills statsShows the player's own level and XP cardEveryone
/pills pillidOpens Pill ID, the brand and imprint lookupEveryone
/pills settingsOpens the in-game settings menuAdmins (see Permissions)
/pills kitGives a full pill lab starter kitAdmins
/pills setlevel [id] [level]Sets a player's pill levelAdmins (also works from the server console)
/pills traytest [tint] [line] [symbol]Fills a press tray with one tablet of every defect, to see what each looks likeAdmins

Settings Menu

/pills settings

Opens an in-game editor for the resource's settings: the values stored in the oxide_settings database table (see Configuration). Changes apply live and are saved to the database straight away, with no restart and no file editing.

  • Settings are in a sidebar of four categories (Core, Lab, Players, and Advanced) holding 12 sections.
  • A Basic / Advanced switch at the top picks which settings you see, and a search box jumps straight to a setting. Some sections (Usage Whitelist, Quality, Dispatch) only appear once you switch to Advanced.
  • Fields you've edited but not saved are marked changed, and Save Changes saves them. Reset to default puts a whole setting back to the value from the shared/config files and saves it straight away.
  • The placement zones are drawn directly in the world: the menu hides, you place the corners of the area, then the menu comes back. Each zone has a Teleport button to jump to it.
  • A few settings live only in the config files. Configuration explains which, and how to change them.

Only admins can open the menu, and every save is checked again on the server, so a non-admin can't change settings even by faking the request. Drawing zones in the world needs an up-to-date o-link (it provides the drawing tool). If yours is out of date, the menu tells you.

Admin Commands

/pills kit

Gives you everything you need to try every station:

  • 1x Lab Workbench
  • 1x every machine: Crank Press, Blade Grinder, Stand Mixer, Light Box, Die Engraver, Electric Press, Label Printer, Hardness Tester, Capsule Filling Board, Ball Mill, Blister Sealer, Reject Bin, Dust Collector, Drum Tumbler, Pan Coater, Rotary Press
  • 1x Mortar & Pestle, 1x Granulating Screen, 1x Punch & Die Set, 1x Dust Mask, 1x Reagent Test Kit, 1x Pressing Manual
  • 10x each raw active: Party Powder, Pharma Bottle, Mystery Powder
  • 10x each additive: Tablet Filler, Tablet Binder, Die Lubricant, Tablet Dye
  • 5x Cleaning Brush, 5x Cleaning Solvent
  • 5x Granulating Fluid, 5x Coating Solution
  • 100x Empty Capsule
  • 10x each packaging: Pill Baggie, Pill Bottle, Blister Sheet

The kit is heavy. With the suggested item weights it comes to about 139 kg, more than a default player inventory holds on QBCore, QBX or ESX. Anything that doesn't fit, or that isn't registered in your inventory, is skipped, and you see "N of M kit items could not be given (inventory full or item not registered)" instead of "Pill lab kit received". Make room first, or give yourself the pieces you need with /giveitem [your server ID] [item name] [amount] (qb-inventory and ox_inventory both have it).

Each workbench holds 2 machines by default, and the kit gives one workbench. To try several benchtop machines at once, give yourself more pill_workbench items, or pack machines up and swap them.

Many stations are level-gated (see Features), so raise your own level with /pills setlevel to try them all.

Run it in game on a test character. From the server console it just tells you to run it in game, because the items go to a player.

/pills setlevel [id] [level]

Sets a player's pill level, and sets their XP to that level's starting amount.

Parameters:

ParameterTypeRequiredDescription
idnumberYesThe player's server ID
levelnumberYes1 to 10 (with the default level table)

Examples:

/pills setlevel 1 5     -- player 1 to level 5 (electric press, label printer, VELA Blues, AXIA Percs)
/pills setlevel 1 10    -- player 1 to max level

Output:

  • Success: "Set player 1 pill level to 5 (1200 XP)"
  • Failure: "Usage: /pills setlevel [id] [level]", "Invalid level. Valid: 1-10", "Player 1 is not online", or "Player 1 has no loaded character"

The player must be online with a character loaded. The new level applies straight away. This command also works from the live server console (txAdmin or terminal), where no permission is needed.

/pills traytest [tint] [line] [symbol]

A visual check. Stand at a press (crank or electric press, or the capsule board) and run it: the press's tray fills with 12 tablets, one of each defect plus clean ones, at the real sorting camera. You can sort it like a real tray to see how each defect reads in game.

ParameterTypeRequiredDescription
tintnumberNoParty pill colour, 0–7 (default 0)
linestringNoparty, bar, blues or perc (default party). AURA Capsules can't be tested this way.
symbolstringNoA brand symbol to show on the good tablets (party only): pulse, bolt, star, crown, skull, heart, diamond, moon
/pills traytest                -- pink party pills
/pills traytest 3 party skull  -- purple party pills with the Skull brand symbol
/pills traytest 0 bar          -- NOVA Bars (includes a snapped bar)

Which slot holds which defect is printed to the server console only, so whoever is looking at the tray isn't told the answer. The tray test uses nothing and produces nothing: finishing it gives no pills and no rejects.

It won't start on a press someone is working at ("Someone is already working at this press.") or on a press with a real tray waiting to be collected ("Somebody else left something on this press.", even when the tray is yours), because finishing the test clears the press's tray. Collect the real tray first, or use another press. Standing away from every press gives "Stand at a press to run the tray test."

Player Commands

/pills stats

Any player can run this. It shows their career card:

  • current level, XP, and progress to the next level
  • total pills made and sold
  • what they've unlocked, and what's coming up next

/pills pillid

Any player can run this. It opens Pill ID, the lookup for brands and counterfeit imprints (see Features). If oxide-tablet is running, it opens the Pill ID app on the tablet instead. On-duty officers with an evidence job also get the Log the pills I'm carrying button.

Machine Test (Debug Mode)

With Debug mode on (/pills settings → switch to Advanced → Core → General), a Machine Test option appears on every placed machine. It lets you start and stop the machine's moving parts, play each of its animations, and step through its visual states (for example a press die from clean to filthy). It's useful for checking a machine looks right on your server. Every player sees the option while Debug mode is on, but the server checks both Debug mode and admin permission, so it does nothing for players who aren't admins.

Debug mode also prints extra [oxide-pills] lines to the console. Turn it off on a live server.

Police Alerts

Under Advanced → Dispatch (switch the menu to Advanced to see it) you can make production carry a risk of being reported to police.

Set Alert chance above 0, and every time a player starts a stage the server rolls for a dispatch call at that station's location. Each stage can carry its own chance; leave it at -1 to follow the main chance.

Two settings stop it becoming noise:

  • Site cooldown (default 5 minutes): after a station alerts, it doesn't alert again until the cooldown runs out. A roll that doesn't alert doesn't start it. Other stations are unaffected.
  • Per-stage chance: turn the quiet stages down or off, and leave the press itself risky.

Alerts go into any dispatch resource o-link supports, including oxide-dispatch. Without one, officers only get a short notification and a 30-second blip on the lab (see Configuration).

Pharma delivery run handoffs are one of the stages (Delivery handoff). They alert at the doorstep with their own wording, and their cooldown is per player.

Everything is decided on the server from the station's saved position, so a player can't suppress an alert or make it point somewhere else. See Configuration for the full list.

Permissions

The admin subcommands (settings, kit, setlevel, traytest) check whether you're a server admin through o-link. The check uses FiveM's built-in permission system (called ACE), so there's nothing pills-specific to set up.

A player counts as an admin if any of these is true:

  • They have the command permission. Stock QBCore and QBX server.cfg files already give this to group.admin (add_ace group.admin command allow), so your existing framework admins can use the commands with no changes.
  • They're an admin in ESX (an ESX admin group).
  • They have the admin permission.

If you need to make someone an admin, two lines in server.cfg do it: one to put the player in the admin group, and one to give that group the admin permission.

server.cfg
add_principal identifier.license:YOUR_LICENSE_HERE group.admin
add_ace group.admin admin allow

Replace YOUR_LICENSE_HERE with the player's license identifier, then restart the server.

If a player without permission runs an admin subcommand, they get "You do not have permission to use this command".

The live server console is always allowed to run /pills setlevel. /pills stats and /pills pillid need no permission.

Next Steps