Skip to content

ui.yml

The scoreboard and the tab list.

How it plays: read the guide

Every example on this page is taken from the shipped ui.yml. Changes apply with /hcf reload, which rebuilds every board. Every placeholder is in Placeholders.

Scoreboard

ui.yml
scoreboard:
  enabled: true
  # How often the board is redrawn, in ticks. 20 is once a second, which is as
  # fine as any countdown on it needs; lowering it costs a redraw per player per
  # tick for no visible gain.
  update-ticks: 20
  # Written in small capitals when theme.yml says so (small-caps-titles).
  title: "{primary}&lHCF"

  # The rows, top to bottom. A scoreboard shows at most 15; anything past that is
  # never drawn, and you are told so in the console.
  #
  # A row whose placeholders all come out empty is DROPPED rather than left blank.
  # That is how a conditional row works: %combat_line% is nothing while you are
  # not in combat, so the row simply is not there. It is also why a server that
  # does not run a module needs no edits here - its placeholders are just empty.
  #
  # Placeholders:
  #   %player%        your name              %online%    players online
  #   %world%         world you are in       %ping%      your ping
  #   %team%          your team, or "None"   %territory% team owning your chunk
  #   %dtr%           your team's DTR        %dtr_coloured%  the same, coloured,
  #                                          with a marker when raidable
  #   %dtr_max%       your team's maximum DTR, which grows with its size
  #   %kills% %deaths% %kdr% %killstreak% %playtime%
  #   %balance%       your balance, formatted
  #   %focus_line%    who your team is focusing (online players first, then teams)
  #   %rally_line%    your team's rally point, while it lasts
  #   %combat%        combat tag left        %combat_line%   a whole ready-made row
  #   %pearl%         ender pearl cooldown   %pearl_line%    a whole ready-made row
  #   %cooldown_<id>% %cooldown_<id>_line%   an item cooldown of pvp.yml
  #                   (item-cooldowns), by its id: %cooldown_notch-apple_line%
  #   %deathban% %deathban_line%   always empty: a deathbanned player is not online to
  #                   read a board. Kept so a file that lists them still renders.
  #   %phase_line%    SOTW/EOTW row, empty when neither runs
  #   %event_line%    the running KOTH/Citadel closest to being captured
  #   %king_line%     the King and their time left, during Kill the King
  #   %king_location_line%  where the King is, during Kill the King
  #   %conquest_line% the running Conquest's leader and points
  #   %conquest_zone_1% to %conquest_zone_4%   each Conquest zone's countdown
  #   %dtc_line%      the running DTC: common health, or PER_TEAM's leader
  #   %dtc_team_line% your own team's breaks in the running DTC, empty otherwise
  #   %last_break_line%  the running Last Break's common health
  #   %slide_line%    the running Slide's leader and points
  #   %totem_line%    the running Totem: the team on its way, and how many blocks
  #   %slide_top_1% to %slide_top_3%   the Slide's live top 3 teams
  #   %timer_1% %timer_2% %timer_3%   the custom timers (/timer, /keyall), the
  #                   one ending soonest first - each a whole ready-made row
  #   %class_line%    your class, or the class warming up and its time left
  #   %class_energy_line%  your class's energy, for a class that has some (Bard)
  #   %archer_tag_line%    how long you stay archer-tagged
  #   %class%         your class's name, empty in none
  #
  # The *_line placeholders are whole rows from lang/en.yml, so the wording is
  # translated in one place rather than written twice here.
  #
  # A row starting with a tag - [team], [stats], [balance], [combat],
  # [cooldowns], [class], [events], [timers] - belongs to that section of the
  # scoreboard, which each player may hide in /settings (settings.yml,
  # "scoreboard-<section>"). Tag a row as you like; an untagged row always shows.
  lines:
    - "{dark}▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪"
    - "[team]{primary}Team {dark}{bullet} {secondary}%team%"
    - "[team]{primary}DTR {dark}{bullet} %dtr_coloured%"
    - "[stats]{primary}Kills {dark}{bullet} {secondary}%kills%"
    - "[stats]{primary}Streak {dark}{bullet} {secondary}%killstreak%"
    - "[balance]{primary}Balance {dark}{bullet} {success}%balance%"
    - "[team]%focus_line%"
    - "[team]%rally_line%"
    - "[combat]%combat_line%"
    - "[cooldowns]%pearl_line%"
    - "[cooldowns]%cooldown_notch-apple_line%"
    - "[cooldowns]%cooldown_golden-apple_line%"
    - "[cooldowns]%cooldown_chorus-fruit_line%"
    - "[cooldowns]%cooldown_totem_line%"
    - "[class]%class_line%"
    - "[class]%class_energy_line%"
    - "[class]%archer_tag_line%"
    - "[events]%phase_line%"
    - "[events]%event_line%"
    - "[events]%king_line%"
    - "[events]%king_location_line%"
    - "[events]%conquest_line%"
    - "[events]%conquest_zone_1%"
    - "[events]%conquest_zone_2%"
    - "[events]%conquest_zone_3%"
    - "[events]%conquest_zone_4%"
    - "[events]%dtc_line%"
    - "[events]%dtc_team_line%"
    - "[events]%last_break_line%"
    - "[events]%slide_line%"
    - "[events]%slide_top_1%"
    - "[events]%slide_top_2%"
    - "[events]%slide_top_3%"
    - "[events]%totem_line%"
    - "[timers]%timer_1%"
    - "[timers]%timer_2%"
    - "[timers]%timer_3%"
    - "{dark}▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪"
    - "{muted}play.yourserver.net"
Key As shipped What it does
enabled true The scoreboard
update-ticks 20 How often it is redrawn; 20 is once a second
title &c&lHCF Its title
lines see below The rows, top to bottom

The rows. A row whose placeholders all come out empty is dropped, so the conditional rows — combat, cooldowns, events, class, timers — appear only when they have something to say. At most 15 are shown.

Sections. A row starting with a tag belongs to a section of the board, which each player may hide in /settings: [team], [stats], [balance], [combat], [cooldowns], [class], [events], [timers] — the setting scoreboard-<section> of settings.yml. Which rows carry which tag is yours; an untagged row always shows, and so does one whose tag has no setting.

ui.yml
# The rows, top to bottom. A scoreboard shows at most 15; anything past that is
# never drawn, and you are told so in the console.
#
# A row whose placeholders all come out empty is DROPPED rather than left blank.
# That is how a conditional row works: %combat_line% is nothing while you are
# not in combat, so the row simply is not there. It is also why a server that
# does not run a module needs no edits here - its placeholders are just empty.
#
# Placeholders:
#   %player%        your name              %online%    players online
#   %world%         world you are in       %ping%      your ping
#   %team%          your team, or "None"   %territory% team owning your chunk
#   %dtr%           your team's DTR        %dtr_coloured%  the same, coloured,
#                                          with a marker when raidable
#   %dtr_max%       your team's maximum DTR, which grows with its size
#   %kills% %deaths% %kdr% %killstreak% %playtime%
#   %balance%       your balance, formatted
#   %focus_line%    who your team is focusing (online players first, then teams)
#   %rally_line%    your team's rally point, while it lasts
#   %combat%        combat tag left        %combat_line%   a whole ready-made row
#   %pearl%         ender pearl cooldown   %pearl_line%    a whole ready-made row
#   %cooldown_<id>% %cooldown_<id>_line%   an item cooldown of pvp.yml
#                   (item-cooldowns), by its id: %cooldown_notch-apple_line%
#   %deathban% %deathban_line%   always empty: a deathbanned player is not online to
#                   read a board. Kept so a file that lists them still renders.
#   %phase_line%    SOTW/EOTW row, empty when neither runs
#   %event_line%    the running KOTH/Citadel closest to being captured
#   %king_line%     the King and their time left, during Kill the King
#   %king_location_line%  where the King is, during Kill the King
#   %conquest_line% the running Conquest's leader and points
#   %conquest_zone_1% to %conquest_zone_4%   each Conquest zone's countdown
#   %dtc_line%      the running DTC: common health, or PER_TEAM's leader
#   %dtc_team_line% your own team's breaks in the running DTC, empty otherwise
#   %last_break_line%  the running Last Break's common health
#   %slide_line%    the running Slide's leader and points
#   %totem_line%    the running Totem: the team on its way, and how many blocks
#   %slide_top_1% to %slide_top_3%   the Slide's live top 3 teams
#   %timer_1% %timer_2% %timer_3%   the custom timers (/timer, /keyall), the
#                   one ending soonest first - each a whole ready-made row
#   %class_line%    your class, or the class warming up and its time left
#   %class_energy_line%  your class's energy, for a class that has some (Bard)
#   %archer_tag_line%    how long you stay archer-tagged
#   %class%         your class's name, empty in none
#
# The *_line placeholders are whole rows from lang/en.yml, so the wording is
# translated in one place rather than written twice here.
#
# A row starting with a tag - [team], [stats], [balance], [combat],
# [cooldowns], [class], [events], [timers] - belongs to that section of the
# scoreboard, which each player may hide in /settings (settings.yml,
# "scoreboard-<section>"). Tag a row as you like; an untagged row always shows.
lines:
  - "{dark}▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪"
  - "[team]{primary}Team {dark}{bullet} {secondary}%team%"
  - "[team]{primary}DTR {dark}{bullet} %dtr_coloured%"
  - "[stats]{primary}Kills {dark}{bullet} {secondary}%kills%"
  - "[stats]{primary}Streak {dark}{bullet} {secondary}%killstreak%"
  - "[balance]{primary}Balance {dark}{bullet} {success}%balance%"
  - "[team]%focus_line%"
  - "[team]%rally_line%"
  - "[combat]%combat_line%"
  - "[cooldowns]%pearl_line%"
  - "[cooldowns]%cooldown_notch-apple_line%"
  - "[cooldowns]%cooldown_golden-apple_line%"
  - "[cooldowns]%cooldown_chorus-fruit_line%"
  - "[cooldowns]%cooldown_totem_line%"
  - "[class]%class_line%"
  - "[class]%class_energy_line%"
  - "[class]%archer_tag_line%"
  - "[events]%phase_line%"
  - "[events]%event_line%"
  - "[events]%king_line%"
  - "[events]%king_location_line%"
  - "[events]%conquest_line%"
  - "[events]%conquest_zone_1%"
  - "[events]%conquest_zone_2%"
  - "[events]%conquest_zone_3%"
  - "[events]%conquest_zone_4%"
  - "[events]%dtc_line%"
  - "[events]%dtc_team_line%"
  - "[events]%last_break_line%"
  - "[events]%slide_line%"
  - "[events]%slide_top_1%"
  - "[events]%slide_top_2%"
  - "[events]%slide_top_3%"
  - "[events]%totem_line%"
  - "[timers]%timer_1%"
  - "[timers]%timer_2%"
  - "[timers]%timer_3%"
  - "{dark}▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪"
  - "{muted}play.yourserver.net"

Tab list

How it plays: the two styles

Key As shipped What it does
enabled true The tab list; false leaves the game's own
style auto hcf the grid, classic the player list, auto the grid on HCF and the list on a kitmap (config.yml, kitmap-mode)
update-ticks 20 How often it is redrawn; only what changed is sent

The HCF grid

Nothing to install: the plugin sends the server's own tab list packets — see Integrations. On a Minecraft version whose packets it does not know, hcf shows the classic list and the console says why.

ui.yml
hcf:
  header:
    - ""
    - "{primary}&lHCF"
    - ""
  footer:
    - ""
    - "{muted}play.yourserver.net"
    - ""
  # The connection bars every cell shows, in milliseconds: 0 is full bars,
  # below 0 is none.
  latency: 0
  # The default head - of every cell without a [head:...] of its own: the
  # "value" and "signature" of a Mojang texture, as mineskin.org gives them.
  # As shipped, a plain dark grey square (mineskin.org, "soju-tab-gray8").
  # Empty: the game's default head, the same one in every cell.
  skin:
    texture: "ewogICJ0aW1lc3RhbXAiIDogMTYyMTcwNTk1MDY4MCwKICAicHJvZmlsZUlkIiA6ICJjZGM5MzQ0NDAzODM0ZDdkYmRmOWUyMmVjZmM5MzBiZiIsCiAgInByb2ZpbGVOYW1lIiA6ICJSYXdMb2JzdGVycyIsCiAgInNpZ25hdHVyZVJlcXVpcmVkIiA6IHRydWUsCiAgInRleHR1cmVzIiA6IHsKICAgICJTS0lOIiA6IHsKICAgICAgInVybCIgOiAiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS80ZDk5NDhkODUyNWQyNzU4YWY1YzFiNmJhMzIyZmZiMzgzM2Q5Nzk3NDUwMGQ0YTZhYTliZjkxODU4MjNlOGVjIgogICAgfQogIH0KfQ=="
    signature: "IoKU9gDR+OW5f4AKhJyU6v16kCr4Efu0+s4SRAUaFtcccSKVxjg8TKW35MbOFkOsEagzXgiRcxDFV3E5k7GEaSqVl/YxiWkJ3oxts+hcz5zKsLyOfb6uvefSfAkCLPdQOGS/XYU2jZCLsmxynUG33B7suf/uEsRobNoKbdYDAvqDiKYMkmLK8qJTMoQgQJqRTf31wJShTNLFcFkTr/NdfsPQQhRl9Ayf8VtbClEVEpxZRtgO2LwJtrIgRQezS6Ie4GHD5hBpgLe678UQHvcSnMZqurI0QU4afH4J4Frmv0LW9DTF3KaxEsHf5eQLNelUZ+ywY81Xjb8JBAf+HdmRuVRGd5Gjt13OYecItODhLcWsmh0f9PJZR7EwFdk/nBeCkAwgGXg9SgIt+S8GGbDfQqvrgBCHWvl/iGjSl2wIPRyUpjDHJ3p4+k5HMqTRVA6JY6rNutj+tpEGuVh2hvRLgzXdsEs67diJ3Bvdxi2mam3dtCR/BIxzG5lg8P1S5tiIIEnuiynjwPmprylSjU61L0BZj+o0xlIT3jEqLGZUlZq/8vZuydLDGSLO0Ims78HwlYo08n18lfSeMG7zpN3RSv7VkAf5mGus+IPeInzWFkZ6XDI0fzaYDeHj12o6AxmQxB9U6uCjVi/JAYffAByFc8+oD1+tBCjpfV257efV4Wk="
  # The columns, left to right, twenty cells each, top to bottom. A cell whose
  # placeholders all come out empty is left blank, so the grid never shifts.
  #
  # Every scoreboard placeholder works here, and these besides:
  #   %prefix% %suffix%       your LuckPerms prefix and suffix
  #   %x% %y% %z%             where you are          %direction%   N, NE, E...
  #   %location%              the claim you stand in, or the wilderness
  #   %team_name_line%        your team's name, or how to make one
  #   %members_online% %members_total% %team_balance% %team_points% %team_leader%
  #   %members_title%         the members heading, only with a team
  #   %member_1% to %member_20%   your team's members, online first
  #   %top_team_1% to %top_team_10%   the teams with most points
  #   %no_event_line%         a row saying nothing runs, when nothing does
  # The wording of the ready-made rows is in lang/en.yml, under ui.tab.
  #
  # A cell may start with the head it shows:
  #   [head:self]        your own head
  #   [head:member:3]    the head of %member_3%
  #   [head:top:1]       the head of %top_team_1%'s leader
  #   [head:MHF_Chest]   any Minecraft account's skin, by name - the MHF_
  #                      accounts are the classic icons: MHF_Chest, MHF_Question,
  #                      MHF_Exclamation, MHF_ArrowRight, MHF_Present1, MHF_TNT...
  #   [head:mineskin:<id>]  a skin of mineskin.org, by the id of its page - or the
  #                      page's link itself: [head:https://mineskin.org/skins/<id>]
  # Heads are asked of Mojang once and remembered; until then, and in a cell
  # that is blank, the default head shows.
  column-1:
    - ""
    - "[head:self]{primary}&lPlayer Info"
    - "{text}Kills {dark}{bullet} {secondary}%kills%"
    - "{text}Deaths {dark}{bullet} {secondary}%deaths%"
    - "{text}K/D {dark}{bullet} {secondary}%kdr%"
    - "{text}Streak {dark}{bullet} {secondary}%killstreak%"
    - "{text}Balance {dark}{bullet} {success}%balance%"
    - ""
    - "[head:MHF_ArrowRight]{primary}&lLocation"
    - "%location%"
    - "{secondary}%x%{muted}, {secondary}%z% {muted}(%direction%)"
    - ""
    - "%combat_line%"
    - "%pearl_line%"
    - "%class_line%"
    - "%class_energy_line%"
  column-2:
    - ""
    - "[head:MHF_Chest]{primary}&lTeam"
    - "%team_name_line%"
    - "{text}DTR {dark}{bullet} %dtr_coloured%"
    - "{text}Online {dark}{bullet} {secondary}%members_online%{muted}/{secondary}%members_total%"
    - "{text}Balance {dark}{bullet} {success}%team_balance%"
    - "{text}Points {dark}{bullet} {secondary}%team_points%"
    - ""
    - "[head:MHF_Villager]%members_title%"
    - "[head:member:1]%member_1%"
    - "[head:member:2]%member_2%"
    - "[head:member:3]%member_3%"
    - "[head:member:4]%member_4%"
    - "[head:member:5]%member_5%"
    - "[head:member:6]%member_6%"
    - "[head:member:7]%member_7%"
    - "[head:member:8]%member_8%"
    - "[head:member:9]%member_9%"
    - "[head:member:10]%member_10%"
    - "[head:member:11]%member_11%"
  column-3:
    - ""
    - "[head:MHF_Question]{primary}&lServer"
    - "{text}Online {dark}{bullet} {secondary}%online%"
    - "{text}Ping {dark}{bullet} {secondary}%ping%ms"
    - ""
    - "[head:MHF_Exclamation]{primary}&lEvents"
    - "%no_event_line%"
    - "%phase_line%"
    - "%event_line%"
    - "%king_line%"
    - "%conquest_line%"
    - "%dtc_line%"
    - "%last_break_line%"
    - "%slide_line%"
    - "%totem_line%"
    - "%timer_1%"
    - "%timer_2%"
    - "%timer_3%"
  column-4:
    - ""
    - "[head:MHF_Present1]{primary}&lTop Teams"
    - "%top_team_1%"
    - "%top_team_2%"
    - "%top_team_3%"
    - "%top_team_4%"
    - "%top_team_5%"
    - "%top_team_6%"
    - "%top_team_7%"
    - "%top_team_8%"
    - "%top_team_9%"
    - "%top_team_10%"
Key As shipped What it does
header, footer lines Above and below the grid
latency 0 The connection bars every cell shows, in milliseconds: 0 full bars, below 0 none
skin.texture, skin.signature a dark grey square The default head, of every cell without a head of its own, as mineskin.org gives it — the game shows only a skin Mojang signed. As shipped, a plain dark grey square (mineskin.org, "soju-tab-gray8"); empty for the game's own default head, the same one in every cell
column-1 … column-4 see above Twenty cells each, top to bottom. An empty line is a blank cell; so is a cell whose placeholders are all empty — the grid never shifts. A longer column is cut at twenty, and the console says so

Heads. A cell may start with the head it shows:

Tag Head
[head:self] The viewer's own
[head:member:3] The member of %member_3%
[head:top:1] The leader of %top_team_1%
[head:MHF_Chest] Any Minecraft account's skin, by name. The MHF_ accounts are the classic icons: MHF_Chest, MHF_Question, MHF_Exclamation, MHF_ArrowRight, MHF_Present1, MHF_TNT…
[head:mineskin:<id>] A skin of mineskin.org, by the 32-character id of its page — or the page's link itself, [head:https://mineskin.org/skins/<id>]. Any image made into a skin there, signed

The Theme Builder lists every head of the grid but the members': type a name or paste a mineskin.org link there. An online player's head is theirs at once; any other is asked of Mojang — or mineskin.org — once, off the main thread, and remembered until the server stops — the default head shows meanwhile, and in a blank cell. An account that does not exist is reported once in the console.

The classic list

ui.yml
classic:
  header:
    - ""
    - "{primary}&lKITMAP"
    - "{muted}Online {dark}{bullet} {secondary}%online%"
    - ""
  footer:
    - ""
    - "{muted}play.yourserver.net"
    - ""
  # How each player is written in the list. These are that player's own:
  #   %prefix% %suffix%   their LuckPerms prefix and suffix (empty without it)
  #   %player%            their name
  #   %team%              their team's name, empty without one
  #   %team_tag%          their team as a tag, from lang/en.yml (ui.tab.team-tag)
  #   %kills% %ping%
  name: "%prefix%{secondary}%player%%suffix%"
  # rank   the weight of their LuckPerms primary group, heaviest first
  # kills  most kills first
  # name   alphabetical, the game's own order
  sort: rank
Key As shipped What it does
header, footer lines Above and below the list
name %prefix%{secondary}%player%%suffix% How each player is written: %prefix% %suffix% (LuckPerms), %player%, %team%, %team_tag%, %kills%, %ping% — that player's own
sort rank rank: the weight of their LuckPerms primary group, heaviest first; kills: most first; name: alphabetical. Names break ties

The words of the ready-made rows — the wilderness, a member, a top team, the team tag, the eight directions — are in lang/en.yml under ui.tab.

Leaderboard window

ui.yml
# /leaderboard with no argument opens a window: one item per board - kills,
# deaths, K/D, best killstreak, playtime, and the teams' kills and points - each
# listing its top in its lines. /leaderboard <board> still lists one in the chat.
leaderboard-menu:
  # false: /leaderboard with no argument lists the kills in the chat.
  enabled: true
  # How many places each board shows.
  rows: 10
  # Each board's item.
  icons:
    kills: DIAMOND_SWORD
    deaths: SKELETON_SKULL
    kdr: IRON_SWORD
    killstreak: BLAZE_POWDER
    playtime: CLOCK
    team-kills: RED_BANNER
    team-points: GOLD_INGOT
Key As shipped What it does
enabled true /leaderboard with no argument opens the window; false lists the kills in the chat
rows 10 How many places each board shows, 1 to 25
icons.<board> one each The item of each board: kills, deaths, kdr, killstreak, playtime, team-kills, team-points

The whole shipped file

View it on GitHub.

ui.yml
# ---------------------------------------------------------------------------
# ui.yml - the scoreboard and tab list
#
# /hcf reload rebuilds every board at once.
#
# Lines "# --8<-- [start:...]" and "# --8<-- [end:...]" mark the parts the online
# documentation quotes from this file. They are comments and change nothing.
# ---------------------------------------------------------------------------

scoreboard:
  enabled: true
  # How often the board is redrawn, in ticks. 20 is once a second, which is as
  # fine as any countdown on it needs; lowering it costs a redraw per player per
  # tick for no visible gain.
  update-ticks: 20
  # Written in small capitals when theme.yml says so (small-caps-titles).
  title: "{primary}&lHCF"

  # The rows, top to bottom. A scoreboard shows at most 15; anything past that is
  # never drawn, and you are told so in the console.
  #
  # A row whose placeholders all come out empty is DROPPED rather than left blank.
  # That is how a conditional row works: %combat_line% is nothing while you are
  # not in combat, so the row simply is not there. It is also why a server that
  # does not run a module needs no edits here - its placeholders are just empty.
  #
  # Placeholders:
  #   %player%        your name              %online%    players online
  #   %world%         world you are in       %ping%      your ping
  #   %team%          your team, or "None"   %territory% team owning your chunk
  #   %dtr%           your team's DTR        %dtr_coloured%  the same, coloured,
  #                                          with a marker when raidable
  #   %dtr_max%       your team's maximum DTR, which grows with its size
  #   %kills% %deaths% %kdr% %killstreak% %playtime%
  #   %balance%       your balance, formatted
  #   %focus_line%    who your team is focusing (online players first, then teams)
  #   %rally_line%    your team's rally point, while it lasts
  #   %combat%        combat tag left        %combat_line%   a whole ready-made row
  #   %pearl%         ender pearl cooldown   %pearl_line%    a whole ready-made row
  #   %cooldown_<id>% %cooldown_<id>_line%   an item cooldown of pvp.yml
  #                   (item-cooldowns), by its id: %cooldown_notch-apple_line%
  #   %deathban% %deathban_line%   always empty: a deathbanned player is not online to
  #                   read a board. Kept so a file that lists them still renders.
  #   %phase_line%    SOTW/EOTW row, empty when neither runs
  #   %event_line%    the running KOTH/Citadel closest to being captured
  #   %king_line%     the King and their time left, during Kill the King
  #   %king_location_line%  where the King is, during Kill the King
  #   %conquest_line% the running Conquest's leader and points
  #   %conquest_zone_1% to %conquest_zone_4%   each Conquest zone's countdown
  #   %dtc_line%      the running DTC: common health, or PER_TEAM's leader
  #   %dtc_team_line% your own team's breaks in the running DTC, empty otherwise
  #   %last_break_line%  the running Last Break's common health
  #   %slide_line%    the running Slide's leader and points
  #   %totem_line%    the running Totem: the team on its way, and how many blocks
  #   %slide_top_1% to %slide_top_3%   the Slide's live top 3 teams
  #   %timer_1% %timer_2% %timer_3%   the custom timers (/timer, /keyall), the
  #                   one ending soonest first - each a whole ready-made row
  #   %class_line%    your class, or the class warming up and its time left
  #   %class_energy_line%  your class's energy, for a class that has some (Bard)
  #   %archer_tag_line%    how long you stay archer-tagged
  #   %class%         your class's name, empty in none
  #
  # The *_line placeholders are whole rows from lang/en.yml, so the wording is
  # translated in one place rather than written twice here.
  #
  # A row starting with a tag - [team], [stats], [balance], [combat],
  # [cooldowns], [class], [events], [timers] - belongs to that section of the
  # scoreboard, which each player may hide in /settings (settings.yml,
  # "scoreboard-<section>"). Tag a row as you like; an untagged row always shows.
  lines:
    - "{dark}▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪"
    - "[team]{primary}Team {dark}{bullet} {secondary}%team%"
    - "[team]{primary}DTR {dark}{bullet} %dtr_coloured%"
    - "[stats]{primary}Kills {dark}{bullet} {secondary}%kills%"
    - "[stats]{primary}Streak {dark}{bullet} {secondary}%killstreak%"
    - "[balance]{primary}Balance {dark}{bullet} {success}%balance%"
    - "[team]%focus_line%"
    - "[team]%rally_line%"
    - "[combat]%combat_line%"
    - "[cooldowns]%pearl_line%"
    - "[cooldowns]%cooldown_notch-apple_line%"
    - "[cooldowns]%cooldown_golden-apple_line%"
    - "[cooldowns]%cooldown_chorus-fruit_line%"
    - "[cooldowns]%cooldown_totem_line%"
    - "[class]%class_line%"
    - "[class]%class_energy_line%"
    - "[class]%archer_tag_line%"
    - "[events]%phase_line%"
    - "[events]%event_line%"
    - "[events]%king_line%"
    - "[events]%king_location_line%"
    - "[events]%conquest_line%"
    - "[events]%conquest_zone_1%"
    - "[events]%conquest_zone_2%"
    - "[events]%conquest_zone_3%"
    - "[events]%conquest_zone_4%"
    - "[events]%dtc_line%"
    - "[events]%dtc_team_line%"
    - "[events]%last_break_line%"
    - "[events]%slide_line%"
    - "[events]%slide_top_1%"
    - "[events]%slide_top_2%"
    - "[events]%slide_top_3%"
    - "[events]%totem_line%"
    - "[timers]%timer_1%"
    - "[timers]%timer_2%"
    - "[timers]%timer_3%"
    - "{dark}▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪"
    - "{muted}play.yourserver.net"

tablist:
  enabled: true
  # hcf     the HCF grid: four columns of twenty cells, written below, in place
  #         of the player list. Nothing to install: the plugin sends the
  #         server's own tab list packets. On a Minecraft version whose packets
  #         it does not know, the classic list is shown, and the console says why.
  # classic the player list itself, each name written from classic.name.
  # auto    hcf on an HCF server, classic on a kitmap (config.yml, kitmap-mode).
  style: auto
  # How often it is redrawn, in ticks. Only what changed is sent again.
  update-ticks: 20

  hcf:
    header:
      - ""
      - "{primary}&lHCF"
      - ""
    footer:
      - ""
      - "{muted}play.yourserver.net"
      - ""
    # The connection bars every cell shows, in milliseconds: 0 is full bars,
    # below 0 is none.
    latency: 0
    # The default head - of every cell without a [head:...] of its own: the
    # "value" and "signature" of a Mojang texture, as mineskin.org gives them.
    # As shipped, a plain dark grey square (mineskin.org, "soju-tab-gray8").
    # Empty: the game's default head, the same one in every cell.
    skin:
      texture: "ewogICJ0aW1lc3RhbXAiIDogMTYyMTcwNTk1MDY4MCwKICAicHJvZmlsZUlkIiA6ICJjZGM5MzQ0NDAzODM0ZDdkYmRmOWUyMmVjZmM5MzBiZiIsCiAgInByb2ZpbGVOYW1lIiA6ICJSYXdMb2JzdGVycyIsCiAgInNpZ25hdHVyZVJlcXVpcmVkIiA6IHRydWUsCiAgInRleHR1cmVzIiA6IHsKICAgICJTS0lOIiA6IHsKICAgICAgInVybCIgOiAiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS80ZDk5NDhkODUyNWQyNzU4YWY1YzFiNmJhMzIyZmZiMzgzM2Q5Nzk3NDUwMGQ0YTZhYTliZjkxODU4MjNlOGVjIgogICAgfQogIH0KfQ=="
      signature: "IoKU9gDR+OW5f4AKhJyU6v16kCr4Efu0+s4SRAUaFtcccSKVxjg8TKW35MbOFkOsEagzXgiRcxDFV3E5k7GEaSqVl/YxiWkJ3oxts+hcz5zKsLyOfb6uvefSfAkCLPdQOGS/XYU2jZCLsmxynUG33B7suf/uEsRobNoKbdYDAvqDiKYMkmLK8qJTMoQgQJqRTf31wJShTNLFcFkTr/NdfsPQQhRl9Ayf8VtbClEVEpxZRtgO2LwJtrIgRQezS6Ie4GHD5hBpgLe678UQHvcSnMZqurI0QU4afH4J4Frmv0LW9DTF3KaxEsHf5eQLNelUZ+ywY81Xjb8JBAf+HdmRuVRGd5Gjt13OYecItODhLcWsmh0f9PJZR7EwFdk/nBeCkAwgGXg9SgIt+S8GGbDfQqvrgBCHWvl/iGjSl2wIPRyUpjDHJ3p4+k5HMqTRVA6JY6rNutj+tpEGuVh2hvRLgzXdsEs67diJ3Bvdxi2mam3dtCR/BIxzG5lg8P1S5tiIIEnuiynjwPmprylSjU61L0BZj+o0xlIT3jEqLGZUlZq/8vZuydLDGSLO0Ims78HwlYo08n18lfSeMG7zpN3RSv7VkAf5mGus+IPeInzWFkZ6XDI0fzaYDeHj12o6AxmQxB9U6uCjVi/JAYffAByFc8+oD1+tBCjpfV257efV4Wk="
    # The columns, left to right, twenty cells each, top to bottom. A cell whose
    # placeholders all come out empty is left blank, so the grid never shifts.
    #
    # Every scoreboard placeholder works here, and these besides:
    #   %prefix% %suffix%       your LuckPerms prefix and suffix
    #   %x% %y% %z%             where you are          %direction%   N, NE, E...
    #   %location%              the claim you stand in, or the wilderness
    #   %team_name_line%        your team's name, or how to make one
    #   %members_online% %members_total% %team_balance% %team_points% %team_leader%
    #   %members_title%         the members heading, only with a team
    #   %member_1% to %member_20%   your team's members, online first
    #   %top_team_1% to %top_team_10%   the teams with most points
    #   %no_event_line%         a row saying nothing runs, when nothing does
    # The wording of the ready-made rows is in lang/en.yml, under ui.tab.
    #
    # A cell may start with the head it shows:
    #   [head:self]        your own head
    #   [head:member:3]    the head of %member_3%
    #   [head:top:1]       the head of %top_team_1%'s leader
    #   [head:MHF_Chest]   any Minecraft account's skin, by name - the MHF_
    #                      accounts are the classic icons: MHF_Chest, MHF_Question,
    #                      MHF_Exclamation, MHF_ArrowRight, MHF_Present1, MHF_TNT...
    #   [head:mineskin:<id>]  a skin of mineskin.org, by the id of its page - or the
    #                      page's link itself: [head:https://mineskin.org/skins/<id>]
    # Heads are asked of Mojang once and remembered; until then, and in a cell
    # that is blank, the default head shows.
    column-1:
      - ""
      - "[head:self]{primary}&lPlayer Info"
      - "{text}Kills {dark}{bullet} {secondary}%kills%"
      - "{text}Deaths {dark}{bullet} {secondary}%deaths%"
      - "{text}K/D {dark}{bullet} {secondary}%kdr%"
      - "{text}Streak {dark}{bullet} {secondary}%killstreak%"
      - "{text}Balance {dark}{bullet} {success}%balance%"
      - ""
      - "[head:MHF_ArrowRight]{primary}&lLocation"
      - "%location%"
      - "{secondary}%x%{muted}, {secondary}%z% {muted}(%direction%)"
      - ""
      - "%combat_line%"
      - "%pearl_line%"
      - "%class_line%"
      - "%class_energy_line%"
    column-2:
      - ""
      - "[head:MHF_Chest]{primary}&lTeam"
      - "%team_name_line%"
      - "{text}DTR {dark}{bullet} %dtr_coloured%"
      - "{text}Online {dark}{bullet} {secondary}%members_online%{muted}/{secondary}%members_total%"
      - "{text}Balance {dark}{bullet} {success}%team_balance%"
      - "{text}Points {dark}{bullet} {secondary}%team_points%"
      - ""
      - "[head:MHF_Villager]%members_title%"
      - "[head:member:1]%member_1%"
      - "[head:member:2]%member_2%"
      - "[head:member:3]%member_3%"
      - "[head:member:4]%member_4%"
      - "[head:member:5]%member_5%"
      - "[head:member:6]%member_6%"
      - "[head:member:7]%member_7%"
      - "[head:member:8]%member_8%"
      - "[head:member:9]%member_9%"
      - "[head:member:10]%member_10%"
      - "[head:member:11]%member_11%"
    column-3:
      - ""
      - "[head:MHF_Question]{primary}&lServer"
      - "{text}Online {dark}{bullet} {secondary}%online%"
      - "{text}Ping {dark}{bullet} {secondary}%ping%ms"
      - ""
      - "[head:MHF_Exclamation]{primary}&lEvents"
      - "%no_event_line%"
      - "%phase_line%"
      - "%event_line%"
      - "%king_line%"
      - "%conquest_line%"
      - "%dtc_line%"
      - "%last_break_line%"
      - "%slide_line%"
      - "%totem_line%"
      - "%timer_1%"
      - "%timer_2%"
      - "%timer_3%"
    column-4:
      - ""
      - "[head:MHF_Present1]{primary}&lTop Teams"
      - "%top_team_1%"
      - "%top_team_2%"
      - "%top_team_3%"
      - "%top_team_4%"
      - "%top_team_5%"
      - "%top_team_6%"
      - "%top_team_7%"
      - "%top_team_8%"
      - "%top_team_9%"
      - "%top_team_10%"

  classic:
    header:
      - ""
      - "{primary}&lKITMAP"
      - "{muted}Online {dark}{bullet} {secondary}%online%"
      - ""
    footer:
      - ""
      - "{muted}play.yourserver.net"
      - ""
    # How each player is written in the list. These are that player's own:
    #   %prefix% %suffix%   their LuckPerms prefix and suffix (empty without it)
    #   %player%            their name
    #   %team%              their team's name, empty without one
    #   %team_tag%          their team as a tag, from lang/en.yml (ui.tab.team-tag)
    #   %kills% %ping%
    name: "%prefix%{secondary}%player%%suffix%"
    # rank   the weight of their LuckPerms primary group, heaviest first
    # kills  most kills first
    # name   alphabetical, the game's own order
    sort: rank

# /leaderboard with no argument opens a window: one item per board - kills,
# deaths, K/D, best killstreak, playtime, and the teams' kills and points - each
# listing its top in its lines. /leaderboard <board> still lists one in the chat.
leaderboard-menu:
  # false: /leaderboard with no argument lists the kills in the chat.
  enabled: true
  # How many places each board shows.
  rows: 10
  # Each board's item.
  icons:
    kills: DIAMOND_SWORD
    deaths: SKELETON_SKULL
    kdr: IRON_SWORD
    killstreak: BLAZE_POWDER
    playtime: CLOCK
    team-kills: RED_BANNER
    team-points: GOLD_INGOT