ServerShield

ServerShield is an all in one automated moderation plugin for minecraft servers!

28

Quick challenge

How far can you run before the mobs catch you?

ServerShield

ServerShield — Automatic moderation plugin for Minecraft 1.21+

Short description

ServerShield is a focused, low-latency moderation plugin that prevents slurs and severe profanity from appearing in chat — blocking them before they are sent. Plug-and-play behavior with sensible defaults, fine-tunable thresholds, and built-in admin stats.

Tagline

Automated slur removal & safe chat enforcement for Paper/Spigot (Minecraft 1.21+)

---

Long description

ServerShield blocks slurs and severe profanity in real-time by sending chat content to a trusted moderation API. When offensive content is detected, the message is prevented from broadcasting and the sender's chat is cleared so the content never appears to other players — or themselves.

ServerShield focuses on doing one job well: stop slurs and minimize harmful content in your server chat without manual keyword lists or local slur storage. It integrates with Paper and Spigot (Minecraft 1.21+) and is designed for minimal admin setup.

---

Key features

- Instant slur removal — messages flagged as slurs are cancelled before they reach players. - Configurable threshold — adjust how aggressive the moderation should be using the `threshold` setting. - Two action modes: `delete` (default) and `hashtag` — `delete` simply blocks, `hashtag` replaces content with `########` when you prefer a visible placeholder. - Works on Paper 1.21 & Spigot — detects and handles `AsyncChatEvent` or `AsyncPlayerChatEvent` as needed. - Stats: `/servershield stats` — admins can view how many messages were blocked and a player breakdown. - No local slur list — the plugin relies on an external profanity API for detection. - Optional obfuscated release build via `yguard` profile (for plugin authors who distribute a protected jar).

---

Quick install

1. Place `ServerShield.jar` into your server `plugins/` folder. 2. Restart or reload the server. 3. Edit `plugins/ServerShield/config.yml` to tune settings (see config recipe below).

> Note: Standalone, no external configuration required unless you want to tweak detection sensitivity or stats.

---

Configuration (config.yml quick reference)

- action: `delete` # `delete` or `hashtag` - threshold: `0.9` # higher is stricter; values between 0.0 and 1.0 - broadcast_for_all: `true` # broadcast hashtag replacements to everybody if set - clear_chat_lines: `100` # number of blank lines to remove the sender's message from view - debug: `false` # turn on for tuning and troubleshooting - persist_stats: `true` # whether to save stats to `plugins/ServerShield/stats.yml`

Tuning: enable `debug: true` to see API responses and scores in server console. That helps you find the ideal `threshold` for your community.

---

Commands & Permissions

- `/servershield stats` — Show total blocked messages and top blocked players. - Permission: `servershield.stats` (default: `op`) — view in-game stats. - Permission: `servershield.admin` for admin-only access to plugin commands (default: `op`).

---

Privacy & Data

- ServerShield sends chat messages to the Profanity API (https://vector.profanity.dev) for moderation decisions. If you do not want to send chat to an external service, do not run the plugin. - The plugin does NOT store raw messages in `stats.yml` — it only stores counts and aggregated per-player blocked totals when `persist_stats` is enabled. - You can disable persistence by setting `persist_stats: false` in `config.yml`.

---

Roadmap (planned)

- Advanced ban system & rules (all-in-one moderation console) - Essentials-like feature set (optional replacement for standard tools) ---

Changelog (short)

- 0.01 BETA — Initial public beta with slur detection and basic stats.

---

FAQ

Q: What happens when the API is down? A: ServerShield handles API failures gracefully: if the API cannot be reached, messages will be treated as safe (no local blocking), so uptime of the external API may impact blocking. Turn on `debug` to monitor API errors.

Q: Does ServerShield use any local slur database? A: No — per my choice, the plugin uses the external profanity service only. This avoids maintaining a local list.

Q: Is the plugin compatible with Paper 1.21? A: Yes — ServerShield handles `AsyncChatEvent` on Paper and falls back to `AsyncPlayerChatEvent` for Spigot.

---

Support & contact

- We are working on this.

---

License

- See Modrinth for license details.

---

ADS