Skip to content

Configuration

Two files in plugins/SnowbirdTags/. /tagsadmin reload re-reads both tags.yml and all of config.yml, including the database settings, rank tags, hover lines and custom messages. It is all or nothing: if anything is wrong, nothing changes and the reply says why. A new jar still needs a restart. (This full reload arrived in 1.5.0. On a backend still running 1.4.1, only tags.yml and messages reload, and database changes need a restart.)

tags.yml is the tag catalog. Keep it byte-identical on every backend (see Troubleshooting).

tags:
  champion:
    display-name: '<gold>[Champion]</gold>'
    chat: "<hover:show_text:'<yellow>Won a seasonal championship.</yellow>'><gold>[Champion]</gold></hover> "
    description: 'Seasonal tournament champion.'
    acquisition-description: 'Win an official seasonal tournament.'
    shop-purchasable: false
    price: 0
    material: NETHER_STAR
    locked-material: GRAY_DYE
  • The id (champion) is a permanent storage key. Never rename it. Change only the display text.
  • display-name is for the menu. chat is what goes in chat. Keep the trailing space at the end of chat; it separates the tag from the name.
  • description and acquisition-description are plain text, not MiniMessage. Every player sees the acquisition-description on locked tags, so do not give away secrets there.
  • Both display-name and chat are checked with strict MiniMessage. A bad tag fails a reload safely, but would stop the plugin from starting on the next boot. Check edits carefully.

config.yml sections:

Section What it is for
database Shared MariaDB login. Same on every backend.
cache-refresh-seconds How often online players' cached tags refresh from the database (default 30).
rank-tags The rank badge catalog: priority (higher wins by default, match the LuckPerms weight), display, permission, chat.
hover.server-name Set to main on main only. Leave blank everywhere else.
hover.authoritative-server Whose numbers everyone shows. main.
hover.refresh-seconds, hover.max-slots Hover refresh timer (120) and how many rows a player gets (3).
hover.lines The lines players can pick. icon must be a vanilla material. permission blank means everyone.
menu, messages Menu titles and all player text, in MiniMessage.
custommessages Max length, cooldown, ChatControl moderation, the message wrappers and defaults, the EssentialsX AFK option, and the optional Discord audit channel.

Rank badge standard: id = LuckPerms group, permission: snowbirdtags.ranktag.<id>, priority = group weight, and chat = <gray>[</gray><gradient:DEEP:LIGHT>Full Name</gradient><gray>]</gray>, the same as the group's LuckPerms prefix.

For EssentialsX AFK messages, set broadcast-afk-message: false in the Essentials config and turn on custommessages.essentials-afk-broadcast-fallback. The Discord audit channel only sends from the backend where discord-dispatcher-enabled is true (main).

Chat setup (in ChatControl, not here):

Placeholder What it gives
%snowbirdtags_active% The active tag's chat text, with its trailing space
%snowbirdtags_active_id% The active tag id
%snowbirdtags_owned_count% How many tags the player owns
%snowbirdtags_rank_prefix% The chosen rank badge, else the LuckPerms prefix, always with one trailing space
%snowbirdtags_hover% The player's hover lines, each ending in a new line

ChatControl's chat formats use Hover: "%snowbirdtags_hover%<gray>Click to message.". For proxy TAB, point every group's tabprefix and tagprefix at %snowbirdtags_rank_prefix%, not just _DEFAULT_, or a hard-coded group prefix hides the chosen badge.