Overview
Dependencies
- VORP
- RSG
- Optional
vorp_corevorp_inventoryoxmysql
Features
Multi-Department Duty System
Multi-Department Duty System
Config.PoliceJobs, such as police, sheriff, and marshal. Duty stations can use markers or NPCs and can display map blips. Officers must be on duty before most job-locked actions are available.Command and Keybind Controls
Command and Keybind Controls
Config.Commands and Config.Keys. Defaults include /police_duty, /policepanel, /policeradial, duty prompt key E, radial key U, and lockpick key U.Management Panel
Management Panel
Config.Management.Payroll
Payroll
Config.Payroll.Jobs.Patrol Zones and Ambient Patrols
Patrol Zones and Ambient Patrols
Handcuffs, Escorting, and Lockpicking
Handcuffs, Escorting, and Lockpicking
cuffed.json.Search and Seizure
Search and Seizure
Civilian and NPC Robbery
Civilian and NPC Robbery
/rob, target state checks, player robbery inventory access, and NPC robbery rewards for dead or hogtied NPCs.Detective Inspections
Detective Inspections
detective_kit item or configured inspect control to inspect NPCs or players. Inspections use a timed progress flow and can return cause-of-death style information.Badge System
Badge System
badge_positions.json. Default badge types include marshal, detective, sheriff, and deputy.Prison Wagons
Prison Wagons
Supply Wagons
Supply Wagons
Config.Integration.OpenSupplyInventory.Armories and Police Stores
Armories and Police Stores
Config.PoliceShops creates shared armory/storage locations. Config.PoliceStores creates stocked police supply stores with per-item prices, amounts, metadata, and grade requirements.Witness Alerts
Witness Alerts
Discord Webhooks
Discord Webhooks
Installation
Add the resource
sh-policejob folder in your server resources directory.Install dependencies
oxmysql are installed and started before sh-policejob.Configure the framework
config.lua and set Config.Framework to "vorp" or "rsg".Install items
install/items.sql or merge it into your existing item table. For RSG, copy the entries from install/rsgitems.txt into rsg-core/shared/items.lua.Add item images
install/images/detective_kit.png.Configure jobs
Config.PoliceJobs and make sure those job names exist in your framework.Configure stations and locations
Configure logging
Config.Webhooks. Leave a webhook value blank to disable that log channel.Start the resource
ensure sh-policejob to server.cfg after its dependencies.Item Setup
The default config references these items:install/items.sql intentionally does not insert lockpick or bandage because many servers already define those items. Add them manually if your server does not have them.Core Configuration
Interaction Modes
- prompt
- text3d
- target
Payroll and Patrols
Enforcement Configuration
Robbery Configuration
Detective and Badge Configuration
Wagons, Shops, and Stores
Prison wagons, supply wagons, armories, and stores are all configured inconfig.lua.
rsg-inventory by default. VORP supply wagon stash support is intentionally exposed through Config.Integration.OpenSupplyInventory so you can connect your server’s stash implementation.Witness Alerts
Webhooks
Commands
Config.Commands; utility/debug commands are registered directly in their feature files.Server Exports
Use these exports from other server resources.Duty Export Return Shapes
IsPlayerOnDuty returns a boolean, GetOnDutyCount returns a number, GetPlayerDutyData returns a table or nil, and list/map exports return tables.Client Exports
Use these exports from client resources when you need badge or notification helpers.Integration Hooks
You can override or provide these hooks inconfig.lua.
Persistent Files
Compatibility Notes
- Make sure the resource folder is named
sh-policejobif you use the export examples exactly as written. - If you run
sh-policemdt, keep the same framework setting in both resources so duty exports and character lookups resolve correctly. - The VORP supply wagon stash path is a hook point by default. Configure
Config.Integration.OpenSupplyInventoryif your server needs VORP supply wagon storage. - If player inventory search fails on VORP, confirm your
vorp_inventorybuild supportsopenPlayerInventory. - If RSG armories or stores fail to open, confirm
rsg-inventoryexposesOpenInventory,CreateShop, andOpenShop.