Skip to main content

Client Exports

The action exports run the same server-validated logic as the in-game items. Their signatures are unchanged from v2.

player is an optional local player index (e.g. from MSK.GetClosestPlayer() or ESX.Game.GetClosestPlayer()). When omitted, the closest player is used.

Status getters

-- Self (or read the statebag directly)
local isHandcuffed = exports.msk_handcuffs:getIsHandcuffed() -- or LocalPlayer.state.isHandcuffed
local isHardcuffed = exports.msk_handcuffs:getIsHardcuffed() -- or LocalPlayer.state.isHardcuffed
local hasAnkletracker = exports.msk_handcuffs:getHasAnkletracker() -- or LocalPlayer.state.hasAnkleTracker
local hasHeadbag = exports.msk_handcuffs:getHasHeadbag() -- or LocalPlayer.state.hasHeadbag
local hasTape = exports.msk_handcuffs:getHasTape() -- or LocalPlayer.state.hasTape

-- Other players (by statebag — recommended)
local isHandcuffed = Player(targetServerId).state.isHandcuffed

cuffPlayer

cuffPlayer(item?, player?) — Cuff a player. If item is nil, the script resolves it from Config.RestrictItems (per job) when enabled.

exports.msk_handcuffs:cuffPlayer() -- closest player, auto item
exports.msk_handcuffs:cuffPlayer('cuffs') -- closest player, specific item
exports.msk_handcuffs:cuffPlayer(nil, closestPlayer) -- specific player, auto item
exports.msk_handcuffs:cuffPlayer('cuffs', closestPlayer) -- specific player & item

hardcuffPlayer

hardcuffPlayer(item?, player?) — Hardcuff a player (must be cuffed first).

exports.msk_handcuffs:hardcuffPlayer()
exports.msk_handcuffs:hardcuffPlayer('hardcuff', closestPlayer)

uncuffPlayer

uncuffPlayer(item?, player?) — Uncuff a player. The uncuff item must match the cuff item (Config.ItemSettings).

exports.msk_handcuffs:uncuffPlayer()
exports.msk_handcuffs:uncuffPlayer('cuff_keys', closestPlayer)

ankleTrackerPlayer

ankleTrackerPlayer(player?, remove?) — Toggle an ankletracker (target must be cuffed).

exports.msk_handcuffs:ankleTrackerPlayer()
exports.msk_handcuffs:ankleTrackerPlayer(closestPlayer)

headbagPlayer

headbagPlayer(player?, remove?) — Toggle a headbag.

exports.msk_handcuffs:headbagPlayer()
exports.msk_handcuffs:headbagPlayer(closestPlayer)

tapePlayer

tapePlayer(player?, remove?) — Toggle tape (mute).

exports.msk_handcuffs:tapePlayer()
exports.msk_handcuffs:tapePlayer(closestPlayer)

dragPlayer / escortPlayer

dragPlayer(player?) — Toggle dragging/escorting (target must be cuffed). escortPlayer is an alias.

exports.msk_handcuffs:dragPlayer()
exports.msk_handcuffs:dragPlayer(closestPlayer)

putPlayerInCar / putPlayerOutOfCar

exports.msk_handcuffs:putPlayerInCar() -- closest player
exports.msk_handcuffs:putPlayerInCar(closestPlayer)
exports.msk_handcuffs:putPlayerOutOfCar(closestPlayer)
Removed in v3

getObjectState, the self-cuff exports Cuff / Hardcuff / Uncuff, the client admin exports and the aliases gethasAnkletracker / gethasHeadbag were removed. See Migration.