EasyChatFilter is a Paper 26.x plugin that automatically censors inappropriate language in chat. It supports three configurable filter levels so server owners can tune strictness to their audience — from family-friendly servers to adult communities.
Set the server's filter level with /chatfilter setlevel <level>:
| Level | Audience | What gets blocked |
|---|---|---|
PG |
Family / Kids | Everything — mild language, moderate profanity, slurs, explicit content |
PG13 |
General / Teen | Moderate profanity, slurs, and explicit content (mild words like "damn" pass through) |
TVMA |
Adult / Lenient | Only the worst content — hard slurs and explicit sexual language |
The default level is PG13.
EasyChatFilter catches common tricks players use to sneak past filters:
f@ck, fu(k, 5h1t, @ssf u c k, f-u-c-k, f.u.c.kfúck, shïtfuuuuck, shhhhitf, then u, then c, then k across four separate messages within 5 seconds is caught and blockedAll commands require the chatfilter.admin permission (default: OP).
| Command | Description |
|---|---|
/chatfilter setlevel <PG|PG13|TVMA> |
Change the active filter level |
/chatfilter reload |
Reload config.yml and words.yml from disk |
/chatfilter status |
Show the current level, word counts, and settings |
/chatfilter addword <word> <PG|PG13|TVMA> |
Add a word to the filter at a given level |
/chatfilter removeword <word> |
Remove a word from the filter |
Aliases: /cf, /ecf
| Permission | Default | Description |
|---|---|---|
chatfilter.admin |
OP | Access to all /chatfilter commands |
chatfilter.notify |
OP | Receive a private alert when a player's message is filtered |
chatfilter.bypass |
false | Skip the filter entirely (e.g. for trusted staff) |
config.yml
words.yml — Ships with a comprehensive built-in word list. Add or remove entries at any time using the commands above, or edit the file directly and run /chatfilter reload.