Configuration
All settings live in config.lua. The file is loaded as a shared_script, so values are available to every client.
Config.Command
Config.Command = 'board_calibrate'
The chat command used to open and close the panel. Type /board_calibrate (or your custom name) to toggle; pass a model name as the first arg to pre-select it. The command is registered with restricted = false, so any player who is in your server can run it — gate it via your framework's permission system or remove the resource from production.
Config.Models
Config.Models = {
'prop_cork_board',
'prop_muster_wboard_01',
'prop_muster_wboard_02',
'p_planning_board_01',
'p_planning_board_02',
'p_planning_board_03',
'prop_w_board_blank_2',
'prop_w_board_blank',
'prop_b_board_blank',
'hei_prop_dlc_heist_board',
}
The default model list shown in the picker. These are the same prop names that f5_board ships with in its Config.PropModels. You can edit this list freely — add more here if you want them visible to everyone who opens the calibrator.
For one-off props that don't belong on the default list, prefer the in-game "Add custom model" input — no resource restart required.
Config.SpawnDistance
Config.SpawnDistance = 2.5
Distance, in meters, from your player to the spawned prop. Used both when first picking a model and when pressing the Reposition button. The prop is also lifted +0.6 m above the player on Z, regardless of this value (this is hardcoded in spawner.lua).
Config.Steps
Config.Steps = {
forward = 0.005,
up = 0.005,
width = 0.010,
height = 0.010,
}
Base nudge step per field, in meters. The Step × multiplier in the panel (×1 / ×2 / ×5 / ×10) is applied on top of these — so with the default ×2, the forward/up nudge moves by 0.01 m, and width/height by 0.02 m.
The defaults are deliberately small. f5_board's surface needs to sit just a few millimeters off the prop's visible face to avoid Z-fighting — 0.005 m lets you find that point comfortably. Bumping forward/up to 0.01 is fine for quick passes; going larger usually overshoots.
Config.Limits
Config.Limits = {
forwardMin = -1.5,
forwardMax = 1.5,
upMin = -2.0,
upMax = 3.0,
widthMin = 0.05,
widthMax = 5.00,
heightMin = 0.05,
heightMax = 5.00,
}
Hard clamps applied to each field. The slider and number input in the NUI use these same min/max values, and State.ApplyDelta also clamps anything that comes through the nudge buttons or typed input. Width and height match the auto-measure clamps, so a freshly measured value never falls outside the allowed range.
Overlay Colors
Config.WireColor = { r = 0, g = 255, b = 255, a = 255 } -- cyan surface wire
Config.NormalColor = { r = 255, g = 80, b = 80, a = 255 } -- red FWD normal
Config.NormalLength = 0.25 -- meters
Config.AxisLength = 0.20 -- meters
WireColor paints the rectangle drawn by the Wire toggle. NormalColor and NormalLength control the red ray that shoots out from the surface center toward the visible face (FWD label). AxisLength is the length of each RGB axis drawn by the Axes toggle.
The yellow diagonals of the wire, the white corner labels (TL/TR/BL/BR/FWD), and the grey bbox color are hardcoded — change them in client/overlay3d.lua if you need to.
What's not configurable here
A few things you might expect to find aren't exposed in config.lua:
- Disabled controls — attack (24), aim (25) and melee (142) are disabled while the panel is open. Hardcoded in
client/main.lua. - Validation rules for custom model names — regex, length, and the
IsModelAnObjectcheck are hardcoded inclient/main.lua. - Step multiplier presets —
×1/×2/×5/×10are hardcoded innui/index.htmlandnui/app.js. - Keyboard shortcuts —
1–4for the step multiplier andEsc/Backspacefor close are hardcoded innui/app.js. - In-memory persistence — saved snapshots and custom models do not survive a resource restart. There is no database, no file write, no KVP. This is intentional — export the Lua snippet and paste it into
f5_board/config/config.lua.