Compatibility
Minecraft: Java Edition
Platforms
Tags
Creators
Details
๐ก๏ธ BadBans
โก Modern Zero-Lag Punishment System for Paper Servers
BadBans is a lightweight, powerful and modern punishment plugin built for Minecraft Paper servers. Manage punishments, IP tracking, dupe IP checks, staff tools, web history and multi-server sync with a clean and fast system.
Author: Bad_0320
Platform: Paper
Minecraft: 26.1.2
Java: 25+
Storage: MariaDB / SQLite
Sync: Redis
โจ Overview
BadBans is a complete punishment system inspired by LiteBans, designed for modern Minecraft servers that need clean moderation tools, fast database handling and reliable staff control.
It includes bans, IP bans, mutes, IP mutes, warnings, kicks, dupe IP checks, history lookup, silent punishments, rollback tools, web history support and optional player wipe systems.
Built to punish players, not your TPS.
๐ Feature Highlights
๐ Punishment SystemEverything needed to manage player punishments in a clean and reliable way.
|
๐ Staff Investigation ToolsPowerful tools to track players, IPs, punishments and linked accounts.
|
๐ Network ReadyDesigned for both single servers and multi-server networks.
|
๐จ Premium ExperienceClean visuals, polished messages and smooth staff feedback.
|
โก Zero-Lag Design
BadBans is designed to keep your server smooth, even during active moderation.
Database operations, punishment checks and sync actions are handled asynchronously where possible, reducing main-thread work and helping protect server TPS.
| Design Goal | Result |
|---|---|
| Async punishment handling | Less main-thread pressure |
| Database work off-thread | Better server performance |
| Redis synchronization | Fast network-wide updates |
| Lightweight jar | Faster deployment |
| Paper API usage | Better compatibility |
| No NMS dependency | Easier updates |
๐ Multi-Server Support
BadBans is ready for server networks and shared punishment data.
| Component | Purpose |
|---|---|
| MariaDB | Main source of truth for punishment data |
| Redis | Real-time synchronization between servers |
| SQLite | Local fallback when MariaDB is unavailable |
If MariaDB or Redis are not available, BadBans can safely fall back to SQLite and disable multi-server sync automatically.
๐ Silent Punishments
Every punishment command supports silent mode using -s.
| Example | Visibility |
|---|---|
/ban Player 7d Cheating |
Visible to everyone online |
/ban Player 7d Cheating -s |
Visible only to staff with silent notify permission |
Silent notifications are shown only to console and players with:
badbans.notify.silent
โ ๏ธ Warning Auto-Ban
BadBans includes an automatic warning punishment system.
| Setting | Default |
|---|---|
| Active warnings required | 3 |
| Automatic action | Ban |
| Duration | 1 day |
| Reason | Too many warnings reached |
When a player reaches the configured warning limit, BadBans automatically applies the punishment.
๐งน Wipe System
BadBans includes a powerful player reset system.
/wipe <player> [-s]
Player Data
|
Vanilla Files
|
Automatic wipe on ban is disabled by default for safety:
wipe-on-ban: false
๐จ Styled Messages
BadBans uses clean, modern punishment messages with Small Caps Unicode styling.
Example:
สแดแดส แดแดแดแดแดษดแด สแด๊ฑ สแดแดษด สแดษดษดแดแด
| Message Type | Style |
|---|---|
| Ban screen | Red small-caps punishment layout |
| IP ban screen | Clean connection-ban layout |
| Mute message | Compact warning-style format |
| Warn notification | Staff-friendly live message |
| Dupe IP output | Status-colored account list |
| Broadcasts | Clean public punishment format |
| Silent actions | Staff-only notification style |
๐ Dupe IP Scanner
Use /dupeip <player/IP> to find accounts connected to the same IP.
BadBans displays linked accounts with status-based colors, making alt detection fast and readable.
| Status | Meaning |
|---|---|
| Online | Player is currently online |
| Offline | Player is currently offline |
| Banned | Player has an active ban |
| Muted | Player has an active mute |
| IP Banned | Player is linked to a banned IP |
๐ Pretty Punishment IDs
BadBans creates clean, stable punishment IDs.
| Player | Example ID |
|---|---|
PupillaViola |
#PPLV4821 |
Bad_0320 |
#BAD04821 |
Punishment IDs are saved permanently and do not change when the player rejoins.
๐ Commands
๐จ Ban Commands
| Command | Description |
|---|---|
/ban <player> [time] [reason] [-s] |
Ban a player permanently or temporarily |
/ipban <player/IP> [time] [reason] [-s] |
Ban an IP address |
/tempban <player> <time> [reason] [-s] |
Temporarily ban a player |
/tempipban <player/IP> <time> [reason] [-s] |
Temporarily ban an IP address |
/unban <player> |
Remove an active account ban |
/unbanip <player/IP> |
Remove an active IP ban |
๐ Mute Commands
| Command | Description |
|---|---|
/mute <player> [time] [reason] [-s] |
Mute a player permanently or temporarily |
/tempmute <player> <time> [reason] [-s] |
Temporarily mute a player |
/unmute <player> |
Remove an active mute |
/ipmute <player/IP> [time] [reason] [-s] |
Mute an IP address |
/unipmute <player/IP> |
Remove an active IP mute |
โ ๏ธ Warning Commands
| Command | Description |
|---|---|
/warn <player> [reason] [-s] |
Warn a player |
/tempwarn <player> <time> [reason] [-s] |
Temporarily warn a player |
/unwarn <player> [id/all] |
Remove one warning or clear all active warnings |
๐ข Kick Commands
| Command | Description |
|---|---|
/kick <player> [reason] [-s] |
Kick a player instantly |
/kickall [reason] [-s] |
Kick every online player |
๐ Information Commands
| Command | Description |
|---|---|
/check <player> |
View active punishments |
/history <player> |
View complete punishment history |
/iphistory <player/IP> |
View IP history |
/dupeip <player/IP> |
View linked accounts from the same IP |
โ๏ธ Admin Commands
| Command | Description |
|---|---|
/badbans reload |
Reload configuration files |
/badbans rollback <staff> [time] |
Roll back punishments issued by a staff member |
/wipe <player> [-s] |
Fully reset a player |
๐ Permissions
Punishment Permissions
| Permission | Command |
|---|---|
badbans.command.ban |
/ban |
badbans.command.ipban |
/ipban |
badbans.command.tempban |
/tempban |
badbans.command.tempipban |
/tempipban |
badbans.command.unban |
/unban |
badbans.command.unbanip |
/unbanip |
badbans.command.mute |
/mute |
badbans.command.tempmute |
/tempmute |
badbans.command.unmute |
/unmute |
badbans.command.ipmute |
/ipmute |
badbans.command.unipmute |
/unipmute |
badbans.command.warn |
/warn |
badbans.command.tempwarn |
/tempwarn |
badbans.command.unwarn |
/unwarn |
badbans.command.kick |
/kick |
badbans.command.kickall |
/kickall |
Staff Tool Permissions
| Permission | Access |
|---|---|
badbans.command.check |
Active punishment lookup |
badbans.command.history |
Full punishment history |
badbans.command.iphistory |
IP history lookup |
badbans.command.dupeip |
Dupe IP scanner |
badbans.command.wipe |
Player wipe command |
badbans.command.badbans.reload |
Reload configs |
badbans.command.badbans.rollback |
Staff rollback |
badbans.notify.silent |
View silent punishments |
๐งฉ Technical Highlights
Modern Paper Setup
|
Performance Focus
|
๐ Staff Feedback
When a punishment is successfully applied, the staff member hears the classic Minecraft XP orb sound.
This makes moderation feel fast, responsive and polished without disturbing normal players.
๐ Web History Support
BadBans includes web history support, allowing punishment records to be viewed outside the game.
Useful for staff teams that need fast access to player records, previous punishments and moderation history.
๐ก๏ธ Why BadBans?
BadBans is made for server owners who want a punishment plugin that feels modern, clean and powerful.
Fast moderation. Clean history. Safe performance.
Punish smarter. Sync faster. Keep your TPS safe.


