Skip to content

messages.yml

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

Messages:
MARKET-BOUGHT:
Message:
Enabled: true
Value:
- "&5[&d&lCosmetics&5] &7You bought &f{cosmetic} &7for &f{price}&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.

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

Messages:
CASE-WON-LIMITED:
Message:
Enabled: true
Value:
- "&5[&d&lCosmetics&5] &7You won the &c&lLIMITED &f{cosmetic} &7as the &f{position} &7of &f{max} &7winners!"
Title:
Enabled: true
Title: "&5&mโ”โ”&r &c&lLIMITED &f&l{cosmetic} &5&mโ”โ”&r"
Sub-Title: "&7You are the &f{position} &7of &f{max} &7winners!"
  • 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, with a fixed 0.5s fade in, 3s hold, 0.5s fade out.

CASE-WON-LIMITED ships with this title enabled so limited wins land on screen. Add a Title: block to any other key the same way.

Errors: PLAYER-ONLY, NO-PERMISSION, INVALID-PLAYER, INVALID-COSMETIC, COSMETIC-LOCKED, ALREADY-HAVE-COSMETIC, COSMETIC-ALREADY-UNLOCKED, COSMETIC-LISTED, COSMETIC-NOT-UNLOCKED.

Give / remove / equip: COSMETIC-GIVEN, COSMETIC-REMOVED, COSMETIC-GIVEALL, COSMETIC-REMOVEALL, COSMETIC-EQUIPPED, COSMETIC-UNEQUIPPED.

Market: MARKET-SELL-PROMPT, MARKET-SELL-CANCELLED, MARKET-SELL-INVALID-NUMBER, MARKET-SELL-INVALID-PRICE, MARKET-SELL-NOT-OWNED, MARKET-SELL-LISTED, MARKET-LISTING-REMOVED, MARKET-ECONOMY-UNAVAILABLE, MARKET-INSUFFICIENT-FUNDS, MARKET-ALREADY-SOLD, MARKET-BOUGHT, MARKET-SOLD, MARKET-PRICE-TOO-LOW, MARKET-PRICE-TOO-HIGH, MARKET-TOO-MANY-LISTINGS, MARKET-LISTING-FEE-INSUFFICIENT, MARKET-LISTING-EXPIRED, MARKET-SEARCH-PROMPT, MARKET-SEARCH-CANCELLED.

Vouchers: VOUCHER-GIVEN, VOUCHER-RECEIVED, VOUCHER-REDEEMED, VOUCHER-ALREADY-OWNED, VOUCHER-LISTED, VOUCHER-INVALID, VOUCHER-NOT-CONFIGURED.

Cases: CASE-INVALID, CASE-GIVEN, CASE-PLACED, CASE-REMOVED, CASE-WON, CASE-WON-LIMITED, CASE-WON-VOUCHER, CASE-SOLD-OUT, CASE-INSUFFICIENT, CASE-ECONOMY-UNAVAILABLE, CASE-EMPTY.

Admin: MAX-LISTINGS-SET, MAX-LISTINGS-RESET, RELOAD, COSMETICS-ADMIN-HELP.

{player}, {cosmetic}, {cosmetic-type}, {price}, {amount}, {min}, {max}, {fee}, {buyer}, {case}, {position}, {ms} (reload time). Each messageโ€™s default text shows which tokens it uses; a token only resolves in the messages that provide it.