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

FeatureVelocityBungeeCord
/gchat <message>, /nmsg, /nr, nshoutreloadWorksWorks on 1.20.5 and newer clients. See older clients and command names
Chat prefix (!hello) and toggle modeNeeds SignedVelocityNeeds AntiPopup
Discord bridge, multi-proxy, filters, mutesWorksWorks

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:

  1. Install AntiPopup on every backend server.
  2. Set enforce-secure-profile=false in each backend's server.properties.
  3. 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.