Skip to content

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-enabled for all three lobby-side boards and in-match-enabled for 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} renders None when 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:

{plain}Score <gray>» {brand}{match_score} <gray>({player_name})</gray>

{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.