Banned players are offline, so the Player mode with the exact account name is what you want here. Spelling is not case-sensitive, but the name must otherwise match the ban list entry exactly.
Run it from the server console without the leading slash, or in chat as a level 3+ operator.
What changes when you pardon someone: their entry is deleted from banned-players.json on the spot and they can reconnect right away. The ban never touched their inventory, stats or builds, so they return exactly where they logged out. To ban them again later, run /ban with the same name.
Unbanning is a four-step job. Most failed unbans come from skipping step 1 and guessing the spelling.
/pardon requires permission level 3 (admin). The server console always has full permissions, so it works from there regardless of op levels.
/pardon lifts a ban. It deletes the player's entry from the server's banned-players.json file the moment it runs, so they can reconnect immediately with no restart and nothing else changed. Running it requires permission level 3, so use the server console or an admin-level operator account.
/ban and /pardon are the two halves of Java Edition's ban system. When you ban someone, the server writes their name, UUID, the reason and who issued it into banned-players.json in the server folder, and from then on every login attempt from that account is rejected with the ban message. /pardon is the exact reverse: it deletes that entry, and the next login goes through like nothing happened.
Neither command touches the player's data. A ban never deletes inventory, stats or builds; it only blocks the login. That also means /pardon always works on offline players, which matters because a banned player is offline by definition. The name resolves through the server's profile cache, so the only thing you need to get right is the exact account name, and /banlist players will show you that spelling.
The command takes exactly one argument and the syntax is the same in every version of Java Edition:
Copy any of these straight into chat, or drop the leading slash for the server console:
Unbans the account named Steve. They can reconnect the moment the command runs.
The same unban from the server console: no leading slash there.
Lists every banned account with its reason, so you can copy the exact name before pardoning.
Names are not case-sensitive, but underscores and digits must match the ban list entry exactly.
The companion command for IP bans: removes the address from banned-ips.json. /pardon alone does not lift IP bans.
Java Edition servers keep two completely separate ban lists, and the most common unban mistake is lifting one while the other is still in force:
A name ban follows the account: the player stays banned even if they connect from a new network. An IP ban follows the connection: it blocks every account joining from that address. If someone was hit with both, you need both pardon commands before they can rejoin. The whitelist is a third, separate gate; a pardoned player on a whitelisted server still needs /whitelist add before the door actually opens.
1. Open the server console, or join the game on an account with op level 3 or higher.
2. Run banlist players to see every banned account, and copy the exact name of the player you want back.
3. Run pardon <playername> in the console, or /pardon <playername> in chat. The generator above builds the exact line for you.
4. Check the response. "Unbanned <player>" means it worked; "Nothing changed. The player isn't banned" means the spelling did not match any entry, or the block is an IP ban rather than a name ban.
5. Have the player reconnect; the unban is instant. If they are still blocked, run banlist ips and lift any matching entry with /pardon-ip, and add them with /whitelist add if the server runs a whitelist.
Run /pardon followed by the player's exact account name, for example /pardon Steve. In the server console you type it without the leading slash. The entry is removed from banned-players.json immediately and the player can reconnect right away; no restart is needed.
/pardon lifts a name ban: it removes a player's entry from banned-players.json. /pardon-ip lifts an IP ban: it removes an address from banned-ips.json. They are separate lists, so a player banned with /ban-ip stays blocked until you run /pardon-ip with their address; /pardon alone will not let them in.
The usual causes are an IP ban that also needs /pardon-ip, a whitelist that needs /whitelist add, or a spelling mismatch so the pardon hit nothing. Run /banlist players and /banlist ips to see exactly what is still blocking them, and copy the name or address from there.
No. /pardon edits the live ban list and takes effect the moment it runs, so the player can reconnect immediately. Only editing banned-players.json by hand requires a restart or /reload, because the server reads that file at startup; the command is always the live option.
Permission level 3, the admin level. Since /op grants level 4 by default on most servers, any operator can normally unban players. The server console has full permissions, so pardon always works from there regardless of op levels.
No. Banning only blocks the login; the player's inventory, ender chest, stats and builds stay untouched in the world's playerdata and region files. After /pardon they log back in exactly where they were when they got banned, with everything they had.
Need to ban a player instead? Or browse more Minecraft tools: