Skip to main content

Multichar

After a character is selected, msk_handcuffs restores the stored status (cuffed, ankletracker, …) by reacting to the framework's playerLoaded event and requesting its snapshot from the server.

Some multichar scripts don't emit a standard esx:playerLoaded / QBCore:Client:OnPlayerLoaded event. In that case the client never asks the server to restore, and the player appears uncuffed after relog.

Fix​

Trigger the restore request on the client after the character was selected and the player is fully loaded:

-- Clientside, after character selection
TriggerServerEvent('msk_handcuffs:requestRestore')

The server then re-applies the stored status (statebags, timer, ankletracker, mute) and sends the authoritative snapshot back to the client.

What changed from v2

v2 used msk_handcuffs:setCuffStatus and read from database.json. v3 stores status in MySQL and uses msk_handcuffs:requestRestore. See Migration.