ControlBans
I got tired of moderation plugins locking half their features behind a premium tier, so I wrote my own. ControlBans is a punishment system for Paper, Folia, BungeeCord, and Velocity. It's free, it's open source, and everything you see here works out of the box — no "go buy the paid version for that command" nonsense.
Performance
Everything that touches the database — punishments, history lookups, cache writes — runs async through a CompletableFuture pipeline. Someone getting banned doesn't cost you a single tick. On top of that, repeat lookups (join checks, mute enforcement, alt detection) are served from a Caffeine cache instead of hitting storage every time.
Punishments
The full toolkit, no dependencies required:
| Command | What it does |
|---|---|
/ban, /tempban, /unban |
Permanent and temporary bans |
/mute, /tempmute, /unmute |
Permanent and temporary mutes |
/shadowmute |
Player sees their own messages. Nobody else does. |
/ipban, /ipmute, /unipban |
IP-level bans and mutes |
/warn |
Warnings with configurable escalation templates |
/kick |
Kick with a reason and optional silent flag |
/note |
Private staff notes attached to a player |
/freeze |
Hold a player in place for screenshare — auto-bans if they log out |
/voidjail, /unvoidjail |
Trap players in an inescapable void dimension |
/banskin, /unbanskin |
Force-revert inappropriate skins instantly |
/voicemute, /tempvoicemute |
Native mutes for Simple Voice Chat |
/punish |
A GUI so staff don't have to type commands |
/history, /check, /alts |
Player lookups, full timelines, alt account detection |
/banlist, /mutelist, /blame |
Browse active punishments and staff activity |
/report, /reports |
Player reports with a resolution workflow |
/appeal |
In-game mute appeals with cooldowns and submission limits |
/chat lock, /chat slow, /chat clear |
Chat management |
/staff |
See which staff are online |
Every command takes a -s silent flag. Staff with controlbans.notify.silent see what happened; everyone else is none the wiser.
AutoMod
Regex-based chat filtering that acts before a human has to:
- Block — cancels the message and tells the player why
- Shadow — the message only shows for the sender and staff, silently logged
- Spam detection with configurable thresholds
- Caps normalization, with bypass permissions per rank
- Staff alerts on every triggered rule
Databases
Pick what fits your setup:
- MySQL / MariaDB / PostgreSQL — full relational support through HikariCP
- MongoDB — if you prefer documents
- SQLite / H2 — zero-config local files, fine for a single server
Expired punishments get purged on a schedule you set, so the database doesn't quietly rot over the years.
Redis sync
On a network, configure Redis and punishments propagate to every node over Pub/Sub the moment they're issued. No polling, no delay. Works with both BungeeCord and Velocity.
Migrating from another plugin
Switching is a single command. There's a throttled, lag-safe importer for:
- LiteBans
- AdvancedBan
- Essentials
Run /cb import <source> and go make a coffee.
Integrations
| Integration | What it does |
|---|---|
| Simple Voice Chat | /voicemute silences players in proximity voice, fully synced |
| DiscordSRV | Punishment alerts forwarded to your Discord channels |
| Floodgate / Bedrock | Bedrock players via Geyser are detected and handled properly |
Languages
Full locale files for English, German, Spanish, French, Italian, Japanese, Dutch, Portuguese, Russian, and Turkish. Every message is MiniMessage-formatted and configurable.
Built on
- Paper 1.20+ native API, no legacy hacks
- Folia supported (regionized multithreading works)
- PacketEvents 2.x for the packet-level stuff
- Adventure / MiniMessage for all text
- Caffeine for caching
- HikariCP for connection pooling
Stats
Discord · Source Code · Issues
Made by tawny · Free forever · No premium tier
No gallery available for this project.