srz_npc_witness
Advanced NPC Witness & AI Dispatch System for FiveM
NPCs see crimes, react realistically, pick up a phone, call 911, and generate AI-driven emergency reports with unique caller personalities — complete with a built-in dispatch UI panel and full export API for external integrations.
Key Features
| Feature | Description |
|---|---|
| 12 active crime types | Shooting, carjacking, hit & run, explosions, fistfight, aiming, car alarm, visible weapon, and more |
| Scanner-based detection | Dedicated client scanners for reliable detection — independent of unreliable GTA native events |
| Heat system | Criminal actions accumulate heat → NPC calls triggered when threshold is exceeded |
| Per-event tuning | Customize call duration, flee chance, heat values per crime type |
| 5 AI caller profiles | Calm, Panic, Angry, Elderly, Drunk — each with unique speech patterns |
| 160+ call templates | Per profile + event type, no two reports sound the same |
| Smart suspect attribution | Only reports the player when directly involved — NPC-vs-NPC crimes don't implicate the player |
| Corroboration | Multiple witnesses merge into a single report with weighted consensus |
| Intimidation | Aim at calling NPCs to interrupt them — they flee without completing the report |
| Dispatch UI | Real-time map with per-witness markers, sidebar call list, severity filters |
| Disguise system | Masks reduce heat and fuzz reported locations |
| Environment | Night and weather affect NPC vision range |
| Framework support | QBX, QBCore, ESX, standalone — auto-detected |
| Hardened against client spoofing | Full server-side input sanitization, XSS-proof dispatch UI, whitelisted caller profiles |
Dependencies
| Dependency | Required | Notes |
|---|---|---|
| QBX Core or QBCore | Optional | Only needed if accessMode = 'job' |
| ox_inventory | Optional | Only needed if itemAccess.enabled = true |
No hard dependencies
The resource works standalone. Framework integrations are optional and auto-detected.
Quick Start
- Copy
srz_npc_witnessinto your resources folder - Add to your
server.cfg:cfgensure srz_npc_witness - Configure
config.luato your needs - Set
EnableClientDebug = falseandshowDebugInfo = falsefor production