Skip to main content

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.