Skip to content

messages.yml

Edit, disable and translate every OptimalBattlePass message, add screen titles, and rename the reward types.

Every message lives in messages.yml, together with the reward type names. Each message supports legacy & codes, &#hex, MiniMessage and (with PlaceholderAPI) %...%. After editing, run /battlepassadmin reload.

Messages:
REWARD-CLAIMED:
Message:
Enabled: true
Value:
- '&5[&d&lPass&5] &7You claimed the &fTier {tier} {type} &7reward!'
  • Enabled: false silences a message.
  • Value is a single string or a list; every line of a list is sent (used for the admin help panel).
  • Start a line with [center] to center 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.

Any message can also show a title and subtitle on the player’s screen. Add a Title: block next to Message::

Messages:
TIER-UP:
Message:
Enabled: true
Value:
- '&5[&d&lPass&5] &7You reached &fTier {tier}&7. Open &f/battlepass &7to claim your rewards!'
Title:
Enabled: true
Title: '&2&m━━━&r &a&lTier &f&l{tier} &a&lCompleted &2&m━━━&r'
Sub-Title: '&7Claim your reward in &f/battlepass&7!'
Fade-In: 10
Stay: 60
Fade-Out: 10
Key Default Description
Enabled false hides only the title; the chat message is independent.
Title The large center line. Can be ''.
Sub-Title The smaller line beneath it. Can be ''.
Fade-In 10 Fade-in time in ticks.
Stay 60 Time on screen in ticks.
Fade-Out 10 Fade-out time in ticks.

The same {tokens} the message uses resolve in the title and subtitle. TIER-UP ships with this title enabled, and it is written back if you remove it; set its Enabled: false to turn it off.

You can also add an Action-Bar: block with Enabled and Value (one line) to show a message above the hotbar.

Reward-Types:
Free: "Free"
Premium: "Premium"
Key Default Description
Free Free What {type} shows in REWARD-CLAIMED for a free reward.
Premium Premium What {type} shows in REWARD-CLAIMED for a premium reward.

This section sits next to Messages, not inside it. Both keys are required. (The {type} label on the reward icons is set separately, by Free-Label/Premium-Label in config.yml.)

Errors: PLAYER-ONLY, NO-PERMISSION, INVALID-PLAYER, INVALID-NUMBER, PROFILE-LOAD-FAILED.

Progress: EXP-GAINED, TIER-UP.

Claiming: REWARD-CLAIMED, REWARD-LOCKED, ALREADY-CLAIMED, PREMIUM-REQUIRED.

Purchases: MULTIPLIER-PURCHASED, MULTIPLIER-MAXED, MULTIPLIER-NOT-PURCHASABLE, PREMIUM-PURCHASED, PREMIUM-ALREADY-OWNED, PREMIUM-NOT-PURCHASABLE, INSUFFICIENT-FUNDS, PURCHASE-UNAVAILABLE.

Admin: EXP-GIVEN, EXP-TAKEN, EXP-SET, MULTIPLIER-SET, PREMIUMPASS-GIVEN, PREMIUMPASS-TAKEN, PASS-RESET, RELOAD, BATTLEPASS-ADMIN-HELP.

Message Tokens Sent when
EXP-GAINED {amount}, {exp} Every EXP award (ships disabled). {amount} is the EXP just gained, {exp} the new total.
TIER-UP {tier} A new tier is reached. If one award crosses several tiers, it is sent once with the highest.
REWARD-CLAIMED {tier}, {type} A reward is claimed. {type} comes from Reward-Types.
REWARD-LOCKED {tier}, {required}, {exp} A reward of an unreached tier is clicked.
ALREADY-CLAIMED, PREMIUM-REQUIRED none A claimed reward, or a premium reward without the pass, is clicked.
MULTIPLIER-PURCHASED {multiplier} A multiplier step is bought.
MULTIPLIER-MAXED {max} The multiplier is already at Max.
INSUFFICIENT-FUNDS {price} The player can’t afford a purchase.
MULTIPLIER-NOT-PURCHASABLE, PREMIUM-NOT-PURCHASABLE none That product has Purchasable: false.
PURCHASE-UNAVAILABLE none That product’s currency is not available.
PREMIUM-PURCHASED, PREMIUM-ALREADY-OWNED none The pass is bought, or already owned.
EXP-GIVEN, EXP-TAKEN, EXP-SET {player}, {amount} Admin EXP commands.
MULTIPLIER-SET {player}, {multiplier} /battlepassadmin multiplier.
PREMIUMPASS-GIVEN, PREMIUMPASS-TAKEN, PASS-RESET {player} Admin pass and reset commands.
INVALID-PLAYER {player} The named player has never joined the server.
INVALID-NUMBER {input} An amount is not a number, is negative, or a multiplier is below 1.0.
RELOAD {ms} Reload finished, in milliseconds.
PROFILE-LOAD-FAILED none Shown as the kick / login refusal text when a player’s data cannot be loaded.

A token only resolves in the messages that provide it.

  • EXP-GAINED ships disabled, along with its sound in config.yml. At the default 100% chance per block it would fire on every block. Enable it only with a low Experience.Chance.
  • Admin commands work on offline players, so INVALID-PLAYER is only sent for names the server has never seen. Servers set up before this wording changed keep their old “is not online” text in messages.yml until they edit it.
  • Offline admin commands send their confirmation once the database write has finished.