messages
Every player-facing string, MiniMessage-aware.
messages.yml holds every player-facing string the plugin sends —
join messages, vote confirmations, error responses, command help,
GUI titles and lore. Splitting these out means you can completely
re-skin the plugin's voice without touching any other config.
Format
Every value is parsed as MiniMessage, so you get gradients, hex colors, click events, hover tooltips, and decorations for free.
prefix: "<#4DA6E8>[VotePlus]</> "
vote-received: "<gray>%player% just voted on <white>%site%</white>!</gray>"
vote-cooldown: "<red>You can't vote on <white>%site%</white> yet — try again in <white>%remaining%</white>.</red>"
vote-claimed: "<green>Claimed <white>%count%</white> queued vote(s)!</green>"
leaderboard-empty: "<gray>No votes yet this period — be the first.</gray>"
milestone-fired: "<#FFD700>Milestone unlocked: <white>%milestone_id%</white></>"
party-broadcast: "<#FF9D5E>VOTE PARTY! <white>%threshold%</white> votes reached — everyone online wins!</>"Localisation
If you want a second language, create a messages.fr.yml (or any
locale code) next to the default file and set general.locale: fr
in config.yml. The plugin loads the matching file at startup; if
the file is missing, it falls back to messages.yml.
You don't have to translate every key — any key missing in the
locale file falls back to the default messages.yml. So it's safe
to ship a partial translation and fill in the rest over time.
Placeholders
The plugin substitutes a small set of placeholders in messages, depending on context:
| Token | Available in | Replaced with |
|---|---|---|
%player% | Any per-player message | The player's name |
%uuid% | Any per-player message | The player's UUID |
%site% | Vote-received messages | The vote site name |
%count% | Claim messages | Number of votes claimed |
%total_votes% | Any per-player message | Player's all-time vote count |
%streak% / %best_streak% | Streak messages | Current / best streak |
%remaining% | Cooldown messages | Human-readable time left |
%threshold% | Vote-party broadcasts | Configured party threshold |
%milestone_id% | Milestone messages | The id of the fired milestone tier |
PlaceholderAPI tokens (%vault_eco_balance%, etc.) also resolve in
any per-player message, provided PAPI is installed.