Skip to content

messages.yml

Edit, disable and translate every message OptimalMilestones sends, plus screen titles and action bars.

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 can be a single string or a list. Every line of a list is sent (used for the multi-line admin help panel).
  • A line containing [center] is centred in chat.
  • Keep the {tokens} intact and don’t rename the message keys.

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

Any message can also show 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!'
Fade-In: 10
Stay: 70
Fade-Out: 20
Key Default Description
Enabled - false hides only the title, the chat message is untouched.
Title '' The large centre line.
Sub-Title '' The smaller line beneath it.
Fade-In 10 Fade-in time in ticks (20 ticks = 1 second).
Stay 70 How long the title stays, in ticks.
Fade-Out 20 Fade-out time in ticks.

The same {tokens} the message uses work in the title and subtitle. Titles only show to players.

MILESTONE-UNLOCKED ships with a title, and it is written back if you delete it (set Enabled: false to turn it off instead). Add a Title: block to any other key the same way.

Any message can also show one line above the hotbar. Add an Action-Bar: block next to Message::

Messages:
MILESTONE-CLAIMED:
Message:
Enabled: true
Value:
- '&5[&d&lMilestones&5] &7You claimed the rewards of &f{category} Milestone {milestone}&7.'
Action-Bar:
Enabled: true
Value: '&a+ {category} Milestone {milestone}'

None of the default messages use an action bar.

Key Sent when
PLAYER-ONLY The console runs /milestones.
NO-PERMISSION A player without permission runs /milestones or /milestonesadmin.
INVALID-PLAYER An admin command names a player the server has never seen.
PROFILE-LOAD-FAILED A player’s data could not be loaded. Shown as the login refusal / kick message.
INVALID-NUMBER The admin <amount> is not a whole number of 0 or more.
INVALID-CATEGORY A command names a category that does not exist (or, for /milestones, is disabled).
CATEGORY-NOT-TRACKED /milestonesadmin progress targets a PLACEHOLDER category.
MILESTONE-CLAIMED A milestone is claimed.
MILESTONE-LOCKED A milestone below its threshold is clicked.
ALREADY-CLAIMED An already claimed milestone is clicked.
MILESTONE-UNLOCKED Progress reaches a milestone (from the unlock check).
PROGRESS-GIVEN /milestonesadmin progress give finished.
PROGRESS-TAKEN /milestonesadmin progress take finished.
PROGRESS-SET /milestonesadmin progress set finished.
MILESTONES-RESET /milestonesadmin reset finished.
RELOAD /milestonesadmin reload finished.
MILESTONES-ADMIN-HELP /milestonesadmin with no or wrong arguments.
Message Tokens
MILESTONE-CLAIMED, MILESTONE-LOCKED, MILESTONE-UNLOCKED {category}, {milestone} (Roman numeral), {number}, {progress}, {required}
INVALID-CATEGORY, CATEGORY-NOT-TRACKED {category}
PROGRESS-GIVEN, PROGRESS-TAKEN, PROGRESS-SET {player}, {category}, {amount} (comma-grouped)
INVALID-PLAYER, MILESTONES-RESET {player}
INVALID-NUMBER {input}
RELOAD {ms} (reload time in milliseconds)

The other keys take no tokens. A token only resolves in the messages that provide it.

  • MILESTONE-UNLOCKED comes from the unlock check, not from opening the menu. How often it runs is Settings.Notify-Interval in config.yml. Disabling the message, its title and the MILESTONE-UNLOCKED sound makes unlocks silent.
  • CATEGORY-NOT-TRACKED is the answer when an admin tries to change a PLACEHOLDER category. Those have no counter of their own - change whatever feeds the placeholder instead.
  • PROFILE-LOAD-FAILED protects player data: if it cannot be loaded, the player is not let in rather than playing with an empty profile.
  • Player names typed by admins are shown as plain text, so color codes or tags in them are not applied.