SXBans
A complete punishment system that doesn't make you tab out to a spreadsheet.
Supports Minecraft 1.13 → 26.2 | Version 1.61 Release | Java 17+
Join our Discord
Wiki
If Download Link Have Problem Click Here To Direct Download Plugin From Github
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
A complete punishment system that doesn't make you tab out to a spreadsheet.
Supports Minecraft 1.13 → 26.2 | Version 1.61 Release | Java 17+
Join our Discord
Wiki
If Download Link Have Problem Click Here To Direct Download Plugin From Github
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
Introduction
If you've ever run a Minecraft server with more than a handful of players, you already know the drill. You start with a basic ban plugin because it's free and it does the one thing you need. Then you realize you also want temp-bans. Then you want a web panel so your moderators don't have to be in-game to check someone's history. Then you're running a second server and now bans don't carry over. Then someone asks for alt-account detection. Before long you've got four plugins stitched together with duct tape, none of which were designed to talk to each other, and half your staff meetings are spent debugging why a ban on server A didn't apply on server B.
SXBans exists to be the plugin you install once and never have to think about again.
It's a single, self-contained punishment system that covers everything a real server actually needs day to day: bans, temp-bans, mutes, kicks, warnings, IP-level punishments, a full audit trail of every action taken against every player, alt-account detection, a genuine web dashboard your staff can use from a phone during a lunch break, and — if you're running more than one server — full cross-network synchronization that doesn't care whether you're behind BungeeCord, Waterfall, or Velocity.
Nothing here is duct-taped together. The web panel, the database layer, and the network sync all share the same core, so a ban issued from in-game, from the web panel, or from another server in your network all behave identically and show up in the same history log.
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
✔ Full Feature List
Core Punishments
- Ban — permanent, instant, no ambiguity
- Temp-Ban — set a duration and it lifts itself automatically, no cron jobs or reminders needed
- Kick — logged the same as every other punishment, so it still shows up in a player's history
- Mute / Temp-Mute — blocks chat, with the same instant/temporary split as bans
- Warn — with a configurable threshold that can auto-escalate to a ban once a player racks up enough warnings
- IP Ban / IP Mute — punish an entire connection, not just one account, with automatic detection of every player who's ever connected from that address
- Offline punishing — every single command above works on a player who isn't even online right now. You don't need to wait for someone to log back in to deal with a report from last night.
- Full punishment history — every action, on every player, forever (or until you clear it), fully paginated and searchable both in-game and from the web panel
- Punishment templates — pre-written reasons for your most common offenses, so staff aren't retyping "unfair advantage / use of modified client" for the fiftieth time
Storage — Pick What Actually Fits Your Server
Not every server needs a MySQL cluster, and not every server should be stuck with flat files either. SXBans lets you choose:
- JSON — zero configuration, works the second you start the server. Perfect for smaller servers or if you just want to try the plugin out without committing to anything.
- SQLite — still a single file, still no external server process, but a real relational database underneath. A comfortable middle ground.
- MySQL — the standard choice if you're running a network, already have a database server for other plugins, or want to query your punishment data with external tools.
- PostgreSQL — same use case as MySQL, for servers that prefer it.
- H2 — an embedded SQL option for setups that specifically want it.
Multi-Server Networks
- Punishment data syncs across your entire network through Redis, in real time
- Fully proxy-agnostic — the exact same setup works whether you're behind BungeeCord, Waterfall, or Velocity, because sync happens over Redis pub/sub rather than proxy-specific plugin messaging
- This also means punishments sync even with zero players online to act as a message carrier — a real limitation of the older plugin-messaging approach that this plugin sidesteps entirely
- Every server has its own configurable identity, so your logs and web panel clearly show which server issued which punishment (no more guessing which of your six servers a ban actually came from)
- A fully documented message protocol is included if you want to build a companion plugin for your proxy — for example, rejecting a banned player's connection before they even pick a server, instead of waiting for the backend to kick them
Web Panel
- Built-in web server — nothing external to install, no reverse proxy required to get it running (though you can absolutely put one in front of it for HTTPS)
- Live dashboard with active punishment counts, database status, and quick stats at a glance
- Full player search — click into anyone and see their entire punishment history, IP data, and detected alt accounts
- A live server console you can use straight from the browser, restricted to admin-level accounts only
- Multiple staff accounts with individual permission levels — not one shared admin login that everyone has to remember (or that never gets its password changed after a staff member leaves)
- Clean, responsive layout that's genuinely usable from a phone, not just "technically loads on mobile"
Extras That Actually Matter
- Broadcast messages with hover tooltips — mouse over a ban announcement in chat and see the full reason, executor, and duration without cluttering the chat itself
- Broadcasts are configurable per punishment type, including who sees them (everyone, or only staff with a specific permission)
- PlaceholderAPI, Vault, and LuckPerms hooks
- Every single message the plugin sends — errors, success messages, broadcasts, kick screens — is editable in one file, with full support for hex colors and Unicode/emoji
- A punishment hierarchy system (admin levels) so a moderator can't ban an admin who outranks them
- Bypass permissions so specific staff or test accounts can be made immune to punishments entirely
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
Screenshots
(Web panel dashboard, player search, punishment history, and live console screenshots go here — attach your images to this resource page and they'll display inline in this section.)
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
⌨ Commands
Punishment Commands
- /ban <player> <reason> — permanently ban a player. Works offline too.
- /tempban <player> <time> <reason> — ban for a set duration (alias: /tban)
- /unban <player> — remove an active ban (alias: /pardon)
- /kick <player> <reason> — kick a currently online player
- /mute <player> <reason> — mute a player's chat
- /tempmute <player> <time> <reason> — mute for a set duration (alias: /tmute)
- /unmute <player> — remove an active mute
- /warn <player> <reason> — issue a warning; auto-bans on threshold if enabled
IP Commands
- /ipban <player|IP> <reason> — ban by player name (resolves their current IP) or a raw IP address directly. Kicks everyone currently connected from that address.
- /ipunban <IP> — remove an IP ban
- /ipmute <player|IP> <reason> — mute everyone connecting from an IP
- /ipunmute <IP> — remove an IP mute
Info Commands
- /check <player> — current status: active bans/mutes, IP, last seen, warning count, detected alts (aliases: /info, /status)
- /history <player> [page] — full paginated punishment log for a player
Administration
- /sxbans reload — reload config.yml, messages.yml, templates.yml, and web users without a restart
- /sxbans stats — quick summary of active punishments, database type, and web server status
- /sxbans web — show the web panel's current status and address
- /sxbans backup — write a timestamped JSON snapshot of every punishment to disk
- /sxbans clear all — wipe every punishment record on the server (requires a confirmation step within 30 seconds — this is destructive and cannot be undone)
- /sxbans clear player <name> — wipe punishment records for one specific player
Time Format
Used anywhere a command takes a duration: seconds, minutes, hours, days, weeks, Months (capital — lowercase m is minutes), years. You can chain them together: 1d12h30m is a day, twelve hours, and thirty minutes.
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
Permissions
Command Permissions
- sxbans.ban — /ban, /tempban
- sxbans.unban — /unban
- sxbans.mute — /mute, /tempmute
- sxbans.unmute — /unmute
- sxbans.kick — /kick
- sxbans.warn — /warn
- sxbans.history — /history
- sxbans.check — /check
- sxbans.ipban / sxbans.ipunban / sxbans.ipmute / sxbans.ipunmute — IP commands
- sxbans.reload — /sxbans reload
- sxbans.admin — full access to /sxbans administration (reload, stats, backup, clear, web)
Bypass Permissions
Let specific players dodge punishments entirely — handy for staff testing or making sure your head admin never locks themselves out.
- sxbans.bypass.ban — immune to bans
- sxbans.bypass.mute — immune to mutes
- sxbans.bypass.kick — immune to kicks
- sxbans.bypass.ipban — immune to IP bans
- sxbans.bypass.ipmute — immune to IP mutes
Admin Levels (Punishment Hierarchy)
- sxbans.adminlvl.1 through sxbans.adminlvl.100 — a staff member can only punish players whose level is strictly lower than their own
- sxbans.adminlvl.* — all levels at once
Web Panel Permissions
- sxbans.web.access — access to the web panel
- sxbans.web.admin — full web panel access including the live console and punishment management
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
Web Panel — In Depth
Once your server's running, the panel is reachable at http://your-server-ip: port (default port 8080, fully configurable). On first launch, SXBans generates a random password for the default admin account and prints it to your console exactly once — grab it before it scrolls past, log in, and change it immediately from Settings.
From the panel you get a live dashboard, full player search with complete history, a live server console for admins, and user management for creating additional staff logins with their own restricted permission levels. Give trial staff a low-level account so they can look up player history without being able to touch the console — reserve full admin-level web accounts for people you'd trust with in-game op anyway, since the live console can run arbitrary server commands.
Want it reachable at a proper domain over HTTPS instead of a raw IP: port? Drop nginx or Caddy in front of it as a reverse proxy — the built-in web server intentionally leaves TLS termination to tools that are already good at it.
Screen Shots :
,
,
,
,
,
,
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
Network Setup — In Depth
Running more than one server — a survival server, a skyblock server, a lobby? SXBans can keep punishments in sync across all of them.
Every server in your network connects to the same Redis instance and publishes/subscribes to the same channels. Ban someone on your survival server, and your skyblock server and lobby pick it up and apply it locally within a second or two. This works identically regardless of whether your proxy is BungeeCord, Waterfall, or Velocity, because the sync layer doesn't touch proxy-specific messaging at all — it's pure Redis pub/sub.
Setup is three settings per server: point every server at the same Redis host, give each server a unique name so the plugin (and your logs) can tell them apart, and turn sync on. That's the entire configuration.
If you want punishments to also apply at the proxy layer directly — for example, rejecting a banned player's connection before they even pick a server — the full Redis message protocol (channel names, JSON structure, field meanings) is documented and included with the plugin, so you can build a small companion plugin for Velocity or BungeeCord in well under a hundred lines of code.
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
⚙ Requirements
- Spigot or Paper, Minecraft 1.13 through 26.2
- Java 17+
- That's genuinely it for a basic setup. MySQL, PostgreSQL, and Redis are entirely optional and only needed if you want them.
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
Installation
- Drop the jar into your plugins/ folder and start your server once so it can generate its default config files
- (Optional) Stop the server and open config.yml if you want to change the database type, web panel port, or network settings — the defaults work fine for a single small-to-medium server
- Start the server again
- Watch your console on this boot — your randomly generated web panel admin password is printed once
- Log in to the web panel and change that password from Settings
No database setup required, no commands to run by hand — table/schema creation is fully automatic no matter which storage backend you choose.
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
❓ Frequently Asked Questions
Does this work on Paper / Purpur / other Spigot forks?
Yes — anything built on the Spigot/Bukkit API works fine.
Do I need a database?
No. The default JSON storage works out of the box for most servers. A real database is an option for larger networks, not a requirement.
Can I use this across multiple servers?
Yes, via Redis, and it works with BungeeCord, Waterfall, and Velocity alike.
Is the web panel required?
No — you can disable it entirely if you'd rather manage everything in-game only.
Can I run the web panel without exposing it to the public internet?
Yes, bind it to internal/firewalled access only, or put it behind a VPN.
What happens to bans if I uninstall the plugin?
Name-based bans and mutes are enforced entirely by SXBans, so removing the plugin removes enforcement. IP bans are also added to the server's own built-in ban list as a safety net, so those keep working even without the plugin installed.
Does it support hex colors and Unicode in messages?
Yes, throughout — messages.yml is fully UTF-8 and supports both standard color codes and hex.
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
Need help, found a bug, Create a Ticket in Discord.
discord.gg/7xFkMg6apF
Built by XserGod and the SX Team.
Licensed under the Apache License 2.0.
discord.gg/7xFkMg6apF
Built by XserGod and the SX Team.
Licensed under the Apache License 2.0.
SXBans is a free Minecraft Java mod. Compatible with Minecraft 1.13, 1.14, 1.15, 1.16 and newer. Downloaded 22 times (via Spigot). Download it and open it directly in the game.