Troubleshooting HoloPanels
Start with these two commands:
/holopanels validate
/holopanels debug
validate checks the whole candidate configuration without applying it. debug reports what the
current player is actually being sent, including board, view and session state.
Also record /holopanels info <board>, the server version, HoloPanels version and PacketEvents
version before changing files. That snapshot distinguishes a configuration change from a platform
or dependency change.
A board does not appear
Check in this order:
/holopanels listsays the board is configured and placed./holopanels info <board>resolves itsroot-view.- The player is inside
visibility-distance. - The board's
visible-ifcondition passes for that player. - The view contains at least one visible panel.
- PacketEvents is installed and enabled before HoloPanels.
A failed board or panel condition removes both rendering and click geometry. Temporarily simplify
visible-if, validate, and reload to isolate a condition branch.
Text appears backwards or inside the wall
The anchor yaw defines the board's axes. /holopanels wall <board> is the safest placement command.
For /holopanels here, stand where a viewer will stand and face away from the intended surface.
Use /holopanels nudge <board> forward 0.05 or back 0.05 for small corrections.
Text is visible but clicks fail
- Confirm the player has
holopanels.use. - Move inside
click-distance; visibility can extend farther than interaction. - Run
/holopanels debugand confirm the button is part of the rendered view. - Check the button's own
visible-ifand the action's guards. - Tune
style.click-offset-yonly when every click is consistently vertically displaced.
An invisible button has no hit region. A condition is therefore an access gate, not only a visual effect.
Placeholders do not update
PlaceholderAPI must be installed for %...% values. Only lines containing placeholders are placed
on the placeholder refresh loop. Check placeholder-refresh-ticks, then use
/holopanels refresh [board] to drop cached provider content and force a redraw.
Reload fails
The running snapshot stays active when the candidate cannot parse. Read the first configuration
error in the console, correct that path, and run validate again. Common causes are:
- a board references an unknown view id;
- a required panel key is missing;
- a style number must be positive;
background-opacityis outside 0–1;- a provider, condition or action id is unknown because its addon is not enabled.
Provider or addon content stays empty
Confirm the addon declares depend: [HoloPanels], loads the API from Bukkit's services manager and
registers ids in its own namespace. A list provider belongs under source.provider; a text provider
uses content-provider. The provider method must return quickly with a CompletionStage and do
blocking work on an executor it controls. Provider exceptions are logged with the board and panel
id, and /holopanels refresh <board> clears the viewer cache for another attempt.