ChatAI
AI chat moderation for your server
Catches toxic chat before anyone sees it, and holds anything borderline for staff to approve or deny with one click, powered by any AI you plug in.
AI chat moderation for your server
Catches toxic chat before anyone sees it, and holds anything borderline for staff to approve or deny with one click, powered by any AI you plug in.
What it does
Stop babysitting chat. ChatAI blocks the obvious toxicity instantly and for free, sends only the borderline messages to an AI, and holds anything questionable into a staff approve/deny queue, so nothing bad ever flashes in public chat. Clean chat is never touched or delayed, so chat games, normal talk keep, and such continue working.
Features
Three-tier moderation: a free local wordlist catches the obvious, the AI judges the gray area, and staff get the final say. The AI never reads your whole chat (since it only checks words in a gray area), so if you use a payed API token, you won't go bankrupt.
Context-aware AI: flags real harm and threats but allows banter and game talk, it blocks "go kill yourself" while letting "kill the ender dragon" through for example.
Staff approve/deny queue: held messages appear to staff with clickable APPROVE / DENY buttons. Approve re-sends the message in your server's real chat format (works with EssentialsChat and others), so this plugin is completely drop and drop safe.- 🕵️ Evasion-resistant: normalizes leetspeak (n1gg3r), spacing (f a * * o t), dashes and unicode lookalikes, with word boundaries so normal words are never falsely flagged.
Cheap to run: the free local layer handles about 95%+ of chat; the AI only sees the small gray-area slice, batched into one request with a hard per-minute budget that fails safe.
Works with any AI provider: Groq, OpenAI, OpenRouter, Cerebras, or a local model. Any OpenAI-compatible API, with an automatic fallback chain (one provider rate limits and it goes to the next one automatically).
100% config-driven: wordlist, escalation triggers, block action (hold or delete), sender warnings, the AI's rules, and every message (hex color supported) is fully customizable inside the configs.
Lightweight: no database, no dependencies, fully async (off the main thread), so it never lags your server.
Commands & Permissions
- /chatai queue: review held messages with approve/deny buttons (chatai.review)
- /chatai approve|deny <id>: release or drop a held message by it's given ID (chatai.review)
- /chatai simulate <message>: run the full filter as if you were a normal player (Mainly to test) (chatai.admin)
- /chatai words add|remove|list: manage the blocklist in-game (chatai.admin)
- /chatai admin (reload | testmode | test | status): Some more admin tools (chatai.admin)
- chatai.bypass: exempt a player from all filtering
Compatibility
Spigot / Paper & forks, 1.16 through 1.21+. Requires Java 17+. AI is optional, works out of the box as a free local filter with no key at all.
Setup in 60 seconds
- Drop the jar in your plugins folder and restart the server! It works immediately off of our local word moderator (The AI is fully optional but recommended, you can get free API keys).
- Optional: paste a free API key into config.yml (Groq is free and fast) and set ai-moderation.enabled: true.
- Tune the wordlist and gray-area triggers to your community if you like.
- /chatai admin reload, set test-mode to false, and you're live.
Bring your own API key, or none at all. Any complaints of a chat message still going through will not be taken seriously (as this is a fully customizable system).
Questions or a bug? Open a discussion and I'll help!
Questions or a bug? Open a discussion and I'll help!
