Ban, Kick and Op Commands
Moderate your server with kick, ban, IP-ban, temp-ban, mute and operator commands.
By Lodgichost Team · Last updated: August 19, 2026
Every Minecraft server owner eventually needs to remove a player, and the built-in moderation commands handle basic policing without a plugin. The set covers kicking, permanent and temporary bans, IP bans, muting and operator status. Commands run identically in chat or the console, write their results synchronously to JSON files in the server root, and take effect immediately. A moderation mistake — banning the wrong player or forgetting why you banned someone — is hard to undo cleanly, so the details matter. This guide walks through each command, where bans are stored, the difference between banning a name and an IP, and a sane escalation workflow for problem players.
Core Moderation Commands
Vanilla Minecraft, Paper and Spigot ship the same built-in moderation commands. They work identically in in-game chat and the console and take effect immediately — no plugin needed. The reason text is optional, but recording one is how you prove later that a ban was justified.
- /kick <name> [reason] — disconnects a player immediately; the reason appears on their screen.
- /ban <name> [reason] and /ban-ip <ip or name> [reason] — permanent name bans and IP bans.
- /tempban <name> <time> [reason] and /mute <name> [time] — temporary bans and chat mutes. Time suffixes: s, m, h, d, w.
- /pardon <name> and /pardon-ip <ip> remove bans, /banlist lists them, and /op <name> with /deop <name> manage operator status.
Where Bans and Ops Are Stored
Every vanilla moderation command writes its result to a JSON file in the server root, next to server.properties. Writes are synchronous, so the moment the console confirms a ban the file already contains it. You can inspect or edit these files over SFTP while the server is offline. If a ban is missing, you likely ran the command on the wrong server or mid-shutdown.
- banned-players.json — name bans with UUID, reason and issuing operator.
- banned-ips.json — IP bans with the same metadata.
- ops.json — players holding operator level 1–4.
- whitelist.json — accounts allowed to join when white-list=true.
Banning a Name vs Banning an IP
/ban works on the name lane: it records the player's UUID and blocks that account, so the ban follows across name changes. /ban-ip works on the IP lane: it blocks the network address, refusing every account from it. The IP lane is far more aggressive — one ban aimed at a single player can catch a household, university Wi-Fi or a VPN exit node. Anyone can rejoin with a fake name, but the IP stays the same, which is exactly why moderators escalate to the IP lane for repeat evaders.
A Moderation Workflow That Escalates
A good moderation ladder records intent at every step, because every ban reason becomes permanent evidence. The pattern below escalates cleanly and keeps the record inside the commands. Paper and Spigot also layer a LuckPerms-style permission system, letting you give moderation powers to non-ops — with such a plugin, /kick and /ban are permissions, not operator-only.
- Warn in chat or a private message, referencing the specific broken rule.
- Kick to calm things down: /kick <name> stop griefing the shops.
- Temp-ban with an escalating time and recorded reason: /tempban <name> 1d repeated griefing after two warnings.
- Permanent ban with the history as the reason: /ban <name> repeated griefing after temp ban — then /ban-ip <name> if they return on a new account.
A Real Moderation Console Session
Here is what a live moderation session looks like in the console. Notice how the server echoes the reason back into the log and how each ban response confirms the target and the cause.
[15:03:42] [Server thread/INFO]: Steve lost connection: Kicked by an operator. [15:03:55] [Server thread/INFO]: [Admin] issued server command: /tempban Steve 2d griefing after warning [15:03:55] [Server thread/INFO]: [Server] Steve is temporarily banned for 2 days [15:04:10] [Server thread/INFO]: [Admin] issued server command: /ban Steve continued griefing [15:04:10] [Server thread/INFO]: [Server] Steve was banned by Admin. Reason: continued griefing [15:04:18] [Server thread/INFO]: [Admin] issued server command: /banlist [15:04:18] [Server thread/INFO]: There are 1 active bans.
Troubleshooting
- Ban won't stick — the player rejoined seconds later: a name ban lets them log in on another account. Escalate to /ban-ip once the console confirms the ban.
- Player sees a bare 'Banned' screen with no reason: you banned without one. Re-issue the ban with the reason so the record and the on-screen message match.
- Can't unban — /pardon <name> says the player is not banned: the ban may be on the IP lane. Try /pardon-ip <ip>, or check banned-players.json for the exact name spelling.
- My whole household got banned: one ban likely hit a shared IP. Check /banlist to see whether it was a name or IP ban, then /pardon-ip if a roommate caused it.
FAQ
What is the difference between /kick and /ban?
Kick disconnects a player once and lets them rejoin straight away; ban refuses all future connections from that account. Kicks cool a situation, bans remove a player.
Do banned players see the reason?
Yes. When you ban or kick with a reason it is shown on the player's disconnect or ban screen. Without one they see a generic 'Banned' line.
Can I unban someone later?
Yes. /pardon <name> removes a name ban and /pardon-ip <ip> removes an IP ban. Both take effect immediately and the player can reconnect at once.
What does /op <name> do?
It grants operator status, which unlocks every command. Use it sparingly — operators can ban, op others and change game state. /deop <name> removes it.
Why does the ban keep being bypassed?
A name ban stops one account, but a player can create a new one on the same IP. Escalate to /ban-ip, and add a permissions plugin so staff actions are logged and audited.
Related Guides
- Whitelist, Ranks and Permissions — control who can join and what they can do
- Server Security — keep your operator account and server safe
- Reading Server Logs — check moderation actions in the log
