ChatCop | Auto Chat Moderation | 1.21-26.2 | Folia Support
v1.1.0Advanced Auto chat moderation plugin
v1.1.0latestVersion 1.1.0Sep 12, 2026 Added: - Private messages and other chat commands (/msg, /me, /mail and more) now go through the same filters as normal chat - Muted players can no longer talk through private messages or other chat commands - Sign, book and anvil rename filtering - Chat slowmode, a global chat lock, and a first-join chat delay that stops bot raids - Raid detection for the same message arriving from many accounts at once - Mutes and unmutes now work on offline players - Violation points, warnings and history are now kept across restarts - Per-filter bypass permissions, so you can exempt someone from one filter instead of all of them - Mute-exempt and mute-override permissions so staff cannot mute each other by accident - New subcommands: check, clear, mutelist, slowmode, lock and unlock - Tab completion on every command - Built-in update checker that tells you when a new version is out - Optional bStats metrics - Discord alerts for manual mutes, unmutes and warnings - The mute reason is now shown to the muted player - Sexual content is now detected and reported separately from slurs - Automatic log file rotation Fixed: - Words hidden with symbols no longer pass straight through the filter - Letter-spaced words are now caught - Words with trailing punctuation could slip past detection - Staff alert sounds threw a console error on 1.21.3 and newer, and no sound played at all - Players with the bypass permission could talk while muted - Muted players could talk freely in any world where filtering was disabled - Messages could be delivered uncensored while the player was told they had been censored - Shadow-flagged messages could still be relayed to Discord by chat bridge plugins - Ordinary chat was flagged as advertising, such as "that was fun.me and you" or "see you.tv" - Custom blocked domains were still enforced after URL blocking was turned off - A whitelisted word could be used to smuggle a blocked word past the filter beside it - The word "crackers" was flagged as a slur - A blank entry in a blocked phrase list silently blocked every message on the server - A custom phrase like "nega" also matched "negative"; plain words now match as whole words only - Reloading could throw an error if someone was chatting at that moment - Certain censor characters threw an error and dropped the message - All active mutes were silently wiped on reload when mute saving was turned off - Ampersands in messages were mangled, turning "Fish & Chips" into broken text - The flood window was capped at 10 seconds no matter what you configured - Duplicate message detection compared messages inconsistently and under-detected repeats - A single profane word could count as two or three against the per-message limit - The configurable no-permission message was never actually shown to players - The statistics permission was documented but never checked - Testing a message polluted the tester's own spam tracking and could trip their own filter - An @everyone inside a flagged message pinged the entire Discord server - Mute settings were being read but were missing from the config file entirely - A mute duration without a unit silently became a permanent mute Improved: - Now runs on Java 17, restoring support for 1.20.x servers that run Java 17 - PlaceholderAPI support expanded to 15 placeholders - Discord alerts are queued and rate-limit aware instead of one request per message - The violation log is buffered and rotated instead of being rewritten on every message - Settings are cached instead of being re-read for every single message - Advertising detection now sees through spelled-out addresses like "example (dot) com" - History and message testing now work for offline players and from the console - Unmute tab completion suggests players who are actually muted - Staff alerts can be mirrored to console, and the quoted message length is configurable - Config file rewritten with clearer comments and no leftover example values - Existing config files keep working after updating, since every new option has a default - Full documentation refresh1.0.4Version 1.0.4Jul 9, 2026 DiscordSRV leak — fixed. SHADOW action now cancels the AsyncPlayerChatEvent (after manually delivering the formatted message to just the sender, preserving the shadow-ban illusion). Since DiscordSRV skips cancelled chat events by default, shadow-blocked and blocked messages will no longer reach a linked Discord channel. BLOCK was already safe since it cancels the event; CENSOR was already safe since ChatCop rewrites the message before DiscordSRV's listener runs.1.0.3[SIZE=6][B]ChatCop 1.0.3[/B][/SIZE]Jul 5, 2026 Folia support + punishment timer fix [HR][/HR]Now runs on Folia The main goal of this release: one jar that runs on Spigot, Paper AND Folia. · Folia-aware scheduler — every task now routes to the correct scheduler at runtime (async / global-region / entity), with an automatic fallback to the classic scheduler on Spigot & Paper. No separate build needed. · Declared folia-supported: true so Folia loads the plugin without warnings. · Staff-alert sounds now play on the correct region thread — required on Folia, and safer on Spigot too (chat events run async). Bug fix: tempmute timer never counting down · Previously, a punishment threshold (e.g. an auto tempmute) could re-run on every message past the cooldown — so the mute kept getting re-applied and its timer never actually ticked down ("re-mute spam"). · Now a threshold's commands run only when a player crosses into a higher threshold than the one already applied to them. As points decay, escalation resets naturally so repeat behaviour starts over instead of being stuck at the top. Notes · No config changes — config.yml is unchanged. Just drop in the new jar and restart. · No command or permission changes. [HR][/HR] In short: Folia compatibility + a fix for tempmutes that kept resetting their own timer. Drop-in upgrade — no config migration needed.
1.0.2v1.0.2Jun 27, 2026 ChatCop v1.0.2 — Accuracy & Stability Update Bug Fixes · Fixed false flags on normal words. Words like night, nightmare, neighbor, knight, midnight, overnight and Nigeria and similar are no longer mistakenly detected as slurs. Slur detection is now properly word-boundary anchored. · Fixed whitelist bypass. A whitelisted word now only exempts itself — it can no longer be used to sneak banned content through the rest of a message. · Fixed /chatcop reload not applying changes to punishment thresholds, point decay, or cooldowns. · Mutes no longer lost on crash. Mutes are now saved instantly when applied or removed (previously only on clean shutdown). · Stats no longer lost on crash. Statistics now auto-save every 5 minutes. · Fixed /ccmute with an invalid duration (e.g. 0m) silently issuing a permanent mute — it now shows an error instead. · Fixed Discord webhook alerts occasionally failing on messages containing special/control characters.Improvements · The advertising filter's block-ips and block-urls options now actually work — you can toggle IP and URL/domain blocking independently. · Cleaned up the config: removed an unused/misleading option and corrected command usage text. · Fixed a memory leak in the profanity filter that occurred on reload, plus minor spam-detection performance improvements.
1.0.1ChatCop 1.1.0Jun 14, 2026 ChatCop 1.0.1New Features · Ghost / Shadow Punishment — Enable shadow-mode on any filter to hide flagged messages from everyone except the sender. They think their message sent fine, so they won't try to bypass the filter. · Punishment Cooldown — Prevents spammers from triggering dozens of punishments in seconds. · Per-World Disable — Disable all chat filtering in specific worlds (staff/creative) via general.disabled-worlds. · /chatcop test <message> — Test what a message would trigger without sending it in chat. · Configurable Duplicate Expiry — New duplicate-content-expiry option controls how long before a repeated message is forgiven. Bug Fixes · Fixed thread safety issues that could cause errors on busy servers · Fixed the points & threshold system not working correctly · Fixed point decay not respecting the config value · Fixed a memory leak where player data was never cleared after leaving · Fixed repeated messages staying flagged longer than intended
Improvements · Now compatible with both Spigot and Paper (1.20+)
1.0.0May 31, 2026
Similar projects
Plugin →Let Me Despawn
Improves performance by tweaking mob despawn rules. Say bye to pesky unintentional persistent mobs.
25MSueta
JourneyMap
Real-time map used for mapping in-game or your browser as you explore.
14.7MSueta
Emotecraft
Create your own emotes in Minecraft.
7.5MSueta
Simple Tpa
A simple tpa plugin which sends requests
5.4MSueta
Common Network
Forge and Fabric Unified Networking Solution
3.9MSueta
Set Home
A lightweight plugin for players to set their homes.
3.8MSueta