Suty
Character Scale Menu

Usage / Exports

Usage / Exports

suty-scalemenu exposes both scale-management exports for external scripts AND scale natives for advanced integration. Most users won't need to call these — the in-game NPC and admin commands cover the standard flows.

Common exports

-- Get the player's current scale
local scale = exports['suty-scalemenu']:GetMyScale()

-- Set your own scale (subject to permission checks)
exports['suty-scalemenu']:SetMyScale(0.85)

-- Server-side: set any player's scale
exports['suty-scalemenu']:SetPlayerScale(targetSrc, 0.85)

-- Check if a player has bypass
local hasBypass = exports['suty-scalemenu']:HasBypass(targetSrc)

-- Grant / revoke bypass per player
exports['suty-scalemenu']:GrantBypass(targetSrc)
exports['suty-scalemenu']:RevokeBypass(targetSrc)

Integration hooks

If your custom script needs to temporarily reset a player's scale (e.g. a custom barber chair animation that needs default ped size):

exports['suty-scalemenu']:ForceDefaultScale(targetSrc, true)
-- ... do animation ...
exports['suty-scalemenu']:ForceDefaultScale(targetSrc, false)

The script's own ScaleResetZones feature uses this internally for barber chairs.

State bags

The current effective scale is published via player state-bag:

local scale = Player(serverId).state.scale

Read-only — to change it, use the exports above (the server-side write also handles persistence + sync).

When to use exports vs commands

Use case Use
Player-driven UI in your own script Exports
Admin action / debugging /scalemenu /scaleset
Temporary disable for an anim ForceDefaultScale export
Reading current scale (read-only) State-bag