Chat¶
MRTBattleRoyale has its own chat system built around one Battle Royale rule:
Alive players can always talk to each other, but dead players and spectators have a separate channel that the alive players never hear.
Otherwise someone watching from above could call out enemy positions.
All chat settings are in the chat: section of config.yml. Set chat.enabled: false to leave every chat to another plugin.
Scope: br or server¶
chat.scope decides how much of the server's chat the plugin handles.
Only the Battle Royale chats are handled:
- the BR spawn (the hub world) has its own chat, only for who is there;
- every match has its own chat;
- dead players and spectators of each match have their own chat;
- registered players of a running event have the event lobby chat.
The rest of the server's chat is not touched (format, chat plugins): BR players just don't see it, and their messages don't reach the rest of the server. Perfect for a server where Battle Royale is one mode among many.
The plugin handles the whole server's chat: everyone outside a match shares one chat, formatted with chat.format. Use it on servers that are only Battle Royale.
Players in a match are always kept out of the outside chat, whatever the scope, so hub talk never leaks into a round.
The chats¶
| Where you are | Who hears you | Format |
|---|---|---|
| BR spawn (hub world) | Players at the BR spawn, not in a match | format |
| Event lobby | Registered players of the running event who are not in a match | event-format |
| Arena waiting lobby / countdown | Everyone in that arena | game-format |
| In a match, alive | All players of that match (alive and spectators), or only nearby ones with PROXIMITY |
game-format |
| In a match, with the team prefix | Only your teammates | team-prefix + game-format |
| In a match, dead / spectating | Only the dead and spectators of that match | spectator-prefix + game-format |
| End-of-match screen | Everyone in that arena | game-format |
Spectators do hear the alive players: they are out of the round and can't act on what they hear, and following the chat is part of watching. Only the other direction is blocked.
Every match line is also written to the console, tagged with the arena name.
BR spawn chat¶
With scope: br, the BR spawn chat covers the worlds in chat.hub-worlds, or the hub world set with /br setlobby when the list is empty.
Event lobby chat¶
Players registered in a running event and not in a match talk only among themselves, with event-format.
Team chat¶
In DUO and SQUAD, a message that starts with team-chat-prefix (default !) goes only to your teammates:
It is ignored in SOLO. Turn it off with team-chat: false.
Proximity chat¶
active-chat-mode decides how the alive players hear each other during the match:
| Value | Effect |
|---|---|
ALL (default) |
Every alive player in the match hears you |
PROXIMITY |
Only players within proximity-radius blocks hear you |
Spectators always hear everything, and their own channel works the same in both modes.
Formats¶
chat:
enabled: true
scope: br
hub-worlds: []
smallcaps: false
# Outside matches (BR spawn, or the whole server with scope: server)
format: '<#ffffff>%player% <#333333>» <gray>%message%'
allow-player-colors: false
# Event lobby
event-format: '<gold>[EVENT] <#ffffff>%player% <#333333>» <gray>%message%'
# Inside a match: <hex> becomes the team color
game-format: '<hex><player> <dark_gray>»</dark_gray> <white><message>'
default-name-color: '#ffffff'
spectator-prefix: '<gray>[SPECTATOR] '
team-prefix: '<green>[TEAM] '
active-chat-mode: ALL
proximity-radius: 48.0
team-chat: true
team-chat-prefix: '!'
| Key | What it does |
|---|---|
format / event-format |
Use %player%, %message%, %world% and any PlaceholderAPI placeholder (for example %vault_prefix%). Colors: legacy &a / §a, hex <#rrggbb> and MiniMessage like <gradient:...>. |
game-format |
Use <player>, <message> and <hex>, the player's team color. default-name-color is used in SOLO or before teams are assigned. |
smallcaps |
Small caps for the fixed text of the format (prefixes, arrows). Player names and messages are never converted. Off by default because it makes conversations harder to read. |
allow-player-colors |
Lets players use colors and decorations (MiniMessage or & codes) in their own messages. Click, hover and similar tags are never allowed. |
Don't close <hex>
<hex> is replaced by an opening color tag like <#55ffff>. Don't write </hex>: it would show up as text. The next color in the format (here <dark_gray>) ends it.
Moderation¶
moderation:
anti-caps:
enabled: true
min-length: 8
max-percent: 50
anti-flood:
enabled: true
cooldown-seconds: 2
block-repeats: true
blacklist:
enabled: false
block-message: false
replacement: '***'
words: []
| Filter | What it does |
|---|---|
| anti-caps | Lowercases a message of at least min-length characters when more than max-percent% of its letters are capitals. |
| anti-flood | Blocks messages sent less than cooldown-seconds apart and, with block-repeats, the same message twice in a row. The player is told why. |
| blacklist | Replaces each banned word with replacement (case-insensitive), or cancels the whole message with block-message: true. |
The br.chat.bypass permission exempts a player from the anti-flood filter.
Command blocking in matches¶
To stop players escaping or cheating (teleporting away, flying, passing on information), commands are blocked while a player is in a match or in an arena queue:
commands:
# Blocks commands during the match.
block-in-game: true
# Commands still allowed to players in a match.
# (/br and /battleroyale are always allowed.)
allowed: []
/brand/battleroyalecan never be blocked, so players can always/br leave.- Namespaced forms are blocked too: blocking
spawnalso blocks/essentials:spawn. -
Add commands that should still work to
allowed, without the slash, for example:An entry also matches its namespaced forms (
msgallows/essentials:msg). -
Private message commands (
/msg,/tell,/me...) are blocked like any other command unless you allow them. - Players with
br.admin.bypass(part ofbr.admin) are never blocked.
Blocked players see the general.command-blocked message.