Four resources ship beside Police Creator. Each one is optional, each one plugs into the MDT on its own, and each one keeps its settings in a single config file that stays editable.
Resource | Config | Needs |
|---|---|---|
|
| oxmysql, ox_lib and qs-police-creator started before it. |
|
| oxmysql, ox_lib, QBCore / Qbox / ESX and a supported inventory. |
|
| oxmysql, ox_lib, qs-police-creator and qs-police-props. |
| — | Nothing. Start it before the others. |
Automatic Alerts#
qs-police-alerts watches what players do and sends a dispatch call to the MDT when the city would notice: a blip, a description of the suspect and, optionally, a screenshot of the scene. Officers work these calls like any other.
Alert | Fires when | Sent to |
|---|---|---|
Shootings in Zone | Someone fires a gun on foot. Silenced weapons, grenades, the stun gun and other blacklisted weapons never trigger it. | Police jobs |
Drive-by | Someone shoots from a vehicle — the call includes the model, colour and plate. | Police jobs |
Auto Theft | Someone takes the driver's seat of a car with an NPC driver or a sounding alarm. | Police jobs |
Melee Weapon | Someone injures another person in a fist or melee fight. | Police jobs |
High Speed | A driver passes a speed camera above its limit. Drivers are warned as they approach the zone. | Police jobs |
Officer Down · Citizen Down | A dead or downed player presses | Police and ambulance |
Witnesses, the night and cameras#
Crimes are not reported every time. The chance rises with the number of people nearby — with nobody around, nobody calls — and drops at night (21:00 to 04:00 by default). A CCTV camera prop within range, or a police3 or polmav nearby, reports the crime even when no witness does, and the offender is told "You are shooting near the camera" with a camera flash. Speed cameras always report. All of it is tuned in Config.Probability and Config.CameraModels.
-- qs-police-alerts/config/config.lua
Config.PoliceJobs = { 'police', 'sheriff', 'traffic', 'patrol' } -- receive calls, never trigger them
Config.DeathAlertsJobs = { 'police', 'ambulance' } -- receive "Citizen Down"
Config.Enable = { Shooting = true, Autotheft = true, Melee = true, PlayerDowned = true, Speeding = true }
Config.ShootingZone.ZonesWithNoCall = { -- shooting ranges, film sets…
{ label = 'Zone 1', coords = vector3(365.81, 134.43, 103.09), width = 30 },
}
Config.SpeedingZone = {
{ label = 'Legion Square', coords = vector3(-43.86, -997.54, 28.97), radius = 60.0, maxSpeed = 80,
warningDistance = 100.0, blip = { enabled = true, sprite = 184, color = 1, scale = 0.8, label = 'Speed Camera' } },
}Config.Alerts turns the screenshot and the camera flash on or off per alert; screenshots need an image host set in Police Creator (Image Uploads). Config.Timer sets how soon the same player can trigger each alert again.
Crime-Scene Evidence#
qs-police-evidence leaves traces wherever a crime happens. Officers in an evidence job (police, ambulance, fbi by default) equip a flashlight and aim — or hold a photo camera — to reveal the markers around them. Stand on one and press E to bag it: an empty_evidence_bag becomes a filled_evidence_bag carrying what was found.
Evidence | Left by | The bag records |
|---|---|---|
Bullet casing | Every shot, beside the shooter | Street, calibre (9x19mm, 7.62x39mm, 12-gauge…), weapon serial |
Bullet impact | Where the bullet hit | Street, calibre, serial |
Vehicle fragment | A bullet hitting a vehicle | The vehicle's paint colour, calibre, serial |
Footprint | Running in shoes | The shoe number |
Blood · Fingerprint | Your scripts (a robbery, an injury) — see below | DNA and blood type · the fingerprint |
DNA sample |
| The suspect's DNA, to compare with blood bags |
Bags are ordinary items: store them in the case box of an Evidence Storage rack in Police Creator, and attach that case to the report. Evidence on the ground expires after 45 minutes (Config.RemoveEvidence) and on a server restart.
Cleaning a scene#
Tool | Who | Clears |
|---|---|---|
| Anyone — the criminal's tool | Everything within 30 m, in 30 seconds |
| Evidence jobs, on duty | Everything within 30 m, in 5 seconds |
| Evidence jobs, on duty | Everything within 30 m |
| Evidence jobs, on duty | That one type within 10 m |
The commands are switched off with Config.Commands = false. /takedna is for on-duty law-enforcement jobs (QBCore and Qbox jobs of type leo) and uses one empty bag.
-- qs-police-evidence/config.lua
Config.AllowedEvidenceJobs = { 'police', 'ambulance', 'fbi' }
Config.JobsCanCreateEvidence = true -- false: officers' own shots leave no evidence
Config.AllowFootprints = true
Config.RemoveEvidence = 45 -- minutes (1-59)
Config.ranges = { draw = 40.0, interact = 1.1, blood = 15, fingerprint = 15, casing = 12, bullet = 12, vehiclefragment = 12, footprint = 10 }Blood and fingerprints from your scripts#
Blood and fingerprints are left where your scripts decide — a robber touching a till, a player bleeding at a fight. Trigger the event from the client of the player who leaves the trace; their position and identity are filled in:
TriggerServerEvent('qs-police-evidence:server:CreateFingerPrintDrop')
TriggerServerEvent('qs-police-evidence:server:CreateBloodDrop')Police Light Editor#

qs-police-veh-creator lets officers build their own light bars in 3D. Drive into a depot zone (the PD Garage blip at Mission Row), press E from the driver's seat, and the editor opens on Preset Management.
Create or load a preset
A preset has a name, an optional description, and is private or shared with the whole job. It belongs to the vehicle model it was built on. Load, duplicate (always as a private copy), edit or delete presets from the Private and Public tabs.
Place the lights
Click a light type to drop it on the roof and move it with the gizmo:
Tmove,Rrotate,Efree the camera,Enterfinish,Esccancel. Assign each light to groups — front only, rear only, take-down, traffic advisor.Save and Close
The siren tone selected with
Caps Lockis saved with the preset. The lights stay on that vehicle — by plate and model — and come back whenever someone gets in.
On the road | Default key |
|---|---|
Light group 1 (everything) to 9 |
|
All lights and siren off |
|
Siren on / off (needs a light group on) |
|
Change siren tone |
|
Air horn (hold) |
|
Every key can be rebound in Settings → Key Bindings → FiveM. Who edits, where, and with which lights is set in the config:
-- qs-police-veh-creator/config.lua
Config.Jobs = {
police = {
minEditGrade = 3, -- needed to edit or delete other officers' presets (your own are always yours)
zones = {
{ coords = vector4(452.81, -1017.58, 28.07, 10), label = 'PD Garage' }, -- 4th value = radius in metres
},
},
-- sheriff = { minEditGrade = 3, zones = { ... } },
}
Config.LightModels = {
{ label = 'Small Stick Light', model = 'lightbarTwoSticks', jobs = {} }, -- {} = every job
{ label = 'Blue Stick Light', model = 'longLightbar', jobs = { 'police' } },
}
Config.SirenTones = { 'VEHICLES_HORNS_SIREN_1', 'VEHICLES_HORNS_SIREN_2', 'VEHICLES_HORNS_POLICE_WARNING' }
Config.MaxLightsPerVehicle = 20
Config.MaxPresetsPerOfficer = 30Police Props#
qs-police-props is a map resource with no scripts and nothing to configure. It streams the MDT tablet, the bodycam and the ankle-tracker props, and the five light-bar models used by the editor (lightbarTwoSticks, longLightbar, longLightbarRed, fbiold, police3_top) with their vehicle and siren data. Start it before the other police resources; without it the lights are invisible.
Light-bar models: "Real-Life Police Lights" by DevinKan (Matrix Customs) — Code 3 MX7000, rear lightsticks, slicktop visor, rear deck and grille lights. Whelen Liberty GenII and Code 3 Defender: authors unknown.



