Quick References
Common integration patterns for Wasabi Police Job V2 (wasabi_police_v2).
Player restraint
Check whether a player is cuffed (server)
local cuffed, cuffData = exports['wasabi_police_v2']:isPlayerCuffed(serverId)
if cuffed then
print(cuffData.type, cuffData.position)
end
Read cuff state directly
local cuffs = Player(serverId).state.cuffs
local isCuffed = cuffs and cuffs.flags and cuffs.flags ~= 0
Or from wasabi_police(v1), V2 also maintains:
local isCuffed = Player(serverId).state.cuffed or false
Police availability
local count = exports['wasabi_police_v2']:getPoliceCount()
local count = GlobalState['wasabi:police:onlineCount'] or 0
Jail
local jailed = exports['wasabi_police_v2']:jailPlayer(serverId, 300, 'Armed robbery')
local remaining = exports['wasabi_police_v2']:getJailTime(serverId)
local released = exports['wasabi_police_v2']:releasePlayer(serverId)
Sentence values are in seconds.
Tracking
exports['wasabi_police_v2']:applyTracker(serverId)
local tracked = exports['wasabi_police_v2']:isTracked(serverId)
exports['wasabi_police_v2']:removeTracker(serverId)
Stations and job menu
local stations = exports['wasabi_police_v2']:getAllStations()
exports['wasabi_police_v2']:openJobMenu()
Bodycam
exports['wasabi_police_v2']:StartBodyCam()
local active = exports['wasabi_police_v2']:IsBodyCamActive()
exports['wasabi_police_v2']:StopBodyCam()
Integration hooks
Use Listeners for editable callbacks and Events for lifecycle notifications. Do not call undocumented internal network events as an integration API.