Configuration reference
This is the config.yml HudForge writes on first start, comments included. Every key you see here is the key the plugin reads; there are no hidden ones. Change a value, reload, and it applies.
Top-level sections: refresh-ticks, nametag-refresh-ticks, default-profile, metrics-id, animations, profiles.
# HudForge — sidebar, tablist, nametags and bars, all in one file.
#
# Everything you write here accepts:
# · Gradients <gradient:#C879FF:#7A4DFF>TEXT</gradient>
# · ANIMATED gradient <shine:#C879FF:#FFFFFF:1800>TEXT</shine> (third number = cycle in ms)
# · Legacy colours &b&lTEXT
# · Built-in values %hud_player% %hud_ping% %hud_tps% %hud_online% %hud_max%
# %hud_world% %hud_x% %hud_y% %hud_z% %hud_health%
# · Rank values %hud_prefix% %hud_suffix% %hud_group% (LuckPerms, or any permissions
# plugin behind Vault's chat service; left as-is when there is none)
# · Money %hud_balance% (needs a Vault economy)
# · Anything from any plugin, when PlaceholderAPI is installed
# · Conditions %if:%hud_ping%>150?<red>high:<green>good%
# · Frame animations <anim:name> (defined below, frame by frame)
#
# How often the display is repainted. Animations need several repaints per second to look
# smooth: 4 ticks = 5 times per second, and it stays cheap because only the team prefixes are
# rewritten — the scoreboard itself is never rebuilt, which is what makes other plugins flicker.
refresh-ticks: 4
# How often the name above the head and the TAB order are rewritten. It is separate from
# refresh-ticks and much slower on purpose: that team has to be written into EVERY player's
# scoreboard, so it is the one thing here that costs more the fuller the server is. It is also
# rewritten immediately when someone joins, leaves or changes world, so 40 ticks (2 seconds) is
# only the safety net for a prefix that changed on its own (a rank-up, a timed permission).
nametag-refresh-ticks: 40
default-profile: default
# Anonymous usage statistics (bStats): how many servers run this plugin and on what version.
# 0 turns them off. There is also a global switch in plugins/bStats/config.yml.
metrics-id: 34181
# Frame animations, for what a plain gradient cannot do. The frame is picked from the clock, so
# every player sees the same frame at the same time.
animations:
# A dot of light travelling along the separator line.
separator:
interval-ms: 120
frames:
- "<#C879FF>▰<#5B3A6E>▱▱▱▱▱▱▱▱▱▱▱"
- "<#5B3A6E>▱<#C879FF>▰<#5B3A6E>▱▱▱▱▱▱▱▱▱▱"
- "<#5B3A6E>▱▱<#C879FF>▰<#5B3A6E>▱▱▱▱▱▱▱▱▱"
- "<#5B3A6E>▱▱▱<#C879FF>▰<#5B3A6E>▱▱▱▱▱▱▱▱"
- "<#5B3A6E>▱▱▱▱<#C879FF>▰<#5B3A6E>▱▱▱▱▱▱▱"
- "<#5B3A6E>▱▱▱▱▱<#C879FF>▰<#5B3A6E>▱▱▱▱▱▱"
- "<#5B3A6E>▱▱▱▱▱▱<#C879FF>▰<#5B3A6E>▱▱▱▱▱"
- "<#5B3A6E>▱▱▱▱▱▱▱<#C879FF>▰<#5B3A6E>▱▱▱▱"
- "<#5B3A6E>▱▱▱▱▱▱▱▱<#C879FF>▰<#5B3A6E>▱▱▱"
- "<#5B3A6E>▱▱▱▱▱▱▱▱▱<#C879FF>▰<#5B3A6E>▱▱"
- "<#5B3A6E>▱▱▱▱▱▱▱▱▱▱<#C879FF>▰<#5B3A6E>▱"
- "<#5B3A6E>▱▱▱▱▱▱▱▱▱▱▱<#C879FF>▰"
- "<#5B3A6E>▱▱▱▱▱▱▱▱▱▱<#C879FF>▰<#5B3A6E>▱"
- "<#5B3A6E>▱▱▱▱▱▱▱▱▱<#C879FF>▰<#5B3A6E>▱▱"
- "<#5B3A6E>▱▱▱▱▱▱▱▱<#C879FF>▰<#5B3A6E>▱▱▱"
- "<#5B3A6E>▱▱▱▱▱▱▱<#C879FF>▰<#5B3A6E>▱▱▱▱"
- "<#5B3A6E>▱▱▱▱▱▱<#C879FF>▰<#5B3A6E>▱▱▱▱▱"
- "<#5B3A6E>▱▱▱▱▱<#C879FF>▰<#5B3A6E>▱▱▱▱▱▱"
- "<#5B3A6E>▱▱▱▱<#C879FF>▰<#5B3A6E>▱▱▱▱▱▱▱"
- "<#5B3A6E>▱▱▱<#C879FF>▰<#5B3A6E>▱▱▱▱▱▱▱▱"
- "<#5B3A6E>▱▱<#C879FF>▰<#5B3A6E>▱▱▱▱▱▱▱▱▱"
- "<#5B3A6E>▱<#C879FF>▰<#5B3A6E>▱▱▱▱▱▱▱▱▱▱"
# The studio diamond, breathing.
diamond:
interval-ms: 420
frames: ["<#C879FF>◈", "<#E3BBFF>◈", "<#FFFFFF>◈", "<#E3BBFF>◈"]
# Profiles are tried IN ORDER and the first match wins, so put the specific ones first.
# A profile matches when the player is in one of its worlds, has its permission and its
# condition is true. Anything you leave empty is not checked.
profiles:
default:
worlds: []
permission: ""
condition: ""
weight: 500 # tablist order: lower goes higher up the list
sidebar:
title: "<anim:diamond> <shine:#C879FF:#FFFFFF:1600><bold>TTS-STUDIO</bold></shine> <anim:diamond>"
lines:
- "<anim:separator>"
- "<#C879FF>❙ <white>%hud_player%"
- "<#5B3A6E> %hud_world% <#3D2A4A>· <#5B3A6E>%hud_x%, %hud_y%, %hud_z%"
- ""
- "<#C879FF>❙ <white>Online"
- "<#5B3A6E> <white>%hud_online%<#5B3A6E>/%hud_max% players"
- ""
- "<#C879FF>❙ <white>Connection"
- "<#5B3A6E> ping %if:%hud_ping%>150?<#FF6B6B>%hud_ping%ms:<#6BFF9E>%hud_ping%ms%<#5B3A6E> · tps <white>%hud_tps%"
- "<anim:separator>"
- "<shine:#7A4DFF:#C879FF:2400>docs.journalbytts.xyz</shine>"
tablist:
# The name each player is listed with in the TAB. Leave it out and the plain name is used.
name: "<#C879FF>◈ <white>%hud_player%"
header:
- ""
- "<anim:diamond> <shine:#C879FF:#FFFFFF:1600><bold>T T S - S T U D I O</bold></shine> <anim:diamond>"
- "<#5B3A6E>the plugin suite, live"
- ""
footer:
- ""
- "<#5B3A6E>tps <white>%hud_tps%<#5B3A6E> · your ping <white>%hud_ping%ms<#5B3A6E> · %hud_online% online"
- "<shine:#7A4DFF:#C879FF:2400>docs.journalbytts.xyz/discord</shine>"
- ""
nametag:
prefix: "<#C879FF>◈ <white>"
suffix: ""
# The action bar sits over the hotbar, where the game also writes item names: for a second
# after you switch an item, the item name wins and this readout is hidden. Set it to "" to
# turn it off, or add %hud_balance% if you run a Vault economy.
actionbar: "<#5B3A6E>♥ <white>%hud_health%<#5B3A6E> · tps <white>%hud_tps%<#5B3A6E> · <white>%hud_online%<#5B3A6E> online"
# Boss bars. One entry per bar; the key is its id, and reusing the id updates that same bar
# instead of stacking a new one. Leave the section out and no bar is shown.
# color: PINK | BLUE | RED | GREEN | YELLOW | PURPLE | WHITE
# style: PROGRESS | NOTCHED_6 | NOTCHED_10 | NOTCHED_12 | NOTCHED_20
# progress: 0.0 to 1.0, or anything that resolves to a number
bossbars:
welcome:
text: "<shine:#C879FF:#FFFFFF:1600>TTS-STUDIO</shine> <#5B3A6E>· <white>16 plugins, live"
color: PURPLE
style: PROGRESS
progress: "1.0"