Listeners
Editable bridge hooks for Wasabi Police Job V2 (wasabi_police_v2). These are not exports.
Files
- Client:
bridge/listeners/client.lua - Server:
bridge/listeners/server.lua
Undefined listener names resolve to a no-op. Keep listener implementations non-blocking.
Client listeners
| Listener | Parameters | Called when |
|---|---|---|
onCuff | type, position | The local player is cuffed. |
onUncuff | none | The local player is uncuffed. |
onSurrender | mode | The local player surrenders. |
onTackle | none | The local player is tackled. |
onEscort | mode | The local player is escorted. |
onSearch | none | The local player is searched. |
onTrafficStop | vehicleNet, outcome | A traffic stop begins for the local player's vehicle. |
onEvidenceCollect | type, evidenceId | Evidence is collected. |
onCCTVView | viewing, cameraId | CCTV viewing starts or stops. |
onJail | sentence | The local player is jailed. |
onRelease | none | The local player is released. |
onGSR | positive | The local player's GSR result is received. |
onRadarFlash | speed, unit | A radar or speed trap detects the local vehicle. |
onDutyChange | onDuty | Duty status changes. |
AntiCheatState | enabled | Police V2 enters or leaves an anti-cheat-sensitive action. |
Blocking hooks
Return true from these hooks to block or hide the corresponding behavior:
function listeners.shouldBlockCuff()
return false
end
function listeners.shouldBlockSurrender()
return false
end
function listeners.shouldHideHud()
return false
end
Example
function listeners.onDutyChange(onDuty)
print(('Police duty changed: %s'):format(onDuty))
end
Server listeners
| Listener | Parameters | Called when |
|---|---|---|
onArrest | source, by, station | A player is arrested and booked. |
onJail | source, by, sentence, reason | A player is jailed. |
onRelease | source, by, reason | A player is released. |
onFineIssued | source, by, amount, reason | An officer issues a fine. |
onLicenseChange | source, by, license, granted | A license is granted or revoked. |
onSpeedTrapTriggered | source, postId, speed, fine | A persistent speed trap triggers. |
onCuff | source, by, type | A player is cuffed. |
onUncuff | source, by | A player is uncuffed. |
onEvidenceCreated | type, coords, metadata | World evidence is created. |
onEvidenceLinked | evidenceId, suspectIdentifier, by | Evidence is linked to a suspect. |
onDutyChange | source, onDuty, job | Duty status changes. |
onPanic | source, coords | An officer activates panic. |
onGSR | source, by, positive | A GSR test resolves. |
onTracker | source, by, applied | A tracker is applied or removed. |
onSpikeStripPlace | source, coords | A spike strip is placed. |
onSpikeStripRemove | source | A spike strip is removed. |
onCCTVDestroyed | cameraId, reporterSource, attackerSource | A CCTV camera is destroyed. |
onCCTVView | source, cameraId | A player begins viewing CCTV. |
function listeners.onFineIssued(source, by, amount, reason)
-- Forward to your audit or analytics system.
end