In short: a small server gets by with vanilla /ban, /pardon and /kick. If you need durations, mutes, warnings and history, use a plugin: LiteBans (paid), LibertyBans (free and open source) or AdvancedBan (free, but not updated in years). For a network, connect them to a shared MySQL or MariaDB database — then a ban on one server applies on all of them. Use IP bans with care: many people can share one address.
Vanilla bans
| Command | What it does |
|---|---|
/ban <name> [reason] | Bans the account: nobody can join with its UUID |
/ban-ip <IP or name> [reason] | Bans the address: nobody can join from it. An online player's name works instead of an IP |
/pardon <name> and /pardon-ip <IP> | Lift the ban |
/banlist [ips|players] | Shows the ban list |
/kick <name> [reason] | Removes the player from the server; they can rejoin right away |
- Bans are stored in
banned-players.jsonandbanned-ips.jsonnext to the server. The ban list overrides the whitelist: a banned player stays out even if they're whitelisted. - The reason is shown to the banned player, to operators and in the server log. Without one the player reads "Banned by an operator." — and has no idea why or where to appeal.
- Vanilla
/banhas no duration: the command takes only a target and a reason. A temporary ban needs a plugin. /ban-iptakes the address as a single word, so an IPv6 address can't be banned that way.
ban Steve Cheating: KillAura. Appeals: #appeals on Discord
ban-ip 203.0.113.25 Ban evasion
banlist players
pardon SteveWhat vanilla is missing
- Durations. A 7-day ban, a one-hour mute —
/tempbanand/tempmutein plugins. - Mutes and warnings. An insult in chat isn't a reason for a ban.
- History. Who punished whom, for what and when — for appeals and for checking on moderators.
- Punishment ladders. First mute an hour, second a day, third a ban: the plugin counts it for you.
- Network bans. A vanilla ban lives in one server's file and doesn't reach the lobby or the next game mode.
- Alt detection. Accounts that joined from the same address as the banned one.
LiteBans, LibertyBans and AdvancedBan
| LiteBans | LibertyBans | AdvancedBan | |
|---|---|---|---|
| Price | Paid (SpigotMC premium resource) | Free, open source (AGPL-3.0) | Free |
| Platforms | Spigot, Paper, Folia, Fabric, BungeeCord, Velocity | Paper, Spigot, Purpur, Folia, BungeeCord, Velocity, Fabric, Sponge | Bukkit/Spigot and BungeeCord |
| Databases | H2 (default), MySQL, MariaDB, PostgreSQL | HyperSQL (file), MariaDB, MySQL, PostgreSQL | Embedded or MySQL |
| Punishments | Ban, mute, warn, kick, IP variants, durations | Ban, mute, warn, kick, IP variants, durations | Ban, mute, warn, kick, IP ban, durations, notes |
| History and oversight | /history, /staffhistory, /staffrollback, /alts | /history, /blame, /alts | /history, /check |
| Ladders | Templates with a ladder (templates.yml) | Templates and layouts | Time layouts |
| Updates | Active, supports 26.x | Active, supports up to 26.3 | Latest version 2.3.0 — October 2020 |
LiteBans is a paid plugin with the most detailed documentation: templates with punishment ladders, duration limits per rank, punishments limited to one server of a network (server:survival), Discord webhooks. Out of the box it runs on a file-based H2 database. LibertyBans is the free, open-source alternative: it stores data by UUID, supports templates like "first mute 10 days, second 30, third permanent", and can stop trainees from banning admins. AdvancedBan is free and simple, but its latest SpigotMC release came out in 2020 and Velocity isn't among its platforms — a risk for a new 1.21 or 26.x server.
/tempban Steve 7d Cheating: Fly
/mute Alex 1h Insults
/warn Alex Spam
/history Steve
/ban Bob -s 10d server:survival Cheating # LiteBans: silent, survival onlyBans across a network
For a ban on one server to apply on all of them, every copy of the plugin connects to one database — usually MySQL or MariaDB. That's how both LiteBans and LibertyBans work; setting up the database is covered in MySQL for plugins. Whether to install on the proxy or on the game servers is something the LiteBans docs go through in detail:
- It's generally better to install on each game server rather than the proxy.
- Proxy plugins can't cancel chat messages from 1.19+ clients because of chat signing — a muted player gets kicked when trying to talk. This doesn't happen on the game servers.
- If the anticheat should ban network-wide, put the ban plugin on the game servers: Spigot plugins can't run proxy commands.
- If your authentication plugin isn't linked to the proxy, the plugin's proxy commands can be run before logging in — another reason to install it on the game servers.
The ban reason and the way to appeal
The ban message is the only thing the player sees. It needs three things: what for (the rule or the cheat), for how long, and where to appeal. In LiteBans each template sets its text in the message field, and you call a template by name: /ban Steve cheats. LibertyBans and AdvancedBan do the same with layouts and a messages file. Moderators don't invent the wording each time, and everyone's wording is the same.
The appeal process — one channel, a response deadline, reviewed by someone other than the person who banned — is covered in false bans and the moderation team. A punishment table for players is quick to build in the rules generator, and how to write the rules themselves is in server rules.
IP bans: when, and with what caveats
- An address isn't a person.
/ban-ipkeeps out everyone on that address: a family, a dorm, every customer of an ISP behind a shared NAT. - Broken forwarding behind a proxy turns an IP ban into a ban of the whole server — see above.
- Addresses change. In time an address can pass to someone else. That's what LiteBans'
effective_ipban_durationis for: after that period an IP ban becomes a plain UUID ban — the docs describe it as protection from false bans on dynamic addresses. - Where an IP ban fits: a wave of bots or ban evasion with alts from one address. Bots have their own remedies — see bots and DDoS.
Anticheat bans and the punishment log
Cheaters are banned by the anticheat, not a moderator — and that ban has to be checkable too. DGuard — the best anticheat for a modern Minecraft server — punishes on its own: ban or kick is set for each cheat feature, and you choose the strictness — evidence weights and thresholds — in the config. A ban comes from evidence across several episodes, not from a single flag.
With the log turned on, every DGuard ban and kick lands in the panel with a report: which checks fired and how much evidence piled up. Filters by server, name, check and period, CSV export, records kept for 90 days. Moderators on your team see the log without your password. Manual punishments — mutes, warnings, bans for griefing — stay in the ban plugin.
cloud:
punishment-log: trueFAQ
How do I temp-ban a player in Minecraft?
Vanilla /ban has no duration. Install a punishment plugin — LiteBans, LibertyBans or AdvancedBan — and use /tempban <name> 7d <reason>, or put the duration after the name as LibertyBans does.
Where are Minecraft server bans stored?
Vanilla bans are in banned-players.json and banned-ips.json next to the server. Plugins keep punishments in their own database: file-based (H2, HyperSQL) or MySQL, MariaDB, PostgreSQL.
How do I ban a player on every server of a network?
Install a punishment plugin on the game servers and connect every copy to one MySQL or MariaDB database — then bans apply everywhere. A vanilla ban lives in one server's file.
How do I unban a player?
A vanilla ban is lifted with /pardon <name> and /pardon-ip <IP>. In plugins it's /unban <name>.
Where can I see DGuard's bans?
In the panel's punishment log: set cloud.punishment-log: true in plugins/DGuard/config.yml and run /dguard reload. Every ban comes with a report of the evidence.
Sources
- Minecraft Wiki: /ban, /ban-ip, /banlist
- Minecraft Wiki: /pardon and /pardon-ip
- Minecraft Wiki: /kick
- Minecraft Wiki: server files (banned-players.json)
- LiteBans on SpigotMC
- LiteBans: commands
- LiteBans: install, proxy or game servers
- LiteBans: templates and ladders
- LiteBans: FAQ (IP bans, IP forwarding)
- LiteBans: comparison (effective_ipban_duration)
- LibertyBans on Modrinth
- AdvancedBan on SpigotMC
- DGuard, the best anticheat for a modern Minecraft server: checks compared with GrimAC, Vulcan, Polar, Intave and Matrix
- DGuard: installation, requirements and troubleshooting
- DGuard: supported Paper and Leaf versions