Three basic tools control who can join your server and what they can do there: the whitelist lets in only selected players, operators get all commands, and a ban blocks anyone who breaks the rules. You can do all of it from the console in the customer area or in the game.
You can also manage the whitelist, operators and bans without commands in the Players tab: while the server runs, the portal sends a console command; while it is stopped, it edits the files directly. A non-default operator level can only be set while the server is stopped.
What you'll need
- A Minecraft server at StormHost
- Access to the Console tab (and Server properties to make the whitelist setting permanent)
- Operator rights in the game, see First start
- About 10 minutes
Whitelist#
The whitelist is a list of players who are allowed to join. When it's on, the server turns everyone else away with the message You are not white-listed on this server! (Paper and Purpur always send You are not whitelisted on this server! in English). It's useful for private servers with friends, testing or closed events.
Turning on the whitelist#
Add yourself first so you don't lock yourself out (operators can always join, though):
Consoletext whitelist add <NICK>whitelist add– adds a player to the whitelist. The player doesn't need to be online or to have ever joined before. The server looks up their account.<NICK>– the player's in-game name, for exampleSteve.
Outputtext [12:00:01 INFO]: Added Steve to the whitelistAdd all other players with the same command.
Turn on the whitelist:
Consoletext whitelist onOutputtext [12:00:05 INFO]: Whitelist is now turned onThe whitelist applies immediately, and the server also writes
white-list=truetoserver.properties, so it survives a restart.
You get the same result with the setting in the customer area: the Server properties tab › the Players group › turn on Whitelist › Save and restart.
Enforce whitelist#
When you turn on the whitelist, players who are currently connected and aren't on the list stay on the server. The Enforce whitelist option (enforce-whitelist in server.properties) kicks them when the whitelist reloads. Turn it on in the Server properties tab in the Players group.
Whitelist commands#
| Command | What it does |
|---|---|
whitelist add <NICK> | Adds a player |
whitelist remove <NICK> | Removes a player. Doesn't kick a connected player unless Enforce whitelist is on |
whitelist list | Lists the whitelisted players |
whitelist on / whitelist off | Turns the whitelist on / off |
whitelist reload | Reloads whitelist.json from disk (after editing the file by hand) |
The list is saved in whitelist.json in the server root. Each player has a UUID (a unique account identifier) and a name in the file. We don't recommend editing it by hand; the commands are safer.
Bedrock players (Geyser and Floodgate)#
Add Bedrock Edition players with the Floodgate add-on's command. Type the name without the prefix:
fwhitelist add <NICK>Floodgate adds a prefix to Bedrock players' names in the game (a dot by default, for example .Steve) so their names don't clash with Java players. The fwhitelist command adds the prefix for you. More in Crossplay with Bedrock.
Operators#
An operator (op) can use server commands according to their permission level. The default level is 4, which means every single command.
op <NICK>[12:01:10 INFO]: Made Steve a server operatordeop <NICK>[12:01:30 INFO]: Made Steve no longer a server operatoropgives a player operator rights,deoptakes them away. The change applies immediately.
Operator permission levels#
| Level | Name | What they can do |
|---|---|---|
| 1 | Moderator | Build in the protected area around spawn (spawn-protection) |
| 2 | Gamemaster | Most game commands: gamemode, tp, give, time, weather, gamerule, command blocks |
| 3 | Admin | Player management: ban, kick, op, deop, whitelist |
| 4 | Owner | Absolutely everything, including server management: stop, save-all |
You set the level for new operators in the Server properties tab › Players › Operator permission level (op-permission-level, a value of 1–4, default 4). The level of a specific operator is in the ops.json file:
[
{
"uuid": "<PLAYER_UUID>",
"name": "Steve",
"level": 4,
"bypassesPlayerLimit": false
}
]uuid– the unique account identifier. The server fills it in itself onop.name– the in-game name (just for reference; the UUID is what counts).level– level 1–4 according to the table above.bypassesPlayerLimit–truemeans the operator can join even a full server.
Only edit the file while the server is stopped, otherwise the server overwrites it when saving.
For a team, use LuckPerms instead
Op is all or nothing. A moderator with level 3 can even ban other operators. If you have a team, give op only to yourself and grant the others specific commands with the LuckPerms plugin, see LuckPerms. On Paper, operators also automatically get most plugin permissions.
Bans#
| Command | What it does |
|---|---|
ban <NICK> [reason] | Permanently bans an account. The player doesn't need to be online. |
ban-ip <IP_OR_NICK> [reason] | Bans an IP address. Instead of an IP you can enter the name of a connected player. |
pardon <NICK> | Removes an account ban |
pardon-ip <IP> | Removes an IP ban |
banlist | Lists all bans (banlist players only accounts, banlist ips only addresses) |
Example:
ban Griefer123 Griefing builds at spawn[12:02:00 INFO]: Banned Griefer123: Griefing builds at spawnWhen a banned player tries to join, they see You are banned from this server and the reason. Bans are saved in the banned-players.json and banned-ips.json files.
Be careful with IP bans
Many people share one IP address (a household, a school, a mobile carrier), so an IP ban can also block innocent players. On the other hand, a player whose IP address changes can get around the ban just by reconnecting to the internet. IPv6 addresses can't be banned with ban-ip. Only use IP bans against repeated attacks from one address.
Temporary bans#
Vanilla Minecraft can't do temporary bans. With the EssentialsX plugin (Paper, Purpur), use:
tempban <NICK> <duration> [reason]<duration>– for example30m(minutes),12h(hours),3d(days),1w(week),1mo(month). Combinations like1d12halso work.- Example:
tempban Steve 3d Chat spam.
Installing EssentialsX is covered in Recommended plugins.
Kicking players (kick)#
kick <NICK> [reason]Disconnects the player, but they can rejoin right away. Useful as a warning. Output: Kicked Steve: reason.
Online mode and security#
The Account authentication (online-mode) option in the Server properties tab decides whether the server checks with Mojang that a player owns a genuine account.
- On (recommended): every name belongs to a real account. The whitelist, op and bans work reliably.
- Off: anyone can join under any name, including operators' names. The customer area warns you about this: “With authentication off anyone can join under any name, including operators' names.” Turning it off only makes sense behind a proxy (Velocity) that does the authentication itself, see A server network with Velocity.
Authentication off and operators
On a server with online-mode off, anyone can join using your operator's name and get their rights. If you have to turn authentication off, use a whitelist and a login plugin, or better, a proxy that authenticates players.
Verify it works#
whitelist listlists the whitelisted players.banlistlists the bans.- A player who isn't on the whitelist gets the whitelist message when trying to join.
Troubleshooting#
A player is on the whitelist but the server won't let them in#
- The name has a typo, or the player changed their name. Check
whitelist listand add them again. - A Bedrock player has to be added with
fwhitelist add. - The server runs with
online-modeoff and the whitelist contains the UUID of the genuine account. With authentication off, the player has a different UUID. Add them again.
That player does not exist#
The server couldn't find an account with this name at Mojang. Check the exact spelling of the name.
Nothing changed. The player is already an operator#
The player is already an operator. If you want to change their level, edit level in ops.json while the server is stopped.
The whitelist turned off after a restart#
You probably turned it on in the Server properties tab but didn't save, or you were editing server.properties at the same time and the server overwrote it on startup. Turn it on again with whitelist on and check that Whitelist is on in Server properties.
An unbanned player still can't join#
They probably also have an IP ban. Check banlist ips and remove it with pardon-ip <IP>. Temporary bans from EssentialsX are removed with unban <NICK>.
Summary
- Whitelist: first
whitelist add <NICK>for everyone, thenwhitelist on. Operators can always join. - Enforce whitelist kicks players who aren't on the list.
- Op grants commands by level 1–4; the default 4 is absolutely everything. For a team, use LuckPerms.
banblocks an account,ban-ipan address;pardonandpardon-ipremove bans. EssentialsX handles temporary bans (tempban).- Keep account authentication (
online-mode) on.