Overview
ChatProtect is a robust and modern moderation plugin that automatically moderates your chat, preventing spam, offensive language, and advertisements. Are you tired of players advertising their servers? Annoyed by a flooded chat?
ChatProtect is the solution!
Features
ChatProtect uses the Google Perspective API to instantly score messages for toxicity and offensive context. This delivers a significantly higher detection rate and catches slurs, subtle insults, and threats that standard filters miss.
Massive Blacklist Coverage:
ChatProtect comes with a pregenerated list of blacklisted words. This filter will check every single message on your server. ChatProtect can even detect and block attempts to bypass the chat filter.
Advertisement & IP Blocking:
Automatically and instantly block players trying to advertise other servers. We block IP addresses, domain names, and suspicious links to keep your players safe.
Advanced Spam & Flood Prevention:
Keep your chat clean and readable. ChatProtect automatically filters out:
- Repetitive Messaging (Chat flooding)
- Excessive Caps (Screaming/Uppercase spam)
- Random Letter Spam
Use Discord Webhooks to automatically send alerts to your private staff channel the moment an message is flagged by ChatProtect.
Spam bot detection:
ChatProtect can identify spam bots, which are often found in hack clients such as Liquidbounce.
Spoiler: LiquidBounce Spammer Module vs. ChatProtect
Installation
- Download the plugin: Get the latest version of ChatProtect from SpigotMC.
- Install: Place the ChatProtect.jar file into your server's plugins directory.
- Restart Server: Restart your server to enable the plugin.
- Configure: Customize the plugin by editing the config.yml file in the plugins/ChatProtect directory. Replace the default kick and ban commands with your own punishment commands (e.g. replace kicking with a temporary mute).
- Testing: When testing the plugin make sure you don't have operator / chatprotect.bypass permissions. Otherwise you will bypass the checks.
Commands and Permissions
- /chatprotect alerts (chatprotect.alerts)
- /chatprotect reload (chatprotect.reload)
- /chatprotect clearchat (chatprotect.clearchat)
- chatprotect.command (See the command)
- chatprotect.bypass (Bypass the detection)
Configuration
Spoiler: config.yml
Code (Text):
#
#
# /$$$$$$ /$$ /$$ /$$$$$$$ /$$ /$$
# /$$__ $$| $$ | $$ | $$__ $$ | $$ | $$
# | $$ \__/| $$$$$$$ /$$$$$$ /$$$$$$ | $$ \ $$ /$$$$$$ /$$$$$$ /$$$$$$ /$$$$$$ /$$$$$$$ /$$$$$$
# | $$ | $$__ $$ |____ $$|_ $$_/ | $$$$$$$//$$__ $$ /$$__ $$|_ $$_/ /$$__ $$ /$$_____/|_ $$_/
# | $$ | $$ \ $$ /$$$$$$$ | $$ | $$____/| $$ \__/| $$ \ $$ | $$ | $$$$$$$$| $$ | $$
# | $$ $$| $$ | $$ /$$__ $$ | $$ /$$| $$ | $$ | $$ | $$ | $$ /$$| $$_____/| $$ | $$ /$$
# | $$$$$$/| $$ | $$| $$$$$$$ | $$$$/| $$ | $$ | $$$$$$/ | $$$$/| $$$$$$$| $$$$$$$ | $$$$/
# \______/ |__/ |__/ \_______/ \___/ |__/ |__/ \______/ \___/ \_______/ \_______/ \___/
#
# Made with ❤ by TheTigerPython in Germany
settings:
# The prefix is displayed before each message (you can use color codes with &).
prefix: "&9ChatProtect &8» &7"
# Staff Alert Settings:
# Placeholders:
# %message% → The name of the player who triggered the check.
# %player% → The actual text content that was flagged.
# %check% → The name of the detection module (e.g., Toxicity, Spam).
# %reason% → Technical debug info or the specific rule violated.
alertsFormat: "&9%player% &7| &9\"%message%\""
alertsHoverFormat:
- "&9Player &8» &7%player%"
- "&9Message &8» &7%message%"
- "&9Category &8» &7%check%"
- "&9Details &8» &7%reason%"
- "&9Click to mute %player% for %check%! &7(/tempmute)"
alertsCommandSuggestion: "tempmute %player% 10m %check%"
# We can also check private messages using commands for spam, advertisements
# and inappropriate language. This is a list of all the commands we check.
commands:
- "msg"
- "message"
- "tell"
- "me"
- "*"
# Automatically enables alerts for players with chatprotect.alerts permission.
automaticallyEnabledAlerts: true
discord:
# If you want to enable this discord bot. (true/false)
enabled: false
# ChatProtect requires a webhook to send messages to your Discord server.
# Watch this tutorial to learn how to create a webhook: https://www.youtube.com/watch?v=fKksxz2Gdnc
webhook: ""
inline: false
name: "⚠️ » Chat Protect Alert « ⚠️"
footer: "ChatProtect - Automatic chat moderation"
# The name and value have to be separated by the symbol "|"
# Placeholders: %player% %message% %check%
content:
- "**Player**| %player%"
- "**Message**| %message%"
- "**Check**| %check%"
checks:
# The toxicity check penalizes players for using offensive language in chat.
# This check will use the Google Perspective API by default. You can add custom
# blacklisted words to the blacklist.yml file in the server directory.
toxicity:
enabled: true
message: "Please watch your language!"
# By enabling this feature, you agree that you have read the Important Privacy Disclosure for Server Owners
# on the SpigotMC page. (https://www.spigotmc.org/resources/chatprotect-ai-powered-chat-moderation-1-8-1-21.117719/)
usePerspectiveAPI: false
# The score (0.0 to 1.0) when a message should be flagged as offensive.
maxScore: 0.7
# Note: Perspective API detections are flagged but not blocked.
# Local blacklist.yml matches are blocked immediately.
silent: false
# Here, you can set different punishments for each check. Every line always follows this format:
# Threshold:Interval Command.
# Placeholders: %player% (the player's name) and %message% (the flagged message).
# This command is always executed in the server's console. You can also use [Discord] to send an alert
# to Discord (see above), or [alert] to send an alert to all online staff via "chatprotect.notify".
# Info: Please note that flags created using the Google Perspective API will not execute any commands at this time.
punishments:
- "1:1 [discord]"
- "1:1 [alert]"
- "10:10 tempmute %player% 10m Swearing"
# The spamming check will prevent players from flooding the chat with messages. It will detect
# random letters, repetitive messages and messages sent too quickly.
spamming:
enabled: true
messages:
speed: "Please don't spam the chat!"
uppercase: "Please don't use excessive uppercase letters!"
repeat: "You have already said that before!"
# The cooldown period is in milliseconds between each message sent. Note: we will not immediately block.
# Messages will not be blocked immediately for being sent too quickly, but rather when lots of messages exceed this limit.
minMessageCooldown: 500
# The percentage of a message that must be in uppercase for it to be blocked (default: 0.4, or 40%).
maxUppercasePercentage: 0.4
# The maximum allowed similarity between messages is 0.7 (70%).
maxSimilarityPercentage: 0.7
# This is the maximum number of words per minute before the message is flagged as spam. Set to -1 to disable this check.
maxWPM: 200
# The brackets mean that there are currently no punishments or alerts for this check.
# However, you can add them yourself, as shown above.
punishments: []
# The advertising check will prevent players from sending IP addresses and links in the chat.
# The advanced mode provides an additional level of protection but may result in some normal messages being blocked.
advertising:
enabled: true
message: "Advertising is not allowed on our network!"
# Toggle advanced mode. Will detect more advertising attempts, but may lead to some false positives.
advancedChecks: false
# See above (toxicity).
punishments:
- "1:1 [discord]"
- "1:1 [alert]"
- "10:10 tempmute %player% 10m Advertising"
#
# /$$$$$$ /$$ /$$ /$$$$$$$ /$$ /$$
# /$$__ $$| $$ | $$ | $$__ $$ | $$ | $$
# | $$ \__/| $$$$$$$ /$$$$$$ /$$$$$$ | $$ \ $$ /$$$$$$ /$$$$$$ /$$$$$$ /$$$$$$ /$$$$$$$ /$$$$$$
# | $$ | $$__ $$ |____ $$|_ $$_/ | $$$$$$$//$$__ $$ /$$__ $$|_ $$_/ /$$__ $$ /$$_____/|_ $$_/
# | $$ | $$ \ $$ /$$$$$$$ | $$ | $$____/| $$ \__/| $$ \ $$ | $$ | $$$$$$$$| $$ | $$
# | $$ $$| $$ | $$ /$$__ $$ | $$ /$$| $$ | $$ | $$ | $$ | $$ /$$| $$_____/| $$ | $$ /$$
# | $$$$$$/| $$ | $$| $$$$$$$ | $$$$/| $$ | $$ | $$$$$$/ | $$$$/| $$$$$$$| $$$$$$$ | $$$$/
# \______/ |__/ |__/ \_______/ \___/ |__/ |__/ \______/ \___/ \_______/ \_______/ \___/
#
# Made with ❤ by TheTigerPython in Germany
settings:
# The prefix is displayed before each message (you can use color codes with &).
prefix: "&9ChatProtect &8» &7"
# Staff Alert Settings:
# Placeholders:
# %message% → The name of the player who triggered the check.
# %player% → The actual text content that was flagged.
# %check% → The name of the detection module (e.g., Toxicity, Spam).
# %reason% → Technical debug info or the specific rule violated.
alertsFormat: "&9%player% &7| &9\"%message%\""
alertsHoverFormat:
- "&9Player &8» &7%player%"
- "&9Message &8» &7%message%"
- "&9Category &8» &7%check%"
- "&9Details &8» &7%reason%"
- "&9Click to mute %player% for %check%! &7(/tempmute)"
alertsCommandSuggestion: "tempmute %player% 10m %check%"
# We can also check private messages using commands for spam, advertisements
# and inappropriate language. This is a list of all the commands we check.
commands:
- "msg"
- "message"
- "tell"
- "me"
- "*"
# Automatically enables alerts for players with chatprotect.alerts permission.
automaticallyEnabledAlerts: true
discord:
# If you want to enable this discord bot. (true/false)
enabled: false
# ChatProtect requires a webhook to send messages to your Discord server.
# Watch this tutorial to learn how to create a webhook: https://www.youtube.com/watch?v=fKksxz2Gdnc
webhook: ""
inline: false
name: "⚠️ » Chat Protect Alert « ⚠️"
footer: "ChatProtect - Automatic chat moderation"
# The name and value have to be separated by the symbol "|"
# Placeholders: %player% %message% %check%
content:
- "**Player**| %player%"
- "**Message**| %message%"
- "**Check**| %check%"
checks:
# The toxicity check penalizes players for using offensive language in chat.
# This check will use the Google Perspective API by default. You can add custom
# blacklisted words to the blacklist.yml file in the server directory.
toxicity:
enabled: true
message: "Please watch your language!"
# By enabling this feature, you agree that you have read the Important Privacy Disclosure for Server Owners
# on the SpigotMC page. (https://www.spigotmc.org/resources/chatprotect-ai-powered-chat-moderation-1-8-1-21.117719/)
usePerspectiveAPI: false
# The score (0.0 to 1.0) when a message should be flagged as offensive.
maxScore: 0.7
# Note: Perspective API detections are flagged but not blocked.
# Local blacklist.yml matches are blocked immediately.
silent: false
# Here, you can set different punishments for each check. Every line always follows this format:
# Threshold:Interval Command.
# Placeholders: %player% (the player's name) and %message% (the flagged message).
# This command is always executed in the server's console. You can also use [Discord] to send an alert
# to Discord (see above), or [alert] to send an alert to all online staff via "chatprotect.notify".
# Info: Please note that flags created using the Google Perspective API will not execute any commands at this time.
punishments:
- "1:1 [discord]"
- "1:1 [alert]"
- "10:10 tempmute %player% 10m Swearing"
# The spamming check will prevent players from flooding the chat with messages. It will detect
# random letters, repetitive messages and messages sent too quickly.
spamming:
enabled: true
messages:
speed: "Please don't spam the chat!"
uppercase: "Please don't use excessive uppercase letters!"
repeat: "You have already said that before!"
# The cooldown period is in milliseconds between each message sent. Note: we will not immediately block.
# Messages will not be blocked immediately for being sent too quickly, but rather when lots of messages exceed this limit.
minMessageCooldown: 500
# The percentage of a message that must be in uppercase for it to be blocked (default: 0.4, or 40%).
maxUppercasePercentage: 0.4
# The maximum allowed similarity between messages is 0.7 (70%).
maxSimilarityPercentage: 0.7
# This is the maximum number of words per minute before the message is flagged as spam. Set to -1 to disable this check.
maxWPM: 200
# The brackets mean that there are currently no punishments or alerts for this check.
# However, you can add them yourself, as shown above.
punishments: []
# The advertising check will prevent players from sending IP addresses and links in the chat.
# The advanced mode provides an additional level of protection but may result in some normal messages being blocked.
advertising:
enabled: true
message: "Advertising is not allowed on our network!"
# Toggle advanced mode. Will detect more advertising attempts, but may lead to some false positives.
advancedChecks: false
# See above (toxicity).
punishments:
- "1:1 [discord]"
- "1:1 [alert]"
- "10:10 tempmute %player% 10m Advertising"
Please send a private message for support!
Leave a review
Quick facts
- Edition: Minecraft Java
- File type: .jar
- Minecraft versions listed: 1.8, 1.9, 1.10
- How to install: Install the matching mod loader (Forge, Fabric or NeoForge) for your Minecraft version. → Download the .jar. → Put it in the .minecraft/mods folder and launch that loader profile.
- Where to get it: Opens on Spigot — not every file is mirrored on our own servers.
Install steps are the general flow for this file type — How to install Minecraft Java mods & modpacks walks through it step by step.
ChatProtect - AI powered chat moderation! [1.8-26.1] is a free Minecraft Java mod. Compatible with Minecraft 1.8, 1.9, 1.10, 1.11 and newer. Downloaded 1,027 times (via Spigot). Download it and open it directly in the game.