Skip to main content
Events fire after an action has happened, so they only tell you about it. To block or change an action before it happens, use a hook. Server events are local (TriggerEvent), so listen with AddEventHandler, not RegisterNetEvent. That way clients can’t fake them.
  • Arguments are positional, in the order listed in the tables.
  • source is the player who did the action. It’s nil for automated actions (exports, timers, expiry). Read it from the arguments, not from the global source.
  • identifier is a citizen or officer identifier, job is the department job name, and chat messageIds are strings.

Examples

Relay logs

log:created fires for every MDT log entry. Use it to forward logs to Discord, Fivemanage or your own logging. The built-in Discord relay in server/custom/logs/discord.lua listens to this event too.

Bill charges

charge:issued fires once per charged citizen, after the MDT has applied the charges.

Pay officers per shift

Mirror dispatch calls

call is the full dispatch call: id, type, code, priority, title, description, coords, details, jobs, units, createdBy, createdAt and more.

Send an MDT notification

redutzu-mdt:client:notification shows a toast and adds it to the notification bell, whether the MDT is open or not.

Server events

Incidents & charges

Warrants

BOLOs

Evidence

Citizens & prisoners

Vehicles & weapons

Dispatch

Field

Cameras

The following events fire for every camera type. Replace <kind> with camera, bodycam or dashcam. id is the camera id for CCTV and the entity id for bodycams and dashcams.

Chat

Collaboration

Employees

Shifts, certifications & achievements

Department

Penal code, settings & logs

Client events

Voice bridge

A voice bridge must fire these local client events so the Radio page can show who’s on the channel. See client/custom/voice/pma-voice.lua for a reference bridge.