messages.yml
Every message lives in messages.yml. Each supports legacy & codes, &#hex, MiniMessage and (with
PlaceholderAPI) %...%. After editing, run /miraclecubeadmin reload.
Messages: REWARD-SELECTED: Message: Enabled: true Value: - "&5[&d&lCubes&5] &7You selected &f{reward} &7and find it hidden on the miracle board."Enabled: falsesilences a message entirely.Valueis 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: REWARD-WON: Message: Enabled: true Value: - "&5[&d&lCubes&5] &7You found &f{reward} &7and you advanced to &fStage {stage}&7." Title: Enabled: true Title: "&2&mโโโ&r &a&lReward Found &2&mโโโ&r" Sub-Title: "&7The board reset stage {stage}&7."Titleis the large centre line,Sub-Titlethe smaller line beneath it. Either can be left''.- The same
{tokens}the message uses resolve in the title and subtitle. Enabled: falsehides only the title, leaving the chat message untouched.- The
Titleblock and the chatMessageare independent - keep both, or disable one and show the other. - Titles only show to players, with fixed 10/60/10-tick fade timings.
REWARD-WON ships with this title enabled. Add a Title: block to any other key the same way.
Message keys
Section titled โMessage keysโErrors: PLAYER-ONLY, NO-PERMISSION, INVALID-PLAYER, INVALID-NUMBER, REWARD-LOCKED,
INSUFFICIENT-FRAGMENTS, DECRYPTION-PENDING.
Gameplay: FRAGMENTS-FOUND, REWARD-SELECTED, RANDOM-REWARD-WON, REWARD-WON.
Admin: FRAGMENTS-GIVEN, FRAGMENTS-TAKEN, FRAGMENTS-SET, STAGE-SET, BOARD-RESET,
RELOAD, MIRACLE-ADMIN-HELP.
Tokens per message
Section titled โTokens per messageโ| Message | Tokens |
|---|---|
FRAGMENTS-FOUND |
{amount}, {fragments} (new balance, comma-grouped) |
REWARD-SELECTED |
{reward} |
REWARD-LOCKED |
{required}, {stage} |
INSUFFICIENT-FRAGMENTS |
{price}, {fragments} |
RANDOM-REWARD-WON |
{reward} (the consolation prizeโs display name) |
REWARD-WON |
{reward}, {stage} (the new stage) |
FRAGMENTS-GIVEN / -TAKEN / -SET |
{player}, {amount} |
STAGE-SET |
{player}, {stage} |
BOARD-RESET, INVALID-PLAYER |
{player} |
INVALID-NUMBER |
{input} |
RELOAD |
{ms} (reload time in milliseconds) |
DECRYPTION-PENDING takes no tokens. A token only resolves in the messages that provide it.
FRAGMENTS-FOUNDfires on every fragment drop. At a highFragments.Chancethat is a lot of chat - the default text is a short actionbar-style line for that reason. SetEnabled: false(and blank theFRAGMENT-FOUNDsound in config.yml) to make drops silent.RANDOM-REWARD-WONfires at the animation reveal, not on the click, so it lines up with the icon landing.- Console-sent admin messages skip PlaceholderAPI;
%...%is only resolved for player targets.
