Admin Guide
Admin and player commands, keybinds, permissions, and the /padmin in-game admin panel walkthrough.
Admin and player commands for oxide-police, plus a walkthrough of the in-game admin UI (/padmin).
Permissions
The admin panel (/padmin) and all admin commands are for your server admins — the same people you already trust to run admin tools on your server. A player counts as an admin if they are in a group that has been given the standard admin permission.
If you have not set up an admin group yet, add these two lines to your server.cfg (replace the licence with your own — you can find it in your server console with getrawendpoint, or in txAdmin under the player's profile):
# 1. Put your account in the "admin" group
add_principal identifier.license:abc123 group.admin
# 2. Give the "admin" group permission to use admin tools
add_ace group.admin admin allowSave the file and restart your server. Anyone in group.admin can now use /padmin and the admin commands.
- This is the same
adminpermission used across all Oxide resources, so if your admins can already use other Oxide admin tools, they can use these too — there is nothing extra to set up. - There is one admin level. A player either is an admin or is not — there are no tiers or per-command permissions to manage.
- This works the same on QBCore, ESX, and Qbox. There is nothing framework-specific to configure.
The MDT itself has its own, separate rank requirements for officers (such as the minimum rank to issue a warrant). Those are set per grade and are different from the admin permission above — see Configuration.
Commands Overview
| Command | Description | Access |
|---|---|---|
/padmin | Opens the in-game admin panel | Admin only |
/phire <serverID> <deptName> [gradeRank] | Hires a player into a department | Admin only |
/pfire <serverID> [deptName] | Fires a player from a department (their current one by default) | Admin only |
/jail <serverID> <months> [reason] | Sends a player to custody directly without going through booking | Admin only |
/unjail <serverID> | Releases an inmate from custody | Admin only |
/addtime <serverID> <±minutes> [reason] | Adds or reduces a prisoner's remaining sentence | Admin or qualifying officer |
/setsentence <serverID> <minutes> [reason] | Sets a prisoner's remaining sentence | Admin or qualifying officer |
/speedcam_create | Opens the speed camera placement UI | Admin only |
/speedcam_remove | Removes the nearest speed camera within range | Admin only |
/duty | Toggles duty from anywhere, bypassing the clock-in zone (disabled by default — requires Config.RequireStationClockIn = false). Uses the first station in the officer's department for clock-in | Hired officer |
/mdt | Opens the MDT | On-duty officer |
/bodycams | Opens the bodycam roster viewer | Hired officer (any department) |
/cameras | Opens the CCTV roster viewer | Hired officer (any department) |
/cuff [serverID] | Cuffs the nearest player or the given server ID (configurable: Config.OfficerTargetMenu.CuffCommand) | On-duty officer |
/uncuff [serverID] | Uncuffs the nearest player or the given server ID (configurable: Config.OfficerTargetMenu.UncuffCommand) | On-duty officer |
Keybinds
The keybinds below are registered through RegisterKeyMapping and can be rebound by each player via the FiveM keybinds menu (Settings → Key Bindings → FiveM).
| Command | Default key | Function |
|---|---|---|
+policeactions | F2 (Config.ActionMenuKey) | Opens the police actions menu |
+oxide_police_vehicle_pa | B (Config.Megaphone.vehicleKey) | Toggles vehicle PA from a fleet vehicle with a megaphone |
+policestopcarry | E (Config.FieldActions.Carry.stopKey) | Stops carrying the current target |
+policetackle | G (Config.Tackle.Key) | Tackles the targeted suspect |
handsup | X (Config.HandsUp.Key) | Toggles hands-up state (command name is configurable via Config.HandsUp.Command) |
+oxidepoliceradio | Y (Config.Radio.ToggleKey) | Opens the police radio overlay |
+oxidepolicetoggledoor | L (Config.Doors.ToggleKey) | Toggles the nearest door's lock |
+bodycamrec | F6 (Config.Bodycam.recording.hotkey) | Toggles a manual bodycam clip while watching another officer's feed |
The vehicle-mounted speed radar uses three lib.addKeybind registrations: K (Config.Radar.KeyToggle) to toggle, J (Config.Radar.KeyLockFront) to lock the front-facing target, M (Config.Radar.KeyLockRear) to lock the rear-facing target. These appear in the FiveM key-bindings menu as oxide_police_radar_toggle / _lock_front / _lock_rear and are rebindable.
The handheld speed radar (WEAPON_RADAR) has no keybinds — aiming the weapon activates the radar overlay automatically.
Admin Commands
/padmin
Opens the administration panel. This is the primary tool for setting up everything in the database — departments, stations, grades, garages, armory loadouts, uniforms, doors, radio channels, prison points, CCTV, and speed cameras. (The charge catalog is the one exception — it is edited in the MDT.)
The admin panel also includes a mugshot Preview under Detention Mugshot, which places you at the photo mark and shows the camera framing so you can line up the booth. Preview does not take or upload a photo — test the upload itself by booking a test suspect.
See the admin panel walkthrough below.
Command Details
/speedcam_create
Opens the speed camera placement UI for the calling admin.
The UI lets you:
- Pick a model from
Config.SpeedCam.Models - Aim and place the camera prop
- Set the speed limit, sensor radius (default
Config.SpeedCam.DefaultSensorRadius), and fine multiplier (capped byConfig.SpeedCam.MaxFineMultiplier)
The camera is persisted to the database and visible to all officers. Speed unit follows Config.SpeedUnit (MPH or KMH).
/speedcam_remove
Removes the nearest speed camera within range. Useful for quick teardown without opening the admin panel.
Player Commands
/mdt
Opens the Mobile Data Terminal. Officer must be on duty, unless Config.MDT.allowOffDuty is set to true (default false), which lets any hired officer open the MDT while off duty.
If Config.MDT.useItem is set to true, this command is disabled and the MDT is opened by using the Config.MDT.itemName inventory item (default police_tablet) instead.
/duty
Toggles duty from anywhere without requiring the officer to stand on a clock-in zone. Restricted to hired officers. On clock-in, picks the first station in the officer's department. Useful for staff and for testing without a configured station.
This command is disabled by default because Config.RequireStationClockIn defaults to true (officers must use a station clock-in zone). Set it to false to enable /duty and the duty toggle inside the police radial menu (the first item in the F2 police actions menu).
/jail <serverID> <months> [reason]
Sends a player to custody for the given number of months without going through the booking flow. Months convert to seconds using Config.Custody.SecondsPerMonth (default 60 = 1 RP-month per real minute). Picks the admin's own department if they are hired into one, otherwise the first department with a jail-configured station. Admin only.
/unjail <serverID>
Releases an inmate from custody. Admin only (or the server console).
/addtime <serverID> <±minutes> [reason]
Adds to or reduces a prisoner's remaining sentence. Pass a positive number of minutes to extend the sentence or a negative number to reduce it. Works on offline prisoners. If the adjustment brings the remaining time to zero or below, the prisoner is released.
| Argument | Type | Required | Description |
|---|---|---|---|
serverID | number | Yes | Target player's server ID |
minutes | number | Yes | Minutes to add (positive) or reduce (negative); must not be 0 |
reason | string | No | Free-text reason recorded in the log |
Examples:
/addtime 5 30 disorderly conduct -- adds 30 minutes to player 5's sentence
/addtime 5 -15 good behavior -- reduces player 5's sentence by 15 minutesAccess: admins (or the server console), or on-duty officers whose grade meets the holding station's jail minGradeUnjail (default 0 = any rank).
/setsentence <serverID> <minutes> [reason]
Sets a prisoner's remaining sentence to an exact number of minutes. Works on offline prisoners. Setting it to 0 releases the prisoner.
| Argument | Type | Required | Description |
|---|---|---|---|
serverID | number | Yes | Target player's server ID |
minutes | number | Yes | New remaining sentence in minutes (must be 0 or greater) |
reason | string | No | Free-text reason recorded in the log |
Examples:
/setsentence 5 45 -- sets player 5's remaining sentence to 45 minutes
/setsentence 5 0 -- releases player 5Access: admins (or the server console), or on-duty officers whose grade meets the holding station's jail minGradeUnjail (default 0 = any rank).
/cuff [serverID] / /uncuff [serverID]
Cuffs or uncuffs the nearest player (within Config.OfficerTargetMenu.Distance, default 2.5m), or the player whose server ID is passed as an argument. The command names are taken from Config.OfficerTargetMenu.CuffCommand / UncuffCommand (defaults: cuff / uncuff). Restricted to on-duty officers.
/bodycams
Opens the bodycam roster viewer. Restricted to hired officers (any department, on or off duty). Lists active bodycam wearers and lets the officer watch a stream. By default, filtered to officers in the same department (Config.Bodycam.sameDepartmentOnly = true).
/cameras
Opens the CCTV roster viewer. Restricted to hired officers (any department, on or off duty). Lists all CCTV cameras the officer can access (placed cameras + permanent admin-placed cameras).
/padmin Walkthrough
The admin panel is organised into tabs. First-time setup typically follows this order:
Department creation
Use the New Department button (the department selector sits at the top of the panel's sidebar). The create form asks only for two fields:
| Field | Notes |
|---|---|
name | Must match a job in your framework (e.g. police, lspd, bcso). Case-sensitive |
label | Display name (e.g. Los Santos Police Department) |
The rest of the department's settings are edited on their own screens after creation:
- Overview — enable / disable the department and manage the treasury
- Jail Policy — stripping mode (
none/locker/wipe) and the keep-item whitelist (see Custody) - Speed Cameras — the "ignored jobs" list of framework jobs exempt from camera triggers
Departments default to Config.BankingAccountStartBalance (default $30000) treasury when Config.UseBankingAccount = true.
Grade matrix
For each department, define grades in Departments → <dept> → Grades.
| Field | Notes |
|---|---|
grade_rank | Numeric rank (must match framework job grades) |
grade_name | Internal name (e.g. cadet) |
grade_label | Display name (e.g. Cadet) |
salary | Per-tick salary paid by Config.SalaryInterval |
is_boss | Grants access to the boss panel (opened from in-station ox_target interaction) |
Grades are created entirely through the admin panel — there is no template file to copy from.
Station setup
/padmin → Stations → Create.
| Field | Notes |
|---|---|
department_id | Owning department |
label | Display name |
type | main or substation |
coords_x / y / z, heading | Station origin |
After creating, configure the station's points, grouped into tabs:
Interaction tab:
- Clock-in zone — the ox_target zone officers interact with to go on duty
- Armory — coords + loadouts (each loadout: items, counts, min_grade, optional cost)
- Personal locker — where officers apply uniforms and change back to civilian clothes
- Boss menu — the in-station boss panel access point
- Evidence locker — access controlled by
Config.Evidence.locker.minGrade. The locker is the case-based evidence access gate (the case selected in-app determines which locker opens) - Evidence lab — the evidence processing point
Services tab:
- Station bell — coords for the desk bell
- Trash bin — coords + slots/weight
- Firearm registration desk — coords for the civilian firearm registration point
Detention screens:
- Detention Holding — booking desk, holding cells, jail cell, and release point
- Detention Mugshot — camera position + suspect photo mark (use the Preview button to line up the framing)
Garages live on the Fleet → Garages screen, where each garage can be attached to a station.
Clock-in, armory, boss menu, evidence locker, evidence lab, and personal locker each support multiple points per station — use the add / remove controls in the admin panel to place more than one. Existing single-point stations keep working unchanged.
Garage and vehicle setup
/padmin → Fleet → Garages, then Fleet → Vehicles.
- Create a garage first (label, type, spawn points), optionally attached to a station.
- Add vehicles from
Config.FleetCatalog. Each addition debits the department treasury by the vehicle'scostplus any addon surcharges (Config.FleetAddons.radar = 5000,Config.FleetAddons.megaphone = 2500). - Toggle
has_radarto enable the vehicle radar keybinds (K/J/M). - Set
min_gradeto gate spawn access. - Checked-out vehicles stay in the world until physically returned to a garage bay (they survive clock-out, disconnect, and restarts). When a unit is stranded in the field, use the Tow action on the Fleet screen — it lists each out unit with its plate, holder, and last-seen street so you pick exactly which one to bring back. Each tow charges the treasury
Config.FleetRecoveryFee(default750). - The trash button on a vehicle group is an explicit Disable — the group stays in the list, dimmed with a "Disabled" badge, and can be re-enabled later. To remove a group for good, use permanent delete, which removes every unit from the database and despawns any of that group's vehicles still in the world. Deletion is blocked while any unit is checked out.
Radio channels
/padmin → Radio.
- Define channels per department.
- Map channel IDs to
pma-voice/yaca-voicechannel names. - Officers see only channels visible to their department + grade.
Charges catalog
The charge catalog is managed in the MDT (Catalog tab), not the admin panel.
- The catalog is seeded from
Config.DefaultCharges(100 entries) the first time the resource starts with an empty catalog. - Edit / add / archive charges through the MDT's Catalog tab (admins only).
- Editing
shared/config/charges.luaafter first run does not retroactively modify the database.
Prison job points
/padmin → Detention → Prisoner Jobs.
- Place rock spawns (mining), trash spawn zones (cleaning), and electrical meter points.
- Each placed point is persisted and tied to one of the three job types.
Prison shop
/padmin → Detention → Prison Shop.
- Place the vendor location (ped spawns at this point with
WORLD_HUMAN_CLIPBOARDscenario). - Define meal windows (for the free
prison_food_tray). - Build the paid catalog (item, label, price, category from
Config.PrisonShop.categories).
Prison revive point
/padmin → Detention → Revive Point.
- Sets the global revive point used when an inmate dies during their sentence.
- Stored in the
police_prison_revive_pointtable — without a row, the prison revive cutscene cannot fire and inmates fall through to the framework medical resource.
Speed camera placement
Use /speedcam_create from in-world for placement (see above) — this is faster than placing through the admin panel.