Configuration — ns-height
All options live in config.lua (stays editable under escrow). Locales: locales/en.lua, locales/tr.lua.
General
| Option | Default | Description |
|---|---|---|
Config.Framework | 'auto' | 'auto', 'qbox', 'qbcore', 'esx', 'standalone' |
Config.Locale | 'tr' | Active language; missing keys fall back to Config.FallbackLocale |
Config.Debug | false | Debug console output (Config.DebugCategories = { admin = true } shows admin actions) |
Config.UseOxLib | true | Use ox_lib notifications when ox_lib is started |
Config.Database.autoMigrate | true | Create / update tables on start |
Config.Security.* | see file | RPC flood bucket, rate limits, dropAfterFlags (0 = never kick) |
Config.Admin.ace | 'ns-height.admin' | ACE for admins; useFrameworkAdmin also accepts framework admins |
Config.Notifications.* | 'auto' | Provider, duration, position, custom function |
Config.Standalone.isAdmin | false | Admin check when no framework is used |
Config.UseOxTarget, Config.Inventory and Config.Target are shared NullSect settings. ns-height itself does
not use a target or an inventory, so you can leave them as they are.
Height
| Option | Default | Description |
|---|---|---|
Config.Command | 'boy' | Opens the panel (admins, or players with credits) |
Config.AdminCommands.give | 'boyizin' | /boyizin <id> <count> gives credits |
Config.AdminCommands.take | 'boyizinal' | /boyizinal <id> [count] takes credits (no count = all) |
Config.AdminCommands.reset | 'boysifirla' | /boysifirla <id> resets the height |
Config.Unit | 'cm' | 'cm' or 'ft': main unit in the panel; the other one is shown below it |
Config.MinHeight / MaxHeight | 150 / 200 | Allowed height in cm |
Config.Step | 1 | cm per slider step and per +/- click |
Config.MinScale / MaxScale | 0.80 / 1.20 | Limit on height ÷ natural height. Both these and the cm limits must hold |
Config.BaseHeight | male 178, female 168, default 175 | Natural height (cm) per ped model; the key is the model name or its hash as a number ([`addon_ped`] = 172, [0x1234ABCD] = 172); unknown models use default |
Config.MaxCredits | 10 | Most credits one character can hold |
Config.ConfirmApply | true | Apply needs a second click within 3 seconds |
Config.RenderDistance | 80.0 | Metres; scaled peds further away are drawn at normal size |
Config.PelvisOffset | 1.0 | Metres from the ped origin to the feet; keeps scaled feet on the ground (see INSTALLATION → Calibration) |
Config.Render.scanInterval | 500 | ms between two scans for scaled peds nearby |
Config.Render.idleWait | 1000 | ms the render loop sleeps while nobody scaled is near |
Config.Disable.InVehicle / Parachute | true | Pause the scale in these situations |
Config.Disable.Ragdoll | false | false: a ragdoll keeps the height (scaled around the pelvis, its position is never moved). true: drawn at normal size while ragdolling |
Config.Preview.distance / height / fov | 2.6 / 0.25 / 45.0 | Preview camera |
Config.Preview.rotateSpeed | 0.4 | Degrees per mouse pixel when dragging |
The natural height is always allowed, even when it is outside the cm limits. The slider then runs from the natural height to the nearest cm limit: an addon ped with a natural height of 140 can choose 140–192 (with 0.80–1.20 scale limits), not only 140 and 150–168.
Hooks for other resources
-- every admin action (credits given / taken, height reset)
AddEventHandler('ns-height:hook:adminAction', function(data)
-- data = { admin = <src, 0 = console, 'export' = AddCredits export>, target = <src>, action = 'credits' | 'reset', delta = <int|nil>, result = <credits|nil> }
print(('[height] %s %s %s (%s)'):format(GetPlayerName(data.admin) or 'console', data.action,
GetPlayerName(data.target) or data.target, tostring(data.delta)))
end)
-- every suspicious request (forged RPC, admin command by a non-admin, ...)
AddEventHandler('ns-height:hook:securityFlag', function(src, reason, detail) end)
Both are server-side events. Send them to Discord or your log resource from there.
Export: give credits from another resource
-- server side; e.g. a shop or a donation script. Negative values take credits.
local credits, err = exports['ns-height']:AddCredits(source, 1)
if not credits then print('ns-height refused:', err) end -- err_target_offline, err_credit_limit, err_busy, ...
The player must be online with a loaded character, and the result must stay between 0 and Config.MaxCredits.
For offline characters, add to ns_height.credits in SQL: the game reads the database again when the player
has no credits left in memory.