Most lists of Minecraft server commands dump 100-plus entries in alphabetical order and leave you to guess which ones matter. This one is sorted by what you're trying to do: manage players, change the rules, move people around, save and stop the server. Java first, with the Bedrock differences called out. Version context: Java 26.3 and Bedrock Dedicated Server 1.26.63 as of November 2026.
The short version: type commands in the server console without a slash, type them in game chat with one, and know that most of them only work if you're an operator at a high enough permission level. That last part is why "I'm op but /ban does nothing" happens.
Console vs in-game: the slash rule
In the server console, you type whitelist list, not /whitelist list. In game, you open chat (T, Enter, or the / key, which types the slash for you) and use the slash. Commands run from the console run as the server itself, so the console doesn't need to be op'd.
Not sure of a command's syntax? Run this, in the console or in game:
help <command>
Need to reach the console without sitting at the machine? enable-rcon in server.properties is false by default. RCON gives network access to the console, the password has to be set or it won't start, and the connection isn't encrypted, so keep it on localhost where you can. Any server.properties change needs a restart, which is why the server.properties explainer is worth bookmarking next to this page.
Permission levels: why op doesn't always mean everything
Java commands are gated by permission level, 0 to 4, and the levels stack. A level-3 op can do everything level 0 to 2 can. In server.properties, op-permission-level (default 4) sets the level someone gets when you run /op on them. Leave it at 4 and ops can do everything. Drop it to 2 and they can change the weather but can't ban, kick, whitelist or stop the server.
| Level | Name | Commands you'll recognize (Java) |
|---|---|---|
| 0 | Everyone | help, list, me, msg / tell / w |
| 1 | Moderator | Bypasses spawn protection |
| 2 | Gamemaster | gamemode, defaultgamemode, difficulty, gamerule, give, tp, time, weather, say, tellraw, setworldspawn, spawnpoint, kill, effect, summon, reload, locate, worldborder |
| 3 | Admin | op, deop, ban, ban-ip, banlist, pardon, pardon-ip, kick, whitelist, setidletimeout |
| 4 | Owner | stop, save-all, save-off, save-on, perf |
My rule: leave it at 4 for a small private server of people you trust, and drop it to 2 or 3 for a helper you want changing the time of day but not stopping the server. If you only need to know how to hand yourself op in the first place, that's covered in how to op yourself on a Minecraft server.
Managing players: op, kick, ban and whitelist
Apart from list, these are level 3 on Java, and all of them work from the console. The basic forms:
op <targets>anddeop <targets>give and remove operator status. A name works, and so does a selector.kick <targets> [<reason>]removes someone right now. They can rejoin, so it isn't a ban.ban <targets> [<reason>]bans a player. The reason is optional and shown to them.ban-ip <target> [<reason>]bans an IP address, or the IP of an online player you name. IPv6 addresses can't be banned this way.banlist [ips|players]shows the list.pardon <targets>andpardon-ip <target>undo a ban.listshows who's online, and anyone can run it (level 0).
The old /unban and /banip are gone from Java, so use pardon and ban-ip. The full walkthrough is in how to ban someone on a Minecraft server. On Bedrock, op <player> and deop <player> are level 2, and kick <name> [reason] is level 1 and takes one player.
The whitelist, and why your friends can't join
The whitelist commands are the ones I'd memorize:
whitelist add <targets>whitelist remove <targets>whitelist listwhitelist on/whitelist offwhitelist reload(after you editwhitelist.jsonby hand)
Heads up: since Java 26.3, the whitelist is on by default (white-list=true). A fresh server turns away anyone who isn't whitelisted or op'd. If your friends see a refusal on a brand-new server, run whitelist add <name> for each of them, or whitelist off if you want it open. Ops can always join a Java server with the whitelist on. More in how to whitelist a Minecraft server.
World and rules: gamemode, difficulty, gamerule, spawn, time and weather
These are level 2 on Java. Basic forms, with examples:
gamemode <gamemode> [<target>]: Java takes the full wordssurvival,creative,adventure,spectator. From the console, always name a target, for examplegamemode creative <player>. Bedrock still accepts 0, 1, 2.defaultgamemode(Java only) sets what new players get.difficulty [peaceful|easy|normal|hard]: with no argument, Java tells you the current one. On a server the change only lasts until the next restart, then it reloads fromserver.properties, so setdifficulty=there to make it stick.setworldspawn <x> <y> <z>sets where new players start, for examplesetworldspawn 0 64 0.spawnpoint <targets> <x> <y> <z>sets one player's respawn spot.time set day,time set night,time add <time>: named times work on both editions. A day is 24000 ticks, sotime add 24000skips one.weather clear,weather rainorweather thunder, each with an optional duration after it. On Java,weather clear 1dis clear for a day (d,sandtsuffixes; a bare number is ticks). Bedrock durations are plain ticks. Java dropped the old/toggledownfallin 1.13.
Want players to fly? That's its own fix: how to enable flying on a Minecraft server.
Gamerules: the names changed
The command is gamerule <rule> [<value>]. Run it with just the rule to see the current value. The trap: on Java 1.21.11 the rule names switched to snake_case, so most guides and videos, which use camelCase, give you names that fail on current Java. Here are the ones owners reach for, with their defaults:
| What it does | Current Java name | Default |
|---|---|---|
| Keep your items when you die | keep_inventory | false |
| Creepers and endermen wreck terrain | mob_griefing | true |
| Players can hurt each other | pvp | true |
| Hostile mobs spawn | spawn_monsters | true |
Day-night cycle runs (was doDaylightCycle) | advance_time | true |
Weather changes on its own (was doWeatherCycle) | advance_weather | true |
| Share of sleepers needed to skip the night | players_sleeping_percentage | 100 |
| Crop and plant growth speed | random_tick_speed | 3 |
| Command blocks run | command_blocks_work | true |
Also renamed: doMobSpawning is now spawn_mobs, announceAdvancements is now show_advancement_messages, and doFireTick is gone from Java (fire_spread_radius_around_player replaced it).
Some old server.properties keys moved here as well. If a guide tells you to set these in the file, they no longer exist there. In 1.21.9, four keys became gamerules: allow-nether (now allow_entering_nether_using_portals), enable-command-block (now command_blocks_work), pvp and spawn-monsters (now spawn_monsters). Change them with gamerule instead.
Teleport, give and the other player commands
tp (short for teleport) and give are level 2 on Java. The basic forms:
tp <targets> <destination>moves players to another player or entity, for exampletp Alice Bob.tp <targets> <x> <y> <z>moves them to coordinates.~makes a coordinate relative, sotp Alice 100 ~3 100works. Named players have to be online.give <targets> <item> [<count>]hands over items, for examplegive Alice diamond_sword 1. The count defaults to 1, and if the inventory is full the rest drops at their feet. Java items with extra data use square-bracket components, so old NBT-style/giveexamples from older guides fail on current Java.
Bedrock uses the same shapes for the basics: tp <victim> <destination> and give <player> <itemName> [amount]. Other level-2 commands in the same family: kill, effect, clear, summon, xp (short for experience) and locate.
For chat, say sends a message to everyone and tellraw sends a formatted JSON message. msg, tell and w are private messages anyone can use.
Save, back up and stop the server
These are level 4 on Java and dedicated-server only:
save-allsaves to disk.save-all flushsaves every player and chunk immediately and freezes the server for a moment.save-offstops the server writing the world to disk so you can copy it safely. Changes queue up meanwhile, and the setting resets every time the server restarts.save-onturns writing back on.stopshuts the server down cleanly. Use it instead of closing the window.
The sequence I use for a manual backup: save-off, save-all flush, copy the world folder, then save-on. Forget the last step and the server stops saving, so don't. The whole routine, including automating it, is in how to back up a Minecraft server.
Two more worth knowing: perf (level 4) captures performance info for 10 seconds when you're chasing lag, and reload (level 2) reloads loot tables, advancements and functions from disk. For lag hunting, my server lag guide goes further.
Bedrock Dedicated Server differences
Bedrock servers run most of the same gameplay commands, but admin commands work differently:
| Job | Java | Bedrock Dedicated Server |
|---|---|---|
| Whitelist | whitelist (on/off/add/remove/list/reload) | allowlist (whitelist still works as an alias), level 4, with no on/off subcommand (the switch is allow-list in server.properties) |
| Backups | save-off / save-all / save-on | save hold, save query, save resume |
| Stop | stop (level 4) | stop (level 4) |
| Kick | kick (level 3) | kick (level 1) |
| Default gamemode | defaultgamemode | Not a command. Set gamemode in server.properties |
| Permissions | Levels 0-4, ops.json | permissions.json, default-player-permission-level (visitor, member, operator) |
Bedrock backups work like this: save hold pauses writing and queues changes, save query lists every file and the byte count to truncate it to, and save resume turns writing back on. Copy the files, trimmed to those sizes, between the query and the resume.
Whitelisting differs in an important way. On Bedrock, players must be on the allowlist even if they're operators. Java ops get in regardless. The Bedrock command is allowlist add <name>, and names with spaces go in quotes.
Bedrock's permission model is its own thing too. op, deop and reload are level 2. allowlist, save, stop, permission (alias ops) and changesetting are level 4. Most gameplay commands, including gamemode, gamerule, give, tp, time and weather, are level 1. Run permission reload after editing permissions.json to apply it.
Two more gotchas. Bedrock gamerule names are still lowercase run-together words (keepinventory, mobgriefing, dodaylightcycle), not snake_case. And the "cheats only" commands work from the server console no matter what, but for players they need allow-cheats=true in server.properties. Making someone an operator on a Bedrock world turns cheats on and permanently disables achievements for that world, except on Realms.
Setting up a Bedrock server from scratch? Start with how to make a Minecraft Bedrock server.
Plugin commands (EssentialsX) aren't vanilla
If your server runs Paper or Spigot with plugins, some commands you've seen in guides come from a plugin, not Minecraft. Take EssentialsX: as of version 2.22.0 its command list runs to 163 commands, and it adds things vanilla doesn't have:
- Homes and warps:
/sethome [name],/home [name],/setwarp <warp>,/warp <warp>,/spawn,/back - Player-to-player teleporting:
/tpa <player>,/tpaccept,/tpdeny,/tphere <player> - Moderation:
/tempban <player> <datediff> [reason],/mute <player> [datediff] [reason],/seen <playername>,/vanish - Quality of life:
/fly [player] [on|off],/heal,/feed,/kit,/broadcast <msg>,/gc(memory, uptime and tick info)
EssentialsX also has its own versions of /tp, /give, /ban, /kick, /gamemode, /time, /weather and /list, so on a plugin server those names can behave differently than the vanilla ones in this guide. Plugin picks and install steps live in my roundup of the best Minecraft server plugins. Starting from nothing? How to make a Minecraft server walks through setup.