messages
Every chat line the plugin sends, MiniMessage formatted.
messages.yml holds the chat lines the plugin sends: the vote
broadcast, /vote stats, /vote sites, /vote help, the offline
vote notices, the party announcement, the reminder and the admin
feedback. Menu titles and item text are not here, they live in the
guis/ files.
Apply changes with /voteplus reload.
Format
Every value is parsed as MiniMessage: hex colours, gradients, decorations, click and hover events.
prefix: "<b><gradient:#4DA6E8:#A8D8F0:#E0F0FF>TDXVotePlus</gradient></b> <dark_gray>»</dark_gray>"
vote:
broadcast: "%prefix% <#A8D8F0>%player% <white>just voted on <#5EEEA0>%service% <white>, thanks!"
offline:
auto-claimed: "%prefix% <#5EEEA0>Claimed <white>%count% <#5EEEA0>offline vote(s) while you were away."
pending: "%prefix% <#FFD93D>You have <white>%count% <#FFD93D>unclaimed vote(s). Use <#A8D8F0>/vote claim<#FFD93D>."%prefix% is replaced with the prefix value wherever you use it.
Legacy &a colour codes are not translated, use MiniMessage tags.
Set a line to "" to stop it being sent.
<shadow:...> tags only exist on Paper 1.21.4 and newer. On an
older server they show up as literal text in chat, which is why the
default prefix does not use them.
Sections
| Section | What it covers |
|---|---|
prefix | The tag put in front of most lines through %prefix%. |
errors | player-only, no-permission, unknown-sub. |
help | The /vote help block: header, title, one line per command, admin, footer. |
vote | broadcast, the /vote stats block (stats-*) and the /vote sites block (sites-*). |
offline | auto-claimed and pending, shown on join when offline-queue.notify-on-join is on. |
party | triggered, the vote party announcement. |
reminders | nudge, the vote reminder. |
monthly | header and entry, broadcast when the monthly payout runs with broadcast: true. |
admin | Feedback for /voteplus: usage, reloaded, reset-all, reset-player, gave-vote, debug. |
Three keys in the shipped file are not sent by the current version:
milestone.awarded, party.progress and vote.site-link. Editing
them changes nothing. In particular there is no automatic chat line
when a milestone is reached. If you want one, add a message
reward to the milestone.
Placeholders
Each line only knows the placeholders that make sense for it:
| Token | Available in |
|---|---|
%prefix% | Every line |
%player%, %service% | vote.broadcast |
%player% | vote.stats-title, admin.reset-player, admin.gave-vote |
%total%, %monthly%, %weekly%, %daily% | The matching vote.stats-* line |
%current%, %best% | vote.stats-streak |
%index%, %name% | vote.sites-entry |
%count% | offline.auto-claimed, offline.pending |
%total% | party.triggered, the number of parties fired so far |
%month% | monthly.header, as a key such as 2026-04 |
%rank%, %player%, %votes% | monthly.entry |
%dirty%, %pending%, %cached% | admin.debug |
PlaceholderAPI tokens are not resolved in these lines.
After a plugin update
messages.yml is never rewritten. When an update adds a new line,
your file simply does not have it and the plugin uses the bundled
default text for that key. To see the current defaults, move your
messages.yml aside and run /voteplus reload: a fresh default file
is written, and you can copy the new keys into your own.
There is one file for one language. To translate the plugin, edit the values in place.