Guide · Updated 19 Sep 2026
How to set up law enforcement on a RedM server: witnesses, duty, badges and evidence
Crime roleplay only works if the law can answer it. A robbery nobody hears about is a free payday, and a deputy with nothing to respond to logs off. This guide covers how to set up law enforcement on a RedM server so the two sides meet: how crimes get reported, how duty and law counts work, badges, evidence lockers, crime scene text, jail, and how much law your player count needs. Every Poggy script named here runs on VORP Core, RSG Core and QBCore RedM through the free Poggy Core (Free).
Why crime needs law that can respond
A crime creates a story only when someone else learns about it. On a live server that takes three things:
- A report. A witness, a victim calling it in, or the robbery script raising an alarm.
- A route to the right people. The alert should reach lawmen who are on duty, not every character who once held the job.
- Something to find. A blip, a waypoint, and a scene to read on arrival.
Job names, grades and several jobs per character are covered in how to set up jobs on a RedM server. Read that first; almost every "the law gets nothing" ticket is a job name that does not match.
The pieces, and where to get them
| Piece | Free option | What we run |
|---|---|---|
| Cuffs, drag, duty, jail | vorp_police on VORP; rsg-lawman and rsg-prison on RSG Core; qbr-policejob on QBR | vorp_police |
| Crime reports and alerts | vorp_police has a /callpolice command; rsg-lawman has map alerts | Witnesses (from $6.99/mo) |
| On-duty law count | Check your law resource | Poggy Util (Free) |
| Badges | vorp_police and rsg-lawman put a stock badge on the outfit | Poggy Badges ($20) |
| Evidence locker and armory | vorp_police has station storages; Poggy Storage (Free) is free | Poggy Storage (Free) |
| Crime scene text | Chat /me and /do | Poggy Scenes ($9.99) |
NPC witnesses and crime alerts
Witnesses (from $6.99/mo) makes the town report crime. When a player commits one, a nearby NPC turns to look, then flees. If the witness gets far enough away and stays away for a few seconds, on-duty law gets an alert with an icon, a blip, an area circle and a waypoint. Catch the witness first and nobody hears about it. That gap is the point: the criminal has a reason to act fast, and the law gets a chase instead of a teleport.
Crimes it notices: shooting and aiming, threatening with a weapon, fist fights and melee, lassoing, trampling, stealing a horse or wagon, and riding with a hogtied hostage. Out of the box only shooting, hijacking and carrying a hostage are on. Players get /callpolice, /calldoctor and /undertaker, each with its own cooldown, and your robbery or break-in scripts can fire alerts of their own with one server export. It needs PolyZone for the town zones.
Tuning it so it is fair
- Start with few crimes. Leave melee and lassoing off until your law team asks for them. A brawl outside the saloon should not call the sheriff every time.
- Use the chances. Each crime has its own probability in
Config.Checks. Shooting at 100 and hijacking at 80 means a horse thief sometimes gets away clean. - Limit where it works. With
Config.EnforceTownLimitson, only the eleven towns inConfig.Townscount, so a shootout in the hills stays between the players in it. Sisika, Van Horn and Wapiti are blacklisted by default so prison and outlaw-town roleplay stays quiet. - Cap the noise.
Config.MaxActiveWitnessesis 3 by default and there is a 120-second cooldown between witness reports. - Protect your own. Law immunity stops witnesses reporting players with a law job. Aiming a lasso, camera or binoculars never counts; add other items to
Config.NonThreateningAimItems. Add other scripts' job NPCs toConfig.BlacklistNPCsso a shop clerk does not run off.
One clash to know on VORP: vorp_police also registers /callpolice. If you run both, rename one of them.
On duty, and how many lawmen are on
With Config.DutyCheckEnabled on, Witnesses only alerts law players who are on duty. Duty comes from poggy_core. On VORP it comes from vorp_police and vorp_medic, so with neither running nobody counts as on duty and law gets no alerts. On RSG Core and QBCore RedM duty is part of the job, so it always has an answer.
Players should be able to see how much law is out. Poggy Util (Free)'s duty count shows on-duty law and doctors in the area-of-play box, refreshed every 10 seconds. Law is whatever you list in Config.DutyCount.LawJobs; doctors are poggy_core's medical jobs.
Gating robberies on law count is the robbery script's job: most have a minimum police setting, so set it, and check its job names match yours. A script built on poggy_core can count for itself with Poggy('players.onDuty', { job = { 'sheriff', 'marshal' } }). When no law is on, Witnesses can send an NPC posse instead. It is off by default, rides out only for the crimes you choose, and with PlayerLEOPriority on it stands down while any player lawman is on duty.
Badges and visible rank
Rank matters more when others can see it. vorp_police and rsg-lawman can put a stock badge on a lawman's outfit. Poggy Badges ($20) pins a 3D badge prop to law, marshal and medical characters, chosen by job and grade, so a deputy and the sheriff wear different badges on the same job. Players place it with a live editor and save presets per outfit. Show Badge plays a pocket-watch animation and flashes the badge, the character's name and your server name to players within a couple of metres, which is how a deputy proves who they are in a standoff. It ships 21 badge images and uses the game's own badge props, so nothing needs streaming.
Evidence lockers and the armory
Seized guns and stolen goods need somewhere to go that only the law can open. Poggy Storage (Free) is free and ships a job storage called police_evidence: one shared locker opened from eight sheriff and police stations, for the police, sheriff and marshal jobs. Access is set per job:
authorized_jobs = {
["sheriff"] = { all_grades = true }, -- every grade
["marshal"] = { grades = { 2 } }, -- grade 2 and above
},
Inside, the grade decides what a player can do with the locker's money. Config.ManagerJobGrades and Config.MemberJobGrades match exact grades, not "and above", so list every senior grade you have. Each job storage can post its contents and a who-took-what log to Discord, which settles "who took the evidence" arguments. The same script adds job-locked armories: a gun rack with endless stock that checks the job again on every take.
Scene text for crime scenes
A lawman arriving at a crime needs something to read. Poggy Scenes ($9.99) lets players place coloured text fixed to a spot in the world: "Blood on the boards" at the bank counter, "Tracks head north" by the hitching post. Scenes survive restarts. By default the police, sheriff and marshal jobs can remove any scene, so the law can clear a scene once it is worked. /do describes what is there, and a status tag such as "Shot, left arm" tells the doctor and the deputy what happened without breaking character. The Scenes panel in /poggy lets staff delete old scenes in bulk. RedM roleplay commands covers /me and /do in more depth.
Jail, bounties and wanted posters
We do not sell a jail or a bounty board. vorp_police jails at Sisika with /jail, and jail time lasts through relogs. On RSG Core, rsg-prison does the same job. If you turn on Witnesses' NPC posse, a player can surrender and be arrested; to add jail time, point JailExportCall at a jail script with a server export, because stock VORP has none.
For bounties and wanted posters, search GitHub or the Cfx.re forum for "RedM bounty" and read the code before you trust it. Witnesses ships a "bounty spotted" alert that a bounty script can fire when a wanted character is recognised in town.
Sizing law to your player count
Too little law and crime is free. Too much and outlaws have nothing to do. A starting point we use, not a rule:
| Players online | Law on duty | How to run it |
|---|---|---|
| Under 15 | 0 to 2 | Keep few crimes on and let the NPC posse cover quiet hours |
| 15 to 40 | 2 to 5 | One sheriff's office, one evidence locker, robbery minimums of 2 or more |
| 40 and up | 5 or more | Separate departments by town, marshals for the open country, grade-locked lockers |
On a small server most lawmen also hold another job. Poggy Multijob (Free) lets a character keep both and switch with /mj, so the rancher can pin on the badge when a call comes in.
Setup checklist
- Pick your law job names and grades, and write them down once.
- Install a free law resource for cuffs and jail, and start it before the Poggy scripts.
- Add your law jobs to
LawJobsinpoggy_core/config.lua. On RSG Core that means the town jobs (vallaw,rholaw,blklaw,strlaw,stdenlaw). - Paste the same exact names into Witnesses'
Config.PoliceJobListandConfig.PoliceJobRanks, Poggy Util'sConfig.DutyCount.LawJobs, your badge sets, the evidence locker and the armory. On VORP, include vorp_police'sPolice. - Choose which crimes witnesses notice, and which towns count.
- Set each robbery script's minimum police.
- Go on duty as a deputy, fire a shot in Valentine, and check the alert arrives.
/dumpalertgroupsshows who is registered.
New to installing scripts? How to install a RedM script covers start order.






















