SlateChat
A modular, channel-based chat plugin for Paper and Folia, 1.21.x – 26.x.
SlateChat replaces vanilla chat with a channel-based system. Instead of one global chat, players talk in channels — local (radius or world based) or global broadcasts — each with its own format, permission and behavior. It's written in Kotlin and continues the work started by SimplexChat by Lucas Manoel Lopes.
Requirements
PlaceholderAPI is required
SlateChat depends on PlaceholderAPI and will not load without it.
| Requirement | Version |
|---|---|
| Server | Paper or Folia, 1.21.1 – 26.2 |
| PlaceholderAPI | Required |
| DiscordSRV | Optional, enables Discord bridge |
| ItemsAdder | Optional, enables ItemsAdder compatibility |
| LuckPerms | Optional, used for prefixes/suffixes in chat format |
Folia support
SlateChat runs on Folia as of v1.6.0, verified on a live Folia server — chat delivery only ever touches a player's location, permissions or messaging from the thread that actually owns their region, sender and recipients alike, instead of assuming a single server thread.
Forks and Java version
SlateChat should run fine on Paper forks like Purpur, since they build on the same API — but guaranteed compatibility is on Paper and Folia themselves, other forks aren't part of our testing. Separately, Minecraft 26.1+ requires the server to run on Java 25, regardless of the plugin.
Features
- Local (radius/world) and global channels, plus your own custom channels
- Full Folia support — chat delivery is region-safe end to end, not just Paper-compatible
- Per-player chat color with
/chatcolor, including a GUI picker and an anvil-based live hex preview, on top of typing a color directly - Private messages with
/tell//msg//w//rand/socialspy, vanish-aware - Custom join/quit/first-join messages
- MiniMessage and MineDown formatting, so links and gradients work straight from the config
- Chat focus, letting players lock themselves to a default channel
- Word filtering, with censoring or word-for-word replacement
- Spam (repeated character) and flood (repeated message) protection
- Action bar read receipts, showing a sender how many players saw their message
- Optional one-way bridge to DiscordSRV, routed per-channel through DiscordSRV's own config
- ItemsAdder compatible — its
:name:font images (emoji, ranks, icons) resolve wherever SlateChat renders text, detected automatically - Update checker, so you know when a newer release is out without leaving the server
Next steps
Ready to install it? Start with the guide below - it covers where to download the jar from, first-time setup, and building from source.
Installation
Official download links, first-time setup and building from source.
Configuration reference
What every option in config.yml, channels.yml and the other module configs does.
Commands
Every command SlateChat registers, and which permission each one needs.
MineDown & MiniMessage formatting
The [Text](arguments) and <tag> syntax for links, hover text, colors and gradients.
Advanced formatting
Shadow color, transition, pride, and raw MiniMessage tags for channel formats.
Colors reference
The 16 legacy colors and their chat codes, MiniMessage tags and hex values.
Permissions
Every permission node SlateChat checks, in one place.
Paper Hangar
Official listing on Paper's own plugin repository.
Source on GitLab
MIT licensed. Issues and merge requests are welcome.
