Browse docs
Events
Events on this page either invoke an already validated built-in interaction flow or publish read-only presentation state. They do not grant Police permissions or mutate an Advanced Speed Camera review.
Police interaction events
Client Events
These events can be triggered from other resources to interact with the police job on the client side. They mirror the client exports for resources that prefer events over export calls.
The local player's job must already be registered through the server-side
registerInteractionJobs export and have the required capability. Police jobs from Config.Jobs
are registered automatically. Triggering one of these events does not bypass the shared whitelist,
duty policy, item checks, or server validation.
| Event | Description |
|---|---|
sky_policejob:client:cuffPlayer | Apply cuffs or zipties to the nearest valid player as an officer. |
sky_policejob:client:uncuffPlayer | Remove cuffs from the nearest player as an officer. |
sky_policejob:client:useCuffPlayer | Compatibility alias for the cuff action; uses the same whitelist. |
sky_policejob:client:useUncuffPlayer | Compatibility alias for the uncuff action; uses the same whitelist. |
sky_policejob:client:escortToggle | Start or stop escorting the nearest player. |
sky_policejob:client:escortPutInVehicle | Put the escorted player into the closest vehicle. |
sky_policejob:client:escortTakeOutVehicle | Take the escorted player out of a vehicle. |
sky_policejob:client:cuffPlayer
Applies restraints to the nearest valid player. Accepts an optional cuff type.
TriggerEvent("sky_policejob:client:cuffPlayer") -- cuffs
TriggerEvent("sky_policejob:client:cuffPlayer", "zipties")
sky_policejob:client:uncuffPlayer
Removes cuffs or zipties from the nearest player.
TriggerEvent("sky_policejob:client:uncuffPlayer")
sky_policejob:client:useCuffPlayer / sky_policejob:client:useUncuffPlayer
Compatibility aliases for the regular cuff and uncuff events. They use the same registered-job access policy and server checks. Failures show a notification to the player.
TriggerEvent("sky_policejob:client:useCuffPlayer", "cuffs") -- or "zipties"
TriggerEvent("sky_policejob:client:useUncuffPlayer")
sky_policejob:client:escortToggle
Starts or stops escorting the nearest player.
TriggerEvent("sky_policejob:client:escortToggle")
sky_policejob:client:escortPutInVehicle
Puts the currently escorted player into the closest vehicle.
TriggerEvent("sky_policejob:client:escortPutInVehicle")
sky_policejob:client:escortTakeOutVehicle
Takes the escorted player out of a vehicle.
TriggerEvent("sky_policejob:client:escortTakeOutVehicle")
Advanced Speed Camera
Server-emitted camera state
These events keep streamed camera props and optional client integrations synchronized. They are presentation signals, not an authority for review or billing.
| Event | Payload | Purpose |
|---|---|---|
sky_policejob:speedcam:sync | table | Replaces the locally known camera collection with a server snapshot |
sky_policejob:speedcam:created | table | Adds or replaces one deployed camera |
sky_policejob:speedcam:removed | number | Removes one camera by numeric server ID |
sky_policejob:speedcam:updated | table | Updates durability and operational status for one camera |
Listen for created cameras
AddEventHandler("sky_policejob:speedcam:created", function(camera)
print("Speed camera created:", camera.id, camera.name)
end)
Listen for removal
AddEventHandler("sky_policejob:speedcam:removed", function(cameraId)
print("Speed camera removed:", cameraId)
end)
Listen for durability changes
AddEventHandler("sky_policejob:speedcam:updated", function(change)
print("Speed camera status:", change.id, change.status, change.durability)
end)
Events that are not public APIs
Photo capture, evidence-token attachment, review listing, approval, and discard callbacks are internal. They are deliberately excluded from this reference because integrations must not imitate the built-in client-to-server workflow.
Support
Need help? Our support team is always ready to assist.
Join Discord