Signed chat
What the chat prefix and toggle mode need for players on Minecraft 1.19.1 and newer, on Velocity and on BungeeCord.
Minecraft 1.19.1 and newer clients that are logged in to a Microsoft account sign their chat messages. The chat prefix and toggle mode keep a chat message from reaching the backend server, and a proxy cannot do that with a signed message on its own. These two features need the setup for your proxy below. Everything else works without it.
What needs a setup
| Feature | Velocity | BungeeCord |
|---|---|---|
/gchat <message>, /nmsg, /nr, nshoutreload | Works | Works on 1.20.5 and newer clients. See older clients and command names |
Chat prefix (!hello) and toggle mode | Needs SignedVelocity | Needs AntiPopup |
| Discord bridge, multi-proxy, filters, mutes | Works | Works |
If no player on a backend server signs chat, the chat prefix and toggle mode work there without any setup.
Velocity
Install SignedVelocity on the proxy and on every backend server. It lets the proxy hand the decision to the backend, so the chat prefix and toggle mode work for every player.
Without it, Velocity disconnects a player with signed chat as soon as they use the chat prefix or toggle mode. The global message is still sent first. The disconnect message is "A proxy plugin caused an illegal protocol state".
BungeeCord
BungeeCord has no plugin like SignedVelocity. To use the chat prefix and toggle mode:
- Install AntiPopup on every backend server.
- Set
enforce-secure-profile=falsein each backend'sserver.properties. - Restart the backends.
Without this, the global message from the chat prefix or toggle mode is still sent, but the player's next normal chat message on that server fails:
- If they saw another player's chat since their last message, the backend server disconnects them with a chat validation error.
- Otherwise they stay connected, but the backend refuses their chat ("invalid signature", then "chain broken") until they reconnect.
Setting enforce-secure-profile=false alone does not prevent this. With AntiPopup, normal chat is shown as unsigned server messages instead of signed player chat.
If AntiPopup does not fit your network, turn the two features off and let players use the commands. Also turn off everything that can switch toggle mode on, or a player can end up in it with no way out:
chat-prefix: ""
commands:
enable-chat-toggle: false
start-with-global-chat: false
With multi-proxy, also set toggle-state: false under multi-proxy.features on every proxy.
Older clients on BungeeCord
With Paper backends, players on 1.19.1 to 1.20.4 clients can get the same disconnect after using any proxy command, including BungeeCord's own /server. This is a BungeeCord limitation and happens with or without NexusShout. Newer clients are not affected.
Command names on BungeeCord
The default command names are not affected. If you rename a NexusShout command to a vanilla command that takes a message, such as msg, tell, or w, use BungeeCord build 2016 or newer. Older builds let the client sign that command, which leads to the same disconnect.