Server configuration

plugins/HoloPanels/config.yml contains server-wide timing, safety limits and the style inherited by panels. Board locations live in boards.yml; layout and content live in views/*.yml.

Run /holopanels validate after editing, then /holopanels reload to apply. Validation parses the entire candidate without replacing the running configuration.

Refresh and distance defaults

visibility-check-tickspositive integerdefault 10

How often distance and visibility conditions are re-evaluated for viewers.

placeholder-refresh-tickspositive integerdefault 20

How often rendered lines containing PlaceholderAPI tokens are refreshed. Static text is not redrawn on this timer.

movement-thresholdpositive numberdefault 0.5

Blocks a player must move before position-dependent rendering is recalculated.

default-visibility-distancepositive numberdefault 24.0

Visibility radius used when a board does not set its own value.

default-click-distancepositive numberdefault 6.0

Maximum interaction distance used when a board does not override it.

Lower intervals feel more immediate but cause more frequent work. Start with the defaults and tune only after observing an actual stale-placeholder or movement problem.

Safety limits

limits:
  panels-per-view: 12
  lines-per-panel: 64
  entries-per-provider: 500
  actions-per-chain: 16
limits.panels-per-viewpositive integerdefault 12

Stops one view from creating an unbounded number of client-side displays.

limits.lines-per-panelpositive integerdefault 64

Load-time ceiling for statically knowable lines, buttons and list pages. A third-party content provider must still bound the number of lines it returns.

limits.entries-per-providerpositive integerdefault 500

Caps a list returned by a built-in or third-party provider before layout.

limits.actions-per-chainpositive integerdefault 16

Intended chain ceiling. HoloPanels 1.0.0 reads this setting but does not yet reject or truncate a longer chain, so keep authored chains at or below it.

Default style

style:
  line-height: 0.25
  click-offset-y: 0.0
  interaction-width: 4.0
  line-width: 200
  background-color: "#0b1420"
  background-opacity: 0.65
  text-opacity: 255
  alignment: left
  billboard: fixed
  text-shadow: false
  see-through: false
style.line-heightpositive numberdefault 0.25

Vertical space allocated to each rendered line and its click geometry.

style.click-offset-ynumberdefault 0.0

Vertical correction for the click ray when interaction feels consistently above or below text.

style.interaction-widthpositive numberdefault 4.0

Default width of the clickable plane.

style.line-widthpositive integerdefault 200

Text display wrapping width in Minecraft display units.

style.background-color#RRGGBBdefault #0b1420

RGB background colour.

style.background-opacity0–1default 0.65

Alpha applied to the background colour. Values outside the range fail validation.

style.text-opacity0–255default 255

Text alpha. Out-of-range values are clamped.

style.alignmentleft | center | rightdefault left

Horizontal line alignment.

style.billboardfixed | vertical | horizontal | centerdefault fixed

How the text display rotates toward the viewer.

style.text-shadowbooleandefault false

Enable the vanilla text shadow.

style.see-throughbooleandefault false

Render through blocks. Leave disabled for panels mounted on ordinary walls.

Any view or panel style may override these defaults. Keep the global style conservative, then place exceptions next to the content that needs them.

Apply one group at a time

Change refresh cadence, limits and style in separate reloads. Run /holopanels validate first and keep the console visible during /holopanels reload; that makes a visual regression or load error traceable to one group rather than a batch of unrelated edits.