- Documentation
- 06Game
Plate readerGame
Plates read in game by the Wraith ARS 2X radar or by the bridge’s built-in reader are checked against the MDT: in-game alert, trace on the vehicle record, who can use it and where.
With the in-game plate reader, every plate read in front of a patrol car is checked against the MDT. If the vehicle is stolen, wanted, or its owner has an arrest warrant, the officer gets an on-screen alert in game, without typing anything.
Plates are read by the Wraith ARS 2X radar if it is installed on your server, otherwise by the bridge’s built-in reader.
Turn it on
Section titled “Turn it on”- In Settings › Game › Integrations, turn on In-game plate reader (administrators, or a rank with Delegated administration › Set up the game). Off by default. Under the switch, SuperMDT shows whether it uses Wraith or the built-in reader.
- In Settings › Operations, pick the service and open the Plate reader card. Check Reader on in this service. The service also needs the Vehicles module: without it, the reader has nothing to check.
- Choose what triggers an alert, then save.
plate-reader-settingsOn the game server side, the reader is turned off with Config.PlateReader.enabled = false
in config_shared.lua.
Service settings
Section titled “Service settings”| Setting | Role | Default |
|---|---|---|
| Reader on in this service | On-duty officers of this service receive the alerts | off |
| Built-in reader (servers without Wraith) | Officers can turn it on themselves in game; only on a server without Wraith | on |
| The front passenger can use it | The driver always can; the game server can also forbid it to the passenger | on |
| What triggers an alert | The selected reasons (see below) | stolen, BOLO, warrant, owner wanted |
| Checked fields of the vehicle record | Up to 4 custom fields: alert when empty or unchecked, or when the date has passed | none |
| In-game alert sound | A sound comes with the alert | on |
| Keep a trace in the vehicle history | A flagged plate leaves a line on the record | on |
| Merge close reads | The same plate read again within this delay extends the same line | 15 min (1 to 240) |
Configuring the reader requires Plate reader › Configure the reader.
Alert reasons
Section titled “Alert reasons”| Reason | When | MDT permission needed to see it |
|---|---|---|
| Stolen vehicle | the vehicle record is marked stolen | Vehicles › See vehicles |
| BOLO on the vehicle | an active BOLO targets this plate | BOLOs › See BOLOs |
| Arrest warrant against the owner | the owner has an active arrest warrant | Warrants › See warrants |
| Owner wanted | an active BOLO targets the owner | BOLOs › See BOLOs |
| Seized vehicle | marked seized | Vehicles › See vehicles |
| Impounded vehicle | marked impounded | Vehicles › See vehicles |
| Plate unknown to the MDT | no record has this plate | Vehicles › See vehicles |
| Record field missing or expired | a checked field is empty, unchecked or past (insurance, inspection…) | Vehicles › See vehicles |
An officer only sees a reason if they have the matching MDT permission: the reader never shows more than the record would. They also need Plate reader › Use in game and must be on duty.
The in-game alert
Section titled “The in-game alert”When a plate is flagged, the officer sees a flashing red notification: the plate, the reasons and the vehicle model. A sound comes with it if the service wants one.
- Mute the sound: each player can mute it on their side with the
supermdt_plate_soundcommand (their choice is kept on their PC). - Open the record: for 20 seconds after the alert, the Page Up key (
PAGEUPby default, action “open the flagged vehicle record”) opens the vehicle record in the tablet. Only with Vehicles › See vehicles. The notification shows the key the player actually bound; if they have none, it points to the SuperMDT menu and its key. The menu also offers Open the last alert for 10 minutes.
A clean plate triggers no notification. With the built-in reader, its camera shows Clear.
The built-in reader in game: what the officer sees
Section titled “The built-in reader in game: what the officer sees”On a server without Wraith, the officer turns the reader on themselves. Once on, it stays on until they turn it off, leave the vehicle, change seats or go off duty.
- Turn on: the officer, on duty, gets behind the wheel of a patrol vehicle (or in the front passenger seat when allowed), opens the SuperMDT menu (F9; on ESX, the key the player picked) and picks Turn the plate reader on. A short message confirms “plate reader on”. No direct key by default: each player can bind one in Settings › Key Bindings › FiveM (“SuperMDT plate reader: turn on or off”).
- Read: a small panel stays on screen, at the bottom center like the Wraith radar, with two cameras side by side: Front and Rear. Each shows the plate of the vehicle it sees (up to 40 m ahead, or behind), its model and a status, updated every 500 ms.
- Turn off: the same menu entry (or the key). The message “plate reader off” confirms it and the panel goes away.
game-plate-reader-camerasThe last plate stays on screen
Section titled “The last plate stays on screen”When nothing is in front of a camera any more, it keeps the last plate read instead of going blank. Under the plate, discreetly, how long ago it was read: “just now” while the vehicle is in view, then “12 s ago”, “3 min ago”.
Locking
Section titled “Locking”- Automatic: as soon as a plate has something to report (stolen, BOLO, warrant, owner
wanted…), its camera freezes on it, with the alert visible, for 30 seconds
(
Config.PlateReader.autoLockSeconds) or until the officer unlocks it. The countdown shows on the camera (“Locked · 24 s”). Other vehicles keep being read in the background without replacing the display. A plate with nothing to report locks nothing, and an unlocked plate does not lock again by itself while it stays in view. - Manual: the officer locks or unlocks each camera from the SuperMDT menu (Lock the front camera, … rear), or with their own keys (“SuperMDT plate reader: lock the front / rear camera”, no default key). A manual lock lasts until unlocked. A Locked pill with a padlock shows it on the camera.
| Camera status | What it means |
|---|---|
| Checking | The plate was just read, the MDT is checking it. |
| Clear | Nothing to report for this officer. |
| Flagged plate (red card) | The plate is flagged: the reasons show on the camera, on top of the red notification, the sound and the shortcut to the record. |
| No vehicle | This camera has read nothing since the reader was turned on. |
| Retrying… | The MDT did not answer; the plate is read again a bit later. |
| Unreadable plate | The vehicle seen has no readable plate. |
A plate already checked is not asked again to the MDT: the camera shows at once the result kept by the bridge (2 minutes for a clean plate, for the whole service). The same plate seen by both cameras is sent only once. A clean plate never writes anything to the database.
As soon as a plate’s situation changes in the MDT (vehicle reported stolen or recovered, BOLO, arrest warrant or BOLO on the owner, plate or owner edited), the game server forgets it within a few seconds: it is read again on the next pass. Changing a service’s reasons clears everything that was kept.
When it can’t turn on, a short message says why (“Can’t turn the reader on: …”):
| Reason shown | What to do |
|---|---|
| go on duty in a department that has it | Go on duty; check that your service has the reader on. |
| your department turned it off | The service’s Built-in reader setting, in Settings › Operations. |
| you are not allowed to use it | It takes Plate reader › Use in game. |
| get in a patrol vehicle | The officer is on foot. |
| take the driver seat (or “take the driver or front seat”) | Wrong seat. |
| emergency vehicles only | Civilian vehicle: add unmarked cars to allowedModels. |
| vehicle not allowed | With strictModels = true, only a model from allowedModels is accepted. |
| use the Wraith ARS 2X radar | Wraith is installed: it reads the plates. |
| disabled on this server | Reader turned off in the resource (Config.PlateReader). |
| not available for your organization | In-game plate reader isn’t turned on in Settings › Game › Integrations. |
| your job is not linked to any department | Link the job in Settings › Game › Jobs and services. |
| link your account to the MDT first | See Accounts and characters. |
| refused by the MDT, try again later | The MDT refused the last read: nothing more is sent for this player for 5 minutes (deniedTtlSeconds). |
When the officer leaves the vehicle, the reason is “you left the vehicle”. Other short
messages: “turn the plate reader on first” (locking a camera while the reader is off), “no
plate read by this camera” (nothing to lock), “no recently flagged plate to open” (record key
with no recent alert). The /supermdt_plate_sound command confirms the sound is muted or
back on.
The reader turns itself off, with the reason, when the officer leaves the vehicle, changes seats or goes off duty. Its cameras and locks then start from scratch.
- Automatic start: with
Config.PlateReader.autoOn = true, the reader turns on by itself when the officer takes the right seat of a patrol vehicle. Turning it off (menu or key) keeps it off until the next vehicle. Off by default. - Move the panel: in the HUD layout (SuperMDT
menu, or
/mdthud), together with the other SuperMDT elements. The place is kept on the player’s PC; the default place is set withConfig.PlateReader.panel.
| Action | Default key | Also in the SuperMDT menu |
|---|---|---|
| Turn the reader on or off | none | yes |
| Lock or unlock the front camera | none | yes |
| Lock or unlock the rear camera | none | yes |
| Open the flagged vehicle record | Page Up (20 s after the alert) | yes (Open the last alert, 10 min) |
Each player binds or changes their keys in Settings › Key Bindings › FiveM; the game texts always show the key they chose.
The trace on the vehicle record
Section titled “The trace on the vehicle record”A flagged plate leaves a line in the Plate reader section of the vehicle record: the reasons, the period, who read it, via the Wraith radar or the Built-in reader, and the place on the map (Show on the map). The latest 20 passes are shown.
plate-reader-history- Close reads of the same plate (within the service’s merge delay) extend the same line instead of adding one.
- A clean plate never writes anything.
- A plate unknown to the MDT leaves no trace: there is no record to write it on.
- Without Keep a trace, nothing is written, even for a flagged plate.
Wraith ARS 2X or built-in reader: who can use it, where
Section titled “Wraith ARS 2X or built-in reader: who can use it, where”Wraith ARS 2X (wk_wars2x, free, MIT license) |
Bridge’s built-in reader | |
|---|---|---|
| When | As soon as Wraith is started on the server | Only without Wraith (unless builtinWithWraith = true, not recommended) |
| Vehicle | Wraith’s rules: emergency vehicle (GTA class 18) | Emergency vehicle (class 18) or a model in Config.PlateReader.allowedModels (unmarked cars), with emergencyOnly = true |
| Seat | Driver; front passenger if Wraith’s config allows it (allow_passenger_view) |
Driver; front passenger only if Config.PlateReader.allowPassenger and the service setting allow it |
| Reading | Wraith’s front and rear cameras | Two cameras, front and rear: the vehicle ahead and the one behind, up to 40 m (range), every 500 ms (scanIntervalMs) while the officer has the reader on (SuperMDT menu, or their key) |
| Display | Wraith’s screen | The built-in reader’s panel: two cameras side by side (plate, model, status, last plate kept, lock) |
| What the bridge adds | On duty, service with the reader on, Use in game permission | The same |
| Support | Verified in code | Tested in game |
- Wraith is never bypassed: its own rules apply first. The bridge listens to its events
(
wk:onPlateScanned,wk:onPlateLocked) and adds its own. - Automatic lock:
Config.PlateReader.wraithLockOnHitlocks the plate in Wraith when it is flagged. Off by default: SuperMDT’s answer comes afterwards, and the plate Wraith shows may have changed in the meantime. - What the server re-checks: the seat, always. The vehicle class (class 18) can only be
read on the player’s side; with
strictModels = true, the server also checks the model, and only models inallowedModelsare accepted.
Bridge settings
Section titled “Bridge settings”In config_shared.lua, Config.PlateReader:
| Setting | Role | Default |
|---|---|---|
enabled |
The plate reader on the game server side | on |
builtin |
The built-in reader (false: Wraith only) | on |
builtinWithWraith |
Built-in reader even with Wraith (double reading) | off |
emergencyOnly |
Emergency vehicles and allowedModels only |
on |
allowedModels |
Models allowed besides emergency vehicles | none |
strictModels |
Only the models in allowedModels, also checked by the server |
off |
allowPassenger |
The front passenger can read (if the service allows it too) | on |
range |
Range ahead of the vehicle, in meters | 40 |
scanIntervalMs |
Reader on: one read every… | 500 ms |
key |
Default key that turns the reader on or off (supermdt_plate_toggle); also in the SuperMDT menu |
none |
autoOn |
Turn the reader on when getting in a patrol vehicle | off |
autoLockSeconds |
How long a camera stays locked on a flagged plate (0: never) | 30 s |
lockFrontKey, lockRearKey |
Default keys to lock each camera | none |
panel |
Default place of the panel (position, offset in pixels); each player changes it in the HUD layout |
bottom center, 32 px from the edge |
alertSound |
Alert sound | on |
openKey |
Default key of supermdt_plate_open |
PAGEUP (Page Up) |
openWindowMs |
This key opens the record for… after the alert | 20 s |
menuRecordMinutes |
“Open the last alert” stays in the menu for… | 10 min |
wraithLockOnHit |
Lock the plate in Wraith on an alert | off |
In config.lua, Config.PlateReaderServer sets the cache and the limits:
| Setting | Role | Default |
|---|---|---|
perPlayerMs |
At most one read sent per player every… | 1.5 s |
batchWindowMs |
Reads are sent together after this delay (16 per request at most) | 750 ms |
cleanTtlSeconds |
A clean plate is not asked again, for the whole service, for… (forgotten sooner if it changes in the MDT) | 2 min |
hitTtlSeconds |
A flagged plate is not asked again, for this officer, for… | 60 s |
deniedTtlSeconds |
After a refusal (permission, off duty…), nothing is sent for this player for… | 5 min |
maxPerMinute |
Reads sent per minute for the whole server | 120 |
Permissions
Section titled “Permissions”| Permission | What it allows | Default |
|---|---|---|
| Plate reader › Use in game | Receive the alerts in game, on duty | every rank |
| Plate reader › Configure the reader | The Plate reader card in Settings › Operations | command |
They sit under the Vehicles module of the permission matrix, and only show there when the game integration is on.
Troubleshooting
Section titled “Troubleshooting”| What you see | Cause | What to do |
|---|---|---|
| Never any alert | Reader off for the organization or the service, no Vehicles module, officer off duty or without Use in game | Check both switches and the permission. |
| Nothing shows when picking “Turn the plate reader on” | Built-in reader off on the game server (builtin = false), or the entry missing from the menu (off duty, service without the reader) |
Check Config.PlateReader and your service; otherwise, the message on screen says why the reader does not turn on. |
| The built-in reader reads nothing in an unmarked car | The vehicle is not class 18 | Add the model to allowedModels. |
| The passenger gets nothing | Passenger forbidden by the service, by allowPassenger or by Wraith’s config |
Allow it in all three places. |
| A stolen plate triggers nothing | Reason unchecked in the service, or the officer lacks See vehicles | Check the reason and the permission. |
| No line on the record | Plate unknown to the MDT, or Keep a trace unchecked | Expected in the first case. |
In the server console, supermdt status (“Plate reader” line) tells whether the reader is
active (and if not, why), its mode (Wraith, or built-in reader turned on by the officer or
automatically), the number of services where it is active, and counts reads, sends, cache
hits, alerts and refusals.