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):

server.cfg
# 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 allow

Save the file and restart your server. Anyone in group.admin can now use /padmin and the admin commands.

  • This is the same admin permission 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

CommandDescriptionAccess
/padminOpens the in-game admin panelAdmin only
/phire <serverID> <deptName> [gradeRank]Hires a player into a departmentAdmin 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 bookingAdmin only
/unjail <serverID>Releases an inmate from custodyAdmin only
/addtime <serverID> <±minutes> [reason]Adds or reduces a prisoner's remaining sentenceAdmin or qualifying officer
/setsentence <serverID> <minutes> [reason]Sets a prisoner's remaining sentenceAdmin or qualifying officer
/speedcam_createOpens the speed camera placement UIAdmin only
/speedcam_removeRemoves the nearest speed camera within rangeAdmin only
/dutyToggles 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-inHired officer
/mdtOpens the MDTOn-duty officer
/bodycamsOpens the bodycam roster viewerHired officer (any department)
/camerasOpens the CCTV roster viewerHired 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).

CommandDefault keyFunction
+policeactionsF2 (Config.ActionMenuKey)Opens the police actions menu
+oxide_police_vehicle_paB (Config.Megaphone.vehicleKey)Toggles vehicle PA from a fleet vehicle with a megaphone
+policestopcarryE (Config.FieldActions.Carry.stopKey)Stops carrying the current target
+policetackleG (Config.Tackle.Key)Tackles the targeted suspect
handsupX (Config.HandsUp.Key)Toggles hands-up state (command name is configurable via Config.HandsUp.Command)
+oxidepoliceradioY (Config.Radio.ToggleKey)Opens the police radio overlay
+oxidepolicetoggledoorL (Config.Doors.ToggleKey)Toggles the nearest door's lock
+bodycamrecF6 (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 by Config.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.

ArgumentTypeRequiredDescription
serverIDnumberYesTarget player's server ID
minutesnumberYesMinutes to add (positive) or reduce (negative); must not be 0
reasonstringNoFree-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 minutes

Access: 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.

ArgumentTypeRequiredDescription
serverIDnumberYesTarget player's server ID
minutesnumberYesNew remaining sentence in minutes (must be 0 or greater)
reasonstringNoFree-text reason recorded in the log

Examples:

/setsentence 5 45    -- sets player 5's remaining sentence to 45 minutes
/setsentence 5 0     -- releases player 5

Access: 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:

FieldNotes
nameMust match a job in your framework (e.g. police, lspd, bcso). Case-sensitive
labelDisplay 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.

FieldNotes
grade_rankNumeric rank (must match framework job grades)
grade_nameInternal name (e.g. cadet)
grade_labelDisplay name (e.g. Cadet)
salaryPer-tick salary paid by Config.SalaryInterval
is_bossGrants 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.

FieldNotes
department_idOwning department
labelDisplay name
typemain or substation
coords_x / y / z, headingStation 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's cost plus any addon surcharges (Config.FleetAddons.radar = 5000, Config.FleetAddons.megaphone = 2500).
  • Toggle has_radar to enable the vehicle radar keybinds (K / J / M).
  • Set min_grade to 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 (default 750).
  • 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-voice channel 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.lua after 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_CLIPBOARD scenario).
  • 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_point table — 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.

Next Steps