G.A.SG.A.S Docs
G.A.S Docs / Other

Police MDT & CAD

A solo-play-friendly police MDT/CAD that runs against the GTA NPC population — every ped gets a deterministic, persistent identity you can run, cite, warrant, arrest and book, with a live 911 feed so the precinct never feels dead.

Version v1.0.0Framework QboxUpdated July 2026 $24.99 Get it on the store →

A solo-play-friendly police MDT that runs against the GTA NPC population. Every NPC ped has a deterministic, persistent profile (name, DOB, address, license, warrants, priors, owned vehicles) generated from a hash of its network ID — so running the same ped twice always returns the same person.

Controls

KeyAction
F6Open the MDT (must be on-duty cop)
GRun nearest / aimed-at NPC ped
HRun the plate of the vehicle you're in / aiming at
/mdtSame as F6

Plus ox_target options: "Run on MDT" on any ped, "Run Plate" on any vehicle.

How realism works

  • The procedural generator (shared/profile.lua) produces consistent fake identities per NPC. License weights, warrant chances, gang affiliation odds are all tunable in config/config.lua → RRMDT.Gen.
  • Ownership: each citizen seed deterministically maps to 0–3 owned vehicles. Plate lookups also derive a fake registered owner from the plate hash.
  • The dashboard runs a continuous fake feed of 911 calls, reports, and citations against random NPCs so the precinct never feels dead. Tunable in RRMDT.Feed.
  • Anything you record (arrests, citations, warrants, notes, BOLOs) is **persisted to MySQL** so your enforcement history sticks across restarts. Tables are auto-created with the rr_mdt_ prefix on first start.

Permissions

The MDT only opens for jobs listed in RRMDT.PoliceJobs (default: police, sheriff, lspd, bcso, sasp) — and only when on-duty (toggleable with RRMDT.RequireOnDuty).

Customising

  • Department brandingRRMDT.Brand in config/config.lua.
  • Charge codesRRMDT.Charges in config/config.lua. Mirror them in html/app.js → CHARGES if you want them in the in-NUI charge picker (the server side is always the source of truth for DB writes).
  • Names / streets / vehiclesconfig/data.lua.

Files

rr-mdt/
├── fxmanifest.lua
├── config/
│   ├── config.lua    -- jobs, generation tuning, charge codes, BOLO defaults
│   └── data.lua      -- name pools, streets, vehicle catalog, call templates
├── shared/
│   ├── seed.lua      -- deterministic LCG + FNV-1a hash
│   └── profile.lua   -- pure citizen / vehicle generators
├── client/
│   └── client.lua    -- keybinds, target integration, NUI bridge
├── server/
│   └── server.lua    -- DB schema, lookups, mutations, fake feed
└── html/
    ├── index.html
    ├── style.css
    └── app.js

No edit to server.cfg needed — ensure [custom] already covers it.

Last updated August 10, 2026