F5 StudioF5 Studio
Skip to main content

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.

Choosing a base step

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 IsModelAnObject check are hardcoded in client/main.lua.
  • Step multiplier presets×1/×2/×5/×10 are hardcoded in nui/index.html and nui/app.js.
  • Keyboard shortcuts14 for the step multiplier and Esc/Backspace for close are hardcoded in nui/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.