Sidebar¶
Quick Start: Pick your goal.
The sidebar renders a scoreboard panel for lobby waiters and
match players: a title plus body lines, refreshed every second
in each viewer's language. All nine boards live in the lang
sidebar section as plain line lists, so every language can
carry its own wording.
Boards¶
| Lang key | Viewers |
|---|---|
lobby |
Players waiting in a lobby, not queued |
lobby-queue |
Players waiting in a lobby, queued inside an instance |
lobby-looking-for-match |
Players waiting in a lobby, searching without an instance |
classic |
Classic match players |
ranked |
Ranked match players |
classic-brackets |
Classic tournament-bracket players |
ranked-brackets |
Ranked tournament-bracket players |
classic-rr |
Classic round-robin players |
ranked-rr |
Ranked round-robin players |
- The first line of each list renders as the board title; the rest render as body lines. At most 15 lines render per board (title included); extra lines are ignored with one console warning.
- Match boards appear once preparation reaches its second half, persist through the end delay, and swap to the lobby board at the match-to-lobby transfer. Between tournament matches no transfer happens, so the in-match board stays until the next match arms.
- Two toggles gate the whole feature:
lobby-enabledfor all three lobby-side boards andin-match-enabledfor every match board (both default on).
Lines¶
Lines are MiniMessage (legacy & codes work too) with
{token} placeholders:
- Each token resolves through the engine first: write engine keys
with or without the
jmanhunt_prefix ({match_mvp}is preferred over{jmanhunt_match_mvp}). Anything the engine does not know falls through to PlaceholderAPI when it is hooked up, so outside-plugin placeholders work on every board. - Nested tokens resolve innermost outward (see
Placeholders).
Percent spans (
%token%) work too, resolving strictly through PlaceholderAPI. {match_mvp}rendersNonewhen nobody holds the MVP (the%and JMHScript shapes keep the raw empty so scripts can branch on it).
Three color aliases are available on every line:
| Alias | Meaning |
|---|---|
{brand} |
The brand snippet (server accent color) |
{plain} |
The plain snippet (body text color) |
{brandhex} |
The brand color as a bare hex, for gradients |
{brandhex} exists because gradients cannot nest tags: write
<gradient:#e66550:{brandhex}> instead of hardcoding the hex,
and the title follows the brand snippet. It derives from the
brand value, so a non-hex brand passes through as is.
A token that resolves nowhere warns on the console once per match, naming the board and the token, and renders empty:
Sidebar board 'classic' in match 12 has an unknown placeholder {obviously_non_existent}; rendering empty.
Lobby-board unknowns warn once per run instead. Lines with invalid MiniMessage warn once and render as plain text.
Examples¶
A minimal lobby board:
sidebar:
lobby:
- "<gradient:#e66550:{brandhex}><bold>L</bold>obby</gradient>"
- "<#696c73>⌚ {general_date} {general_time}"
- ""
- "<gray>Pick a queue from the browser to play."
- ""
- "<#669ade>alttari.games"
A match line mixing aliases, engine keys, and PlaceholderAPI:
{match_score} resolves through the engine while
{player_name} falls through to PlaceholderAPI. Reload text
with the reload command: boards pick up fresh lines on the
next refresh with no restart.