Skip to main content
config.lua returns a single Lua table with every knob in one place. Permissions have their own page — see Permissions. This page covers everything else.
config.lua is listed under escrow_ignore, so you can edit it freely even on an escrow-protected build.

Locale

The first line of the table loads a language file. See Localization below.
locale = LoadLocale("en"),

Commands

Each command can be toggled and renamed. The command value is the in-game name without the slash.
commands = {
    openMenu   = { enabled = true, command = "scale" },
    resetScale = { enabled = true, command = "resetscale" },
},
KeyDefault commandPurpose
openMenuscaleOpens the scale menu
resetScaleresetscaleResets a scale to default
See Commands for the full command reference.

Scaling

Defines the slider ranges. height controls the ped’s vertical scale, body controls the width/depth multiplier.
scaling = {
    height = { min = 0.25, max = 2.0 },
    body   = { min = 0.75, max = 1.30 },
    scaleSpeed = {
        enabled = false,
        inverse = true,
    },
},
KeyDefaultDescription
height.min / height.max0.25 / 2.0Vertical scale range
body.min / body.max0.75 / 1.30Width/depth multiplier range
scaleSpeed.enabledfalseScale movement/animation speed with the ped’s size
scaleSpeed.inversetrueWhen speed scaling is on, invert the relationship

Gender

Lock the menu to specific ped genders. Set a gender to false to block it.
gender = {
    male   = true,
    female = true,
},

Weapon block

When true, attack, aim, melee, and weapon-wheel controls are disabled while the menu is open.
blockWeapons = true,

Camera

Tunes the cinematic camera shown while the menu is open.
camera = {
    enabled = true,
    distance = 3.0,
    height = 0.4,
    lookAtHeight = 0.2,
    lookAtSide = 0.0, -- 0 = centered; positive shifts ped left of frame, negative right
    fov = 50.0,
    inDuration = 500,
    outDuration = 400,
},
KeyDefaultDescription
enabledtrueTurn the cinematic camera on or off
distance3.0Distance from the ped
height0.4Camera height offset
lookAtHeight0.2Vertical point the camera looks at
lookAtSide0.0Horizontal framing — 0 centered, positive shifts the ped left, negative right
fov50.0Field of view
inDuration500Fly-in duration in milliseconds
outDuration400Fly-out duration in milliseconds

UI tokens

Theme tokens forwarded to the NUI. Colors are hex strings.
ui = {
    title    = "Character Scale",
    subtitle = "Adjust your character's height and build",
    brand    = "#becfff",
    panelBg  = "#0B0E13",
    surfaceBg = "#10141B",
    presets = {
        { name = "Child",    height = 0.65 },
        { name = "Petite",   height = 0.88 },
        { name = "Default",  height = 1.00 },
        { name = "Tall",     height = 1.12 },
        { name = "Towering", height = 1.25 },
        { name = "Giant",    height = 1.40 },
    },
},
KeyDefaultDescription
titleCharacter ScaleMenu title
subtitleAdjust your character's height and buildMenu subtitle
brand#becfffAccent color
panelBg#0B0E13Panel background color
surfaceBg#10141BSurface background color
presetssee belowPreset palette

Presets

Presets are quick height shortcuts. Each has a name and a target height.
Presets affect height only. Applying a preset leaves the body slider untouched, so a player can pick a height preset and still fine-tune build separately.
PresetHeight
Child0.65
Petite0.88
Default1.00
Tall1.12
Towering1.25
Giant1.40
Add, remove, or rename presets freely. Keep each height inside scaling.height.min/max so the slider can reach it.

Localization

Locale strings live in locales/<lang>.json. To switch language, change the one LoadLocale line in config.lua:
locale = LoadLocale("es"), -- en, es, or your own
The resource ships with en.json and es.json. LoadLocale reads locales/<code>.json from the resource. To add a language, drop locales/<code>.json in the folder using the same keys as en.json, then point LoadLocale at your code:
{
    "height_scale": "Height Scale",
    "current_scale": "Current Scale",
    "range": "Range",
    "close": "Close",
    "apply": "Apply"
}
If the chosen locale file is missing, the resource prints locale not found and falls back to empty strings. Match the language code in LoadLocale to a file that exists in locales/.