ChatSentinel

ChatSentinel

Smart AI insult detection that blocks toxic chat automatically โ€” bypass-proof & multi-language, with Discord logging. Paper & Folia ready. ๐Ÿ›ก๏ธ

76 downloads 0 followers

ChatSentinel

Chat filter for Paper, Folia, Purpur, Spigot and Bukkit 1.21+. Messages with insults or slurs are cancelled before they hit the chat. Staff can get an in-game ping and an optional Discord webhook log.

What it catches

Spacing, punctuation, repeated letters, leetspeak, accents, full-width characters and look-alike letters. Typos are handled with a fuzzy match. Abbreviations like hs or kys can be listed separately. Safe words such as class or assassin go on the whitelist.

Modes: SMART (default), SUBSTRING, WORD.

Languages

German, English, Spanish, French, Italian, Portuguese, Dutch, Polish, Russian, Turkish. Each file under plugins/ChatSentinel/languages/ has UI text and a word list. A global slur list is always loaded.

When a message is blocked

  • message is cancelled
  • sender can be notified
  • staff with chatsentinel.notify can be alerted
  • optional console commands (%player%, %word%, %message%)
  • optional escalation after repeated hits in a time window

Commands

Command What it does
/cs reload reload config and language files
/cs test <message> check if a message would be blocked
/cs info loaded word count
Permission Default
chatsentinel.admin op
chatsentinel.bypass false
chatsentinel.notify op

Install

Drop the jar into plugins, start the server, edit config.yml, run /cs reload. Java 21. | Typos / misspellings | huhrensohn ยท arschlosch | โœ… | | Soft variations | nega ยท naga | โœ… | | Abbreviations | hs ยท kys ยท hdf | โœ… |

๐Ÿง  The fuzzy engine generalizes beyond your word list โ€” you don't have to predict every variation players invent. A built-in whitelist keeps safe words like class, assassin, analysis and grass from ever being flagged.

Three matching modes let you pick your aggressiveness: SMART (default), SUBSTRING, or WORD.


๐ŸŒ Languages Included

๐Ÿ‡ฉ๐Ÿ‡ช German ยท ๐Ÿ‡ฌ๐Ÿ‡ง English ยท ๐Ÿ‡ช๐Ÿ‡ธ Spanish ยท ๐Ÿ‡ซ๐Ÿ‡ท French ยท ๐Ÿ‡ฎ๐Ÿ‡น Italian ยท ๐Ÿ‡ต๐Ÿ‡น Portuguese ยท ๐Ÿ‡ณ๐Ÿ‡ฑ Dutch ยท ๐Ÿ‡ต๐Ÿ‡ฑ Polish ยท ๐Ÿ‡ท๐Ÿ‡บ Russian ยท ๐Ÿ‡น๐Ÿ‡ท Turkish

Each language lives in /plugins/ChatSentinel/languages/<code>.yml and contains both the UI messages and the blocked-word list. Want another language? Copy a file, rename it, translate it โ€” done.


๐Ÿ”” Discord Webhook Logging

Enable the webhook and every blocked message is pushed to your staff channel as a rich embed:

๐Ÿ›ก๏ธ Message blocked
Player:            Steve
Trigger word:      idiot
Blocked count:     3
Original message:  you are an idiot
ChatSentinel โ€ข 2026-07-08 14:33:07 UTC
  • ๐ŸŽจ Custom username, avatar & embed color
  • ๐Ÿ“ฃ Optional role ping when something is blocked
  • ๐Ÿงต Sent fully asynchronously โ€” zero impact on chat performance

โ™ป๏ธ Auto-Config Updater

The feature server owners love. When a new plugin version adds config options:

  1. You just drop in the new .jar
  2. ChatSentinel detects the older config, backs it up, and merges in the new keys
  3. Every value you configured is kept โ€” nothing to delete, nothing to re-enter โœ…

โšก Actions When a Message Is Blocked

  • ๐Ÿšซ Cancel the message so nobody sees it
  • ๐Ÿ’ฌ Tell the sender "Your message was blocked by the system"
  • ๐Ÿ‘ฎ Alert online staff in-game
  • ๐Ÿ–ฅ๏ธ Run custom console commands (%player% ยท %word% ยท %message%)
  • ๐Ÿ“ˆ Escalation โ€” auto-punish after X blocked messages within a time window

๐Ÿงฐ Commands & Permissions

Command Description
/cs reload Reload config & language files
/cs test <message> Test whether a message would be blocked
/cs info Show status & loaded word count
Permission Default Description
chatsentinel.admin op Access to /cs commands
chatsentinel.bypass false Players who are never filtered
chatsentinel.notify op Receive in-game block alerts

๐Ÿ“ฆ Installation

  1. Download ChatSentinel.jar
  2. Drop it into your server's /plugins folder
  3. Start the server (generates the config & language files)
  4. Edit config.yml โ€” set your language, add your Discord webhook, tune the filter
  5. Run /cs reload โ€” you're protected! ๐ŸŽ‰

Requirements: Paper ยท Folia ยท Purpur ยท Spigot ยท Bukkit 1.21+ ยท Java 21


โš™๏ธ Configuration

Everything is configurable in config.yml. Click to expand the full default file:

๐Ÿ“„ config.yml (click to view)
config-version: 2

language:
  selected: "en"
  load-all-word-lists: true

detection:
  enabled: true
  obfuscation:
    ignore-case: true
    strip-accents: true
    normalize-leetspeak: true
    collapse-repeats: true
    strip-separators: true
  mode: "SMART"
  fuzzy:
    enabled: true
    max-distance: 2
    min-word-length: 4
  blocked-abbreviations:
    - "hs"
    - "hdf"
    - "htf"
    - "kys"
    - "stfu"
    - "gtfo"
    - "vpd"
    - "ndh"
  whitelist:
    - "assassin"
    - "class"
    - "grass"
    - "analysis"
    - "cockpit"
    - "shitake"
  extra-blocked-words: []

action:
  block-message: true
  notify-sender: true
  notify-staff: true
  commands: []
  escalation:
    threshold: 0
    window-seconds: 300
    commands:
      - "kick %player% Repeated inappropriate language."

discord:
  enabled: false
  webhook-url: ""
  username: "ChatSentinel"
  avatar-url: ""
  use-embed: true
  embed-color: 15158332
  ping-role-id: ""

misc:
  log-to-console: true
  startup-banner: true

๐Ÿ’ฌ Support & Feedback

Found a false positive or want another language bundled? Leave a comment โ€” contributions welcome! โค๏ธ

Keep your chat clean. Keep your community safe. ๐Ÿ›ก๏ธ

No gallery available for this project.

Version Minecraft Loader Download

ChatSentinel 1.1.1

1.1.1

1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11, 26.1, 26.1.1, 26.1.2, 26.2, 26.3
bukkit, folia, paper, purpur, spigot
Download

ChatSentinel 1.0.0

1.0.0

1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11, 26.1, 26.1.1, 26.1.2, 26.2
bukkit, folia, paper, purpur, spigot
Download