Overview
| Detail | Value |
|---|---|
| Frameworks | VORP, RSG |
| Localization | English, Spanish, German |
| Interaction Modes | prompt, text3d, target (ox_target) |
Features
Multi-Job Support
Multi-Job Support
Run police, sheriff, and marshal departments simultaneously. Each job has its own independent grade table, duty stations, payroll configuration, and management panel access. Officers only see options relevant to their assigned department.
Duty Stations
Duty Stations
Define clock-in points as world markers or NPC characters. Each station generates a map blip so players can find their nearest station without guesswork. Officers must clock in at a station before accessing job-locked features.
Payroll
Payroll
Officers receive automatic salary payments on a configurable timer (default: 15-minute intervals). Pay rates are set per grade, per job, so a senior marshal earns more than a rookie deputy without any manual handling.
Patrol Zones
Patrol Zones
Eight pre-configured patrol zones cover the map, each with a configurable pay multiplier. Assign officers to zones and reward active patrol work with bonus earnings on top of their base salary.
Handcuff System
Handcuff System
The cuff flow covers the full interaction chain: cuff, uncuff, and lockpick. Item consumption is fully configurable — cuffs and keys do not consume by default, while the lockpick item is consumed on use. Players can attempt a lockpick escape using the
lockpick item. Cuffed state persists across server restarts via cuffed.json.Search & Seizure
Search & Seizure
Officers can search players and seize cash up to a configurable percentage. Evidence items can be flagged during a search and logged automatically to your Discord webhook. All search and seizure events are timestamped and attributed to the searching officer.
Detective Mode
Detective Mode
Officers equip a detective kit item and inspect bodies or NPCs to generate cause-of-death information. Results appear in the HUD and can be saved to a report. Useful for investigation roleplay without requiring external scripts.
Badge System
Badge System
Equippable 3D prop badges for marshal, sheriff, and detective roles. Officers can adjust badge position in-game using an interactive placement tool, so the badge sits correctly on any clothing combination.
Prison Wagons
Prison Wagons
Spawn and manage prisoner transport wagons from the job menu. Load suspects directly into the wagon — each wagon holds up to 4 prisoners by default (configurable up to 6). The wagon system tracks loaded suspects and logs transport events to Discord.
Management Panel
Management Panel
A NUI officer management panel lets senior officers hire, fire, and change grades for department members. Access is grade-locked — you configure the minimum grade required to open the panel per location.
Police Shops
Police Shops
Shared armories and configurable supply stores give on-duty officers access to job-specific equipment. Stock lists, prices, and grade requirements are all set in config.
Witness System
Witness System
Gunshot detection triggers an alert to all on-duty officers after a configurable delay. The alert includes a map blip and the nearest town name so officers can respond without needing exact coordinates. Radius, cooldown, and minimum online officers are all configurable.
Discord Webhooks
Discord Webhooks
Separate webhook URLs for each system: duty events, patrol zone changes, searches, seizures, wagon transports, and witness alerts. Route different events to different channels for clean log organization.
Installation
Configure your framework
Open
config.lua and set Config.Framework to either 'vorp' or 'rsg' to match your server.Set up your departments
Define your active jobs in
Config.PoliceJobs. You can enable all three departments or just the ones your server uses.Add required items
Ensure
handcuffs, handcuffkey, and lockpick exist as valid items in your framework’s item registry. Add them to any shops or starter kits as needed.Configure webhooks
Add your Discord webhook URLs to the
Config.Webhooks section of config.lua. Leave any webhook blank to disable logging for that system.Configuration
The main configuration file isconfig.lua in the resource root. The most commonly edited options are shown below.
config.lua
Interaction Modes
- prompt
- text3d
- target
Uses RedM’s native interaction prompt system. No additional dependencies required. This is the default mode.
config.lua
Server Exports
Use these exports to read officer state from other resources on your server.All exports return
nil if the player does not exist or is not on duty. Always nil-check the return value before using it in downstream logic.