─────────────────────────────────────────────────────────────────────────
❓ WHY PUNISHMENTX?
Tired of moderation plugins that are bloated, hard to configure, or simply lag your server? PunishmentX is engineered from the ground up for extreme performance, modern design, and true flexibility. Every feature — from the database layer to the chat filter — has been carefully optimized for production-grade Paper servers.
─────────────────────────────────────────────────────────────────────────
| ASYNC CORE All SQL operations run via CompletableFuture. Zero main-thread blocking, zero TPS impact. |
️ SMART CACHE Powered by Caffeine — the fastest Java cache library. Active punishments are cached for 10 minutes, auto-invalidated on change. |
| AI MODERATION Built-in sentiment analysis engine with weighted toxicity scoring, slang expansion, leet-speak normalization, and bypass detection. |
️ NETWORK SECURITY Anti-VPN (IP-API & ProxyCheck), Cloud Blacklist from a community-maintained threat database, and smart chat filtering. |
| FULLY LOCALIZED Every single message — ban screens, titles, alerts, broadcasts — is in messages.yml. Full MiniMessage, gradient & hex color support. |
DISCORD LOGS Real-time punishment logging via Discord Webhooks with dynamic 3D player head avatars via Crafatar. |
─────────────────────────────────────────────────────────────────────────
CORE MODERATION
The foundation of every server's moderation toolkit, rebuilt to be faster and smarter.
-
/ban <player> [duration] [reason] — Bans a player with a custom kick screen. Supports appeal codes and permanent bans. Auto-resolves open reports on ban.
-
/mute <player> [duration] [reason] — Mutes a player. The muted player sees a custom message when trying to chat. Shadow-mute support available.
-
/kick <player> [reason] — Kicks a player with a clean disconnect screen. Also auto-resolves their open reports.
-
/warn <player> [duration] [reason] — Issues a formal warning. Triggers automated threshold rules if configured.
-
/unban <player> — Lifts an active ban immediately.
-
/unmute <player> — Lifts an active mute immediately.
-
/unpunish <id> — Rolls back any specific punishment by its database ID. Sets it as cancelled for full audit traceability.
INVESTIGATION & HISTORY
-
/history <player> — Opens a paginated GUI with the player's full punishment history. Filter by type (Ban, Mute, Warn, Kick), browse thousands of records with zero latency thanks to async loading.
-
/alts <player> — Instantly lists all accounts that ever shared an IP address with the target, along with their current ban/mute status. Essential for detecting ban evasion.
-
/notes <player> — Add, view, and manage private staff notes on a player. Notes are stored in the database and timestamped.
REPORT SYSTEM
-
/report <player> <reason> — Players can report rule-breakers. Available by default to all players (punishmentx.report).
-
/reports — Staff command to view all open reports in a GUI. High-severity categories (Cheat, Fly) are automatically sorted to the top for priority handling. Reports are auto-resolved when the accused player is banned or kicked.
STAFF TOOLKIT
Everything your moderation team needs to work efficiently and covertly.
-
/staff [on|off]
— Toggles Staff Mode. Saves current inventory & gamemode, switches to Creative with flight. Gives a custom hotbar:
-
Compass
— Inspect Tool (right-click player to view inventory)
-
Packed Ice
— Freeze Tool (right-click player to freeze for screenshare)
-
Ender Eye
— Vanish Toggle (ON/OFF)
-
Book
— History Inspector (right-click player to open their history GUI)
-
Player Head
— Random TP (teleport to a random online player)
-
Redstone Torch
— Leave Staff Mode
-
/freeze <player> — Locks a suspected cheater in place for screenshare (SS). Sends immersive custom Titles & Subtitles configured in config.yml. If the player disconnects while frozen, they can be automatically banned.
-
/sc <message> — Sends a message in the private staff chat channel, invisible to regular players.
-
/chatlock — Toggles a global chat lock. All non-staff players are blocked from sending messages until the lock is lifted.
-
Auto-Vanish on Join — Staff members with permissions can be configured to join the server vanished automatically.
─────────────────────────────────────────────────────────────────────────
AI SENTIMENT ANALYSIS
PunishmentX features a fully embedded, zero-dependency AI moderation engine — no external API calls required.
-
Toxicity Scoring — Each message receives a toxicity score (0.0–1.0) based on a configurable weighted-word dictionary. Words like "kill" score 0.8, "suicide" scores 1.0, fully adjustable in config.
-
Leet-Speak & Slang Normalization — Translates "kys" → "kill yourself", "k1ll" → "kill", etc. before scoring. Cheaters can't bypass it with l33t tricks.
-
Bypass Detection — Detects attempts to circumvent filters using special characters (e.g., "k.i.l.l"). Messages flagged as bypass attempts can be shadow-muted silently.
-
Context Analysis — Tracks the last N messages per player. If a configurable number of consecutive messages exceed a "suspicious" threshold, staff receive a clickable alert with a confidence percentage and a direct link to open the player's history.
-
Auto-Action — Configure the AI to automatically WARN or MUTE toxic players. Cooldown on context alerts prevents staff spam.
ADVANCED CHAT FILTER
-
Anti-Spam — Rate limiting with configurable delay (ms) between messages. Also detects repeated content via fuzzy similarity matching (Levenshtein distance).
-
Anti-Gibberish — Uses Shannon entropy calculation to detect random character smashing (e.g., "asdfghjkl") and block it.
-
Anti-Caps — Blocks messages where over 70% of characters are uppercase (configurable threshold).
-
Anti-Link — Regex-based URL detection. Optionally allow Discord invite links while blocking all others.
-
Blocked Words — Unicode-normalized fuzzy matching: "bàdwõrd" is caught just like "badword". Leet-speak variants are also normalized before checking.
-
Custom Regex — Define your own regex patterns in config (e.g., detect IPv4 addresses or Discord invites).
-
Dynamic Slowmode — Automatically activates an extended chat cooldown if global message throughput exceeds a configurable threshold (e.g., during raids).
-
Shadow Mute — When enabled, the violating player thinks their message was sent — but nobody else sees it.
─────────────────────────────────────────────────────────────────────────
AUTOMATED PUNISHMENT RULES
Automate your server's disciplinary policy without lifting a finger.
Configure thresholds in config.yml to trigger automatic punishments when a player accumulates active warnings:
Code (Text):
[/COLOR][/CENTER][/COLOR][/CENTER][/COLOR][/CENTER][/COLOR][/CENTER][/COLOR][/CENTER][/COLOR][/CENTER][/COLOR][/CENTER][/COLOR][/CENTER][/COLOR][/CENTER][/COLOR][/CENTER][/COLOR][/CENTER][/COLOR][/CENTER]
[COLOR=#000000]
[CENTER][COLOR=#000000]
[CENTER][COLOR=#000000]
[CENTER][COLOR=#000000]
[CENTER][COLOR=#000000]
[CENTER][COLOR=#000000]
[CENTER][COLOR=#000000]
[CENTER][COLOR=#000000]
[CENTER][COLOR=#000000]
[CENTER][COLOR=#000000]
[CENTER][COLOR=#000000]
[CENTER][COLOR=#000000][CENTER]punishment-rules:
enabled: true
thresholds:
3:
action: "BAN"
duration: "1d"
reason: "Automated: Reached 3 active warnings."
5:
action: "BAN"
duration: "7d"
reason: "Automated: Reached 5 active warnings."
SANCTION TEMPLATES
Speed up moderation with pre-defined punishment shortcuts:
Code (Text):
[/COLOR][/CENTER][/COLOR][/CENTER][/COLOR][/CENTER][/COLOR][/CENTER][/COLOR][/CENTER][/COLOR][/CENTER][/COLOR][/CENTER][/COLOR][/CENTER][/COLOR][/CENTER][/COLOR][/CENTER][/COLOR][/CENTER][/COLOR][/CENTER]
[COLOR=#000000]
[CENTER][COLOR=#000000]
[CENTER][COLOR=#000000]
[CENTER][COLOR=#000000]
[CENTER][COLOR=#000000]
[CENTER][COLOR=#000000]
[CENTER][COLOR=#000000]
[CENTER][COLOR=#000000]
[CENTER][COLOR=#000000]
[CENTER][COLOR=#000000]
[CENTER][COLOR=#000000]
[CENTER][COLOR=#000000][CENTER]templates:
spam_1h:
type: "MUTE"
duration: "1h"
reason: "Spam / Excessive Messaging"
cheat_perm:
type: "BAN"
duration: "perm"
reason: "Unfair Advantage / Cheating"
Usage: /ban <player> cheat_perm — instantly applies the template.
─────────────────────────────────────────────────────────────────────────
️ NETWORK SECURITY
-
Anti-VPN / Anti-Proxy — Detects and blocks VPN/Proxy connections on join. Supports IP-API (free) or ProxyCheck (API key). Staff are alerted and players are kicked with a configurable message. Bypass with punishmentx.anti-vpn.bypass.
-
Cloud Blacklist — Fetches a community-maintained list of malicious IPs (botnets, known exploiters) from a hosted URL. Automatically updated and blocks flagged connections before they can even reach your lobby.
️ DATABASE & PERFORMANCE
-
SQLite — Zero-configuration, file-based. Perfect for single servers. Default out of the box.
-
MySQL / MariaDB — Full cross-server synchronization for networks. Uses HikariCP v6 connection pooling for maximum throughput.
-
Caffeine Cache — Active punishments cached for 10 minutes, holding up to 1,000 player entries. Cache is instantly invalidated on any punishment change to guarantee consistency.
-
Async Everywhere — 100% of database reads and writes use CompletableFuture. The main thread is never blocked. Automated hourly cleanup of expired punishments runs asynchronously.
-
Auto Config Updater — Safely merges new configuration keys on update without overwriting your existing settings.
─────────────────────────────────────────────────────────────────────────
FULL PERMISSIONS LIST
| Permission |
Description |
Default |
| punishmentx.ban |
Ability to ban players |
op |
| punishmentx.mute |
Ability to mute players |
op |
| punishmentx.kick |
Ability to kick players |
op |
| punishmentx.warn |
Ability to warn players |
op |
| punishmentx.unban |
Ability to unban players |
op |
| punishmentx.unmute |
Ability to unmute players |
op |
| punishmentx.freeze |
Ability to freeze players for screenshare |
op |
| punishmentx.history |
View player punishment history |
op |
| punishmentx.notes |
View and manage staff notes |
op |
| punishmentx.reports |
View and manage player reports |
op |
| punishmentx.report |
Submit a player report |
true (everyone) |
| punishmentx.staff |
Access staff mode & staff chat |
op |
| punishmentx.chatlock |
Lock/unlock the global chat |
op |
| punishmentx.admin |
Full administrative access |
op |
| punishmentx.filter.bypass |
Bypass chat filter (caps, spam, words…) |
op |
| punishmentx.anti-vpn.bypass |
Bypass the VPN/Proxy check |
false |
─────────────────────────────────────────────────────────────────────────
INSTALLATION
-
Download PunishmentX.jar and place it in your /plugins/ folder.
-
Ensure you are running Paper 1.21.4+ and Java 21.
-
Restart your server — the plugin is ready to use with SQLite by default.
-
Edit plugins/PunishmentX/config.yml to configure your database, security settings, thresholds, and chat filter.
-
Edit plugins/PunishmentX/messages.yml to fully translate and customize every message.
REQUIREMENTS
─────────────────────────────────────────────────────────────────────────
Questions? Feature Requests? Bug Reports?
Join the Discord!