RedM Witness Script: How NPCs Report Crimes to the Law

Guide · Updated 9 Nov 2026

How to make NPC witnesses report crimes on a RedM server

A RedM witness script makes crime have consequences: when a player commits a crime in town, a nearby NPC sees it, runs and tries to report it, and if that NPC gets away the law is told where it happened. It also gives criminals something to do about it, because a witness who is stopped in time reports nothing. To add one you need a script that spots crimes, picks a witness and sends alerts only to lawmen who are on duty. This guide covers how that works, what to switch on and what to do when no lawman is online.

Why witnesses change crime roleplay

  • Crime gets a cost in the moment. The player has seconds to decide whether to chase the witness or ride away.
  • Lawmen get real calls. A law job with nothing to respond to is a law job players quit.
  • Towns feel watched. Shooting in Saint Denis is a different decision from shooting on an empty trail.
  • Nobody has to report themselves. Without witnesses, the law only knows what other players choose to tell it.

Witnesses are one piece of the law setup. How to set up law enforcement on a RedM server covers the rest: duty, badges, evidence and jail.

The free way: reports from players

You can start with a rule and no script. Ask players to report crimes in character, by telegram or by riding to the sheriff, and ask criminals to play along when someone sees them. It costs nothing, and many servers run this way.

The limit is that it depends on another player being there and wanting to tell. On a quiet night a shoot-out on Main Street goes unnoticed. Scripts that only flash an alert on gunshots are a step up, but the criminal has no way to stop the alert, so there is no chase.

How a RedM witness script works

Witnesses (from $7.99/mo) goes through these steps for each crime:

  1. A crime happens inside a town. The script rolls that crime's chance.
  2. An NPC within 40 metres becomes a witness. They flinch, point and shout, or put their hands up if the player is armed, then run. Up to 3 witnesses can be fleeing at once.
  3. The player who was seen gets the witness on their map. The blip goes from green to yellow, orange and red as the witness gets closer to reporting.
  4. The witness has to get 20 metres further away than where they started and stay clear for 8 seconds.
  5. If they make it, law gets an alert saying what happened, where and at what in-game time, with a blip, an area circle and a waypoint. If every witness is stopped, nobody hears about it.

NPCs that belong to other scripts, such as shopkeepers and job NPCs, are left alone. Witnesses are always NPCs, but crimes against players count too.

Which crimes should witnesses notice?

Each crime has its own switch and chance in Config.Checks:

CrimeOn by defaultChance
Shooting, or aiming a gunYes100%
Riding with a hogtied hostageYes90%
Stealing a horse or wagonYes80%
TramplingNo100%
LassoingNo75%
Looting a bodyNo75%
PoachingNo75%
Threatening with a weaponNo50%
Fist fights and meleeNo30%

Start with the defaults. They are the crimes a roleplay server almost always wants the law to hear about. Add the others one at a time, and be careful with melee: a bar brawl is often the scene players wanted, and a lawman arriving every time ends it.

A lasso, camera, binoculars, lantern or fishing rod in the hand does not count as aiming a weapon. If another item sets witnesses off, add it to Config.NonThreateningAimItems; /getmyweaponhash_cl shows the name the script sees.

Setting up alerts for on-duty law

Most problems with a witness script are in these three settings:

  • Config.PoliceJobList: your law jobs, exact and case-sensitive. It ships with police, sheriff and marshal.
  • Config.PoliceJobRanks: the grades that get alerts, 0 to 5 by default. If your grades start at 1, or go above 5, add them.
  • Config.Duty.Preset: who says a lawman is on duty. "auto" finds outsider_policeman, vorp_police, rsg-lawman, qbr-policejob or bcc-law, then falls back to your framework.

The same crime by the same player alerts at most once a minute (Config.AlertCooldown, 60 seconds), so one shoot-out does not bury your law players. Lawmen on duty are immune by default, so a sheriff firing in the line of duty does not start a witness.

To test it, /witnessduty shows the duty script in use and each lawman's state, and /witnesstestalert puts one real alert on your own screen and tells nobody else. Both need their ACE permission or the server console. /witnesscheck, open to everyone, prints every check to F8 for the spot where you are standing.

Where should witnesses watch?

By default only inside 11 towns, from Saint Denis (a 450 metre radius) to Thieves Landing (80 metres). Sisika, Van Horn and Wapiti are blacklisted, and a blacklisted area always wins. That suits most servers: the wilderness stays lawless, and outlaws have somewhere to go.

Set Config.EnforceTownLimits to false to watch everywhere. To add a town, open the Towns list in /poggy, stand in the middle and use Use my position. Blacklist your event areas and anywhere a job script runs a lot of NPCs.

What if no lawman is online? The NPC posse

Off by default, and turned on with Config.LawResponse.Enabled in config/npc.lua. With PlayerLEOPriority on, as it ships, the posse rides out only while no lawman is on duty, so it never takes a call away from a player. Only shooting and horse or wagon theft bring it until you add more.

SeverityOfficersOn horsebackJail time
Low2 to 325%10 min
Medium (horse theft)3 to 550%20 min
High (shooting)5 to 675%30 min
  • Officers appear at least 70 metres away, out of the player's sight, and hunt for at most 5 minutes.
  • Within about 25 metres they call out and hold the player at gunpoint for a few seconds, which is the chance to surrender.
  • They fight only the wanted player, never bystanders.
  • Getting more than 100 metres from every officer for about 10 seconds counts as escaping.

Two things catch owners out. The posse cannot spawn with sv_entityLockdown set to strict or relaxed. And an arrest needs a jail: with none set, the player is let go with a warning. You can point it at your jail script's server export, or turn on the built-in Sisika jail, which is off by default so it never fights a jail script you already run.

Installing it

Witnesses (from $7.99/mo) runs on VORP Core, RSG Core and QBCore RedM. It needs Poggy Core (Free) 0.14.0 or newer and PolyZone, and uses no database tables. Add it to server.cfg after both:

ensure poggy_core
ensure PolyZone
ensure poggy_witnesses

Its config files and translations (English, Spanish and French) are open, and every setting can be changed in game under /poggy. Other scripts can raise alerts through its PoliceAlert server export, which suits robberies. If your law players want to look the part as well, Poggy Badges ($19.99) is covered in the sheriff badge guide. Step by step: how to install a RedM script.

Questions this guide answers

How do NPC witnesses work on a RedM server?

When a player commits a crime in town, a nearby NPC reacts, runs and tries to report it. In Witnesses, if that NPC gets far enough away, on-duty law players get an alert with a blip and a waypoint; if the player stops the witness first, nobody hears about it.

Which crimes do RedM witnesses notice?

Witnesses ships with nine. Shooting or aiming a gun, stealing a horse or wagon, and riding with a hogtied hostage are on by default; threatening, melee, lassoing, trampling, looting a body and poaching are off until you turn them on.

What happens on a RedM server when no law players are online?

With Witnesses the crime still gets reported, but nobody is there to answer unless you turn on the NPC law response. That optional posse rides out only while no lawman is on duty, for the crimes you choose.

Why are law players not getting witness alerts?

Check that the job is in Config.PoliceJobList, the grade is in Config.PoliceJobRanks, and the player is on duty. Grades that start at 1 or go above 5 must be added, and /witnessduty shows what the duty script says for each lawman.

Does a RedM witness script need a database?

Witnesses uses no database tables, so there is no SQL to import. It needs the free poggy_core and PolyZone, which draws the town zones.

Scripts mentioned in this guide

Whole store →
Witnesses — RedM Witness System
RedM Witness System

Witnesses

NPCs see crimes in town, run, and report them to on-duty law with a blip and a waypoint unless the player stops them first. Nine crimes, duty from your law script, and an optional NPC posse when no lawman is on duty.

From$7.99
Poggy Core — Free RedM Framework Core and Auto-Updater
Free RedM Framework Core and Auto-Updater

Poggy Core

The free, open-source core every Poggy script runs on, for VORP Core, RSG Core and QBCore RedM: automatic updates with config merging, tables created on start, account bans with a shared anti-cheat ban network, and one API for your own scripts.

PriceFree
Poggy Badges — RedM Badge Script
RedM Badge Script

Poggy Badges

Job-locked 3D badge props for RedM law roles, placed with a live editor, saved as presets per character and flashed to nearby players with a pocket-watch style animation. 21 badge images ship. VORP Core, RSG Core and QBCore RedM.

Price$19.99
Join the Discord Discord