Browse docs
Player Interaction Actions
Player Interaction Actions
Every action export below validates the acting player's current whitelist access. Target existence, distance, vehicle state, restraint state, items, and inventory operations are also validated where applicable.
Handcuffs and zipties
| Export | Returns | Purpose |
|---|---|---|
cuffPlayer(sourceId, targetId, cuffType, options?) | boolean, string? | Applies cuffs or zipties. |
uncuffPlayer(sourceId, targetId, options?) | boolean, string? | Removes the target's current cuffs or zipties. |
cutZipties(sourceId, targetId, options?) | boolean, string? | Cuts the target's zipties with the configured cutter. |
isPlayerCuffed(targetId) | boolean | Reads the shared cuff state. |
getCuffConfig() | table | Returns a read-only snapshot of Config.PoliceCuffs. |
Trusted options for cuffPlayer are ignoreItemCheck, allowSelf, and forceNormal. uncuffPlayer and cutZipties accept allowSelf and forceNormal. Whitelist and distance validation cannot be disabled.
local success, reason = exports["sky_jobs_base"]:cuffPlayer(
source,
targetId,
"cuffs"
)
Escape opportunities are not exposed as a forceable integration API. The server rolls and validates them from Config.PoliceCuffs.escape, including timing, expected keys, round progression, cooldowns, and final restraint removal.
Leg restraints
| Export | Returns | Purpose |
|---|---|---|
applyLegRestraints(sourceId, targetId) | boolean, string? | Applies leg restraints after all access and target checks. |
removeLegRestraints(sourceId, targetId) | boolean, string? | Removes the target's leg restraints. |
isPlayerLegRestrained(targetId) | boolean | Reads the shared leg-restraint state. |
getLegRestraintsTargetState(targetId) | table | Returns the target's validated cuff and leg-restraint state. |
getLegRestraintsConfig() | table | Returns a read-only snapshot of Config.LegRestraints. |
Escort and vehicles
| Export | Returns | Purpose |
|---|---|---|
escortToggle(sourceId, targetId) | boolean, string? | Starts or stops escorting a cuffed target. |
escortPutInVehicle(sourceId, targetId, netId, seat) | boolean, string? | Places an escorted target into a nearby networked vehicle. |
escortTakeOutVehicle(sourceId, targetId) | boolean, string? | Removes a nearby cuffed target from a vehicle. |
escortToggle requires escort; the two vehicle exports require vehicle.
Head bag
| Export | Returns | Purpose |
|---|---|---|
useHeadBag(sourceId, targetId, action) | boolean, string? | Uses apply, remove, or toggle. |
applyHeadBag(sourceId, targetId) | boolean, string? | Applies a head bag. |
removeHeadBag(sourceId, targetId) | boolean, string? | Removes a head bag. |
isPlayerHeadBagged(targetId) | boolean | Reads the shared head-bag state. |
getHeadBagTargetState(targetId) | table | Returns success, hooded, and restrained. |
getHeadBagConfig() | table | Returns a read-only snapshot of Config.HeadBag. |
Player search
| Export | Returns | Purpose |
|---|---|---|
getSearchTargetInventory(sourceId, targetId) | table | Returns the validated target inventory and weapons. |
searchTransfer(sourceId, targetId, transferType, name, amount, metadata?) | table | Transfers a validated item from the target to the acting player. |
searchTransfer currently accepts only transferType = "storage". The target must remain nearby and restrained for the initial read and every transfer.