zephyr_police
zephyr_police is a premium, multi-framework police job resource for FiveM. It provides everything a realistic law enforcement roleplay server needs in a single, cohesive package — from duty management and evidence collection to bodycam footage, dispatch integration, and a full organisational suite.
| Version | 1.0.0 |
| Author | Vexy |
| Framework | QBX / QBCore (ESX compatible via bridge) |
| License | Proprietary |
Features
| Feature | Description |
|---|---|
| Duty System | Officers clock in/out via the F6 job menu or external multijob scripts. Duty state syncs to player state bags and triggers hookable server events. |
| Handcuffs & Escort | Soft and hard cuff modes. Configurable skill-check escape. Lockpick/bolt-cutter override support. Full escort system with player-follow behaviour. |
| Arrest & Jail | Charge sheet builder with preset offences, fine amounts, and jail times. Automatically routes to your configured jail script (dynyx_prison, xt-prison, qb-prison, ps-prison, etc.) or a built-in fallback teleport. |
| GSR Testing | Gunshot residue test via ox_target interaction. Positive result is tied to actual weapon discharge events. Creates an evidence_gsr item with full metadata (suspect, officer, date/time, result). Residue clears automatically after a configurable timeout or when the suspect enters water. |
| Fingerprinting | Take fingerprints from any suspect with ox_target. Creates an evidence_fingerprint item containing suspect name, DOB, phone, and citizenid. |
| Evidence System | Shell casing props auto-spawn at weapon damage locations. Configurable despawn timer. Evidence items are fully compatible with ox_inventory metadata rendering. |
| Bodycam (ZEPHNET Axon) | Toggle-able bodycam system with on-screen HUD indicator. Records officer perspective and logs footage as evidence. |
| Traffic Stops | Initiate a traffic stop from the job menu or ox_target on a vehicle. Automatically creates a 10-38 dispatch call via zephyr_dispatch. |
| Vehicle Blips | Live duty-vehicle map blips synced every 2 seconds to all on-duty officers, showing plate and officer name. |
| Billing / Fines | Issue fines directly to a suspect’s phone account (via zephyr_phone or zephyr_connect). Configurable preset offences with amounts. Optional society credit to the police job account (Renewed-Banking). |
| CCTV | Access configurable CCTV cameras around the map from the police station computer. |
| Radar Integration | Speed radar with configurable radar posts. Integrates with external radar resources. |
| Spike Strips | Deployable spike strips as world props. |
| Tackle | Tackle mechanic to take down fleeing suspects on foot. Configurable cooldown and police-only restriction. |
| Tracking | Place a tracker on vehicles from the job menu. Tracked vehicles display a unique blip. |
| Divisions | Assign officers to sub-divisions (e.g. SWAT, CID, GD, HWY, VET). Each division has a minimum grade requirement. Division state is synced via statebags (zp_division). |
| Org Suite | Full in-game organisational management panel for supervisors — hire/fire, division assignment, equipment tiers, analytics, and vehicle management. Grade-gated permissions. |
| MDT Integration | Auto-detects and bridges to zephyr_mdt, ps-mdt, qb-mdt, or lation_mdt for charge logging and person lookups. |
| Dispatch Integration | Auto-registers/unregisters units with zephyr_dispatch on duty toggle. Creates dispatch calls for arrests and traffic stops. |
| Impound Integration | Creates tow/impound requests via zephyr_impound or zephyr_connect. |
| Multi-framework | Seamlessly supports QBX, QBCore, and ESX via the ZephyrPoliceBridge. |
Dependencies
| Resource | Required | Notes |
|---|---|---|
ox_lib | ✅ Yes | UI, callbacks, progress bars |
ox_target | ✅ Yes | Interaction zones |
ox_inventory | ✅ Yes | Evidence items, armoury shops, evidence lockers |
oxmysql | ✅ Yes | Division data persistence |
zephyr_connect | ✅ Yes | Framework bridge & shared utilities |
zephyr_dispatch | ⚠️ Optional | Dispatch call creation and unit registration |
zephyr_mdt | ⚠️ Optional | Charge logging to MDT (also supports ps-mdt, qb-mdt, lation_mdt) |
| Jail script | ⚠️ Optional | dynyx_prison, xt-prison, qb-prison, ps-prison, bl-prison, jailV, Jail — auto-detected |
Configuration
Key options in shared/config.lua:
| Option | Type | Description |
|---|---|---|
Config.PoliceJobs | table | List of job names considered police (e.g. { 'police' }) |
Config.OrgManagementGrade | number | Minimum grade for org management access |
Config.Divisions | table | Sub-division definitions (id, label, minGrade) |
Config.Handcuffs.type | string | "soft" or "hard" |
Config.Handcuffs.skillEscape | boolean | Allow suspects to attempt skill-check escape |
Config.GSR.enabled | boolean | Enable/disable GSR testing |
Config.GSR.autoCleanSec | number | Seconds before GSR auto-clears (0 = never) |
Config.GSR.cleanInWater | boolean | GSR clears when suspect enters water |
Config.Tackle.cooldownSec | number | Tackle cooldown in seconds |
Config.Tackle.policeOnly | boolean | Restrict tackle to police officers |
Config.Jail.script | string | Preferred jail resource name ("auto" for auto-detect) |
Config.Billing | table | Preset offences with label and fine amount |
Config.Billing.creditSociety | boolean | Credit fines to the police society account |