Skip to content
◆ TTS-STUDIO docs Discord

Plugins / HudForge

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"

Keep reading