Skip to content

messages.yml

Every message lives in messages.yml. Each supports legacy & codes, &#hex, MiniMessage and (with PlaceholderAPI) %...%. After editing, run /milestonesadmin reload.

Messages:
MILESTONE-CLAIMED:
Message:
Enabled: true
Value:
- "&5[&d&lMilestones&5] &7You claimed the rewards of &f{category} Milestone {milestone}&7."
  • Enabled: false silences a message entirely.
  • Value is a list - every line is sent (used for the multi-line admin help panel).
  • Keep the {tokens} intact; donโ€™t rename the message keys.

Missing keys are re-added with their defaults the next time the file loads, so you can delete a block to reset it.

Any message can also flash a title and subtitle on the playerโ€™s screen. Add a Title: block next to Message::

Messages:
MILESTONE-UNLOCKED:
Message:
Enabled: true
Value:
- "&5[&d&lMilestones&5] &7You can now claim &f{category} Milestone {milestone} &7in &f/milestones&7!"
Title:
Enabled: true
Title: "&2&mโ”โ”โ”&r &a&l{category} Milestone &f&l{milestone} &a&lUnlocked &2&mโ”โ”โ”&r"
Sub-Title: "&7Claim your reward in &f/milestones&7!"
  • Title is the large centre line, Sub-Title the smaller line beneath it. Either can be left ''.
  • The same {tokens} the message uses resolve in the title and subtitle.
  • Enabled: false hides only the title, leaving the chat message untouched.
  • The Title block and the chat Message are independent - keep both, or disable one and show the other.
  • Titles only show to players.

MILESTONE-UNLOCKED ships with this title enabled. Add a Title: block to any other key the same way.

Errors: PLAYER-ONLY, NO-PERMISSION, INVALID-PLAYER, INVALID-NUMBER, INVALID-CATEGORY, CATEGORY-NOT-TRACKED, MILESTONE-LOCKED, ALREADY-CLAIMED.

Milestones: MILESTONE-CLAIMED, MILESTONE-UNLOCKED.

Admin: PROGRESS-GIVEN, PROGRESS-TAKEN, PROGRESS-SET, MILESTONES-RESET, RELOAD, MILESTONES-ADMIN-HELP.

Message Tokens
MILESTONE-CLAIMED, MILESTONE-LOCKED, MILESTONE-UNLOCKED {category}, {milestone} (Roman), {number} (arabic), {progress}, {required}
INVALID-CATEGORY, CATEGORY-NOT-TRACKED {category}
PROGRESS-GIVEN / -TAKEN / -SET {player}, {category}, {amount}
INVALID-PLAYER, MILESTONES-RESET {player}
INVALID-NUMBER {input}
RELOAD {ms} (reload time in milliseconds)

ALREADY-CLAIMED takes no tokens. A token only resolves in the messages that provide it.

  • CATEGORY-NOT-TRACKED is the answer when /milestonesadmin progress targets a PLACEHOLDER category. Those have no counter to change - edit whatever feeds the placeholder instead.
  • NO-PERMISSION is the pluginโ€™s own denial for /milestonesadmin. The command deliberately declares no permission in plugin.yml so Bukkit doesnโ€™t intercept it with its own message; see Information.
  • MILESTONE-UNLOCKED fires from the notify timer, not from opening the menu. Its cadence is Settings.Notify-Interval in config.yml. Disabling the message and its sound makes unlocks silent.
  • Console-sent admin messages skip PlaceholderAPI; %...% is only resolved for player targets.