messages.yml
Edit, disable and translate every message OptimalTeams sends, plus optional titles and action bars.
Every message lives in messages.yml. Each supports legacy & codes, &#hex, MiniMessage and (with
PlaceholderAPI) %...%. After editing, run /teamadmin reload.
Format
Section titled “Format”Messages: TEAM-LEFT: Message: Enabled: true Value: - '&5[&d&lTeams&5] &7You left &f{team}&7.'Enabled: falsesilences a message entirely.Valueis a list; every line is sent. A line containing only''sends an empty line.- 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.
Titles and action bars
Section titled “Titles and action bars”Any message can also show a title on screen. Add a Title: block next to Message::
Messages: TEAM-JOINED: Message: Enabled: true Value: - '&5[&d&lTeams&5] &7You joined &f{team}&7.' Title: Enabled: true Title: '&2&m━━━&r &a&lJoined &f&l{team} &2&m━━━&r' Sub-Title: '&7Talk to your team with &f/tc&7!'Titleis the large line,Sub-Titlethe smaller one. Either can be''.- Optional
Fade-In,StayandFade-Outset the timings in ticks (defaults10,60,10). - The tokens of the message resolve in the title too.
Enabled: falsehides only the title.
An Action-Bar: block with Enabled and Value works the same way and shows one line above the
hotbar.
TEAM-CREATED and TEAM-JOINED ship with a title enabled.
Message keys
Section titled “Message keys”Errors: PLAYER-ONLY, NO-PERMISSION, INVALID-PLAYER, INVALID-NUMBER, INVALID-TEAM,
NOT-IN-TEAM, ALREADY-IN-TEAM, TARGET-IN-TEAM, TARGET-NOT-MEMBER, CANNOT-TARGET-SELF,
NAME-TAKEN, NAME-LENGTH, NAME-INVALID, NAME-BLACKLISTED, ROLE-DENIED, RANK-DENIED,
NOT-LEADER, CANNOT-PROMOTE, CANNOT-DEMOTE, LEADER-CANNOT-LEAVE, TEAM-FULL,
ALREADY-INVITED, NO-INVITE, NO-HOME, HOME-WORLD-MISSING, HOME-COOLDOWN, HOME-PENDING.
Team lifecycle: TEAM-CREATED, TEAM-CREATED-BROADCAST, TEAM-DISBANDED,
TEAM-DISBANDED-NOTICE, TEAM-DISBANDED-BROADCAST, TEAM-JOINED, MEMBER-JOINED, TEAM-LEFT,
MEMBER-LEFT, MEMBER-KICKED, KICKED-NOTICE.
Invites: INVITE-SENT, INVITE-SENT-NOTICE, INVITE-RECEIVED, INVITE-DECLINED,
INVITE-DECLINED-NOTICE.
Roles and settings: MEMBER-PROMOTED, MEMBER-DEMOTED, LEADER-TRANSFERRED, TEAM-RENAMED,
FRIENDLY-FIRE-TOGGLED, OPEN-TOGGLED.
Home: HOME-SET, HOME-DELETED, HOME-WARMUP, HOME-CANCELLED, HOME-TELEPORTED.
Chat: CHAT-ENABLED, CHAT-DISABLED, TEAM-CHAT.
Info and prompts: TEAM-INFO, NAME-PROMPT, RENAME-PROMPT, INVITE-PROMPT,
PROMPT-CANCELLED, TEAM-HELP.
Points: POINTS-UPDATED, KOTH-POINTS, KILL-POINTS.
Admin: ADMIN-DISBANDED, ADMIN-DISBANDED-NOTICE, ADMIN-RENAMED, RELOAD,
TEAM-ADMIN-HELP.
Who receives what
Section titled “Who receives what”| Message | Sent to |
|---|---|
TEAM-CREATED, TEAM-JOINED, TEAM-LEFT, TEAM-DISBANDED, INVITE-SENT, INVITE-DECLINED |
The player who did it |
MEMBER-JOINED, INVITE-SENT-NOTICE, TEAM-DISBANDED-NOTICE |
The rest of the online team |
MEMBER-LEFT, MEMBER-KICKED, MEMBER-PROMOTED, MEMBER-DEMOTED, LEADER-TRANSFERRED, TEAM-RENAMED, FRIENDLY-FIRE-TOGGLED, OPEN-TOGGLED, HOME-SET, HOME-DELETED, INVITE-DECLINED-NOTICE, TEAM-CHAT, KOTH-POINTS, KILL-POINTS, ADMIN-DISBANDED-NOTICE |
Every online member of the team |
INVITE-RECEIVED |
The invited player |
KICKED-NOTICE |
The kicked player, if online |
TEAM-CREATED-BROADCAST, TEAM-DISBANDED-BROADCAST |
Everyone online and console (only with Broadcast-Creation / Broadcast-Disband) |
Tokens per message
Section titled “Tokens per message”Messages marked + team also get every team token: {team}, {leader}, {members},
{max-members}, {online}, {points}, {points-raw}, {rank}, {friendly-fire}, {open},
{home}, {created}.
| Message | Tokens |
|---|---|
INVALID-PLAYER, TARGET-IN-TEAM, TARGET-NOT-MEMBER, ALREADY-INVITED, CANNOT-PROMOTE, CANNOT-DEMOTE |
{player} |
INVALID-NUMBER |
{input} |
INVALID-TEAM, NAME-TAKEN |
{team} |
NAME-LENGTH, NAME-PROMPT |
{min}, {max} |
RENAME-PROMPT |
{min}, {max}, {team} |
TEAM-FULL, NO-INVITE |
+ team |
HOME-WORLD-MISSING |
{world} |
HOME-COOLDOWN, HOME-WARMUP |
{time} |
TEAM-CREATED, TEAM-CREATED-BROADCAST, TEAM-DISBANDED, TEAM-DISBANDED-NOTICE, TEAM-DISBANDED-BROADCAST, TEAM-JOINED, MEMBER-JOINED, TEAM-LEFT, MEMBER-LEFT, INVITE-DECLINED, INVITE-DECLINED-NOTICE |
{player} + team |
INVITE-SENT, INVITE-SENT-NOTICE, INVITE-RECEIVED |
{player} (invited), {inviter}, {time} (expiry) + team |
MEMBER-KICKED, KICKED-NOTICE, LEADER-TRANSFERRED |
{player} (target), {actor} + team |
MEMBER-PROMOTED, MEMBER-DEMOTED |
{player}, {actor}, {role} (the new role) + team |
TEAM-RENAMED, HOME-SET, HOME-DELETED |
{actor} + team |
FRIENDLY-FIRE-TOGGLED, OPEN-TOGGLED |
{actor}, {state} + team |
TEAM-CHAT |
{player}, {role}, {message} + team |
TEAM-INFO |
{roster} + team |
POINTS-UPDATED |
+ team |
KOTH-POINTS |
{player}, {earned} + team |
KILL-POINTS |
{player}, {victim}, {earned} + team |
ADMIN-DISBANDED, ADMIN-DISBANDED-NOTICE |
{player} (the admin) + team |
ADMIN-RENAMED |
{old-team}, {actor} + team ({team} is the new name) |
RELOAD |
{ms} (reload time in milliseconds) |
A token only resolves in the messages that provide it; anywhere else it is left as literal text.
{roster}inTEAM-INFOshould be on a line of its own. That line is repeated once per member, formatted byTeam-Format.Member-Entryin config.yml, highest role first.{message}inTEAM-CHATis the player’s text exactly as typed. Color codes and MiniMessage tags in it are shown, not applied.- Prompts:
NAME-PROMPT,RENAME-PROMPTandINVITE-PROMPTare sent when a prompt starts, in everyPrompt-Mode. In chat mode, typingcancelsendsPROMPT-CANCELLED. NAME-INVALIDdescribes the defaultName-Pattern. Update it if you change the pattern.TEAM-HELPis shown for/team helpand any unknown subcommand,TEAM-ADMIN-HELPfor/teamadminwithout (or with wrong) arguments. Both are plain lists you can rewrite freely.
