Skip to content

CAD and ALPR

Reporting plate reads to SonoranCAD, LACORE, ImperialCAD, wasabi_mdt or tk_mdt, and rendering what they answer — including a failed lookup.

The CAD bridge answers plate reads from whichever CAD your server already runs. Off until you turn it on, and turning it on is one line.

lua
Config.integrations = {
    cad = { enabled = true },
}

Every plate read that belongs to a player's vehicle is then looked up, and a hit lights the plate window.

There is no API key to set. Every path into a CAD is an export call into that CAD's own resource — no URL, no key, no convar.

Supported CADs

CADResourceAnswers
LACORElacore or lacore-mdtRegistration, BOLOs, insurance. No rate limit
SonoranCADsonorancadRegistration, BOLOs, warrants, stolen
ImperialCADImperialCADA vehicle record
wasabi_mdtwasabi_mdtA vehicle record. No rate limit
tk_mdttk_mdtBOLO only

Leave provider as nil and whichever is running is used, in the order above. Name one to pin it.

What a hit looks like

A flag on the plate window, through the same setPlateFlag door a CAD of your own would use.

What the CAD saidLevelFlag
StolenalertSTOLEN
Active BOLOalertBOLO
Active warrantalertWARRANT
UninsuredwarnNO INS
Nothing on file—no flag
Several at oncealertSTOLEN · BOLO

Only alert blinks.

And when nobody answers

An empty flag field means the CAD answered, and nothing is on file. A lookup that did not come back gets a fourth level, unknown — dim, no blink, not red.

On the glassWhat happened
nothingThe CAD answered. Nothing is on file
NO ANSWERA timeout, a rate limit, or the CAD is not running
CAD ERRORThe CAD answered with a fault, or its export raised
STAND BYYou asked again inside the interval floor
NO CADNo supported CAD is running, or the pinned one is not

tRadar never prints CLEAR.

Locking a plate runs it

Locking bypasses the NPC filter and the answer cache, and tells you when the answer cannot be had. A throttled automatic read is dropped silently.

Spending your CAD's budget

SonoranCAD's lookup endpoint is 30 requests per minute, per API key — per community, shared with your CAD resource's own traffic and every other officer.

Alongside the built-in BOLO list

Both at once is supported. The built-in BOLO list is the shift's own, kept in data.json; the bridge is a second answerer on the same event. The last answer wins, but a CAD answering clear only clears a flag the CAD set, so a plate your shift watches keeps lighting.

Every setting

SettingDefaultWhat it does
enabledfalseThe whole feature. false and not one message is sent
providernilnil to use whichever supported CAD is running; or lacore, sonoran, imperial, wasabi, tkmdt to pin one
npcFiltertrueOnly a vehicle a player is in or has owned, never an emergency vehicle
queryOnReadtrueLook up every new read the filter lets through. false keeps only the lock path
queryOnLocktrueLook up a plate when an officer locks the window
minIntervalMs2000Floor per officer. Two seconds is 30 a minute
answerTtlMs60000How long one answer is reused for the same plate. 0 never reuses
timeoutMs15000How long to wait before saying nobody answered
notifyOfficertrueSonoranCAD only: pop the lookup on the officer's own CAD

When it is not working

Run tradar_diag on the server console and read its integration section.

cad = sonoran   selection = auto
  detected = sonoran
  floor = 2000 ms/officer   answer TTL = 60000 ms   timeout = 15000 ms
  asked = 142   coalesced = 18   from cache = 61   in flight = 1
  answered = 63   hits = 4   clear = 55   no answer = 4   timed out = 2
  throttled = 9   access denied = 0
What you seeWhere to look
cad = offConfig.integrations.cad.enabled
cad = NONE ANSWERINGThe next line names a typo, a stopped resource, or no CAD
detected lists (no export)SonoranCAD's lookups plugin is switched off inside the CAD
asked = 0 while reads happenThe NPC filter, or queryOnRead
access denied climbingThe gate that decides who may open the radar
timed out climbingReachable but slow. Raise timeoutMs
throttled climbingNormal on a busy server

Next

Still stuck? Support can answer it directly.

Was this page helpful?