
A modern Minecraft chat plugin with MiniMessage formatting, multi-channel support, private messaging, and advanced moderation tools.
RemmyChat is a lightweight, feature-rich chat management solution for PaperMC servers that enhances player communication with a clean, modern design.
RemmyChat transforms your server's communication with a sleek, modern interface while providing powerful customization through MiniMessage formatting. From immersive proximity chat to comprehensive anti-spam features, RemmyChat balances simplicity with functionality to create the perfect chat experience.


RemmyChat supports custom symbols and emoji replacement in chat messages. You can define your own codes (like :smile:, :diamond:, etc.) and their replacements (emoji, text, or MiniMessage) in a separate symbols.yml file. This feature works with both Unicode emojis and custom resource pack textures.

:smile: in chat.symbols.yml.:smile-face:).symbols.ymlsymbols:
":smile:": "😄"
":heart:": "❤️"
":star:": "⭐"
":smile-face:": "😊"
You can add as many codes as you want. The replacement can be any string, emoji, or MiniMessage component. Resource pack textures will display correctly for players using the appropriate resource pack.
Installation is straightforward:
plugins folderFor detailed setup instructions and advanced configuration, visit our official documentation.

RemmyChat's configuration is highly flexible while remaining intuitive. Here's a sample of what you can accomplish:
# Channel configurations
channels:
global:
permission: "" # Empty means everyone can use
radius: -1 # -1 means global chat
prefix: "" # No prefix for global
hover: "player-info"
display-name: ""
local:
permission: "remmychat.channel.local"
radius: 100 # Chat radius in blocks
prefix: "local"
hover: "local-chat"
display-name: "<gray>[Local]</gray>"
staff:
permission: "remmychat.channel.staff"
radius: -1
prefix: "staff"
hover: "staff-chat"
display-name: "<gold>[Staff]</gold>"
# Group-based formatting with customizable styles
groups:
admin:
name-style: "admin"
prefix: ""
format: "%admin-hover% %player_name%: %default-message%"
vip:
name-style: "vip"
prefix: ""
format: "<click:suggest_command:'/msg %player_name%'><hover:show_text:'VIP Player'>%vip-prefix%</hover></click> %player_name%: %default-message%"
# Templates for reuse across formats
templates:
hovers:
player-info: "<#778899>Player information\n<#F8F9FA>Name: <#E8E8E8>%player_name%\n<#F8F9FA>Click to message"
name-styles:
default: "<#4A90E2>%player_name%"
owner: "<bold><gradient:#FF0000:#FFAA00>%player_name%</gradient></bold>"
admin: "<italic><color:#CC44FF>%player_name%</color></italic>"

| Command | Description | Permission |
|---|---|---|
/remchat channel <name> |
Switch between chat channels | remmychat.use |
/remchat reload |
Reload plugin configuration | remmychat.admin |
/msg <player> <message> |
Send private message | remmychat.msg |
/reply <message> |
Reply to last private message | remmychat.msg |
/msgtoggle |
Toggle receiving private messages | remmychat.msgtoggle |
/socialspy |
Monitor private messages between players | remmychat.socialspy |
| Permission | Description | Default |
|---|---|---|
remmychat.use |
Basic plugin access | true |
remmychat.msg |
Send private messages | true |
remmychat.msgtoggle |
Toggle private messages | true |
remmychat.msgtoggle.bypass |
Bypass message toggle | op |
remmychat.socialspy |
Use social spy feature | op |
remmychat.admin |
Administrative access | op |
remmychat.channel.<name> |
Access to specific channel | Varies |
RemmyChat automatically integrates with PlaceholderAPI if installed, allowing you to use any placeholders in your chat formats.
When LuckPerms is detected, RemmyChat can use permission groups for chat formatting, simplifying setup for servers with existing permission structures.
This project uses Gradle for building and requires Java 21 or higher.
To build:
./gradlew build
The output JAR will be in the build/libs directory.