messages.yml
Edit, disable and translate every message OptimalMiracleCubes sends, plus optional screen titles and action bars.
Every message lives in messages.yml. Each supports legacy & codes, &#hex, MiniMessage and (with
PlaceholderAPI) %...%. After editing, run /miraclecubeadmin reload.
Format
Section titled “Format”Messages: REWARD-SELECTED: Message: Enabled: true Value: - '&5[&d&lCubes&5] &7You selected &f{reward}&7, find it hidden on the miracle board&7!'Enabled: falsesilences the chat message.Valueis a single string or a list. Every line of a list is sent (the admin help panel uses this).- Start a line with
[center]to centre it 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.
Titles and action bars
Section titled “Titles and action bars”Any message can also show a title, an action bar, or both. Add the blocks next to Message::
Messages: REWARD-WON: Message: Enabled: true Value: - '&5[&d&lCubes&5] &7You found &f{reward} &7and advanced to &fStage {stage}&7.' Title: Enabled: true Title: '&2&m━━━&r &a&lReward &f&lFound &2&m━━━&r' Sub-Title: '&7You advanced to &fStage {stage}&7!' Fade-In: 10 Stay: 60 Fade-Out: 10| Key | Default | Description |
|---|---|---|
Title.Enabled |
true |
Shows the title. Without a Title: block there is no title. |
Title.Title |
'' |
The large centre line. |
Title.Sub-Title |
'' |
The smaller line beneath it. |
Title.Fade-In |
10 |
Fade-in time in ticks. |
Title.Stay |
60 |
Time on screen in ticks. |
Title.Fade-Out |
10 |
Fade-out time in ticks. |
The shipped file leaves out the three timing keys, so the defaults apply. An action bar is one line
above the hotbar (Action-Bar.Enabled defaults to true once the block exists):
Messages: FRAGMENTS-FOUND: Message: Enabled: false Value: - '&b&l+ {amount} Fragments &3(/mcube)' Action-Bar: Enabled: true Value: '&b&l+ {amount} Fragments &3(balance: {fragments})'- The same
{tokens}the message uses resolve in the title, subtitle and action bar. - Chat, title and action bar toggle independently. Disabling the chat message keeps the others.
- Titles and action bars only show to players, never to the console.
REWARD-WON ships with its title enabled. Add a Title: or Action-Bar: block to any other key the
same way.
Message keys
Section titled “Message keys”Errors: PLAYER-ONLY, NO-PERMISSION, INVALID-PLAYER, INVALID-NUMBER,
PROFILE-LOAD-FAILED, 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.
| Key | Sent when |
|---|---|
PLAYER-ONLY |
The console runs /miraclecube. |
NO-PERMISSION |
The sender lacks the command’s permission. |
INVALID-PLAYER |
An admin command names a player the server has never seen. |
INVALID-NUMBER |
An amount is not a whole number, is negative, or a stage is below 1. |
PROFILE-LOAD-FAILED |
The player’s data could not be loaded. Shown as the login refusal (or kick) text, not in chat. |
FRAGMENTS-FOUND |
Fragments drop from any source. |
REWARD-SELECTED |
A reward is selected in the select menu. |
REWARD-LOCKED |
A locked reward is clicked. |
INSUFFICIENT-FRAGMENTS |
A cube is clicked without enough fragments. |
DECRYPTION-PENDING |
A cube is clicked while a winning reveal is still playing. |
RANDOM-REWARD-WON |
A consolation prize is revealed. |
REWARD-WON |
The hidden reward is revealed. |
FRAGMENTS-GIVEN, FRAGMENTS-TAKEN, FRAGMENTS-SET |
The matching fragments admin command finished. |
STAGE-SET |
/miraclecubeadmin stage finished. |
BOARD-RESET |
/miraclecubeadmin resetboard finished. |
RELOAD |
/miraclecubeadmin reload finished. |
MIRACLE-ADMIN-HELP |
/miraclecubeadmin with no or wrong arguments. |
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} (plain number) |
RANDOM-REWARD-WON |
{reward} (the consolation prize’s display name) |
REWARD-WON |
{reward}, {stage} (the new stage) |
FRAGMENTS-GIVEN, FRAGMENTS-TAKEN, FRAGMENTS-SET |
{player}, {amount} |
STAGE-SET |
{player}, {stage} |
BOARD-RESET, INVALID-PLAYER |
{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.
FRAGMENTS-FOUNDfires on every drop. At a highFragments.Chancethat is a lot of chat. Disable the chat line and use an action bar (example above), and blank theFRAGMENT-FOUNDsound in config.yml if you want drops silent.RANDOM-REWARD-WONandREWARD-WONfire at the reveal, not on the click, so they line up with the icon landing. If the menu is closed mid-spin they are sent right away.- Messages sent to the console skip PlaceholderAPI;
%...%is only resolved for players.
