Skip to content

Minecraft Server Commands: The Complete Op & Admin List

Op yourself from the console, then run every Minecraft Java command — player management, gamerules, world tools, scoreboards, /execute, data and functions, with permission levels.

Updated September 12, 2026
Minecraft

Minecraft server commands let you grant admin, manage players, change gamerules, control time and weather, teleport, script behaviour with /execute, and moderate your world without ever leaving the game. This guide covers how to become an operator, where commands can be typed, and every command worth knowing on a Java Edition server.

This guide covers Java Edition dedicated servers

Bedrock dedicated servers share most gameplay commands but use a different permission system and lack many Java-only commands. Differences are covered in section 10, and setup is in Setting up your Bedrock Minecraft server.

1. How Operator Permission Works

An operator (op) is a player granted elevated permissions. Ops are stored in ops.json in your server directory and persist across restarts.

Java Edition grades operators on a numeric permission level from 0 to 4, and that number is what decides whether a given command is allowed. In short: level 1 bypasses spawn protection, level 2 unlocks the gameplay commands (/gamemode, /give, /tp, /gamerule and command blocks), level 3 adds player moderation (/ban, /kick, /op, /whitelist), and level 4 adds the server-process commands such as /stop. op-permission-level in server.properties sets the level a player is given when you run /op, and it defaults to 4 — so a plain /op PlayerName gives full control.

Assigning levels is a topic of its own

What each level unlocks, how op-permission-level differs from the per-player level field in ops.json, and how to give one moderator a lower level than the rest are covered in Minecraft Op Permission Levels: 0 to 4 Explained. The commands themselves are below.

2. Where to Type Commands

Location Slash needed? Notes
Server console No — type op Steve Always runs at permission level 4
In-game chat Yes — type /op Steve Requires op, and the right level
Command block Yes Needs the command_blocks_work game rule to be true — it is true by default
Datapack function No Runs at level 2 by default
op YourUsername
Granting your first operator — from the console, no slash

Grant your first op from the console

You cannot op yourself in-game before you are an op. Open the Console tab on your rented Minecraft server and run the line above. From then on you can manage everything from chat.

3. Operator & Player Management

Command What it does
/op <player> Grant operator status
/deop <player> Revoke operator status
/kick <player> [reason] Disconnect a player
/ban <player> [reason] Ban by account
/ban-ip <player|address> Ban an IP address
/banlist [players|ips] Show active bans
/pardon <player> Unban an account
/pardon-ip <address> Unban an IP
/list [uuids] List online players
/whitelist add <player> Add to the whitelist
/whitelist remove <player> Remove from the whitelist
/whitelist on / off Enable or disable the whitelist
/whitelist list Show whitelisted players
/whitelist reload Re-read whitelist.json after editing by hand
/setidletimeout <minutes> Auto-kick players idle beyond N minutes (0 disables)
/transfer <host> [port] [players] Move players to another server (1.20.5+)

Turning the whitelist on does not kick anyone

/whitelist on only blocks new connections from non-whitelisted players. Anyone already online stays until they disconnect. Set enforce-whitelist=true in server.properties if you want existing non-whitelisted players removed on reload.

The files these commands write — whitelist.json, banned-players.json and banned-ips.json — have rules of their own, including why a username is not a safe thing to key an entry on and why editing them on a running server loses the edit. Minecraft Whitelist and Ban Management covers both lists in full.

4. Player State & Items

Command What it does
/gamemode <mode> [player] survival, creative, adventure, spectator
/defaultgamemode <mode> Mode applied to players joining for the first time
/give <player> <item> [count] Give an item, e.g. /give Steve minecraft:diamond 64
/clear [player] [item] [count] Clear inventory, or just one item
/item replace <target> <slot> with <item> Overwrite a specific inventory or armour slot
/item modify <target> <slot> <modifier> Apply an item modifier from a datapack
/loot give <player> <source> Generate loot-table drops directly into an inventory
/loot spawn <pos> <source> Drop loot-table items in the world
/effect give <player> <effect> [sec] [amp] Apply a status effect
/effect clear <player> [effect] Remove effects
/enchant <player> <enchantment> [level] Enchant the held item
/experience add <player> <n> [levels|points] Grant XP — /xp is the legacy alias
/experience query <player> <levels|points> Read a player's XP
/attribute <target> <attribute> … Modify a base attribute such as max health
/kill [target] Kill a player or entity
/damage <target> <amount> [type] Deal a precise amount of typed damage (1.19.4+)
/ride <target> mount <vehicle> Force an entity to ride another (1.19.4+)
/ride <target> dismount Dismount
/spectate <target> [player] Force a spectator to follow an entity

Three of these are easier to build than to type

/give with NBT, /enchant at the right level, and banner patterns are all fiddly by hand. The give command generator builds the command for you, the enchantment calculator works out what a level actually costs and which enchantments conflict, and the banner maker turns a design into the /give command that produces it.

5. World, Time & Weather

Command What it does
/time set <day|noon|night|midnight> Jump to a time of day
/time set <ticks> Set exact time — 0 is dawn, 6000 noon, 18000 midnight
/time add <ticks> Advance time
/weather <clear|rain|thunder> [seconds] Set the weather
/difficulty <peaceful|easy|normal|hard> Change difficulty
/gamerule <rule> [value] Read or set a gamerule (see below)
/setworldspawn [pos] Set the world spawn point
/spawnpoint <player> [pos] Set an individual player's spawn
/worldborder set <blocks> [seconds] Resize the world border
/worldborder center <x> <z> Recentre the border
/worldborder damage <amount> Damage dealt outside the border
/worldborder warning distance <n> Warning distance
/seed Show the world seed
/locate structure <id> Find the nearest structure
/locate biome <id> Find the nearest biome
/place structure <id> [pos] Place a structure, feature or jigsaw (1.19+)
/fillbiome <from> <to> <biome> Overwrite the biome in a region (1.19.3+)
/forceload add <from> [to] Keep chunks loaded permanently
/forceload remove <from> [to] Stop force-loading
/tick freeze / unfreeze Pause or resume the game tick (1.20.3+)
/tick step <ticks> Advance a frozen world by N ticks
/tick rate <n> Change ticks per second — default 20
/tick query Report current tick rate and load

Gamerules worth knowing:

Gamerule Effect
keep_inventory true Keep items and XP on death
advance_time false Freeze time — was doDaylightCycle
advance_weather false Freeze weather — was doWeatherCycle
mob_griefing false Stop creepers and endermen altering blocks
fire_spread_radius_around_player 0 Fire stops spreading. Replaces doFireTick, which was removed in 1.21.11. Default 128 blocks; -1 is unlimited
spawn_phantoms false No phantoms — was doInsomnia
random_tick_speed <n> Crop and decay speed — default 3
show_death_messages false Hide death messages in chat
show_advancement_messages false Hide advancement spam — was announceAdvancements
players_sleeping_percentage <n> Share of players needed to skip night — default 100
max_entity_cramming <n> Entities stacked before crush damage — default 24, 0 disables
respawn_radius <n> Spread of the initial spawn area — default 10, was spawnRadius
pvp false Disable player-versus-player damage — replaced the pvp server property in 1.21.9
spawn_monsters false Stop hostile mobs spawning naturally — replaced spawn-monsters in 1.21.9
allow_entering_nether_using_portals false Close the Nether — replaced allow-nether in 1.21.9
command_blocks_work false Disable command blocks — replaced enable-command-block in 1.21.9

The four rules above replaced server.properties keys in 1.21.9

pvp, spawn-monsters, allow-nether and enable-command-block no longer exist in server.properties. 1.21.9 removed them and moved the settings to the game rules above, and 1.21.2 removed spawn-animals with no replacement at all. Editing those lines in server.properties on a current server does nothing — the file is read, the keys are ignored. All four rules default to true. See Getting started with your Minecraft server for the full before-and-after mapping.

Game rule names changed in 1.21.11

Java Edition 1.21.11 moved game rules into a registry and renamed every one of them from camelCase to snake_case — keepInventory became keep_inventory. Several were not simple case changes: doDaylightCycleadvance_time, doWeatherCycleadvance_weather, announceAdvancementsshow_advancement_messages, spawnRadiusrespawn_radius, naturalRegenerationnatural_health_regeneration, maxCommandChainLengthmax_command_sequence_length. Three had their meaning inverted along with the rename, so a straight find-and-replace will get them backwards: disableRaidsraids, disableElytraMovementCheckelytra_movement_check, and disablePlayerMovementCheckplayer_movement_check — each now takes the opposite value to the rule it replaced. On 1.21.10 and earlier, keep using the old camelCase names.

random_tick_speed is a performance trap

Raising it makes crops grow faster, but the cost scales across every loaded chunk. Values above roughly 20 will visibly hurt tick rate on a busy server. /tick rate is a similar trap — lowering it slows the entire simulation, not just mobs. If you are chasing performance, see Managing your Minecraft server.

6. Teleporting & Building

Command What it does
/tp <target> Teleport yourself to a player
/tp <player> <target> Teleport one player to another
/teleport <target> <x> <y> <z> Teleport to coordinates
/teleport <target> <pos> facing <pos> Teleport and face a point
/spreadplayers <x> <z> <spread> <max> <teams> <targets> Scatter players randomly
/rotate <target> <rotation> Rotate an entity without moving it (1.21.2+)
/setblock <pos> <block> [mode] Place a single block
/fill <from> <to> <block> [mode] Fill a region — max 32,768 blocks
/clone <from> <to> <dest> [mode] Copy a region
/summon <entity> [pos] [nbt] Spawn an entity
/particle <name> [pos] Emit particles
/playsound <sound> <source> <player> Play a sound
/stopsound <target> [source] [sound] Stop a playing sound

Coordinates accept ~ for relative and ^ for directional — /tp ~ ~10 ~ lifts you ten blocks.

7. Scoreboards, Teams & Tags

These drive most minigames, and they are how you track state without a plugin.

Command What it does
/scoreboard objectives add <name> <criteria> [display] Create an objective
/scoreboard objectives list List objectives
/scoreboard objectives remove <name> Delete an objective
/scoreboard objectives setdisplay <slot> [name] Show it in the sidebar, list or below-name slot
/scoreboard players set <target> <objective> <n> Set a score
/scoreboard players add <target> <objective> <n> Add to a score
/scoreboard players get <target> <objective> Read a score
/scoreboard players reset <target> [objective] Clear scores
/scoreboard players operation <t> <obj> <op> <t2> <obj2> Arithmetic between scores
/scoreboard players enable <target> <objective> Allow a trigger objective to be used
/team add <name> [display] Create a team
/team join <name> [members] Add members
/team leave <members> Remove members
/team modify <name> <option> <value> Set colour, friendly fire, nametag visibility
/team empty <name> / /team remove <name> Clear or delete
/tag <targets> add <name> Tag entities for later selection
/tag <targets> remove <name> / list Manage tags
/trigger <objective> [add|set <n>] The one scoreboard command non-ops can run
/teammsg <message> Message your team — alias /tm
/bossbar add <id> <name> Create a boss bar
/bossbar set <id> <value|max|color|players…> Configure it
/bossbar list / /bossbar remove <id> Manage boss bars

8. Advanced: execute, Data & Functions

/execute is the most powerful command in the game — it runs another command as, at, or conditional on something else.

execute as @a at @s run tp ~ ~10 ~
execute as @e[type=zombie] run tag @s add tracked
execute if score Steve deaths matches 5.. run kick Steve
execute store result score Steve ping run data get entity Steve ping
Reading /execute
Subcommand What it changes
as <targets> Who runs the command
at <targets> Where it runs from
positioned <pos> / rotated <rot> Override position or rotation
facing <pos|entity> Point the execution direction
align <axes> / anchored <eyes|feet> Snap to block grid, or use eye height
in <dimension> Run in another dimension
on <relation> Hop to a related entity — vehicle, passenger, owner, attacker
if / unless Condition on block, blocks, entity, score, predicate, data, biome, dimension, loaded
store result|success Write the outcome into a score, NBT path or bossbar
run <command> The command to execute

NBT and data:

Command What it does
/data get <entity|block|storage> <target> [path] Read NBT
/data merge <target> <nbt> Merge NBT in
/data modify <target> <path> <set|append|insert…> Precise NBT edits
/data remove <target> <path> Delete an NBT path

Datapacks, functions and progression:

Command What it does
/function <namespace:name> Run a datapack function
/schedule function <name> <time> [append|replace] Run a function later
/schedule clear <name> Cancel a scheduled function
/datapack list [available|enabled] Show datapacks
/datapack enable <name> / disable <name> Toggle a datapack
/advancement grant <targets> <everything|only|from|through|until> Award advancements
/advancement revoke <targets> … Take them back
/recipe give <targets> <recipe|*> Unlock crafting recipes
/recipe take <targets> <recipe|*> Lock them again
/random value <range> / /random roll <range> Random numbers for map logic (1.20.2+)
/return <value> / /return fail / /return run <cmd> Return a value from a function (1.20.2+)

Target selectors are where the real power is

@a all players, @p nearest, @r random, @s self, @e all entities — each accepts filters: @e[type=zombie,distance=..10,limit=5,sort=nearest]. Combined with /execute this replaces a surprising amount of what people install plugins for.

Newer and specialist commands. These are the least-known part of the command set — most were added recently and several are aimed at map and datapack authors rather than day-to-day moderation.

Command What it does Level
/waypoint Manage waypoints shown on the locator bar 2
/dialog Show a dialog window to clients 2
/stopwatch Create and modify real-time stopwatches 2
/swing Swing an entity's hands 2
/fetchprofile Fetch a player profile 2
/test Manage and run GameTests 2
/version Report the server version
/posteffect Add or remove post-processing effects on players 2

/publish and /unpublish do not work on a dedicated server

Both open or close a single-player world to the local network, so they exist only in the integrated server built into the game client. Running them on your hosted server returns an error — this is expected, not a broken install. /posteffect is also newer than most current server builds, so check your version if it is unrecognised.

9. Server Operations & Messaging

Command What it does
/save-all [flush] Force a world save
/save-off Pause saving — use before an external backup
/save-on Resume saving
/stop Shut down cleanly
/reload Reload datapacks, loot tables and functions
/say <message> Broadcast as the server
/msg <player> <message> Private message (aliases: /tell, /w)
/tellraw <player> <json> Send formatted JSON text
/title <player> <title|subtitle|actionbar> <json> On-screen titles
/me <action> Emote
/help [command] List commands, or show one command's syntax
/debug start|stop|function Profile a tick sample
/perf start|stop Record a performance snapshot
/jfr start|stop Java Flight Recorder profiling for deep analysis

Always pair /save-off with /save-on

Running /save-off and forgetting to re-enable it means hours of progress live only in memory — a crash loses all of it. The safe manual sequence is below. Scheduled backups on the GSK panel handle this for you.

save-off
save-all flush
# copy your world folder now, then:
save-on
Safe manual backup sequence

10. Bedrock Edition Differences

Bedrock dedicated servers use permissions.json with three tiers — visitor, member, operator — rather than Java's numeric levels, and ops are granted with op <player> from the console or by editing that file.

Most gameplay commands carry over (/gamemode, /give, /time set, /weather, /tp, /kill, /effect, /scoreboard, /tag, /execute), but Java-only commands do not exist there — including /advancement, /attribute, /debug, /fetchprofile, /fillbiome, /forceload, /jfr, /posteffect, /publish, /random, /return, /rotate, /stopwatch, /swing, /test, /tick, /unpublish and /waypoint. Bedrock's /execute also uses a different syntax before 1.19.30.

Bedrock adds a few of its own, such as /clearspawnpoint for removing a player's spawn. Moderation is usually handled by allowlist (allowlist.json) or an add-on layer, since Bedrock has no native /ban.

If you are running both editions together, see Setting up CrossPlay for Minecraft.

11. FAQ

How do I make myself an admin on my Minecraft server?

Open your server console and run op YourUsername with no slash. You cannot op yourself from in-game chat, because doing so already requires operator permission. Once opped, /op works from chat for everyone else.

Why does my command say "You do not have permission to use this command"?

Either you are not an operator, or op-permission-level in server.properties is set below the level that command needs. /stop requires level 4; /ban and /op need level 3; /gamemode and /give need level 2. Restart the server after changing that value.

Do I type a slash in the server console?

No. The console runs commands directly — type op Steve, not /op Steve. The slash is only needed in in-game chat and in command blocks.

How do I stop losing my items when I die?

Run /gamerule keep_inventory true (/gamerule keepInventory true on 1.21.10 and earlier). It applies to every player on the server and persists across restarts, since gamerules are saved with the world.

Why did /whitelist on not kick the players already online?

The whitelist only filters new connections. Existing players stay until they disconnect. Set enforce-whitelist=true in server.properties to have non-whitelisted players removed when the whitelist reloads.

What is /execute actually for?

It runs a command from someone else's perspective, or only when a condition holds. execute as @a at @s run tp ~ ~10 ~ lifts every player ten blocks from wherever they individually stand — one command instead of one per player. Combined with /scoreboard and target selectors it is how most vanilla minigames are built.

Can I run commands automatically on a schedule?

Yes, three ways without a plugin: a datapack function on a tick cycle, /schedule function for a one-off delay, or a command block on a redstone clock. For plugin-based scheduling, see How to install plugins for Java.


Made with 💜 by GameServerKings

Need a Minecraft server?

Deploy an instantly-provisioned Minecraft server on high-clock hardware — DDoS protected, no contracts, cancel anytime.

From $4.80 /month