-
Notifications
You must be signed in to change notification settings - Fork 0
MDT Query
The Query tab is where you look up people, vehicles and plates against the CAD. It works for officers (LEO / Fire / EMS / Coroner) from inside the MDT, or via the /run chat command from anywhere.
📸 Screenshot — Query tab, empty state:
images/mdt-query-empty.png

The view is split into three types — pick the matching form on the left rail:
| Type | What you can enter | Use case |
|---|---|---|
| Person | Full name (or partial), server ID | Run an individual |
| Vehicle | Plate, VIN | Pull a registered vehicle (and its owner) |
| Plate | Plate only | Same as Vehicle but focused on the plate |
Each form has a highlighted key field (yellow) — the primary search input — plus optional secondary fields (DOB, state, etc.) used for record disambiguation.
📸 Screenshot — Query tab, person form filled:
images/mdt-query-person-form.png

Hit Run Query (or just Enter in the key field) to submit.
From anywhere in-game (LEO / Fire / EMS / Coroner only):
/run John Doe
/run 12ABC345
/run 27 ← also works with a server ID (online player)
What it does:
- Looks up the input as a server ID, then a plate, then a name substring
- Pulls the matching record(s) (up to 10 for name searches)
- Opens the MDT if it isn't already open
- Jumps to the Query view, then automatically to the Persons sub-tab so the result is front and centre
- Posts a chat line to all on-duty units: "<your callsign> ran "John Doe"" (so dispatch / partners know what you queried)
💡 The same shortcut is fired by the in-MDT Run button — so chat and MDT behave identically.
A match shows the full person record:
📸 Screenshot — Persons sub-tab with a queried record:
images/mdt-persons-card.png

| Section | Fields |
|---|---|
| Header | Name + WARRANT banner (red if active) or No warrants (green) |
| Identity | DOB, gender, address |
| Physical | Height, weight, hair, eyes |
| Licences | Driver, commercial, boating, pilot, CCW, hunting (each: Valid / Expired / Suspended / Revoked / None) |
| Notes | Free-text RP info the player put in /char — e.g. gang affiliation, medical conditions, etc. Read these — they're the RP hook.
|
| Vehicles | Every plate the person has registered, with model / colour / owner / type / year |
If a record doesn't exist:
- The person is online → the server prompts them to fill in
/char(a CAD record needs to be created) - The person is offline / not in CAD → no record returned; the Persons tab shows "No person on file"
This is what makes plate runs interesting: if a plate isn't on file and someone is driving it, they get 15 seconds to register it — or the car is flagged stolen.
📸 Screenshot — Officer's MDT showing "request running" timer:
images/mdt-plate-request.png

-
Officer runs an unregistered plate (
/run <plate>or the in-MDT plate form) -
Server checks the
civiliansstore for a matchingvehicles.<plate>entry -
No match found → server asks the FiveM network: "Who is currently driving plate XYZ?"
-
The matching client (the actual driver) gets the VREG form popped up automatically with the plate pre-filled:
"An officer is running your plate. Enter your details within 15s or it will be flagged stolen."
-
Meanwhile, the officer's MDT shows a "request running" banner with a 15-second countdown
📸 Screenshot — Driver's VREG form open:
images/mdt-vreg-driver-form.png

| Outcome | Result |
|---|---|
| Driver submits VREG within 15 s | Plate registers normally · officer sees the result · "registered" banner |
| Driver closes the form before submitting | Vehicle flagged stolen · banner turns red · status saved server-side |
| Driver doesn't submit in time | Vehicle flagged stolen (same as above) |
Once a plate is flagged stolen, every subsequent run on that plate returns STOLEN until the driver re-registers it.
To register a vehicle ahead of time so it doesn't get flagged on a routine run:
- Sit in the vehicle
- Type
/vreg
📸 Screenshot — VREG form with all fields:
images/mdt-vreg-form.png

Fields:
- Plate (auto-filled from your current vehicle)
- Model, Owner, Color, Type (Sedan, Truck, Bike, …), Year
Saved to your civilians profile under vehicles[plate]. Subsequent runs return your real details.
⚠️ Re-running/char(saving your civilian profile) resets the registered vehicle list. A fresh character starts with no vehicles and must re-vreg.
Officers can run an online player by their server ID:
/run 27
- If
27has a CAD record → it's returned - If
27has no CAD record → the server prompts that player to fill/charso the next run returns a record - The player gets a chat message: "MDT: An officer just ran you — please fill in /char so they see a record."
The Query Results sub-tab keeps a quick textual summary of the most recent matches (handy when you've ran several people in a row and want to glance back):
📸 Screenshot — Query Results sub-tab:
images/mdt-query-results.png

Each line: Name — WARRANT/No warrants — Address
For the full record, jump to Persons or re-run.
- Person records live in
civilians.json(DB storecivilians), keyed by license identifier -
/charpresets are stored per identifier inchar_presets.json(DB storechar_presets) - Stolen-plate flags are in
stolen_plates.json(DB storestolen_plates) - Every run is announced in the in-game chat to on-duty units (
MDTprefix, blue) - Runs are logged in the admin audit (admin-only access via
/calllog)
For developers building on these stores, see the Development reference in the source repo.
- Working with Incidents — what to do after a query
- Civilian & Vehicles — civilian-side overview
-
Command reference — full list of
/run,/char,/vreg