Boards
boards.yml answers where. A board is a position in the world, a view binding, and the rules for who may see it.
boards:
welcome:
root-view: holopanels:welcome
visibility-distance: 20.0
click-distance: 6.0
warp_directory:
root-view: holopanels:warps
visibility-distance: 18.0
visible-if:
permission: example.warps.view
The key is the board id, and it is what every command takes: /holopanels wall warp_directory.
Bare board ids use HoloPanels' namespace internally. View references should be written as full
namespaced ids so it is always clear which file or addon owns them.
Keys
root-viewview idrequiredThe view this board starts on. Views are global by id, so any board can start on any view and navigate to any other. Several boards may share one view, and each gets its own per-viewer session, so walking between two copies does not carry your place.
anchorlocationWhere the board is. Filled in by
/holopanels hereand/holopanels wall, so it can be left out entirely and placed in game. Holdsworld,x,y,zandyaw.visibility-distancenumberdefaultfrom config.ymlHow far away the board renders. Beyond it, nothing is sent to the client at all.
click-distancenumberdefaultfrom config.ymlHow close a player must be to click. Always at most
visibility-distancein practice, since a panel you cannot see is not one you can aim at.visible-ifconditionGate the whole board. A board that fails is not rendered and has no click region, so this is a real restriction rather than a filter. See conditions.
The full defaults, validation ranges and performance trade-offs are in Server configuration.
Verify a board definition
Run /holopanels validate before applying a hand edit. After reload, /holopanels info <board>
confirms the root view, anchor and distances HoloPanels compiled, while /holopanels debug confirms
whether the current viewer actually receives it.
The anchor and the board's axes
The anchor holds a yaw as well as a position, and that yaw defines the board's own axes. Panel offsets are right, up and forward relative to the board, not to the compass, so a view lays out the same way no matter which direction the board ended up facing.
welcome:
root-view: holopanels:welcome
anchor:
world: world
x: 128.5
y: 71.0
z: -204.5
yaw: 180.0
Editing these by hand works, but /holopanels move and /holopanels nudge exist because tenths matter and the game is where you can see the result.
Restricting a board
visible-if takes the same condition shapes as panels and buttons, including the boolean combinators:
staff_stats:
root-view: holopanels:stats
visibility-distance: 12.0
visible-if:
all:
- permission: example.staff
- not:
permission: example.staff.hide_boards
Gating at the board is cheaper than gating every panel inside its view, and it is the right level when the whole thing is staff-only. Gate at the panel or button when only part of a view should differ between viewers.
Defaults in config.yml
config.yml holds the server-wide defaults and the render loop's tuning:
default-visibility-distancenumberUsed by any board that does not set
visibility-distance.default-click-distancenumberUsed by any board that does not set
click-distance.visibility-check-ticksticksHow often a viewer's distance and conditions are re-evaluated.
movement-thresholdblocksHow far a player must move before their view is recalculated, so standing still costs nothing.
placeholder-refresh-ticksticksHow often lines containing PlaceholderAPI tokens are re-rendered. Only panels that actually contain a placeholder are refreshed.
click-offset-ynumberVertical correction applied to the click ray, for tuning how clicks line up with what is drawn.