Prevents chat reporting by neutralising Minecraft's chat signature system and blocking report-related functionality.
BlockReports Plugin
BlockReports is a Minecraft Paper 26.2 plugin that prevents chat reporting by neutralising Minecraft's chat signature system and blocking report-related functionality. It also works around client-side chat blocking (like how the UK stops some accounts from chatting) by providing command-based chat, private messaging and emotes that still work for affected players. Although it was custom built for minecraftoffline.net, any server can use it.
Installation
- Download the latest release here.
- Place the
.jarfile in your Minecraft server'spluginsfolder. - Restart your server.
Features
- Strips chat signatures - Converts signed chat messages to unsigned system messages which makes reports unverifiable.
- Bypasses client-side chat filters - Renders chat as
name: messagerather than<name> messagewhich prevents the client-side "friends only" and blocked-player filters from hiding messages between players who aren't friends. - Hides warning popups - Eliminates the annoying "Chat messages can't be verified" popup for players.
- Neutralises chat sessions - Intercepts chat session update packets and replaces public keys with null values to prevent secure signature establishment.
- Prevents chat-related kicks - Stops players from being kicked for signature validation issues.
- Automatic server configuration - Disables
enforce-secure-profilein server properties (this setting forces players to have signed profiles to join). - Works around client-side chat blocking - Some accounts are blocked from chatting client-side (for example UK players will see a message such as "Sending chat messages is not allowed"). For these players, there is a
/chatcommand (alias/c) that sends a normal (unsigned and unreportable) chat message. Since a blocked account can't be detected server-side, thechat-command-hintconfiguration option shows a/chathint on join to any player who hasn't sent a message yet. - Private messaging for blocked players - Vanilla
/msg,/telland/wdo not work for players with chatting blocked client-side as they carry a signed message argument so BlockReports provides its own/msg,/tell,/w,/tand/rcommands that work for them. An unsigned/meemote command is also provided for the same reason. - Lightweight and efficient - Minimal performance impact with targeted packet manipulation.
Commands
/blockreports reload- Reloads the plugin configuration./chat <message>(alias/c) - Sends a chat message via a command which bypasses client-side chat blocking./msg <player> <message>(aliases/tell,/w,/t) - Sends a private message. Works for players blocked from chatting unlike the vanilla command./r <message>(alias/reply) - Replies to the last private message./me <action>- Sends an emote/action message. Works for players blocked from chatting.
Permissions
blockreports.admin- Allows use of BlockReports commands. (Default: op)blockreports.chat- Allows sending messages with the/chatcommand. (Default: true)blockreports.message- Allows using the private message commands. (Default: true)blockreports.me- Allows using the/meemote command. (Default: true)
Configuration
The plugin creates a config.yml file with the following options:
# Strip chat signatures from outgoing chat packets.
# This converts signed chat messages to unsigned system messages.
strip-server-signatures: true
# Hide the secure chat warning popup.
hide-secure-chat-warning: true
# Neutralise chat session update packets from clients.
# This intercepts incoming chat session packets and replaces the public key with null,
# preventing secure chat establishment while maintaining proper packet flow to avoid kick issues.
neutralise-chat-sessions: true
# Prevent kicks related to chat reporting.
# This handles various kick scenarios related to secure chat.
prevent-chat-kicks: true
# Provide a /chat command (alias /c) for sending messages.
# Some accounts are blocked from chatting client-side (for example players in the UK).
# /chat <message> is sent as a normal (unsigned and unreportable) chat message.
enable-chat-command: true
# Hint players about /chat on join (until they send their first message).
# Useful for players blocked from chatting client-side.
chat-command-hint: true
# Enable debug logging - only enable this for development
# as it's verbose.
enable-logging: false
How It Works
BlockReports operates by:
- Intercepting outbound chat packets and removing cryptographic signatures.
- Pretends the enforce-secure-profile flag is true in login packets to prevent client warnings.
- Neutralising incoming chat session updates to prevent signature key establishment.
- Converting signed messages to system messages that cannot be reported.
This approach ensures chat reports become unverifiable and ineffective while maintaining full chat functionality.