Commands
Reason: This page is too confusing for some people. They have different editions of Minecraft.
Other Reason: This article is about multiple different concepts all related to commands, which all have grown over time. As such this article has grown very long and it's difficult to navigate this page.
Commands, also known as console commands, are advanced features activated by typing certain strings of text.
Contents
Usage[edit]
In the client, commands are entered via the chat window, which is displayed by pressing the T / [BE & EE only] /
[BE only], or, / key. Using the / key also enters the forward-slash that commands require as a prefix, so it is a useful shortcut. The ↑ and ↓ keys can be used to view previously entered text, including all previously executed commands. Pressing Tab ↹ while entering commands cycles through possible commands or arguments, and can be used to auto-enter the coordinates of the block looked at before entering the chat.
When the cursor is at a location corresponding to some types of argument (such as an ID), a list of applicable values appears above the text box. If the argument is already containing some characters, the list displays only those values containing the typed command/text.
Commands may also be entered in a multiplayer server's console, but are not preceded by a / when entered this way. A server owner running commands in this way is often referred to as "ghosting".
Commands in command blocks can be preceded by a slash, but it is not required. Commands in a command block usually also require an argument, like a player's username.
The majority of commands are available only in the following situations:
- In singleplayer, entered by player or command block if cheats are enabled.
- In functions or scripts, as part of a data pack or add-on.
- In a multiplayer game, entered by an operator or command block.
- In a multiplayer server, entered in the console.
- In other multiplayer games, entered by the player who opened a LAN game with cheats enabled, or is hosting their own multiplayer server
- In a WebSocket server, if cheats are enabled.[Bedrock Edition only]
Some player commands are also available even when cheats are not enabled.
Note: In Java Edition, in singleplayer worlds where cheats were not enabled at creation, they can be enabled on a temporary basis by opening the current game session to LAN play ( Esc → "Open to LAN", then "Allow Cheats" button and "Start LAN World"). The player does not actually need to be on a LAN or have others join. This is not permanent but allows the use of commands until the player quits the world, and changes the player makes via commands (items spawned, etc.) are saved with the world. The player can do this each time the player starts playing the world again. Note that this disables game pausing for the duration, so while open to LAN, the player should get somewhere safe or reload their world before using the Game Menu. The player can disable the LAN world by reloading the world. To permanently enable cheats, the level.dat has to be edited.
In Bedrock Edition, cheats can be toggled at any time in the "Game" tab of the settings menu. Enabling cheats in a world permanently prevents players from unlocking achievements in that world, even if cheats are later turned off.
Relative world coordinates: Tilde notation[edit]
Ordinarily, position arguments are expressed as a set of three absolute world coordinates (X Y Z
), each number representing a distance along an axis from the world origin. See coordinates.
Each coordinate can alternatively be expressed as a relative world coordinate, written in tilde notation (~ΔX ~ΔY ~ΔZ
). A number following a tilde (~) describes an offset from execution position along one of the world axes, and a lone tilde assumes an offset of 0; for example, the position ~10 ~ ~-30
means "10 blocks east (+X) and 30 blocks north (–Z) of here."
Essentially, ~ ~ ~
is shorthand for the command's current position.
Relative world coordinates can mix with absolute coordinates; for example, /tp ~ 64 ~
keeps the sender's X and Z positions unchanged but teleports them to an absolute height of 64 blocks.
The /execute
command can update a command's current position, changing the meaning of ~ ~ ~
.
In Java Edition, pressing F3 replaces the crosshair with a display of these three directions: +X in red, +Y in green, +Z in blue (eastward, upward, and southward, respectively).
Local coordinates: Caret notation[edit]
The other way to describe positions is with local coordinates, written entirely in caret notation (^ΔXlocal ^ΔYlocal ^ΔZlocal
). Like relative coordinates, these describe positions relative to where a command is executed from, but with different directions. A number following a caret (^) is an offset within a moving, entity-centric frame: This coordinate system is centered at the sender's feet, with +Xlocal directed to its left, +Ylocal directed upward, and +Zlocal directed in the direction the sender faces. (Note that an entity with rotation 0 0
has its local frame aligned with the world frame.)
Described in other terms, these coordinates express ^ΔSway ^ΔHeave ^ΔSurge
The origin is the position of the command's execution. For example, in /tp
the offset is from the position of execution.
For example, /tp ^ ^ ^5
teleports the player 5 blocks forward. If they turn around and repeat the command, they are teleported back to where they started.
In Java Edition, pressing F3+B displays the +Zlocal direction for all entities as a blue ray centered on their heads
Local coordinates cannot be mixed with world coordinates (e.g. ^ 0 ^
, ^ 0 ~1
), and attempting so alerts the typist, "Cannot mix world & local coordinates (everything must either use ^ or not)." So such a command fails or cannot be executed.
A command's execution position, rotation, dimension, and anchor all change the effect of using ^ ^ ^
. These can be updated by the /execute
command.
Target selectors[edit]
In most commands where entities may be specified as an argument, it is possible to "target" one or more entities satisfying certain conditions. To target entities by condition, choose a target selector variable and, optionally, one or more target selector arguments to modify the conditions to be satisfied.
For example, to change the game mode of all players on team Red to creative mode, instead of specifying them by name individually:
/gamemode creative @a[team=Red]
[Java Edition only]
Target selector variables
Variable | Function |
---|---|
@p |
nearest player |
@r |
random player |
@a |
all players |
@e |
all entities |
@s |
entity executing the command |
@c |
the player's agent[Education Edition only] |
@v |
all agents[Education Edition only] |
A target selector variable identifies the broad category of targets to select. There are five (or, in Education Edition, seven) variables:
@p
- Targets the nearest player from the command's execution. If there are multiple nearest players, caused by them being precisely the same distance away, the player who most recently joined the server is selected.
- Target selector arguments may be used to specify what category of players to select the nearest player from. For example,
@p[team=Red]
targets the nearest player on team Red even if there are other players closer.
- The
c
[BE only] orlimit
[JE only] target selector argument can be used to increase the number of nearest players targeted (for example,@p[c=3]
or@p[limit=3]
targets the three nearest players, respectively).
In Bedrock Edition, @p
ignores dead players. When c
is negative, it will reverse the order of targeting (for example, @p[c=-1] will target the farthest player).
@r
- Targets a random player.
- Target selector arguments may be used to specify what category of players to select a random player (or more) from. For example,
@r[team=Red]
targets a random player from team Red.
- The
c
[BE only] orlimit
[JE only] target selector argument can be used to increase the number of nearest players targeted (for example,@p[c=3]
or@p[limit=3]
targets the three nearest players, respectively).
- In Bedrock Edition, can use
@r
to target non-player entities via thetype
selector argument, while in Java Edition cannot. In Java Edition To select a random entity, use@e[sort=random,limit=1]
instead. - In Bedrock Edition,
@r
ignores dead entities.
@a
- Targets every player (alive or dead) by default unless Target selector arguments are used. For example,
@a[team=Red]
only targets all players on team Red.
@e
- Targets all alive entities (including players) in loaded chunks. It ignores dead entities.
- Target selector arguments may be used to specify what category of entities to target from. For example,
@e[type=cow]
only targets cows.
@s
- Targets the entity (alive or dead) that executed the command. It does not target anything if the command was run by a command block or server console.
- Target selector arguments may be used to specify whether the executor is actually eligible to be targeted. For example,
@s[type=cow,team=Red]
targets the executor of the command if the executor was a cow on team Red.
@c
[Education Edition only]
- Target the player's agent only.
- Target selector arguments may be used to target the player's agent. For example,
/tp @c 50 60 40
teleports the player's agent only to the specified location.
@v
[Education Edition only]
- Target all agents. Works only if more than one agent exists.
- Target selector arguments may be used to target all agents. For example,
/remove @v
removes all agents.
Target selector arguments
Selection by Position | |
---|---|
Argument(s) | Selection criteria |
x , y , z
|
coordinate |
distance [Java Edition only]r , rm [Bedrock Edition only]
|
distance |
dx , dy , dz
|
volume dimensions |
Selection by Scoreboard Values | |
Argument(s) | Selection criteria |
scores
|
scores |
tag
|
tag |
team [Java Edition only]
|
team name |
Selection by Traits | |
Argument(s) | Selection criteria |
limit ,sort [Java Edition only]c [Bedrock Edition only]
|
limit |
level [Java Edition only]l ,lm [Bedrock Edition only]
|
experience level |
gamemode [Java Edition only]m [Bedrock Edition only]
|
game mode |
name
|
entity name |
x_rotation [Java Edition only]rx ,rxm [Bedrock Edition only]
|
vertical rotation |
y_rotation [Java Edition only]ry ,rym [Bedrock Edition only]
|
horizontal rotation |
type
|
entity type |
family [Bedrock Edition only]
|
entity family |
nbt [Java Edition only]
|
nbt |
advancements [Java Edition only]
|
advancements |
predicate [Java Edition only]
|
predicate |
After a target selector, optional arguments can be used to narrow down the set of targets to a group that also matches certain criteria. When used with @a
or @e
, arguments narrow down the targets from the full list to a specific group. When used with @p
or @r
, the nearest or random player is selected from the group. When used with @s
, the player using the command is targeted only if they would be in the narrowed group.
Argument-value pairs appear within square brackets after the target selector variable, separated by commas:
@<variable>[<argument>=<value>,<argument>=<value>,...]
.
In Java Edition, arguments and values are case-sensitive. Spaces are allowed around the brackets, equal signs, and commas, except in Java Edition between the target variable and the first bracket. Commas must be used to separate argument-value pairs.
If there are multiple argument-value pairs, they all must be satisfied to add a potential target to the group. (In other words, they are AND-ed together).
- Position arguments
[x=<value>,y=<value>,z=<value>]
- Define a position in the world the selector starts at, for use with the distance argument or the volume arguments. Defining the position alone can be used with a target selector that selects the nearest or farthest entities from those coordinates, but it otherwise has no use, so applying it (and only it) to
@e
still selects all entities in the same dimension. Cannot duplicate any one of these three arguments. - The positional components are doubles, allowing for values like
+12.34
, and they are not center-corrected, meaningx=0
is not corrected tox=0.5
. - In Bedrock Edition, tilde notation is available for selector argument coordinates.
- Selecting targets by distance
- Filter target selection based on their Euclidean distances from some point, searching for the target's feet (a point at the bottom of the center of their hitbox). If the positional arguments are left undefined, radius is calculated relative to the position of the command's execution. Cannot duplicate this argument.
- Java Edition:
[distance=<value>]
- Specifies the range of distance. Only unsigned values are allowed.- Ranges are supported to select a specific region:
@e[distance=10]
— Target all entities exactly ten blocks away.@e[distance=8..16]
— Target all entities more than eight blocks, but less than 16 blocks away (inclusive).@e[distance=..16]
— Target all entities between source and 16 blocks away (inclusive).
- Ranges are supported to select a specific region:
- Bedrock Edition:
[r=<value>]
- Specifies the maximum range to find entities. Only unsigned values are allowed.[rm=<value>]
- Specifies the minimum range of distance. Only unsigned values are allowed.- As such:
@e[rm=10,r=10]
— Target all entities exactly ten blocks away.@e[rm=8,r=16]
— Target all entities from 8 to 16 blocks away.
- As such:
- Selecting targets by volume
[dx=<value>,dy=<value>,dz=<value>]
- Filter target selection based on their x-difference, y-difference, and z-difference from some point, as measured from the closest corner of the entities' hitboxes[Java Edition only] or by their feet[Bedrock Edition only]. Cannot duplicate any one of these three arguments.- This can be interpreted as creating a rectangular volume defined by an initial position (<x>,<y>,<z>) and diagonal vector (<dx>,<dy>,<dz>), then selecting all entities whose hitboxes are at least partially contained by that volume[Java Edition only], or whose feet are within that volume[Bedrock Edition only]. If the positional arguments are left out, the selection is interpreted as originating from the position of the command's execution. Any values are allowed, including signed and fractional numbers.
- Note that
dx
,dy
,dz
specify signed differences from the given coordinate. They do not specify a separate coordinate, nor do they extend in both the positive and negative directions. - Examples in Java Edition:
@e[x=1,dx=4,y=2,dy=5,z=3,dz=6]
— Select all entities whose hitbox collides with the block region (1~5, 2~7, 3~9) (or, mathematically speaking, the region that is {(x,y,z)∈R3|x∈[1.0,5.0),y∈[2.0,7.0),z∈[3.0,9.0)}).@e[x=1,y=2,z=3,dx=0,dy=0,dz=0]
— Select all entities whose hitbox contains the point (1,2,3).
- Examples in Bedrock Edition:
@e[x=1,dx=4,y=2,dy=5,z=3,dz=6]
— Select all entities whose feet are within the block region (1~5, 2~7, 3~9).@e[x=1,y=2,z=3,dx=0,dy=0,dz=0]
— Select all entities whose feet contains the point (1, 2, 3).
- It is possible to combine selection by distance and selection by volume, in which case the command select targets only within the overlap of both regions (within a certain radius/I of the volume's initial point and not outside the defined volume).
- Selecting targets by scores
[scores={<objective>=<value>,...}]
- Filter target selection based on their scores in the specified objectives. Cannot duplicate this argument.- All tested objectives are in a single tag, with a list of individual score selectors between braces afterward. The selectors inside the braces support ranges.
@e[scores={myscore=10}]
— Select all entities with a score in objective myscore of exactly ten.@e[scores={myscore=10..12}]
— Select all entities with a score in objective myscore of between ten and 12 (inclusive).@e[scores={myscore=5..}]
— Select all entities with a score in objective myscore of five or greater.@e[scores={myscore=..15}]
— Select all entities with a score in objective myscore of 15 or less.@e[scores={foo=10,bar=1..5}]
— Select all entities with a score in objective foo of exactly ten, and a score in objective bar of between one and five (inclusive).
- In Bedrock Edition,
!
can be used to invert selection.@e[scores={myscore=10}]
— Select all entities with a score in objective myscore other than ten.@e[scores={myscore=10..15}]
— Select all entities with a score in objective myscore of 0 to 10 (inclusive), and 15 or greater.
- Selecting targets by team[Java Edition only]
- Cannot duplicate this argument.
[team=<teamName>]
- Filter target selection to those who are on a given team.[team=!<teamName>]
— Filter to those who are not on a given team.[team=]
— Filter to those who are teamless.[team=!]
— Filter to those who have some team.
- Limiting and sorting target selection
- Cannot duplicate these arguments.
- Java Edition:
[limit=<value>]
- Selects only the specified number of targets. - Bedrock Edition:
[c=<value>]
- Selects only the specified number of targets. Usually in order of distance from the command executor.
- When using the variables
@p
and@r
, this argument defaults to one. Applying the limiting argument to them may artificially increase the number of nearest or random targets selected. When applying this argument to@a
or@e
, this argument returns only a limited number of targets.
- In Java Edition:
[limit=<value>,sort=(nearest|furthest|random|arbitrary)]
- Limit the number of targets, and specify selection priority.sort=nearest
— Sort by increasing distance. (Default for@p
)sort=furthest
— Sort by decreasing distance.sort=random
— Sort randomly. (Default for@r
)sort=arbitrary
— Do not sort. (Default for@e
,@a
)
- In Bedrock Edition:
- For
@p
,@a
, and@e
,[c=<value>]
selects only the specified number of targets in order of distance from the command executor.- When
c
is negative, it will reverse the order of targeting (for example, @p[c=-1] will target the farthest player).
- When
- For
- Examples in Java Edition:
@a[limit=3,sort=nearest]
or@p[limit=3]
— Select the nearest three players.@a[limit=4,sort=furthest]
— Select the furthest four players.@a[limit=2,sort=random]
or@r[limit=2]
— Select two players, chosen randomly.
- Examples in Bedrock Edition:
@a[c=3]
— Select the nearest three players.@a[c=-4]
— Select the furthest four players.@r[c=2]
— Select two living players, chosen randomly.
- Selecting targets by experience level
- Filter target selection based on their experience levels. This naturally filters out all non-player targets.
- Java Edition:
[level=<value>]
- Cannot duplicate this argument. This selector supports ranges:
@a[level=10]
— Select all players who have exactly ten levels.@a[level=8..16]
— Select all players who have between eight and 16 levels (inclusive).
- Cannot duplicate this argument. This selector supports ranges:
- Bedrock Edition:
[l=<value>]
- the maximum level to search for.[lm=<value>]
- the minimum level to search for.- Cannot duplicate any one of these two arguments. As such:
@a[lm=10,l=10]
— Select all players who have exactly ten levels.@a[lm=8,l=16]
— Select all players who have between eight and 16 levels (inclusive).
- Cannot duplicate any one of these two arguments. As such:
- Selecting targets by game mode
- This naturally filters out all non-player targets. Cannot duplicate this argument.
- Java Edition:
[gamemode=<gamemodeName>]
— Filter target selection to those who are in the specified game mode.[gamemode=!<gamemodeName>]
— Filter target selection to those who are not in the specified game mode.- Bedrock Edition:
[m=<gamemodeName>]
— Filter target selection to those who are in the specified game mode.[m=!<gamemodeName>]
— Filter target selection to those who are not in the specified game mode.
- Permitted values for <gamemodeName> are
spectator
[Java Edition only],adventure
,creative
, andsurvival
. In Bedrock Edition, the shorthand valuesa
and2
,c
and1
, ands
and0
may be used for Adventure mode, Creative mode, and Survival mode respectively.
- Examples in Java Edition:
@a[gamemode=survival]
— Select all players who are in Survival mode.@a[gamemode=!spectator]
— Select all players who are not in Spectator mode.
- Examples in Bedrock Edition:
@a[m=survival]
or@a[m=s]
or@a[m=0]
— Select all players who are in Survival mode.@a[m=!creative]
or@a[m=!c]
or@a[m=!1]
— Select all players who are not in Creative mode.
- Selecting targets by name
- Cannot duplicate this argument.
[name=<givenName>]
— Filter target selection to all those with a given name.[name=!<givenName>]
— Filter target selection to all those without a given name.- This is a string, so spaces are allowed only if quotes are applied. This cannot be a JSON text compound.
@e[name=!Steve]
- Select all entities that are not named "Steve".
- Selecting targets by vertical rotation
- Filter target selection based on their pitch, or more specifically their declination from the horizon, measured in degrees. Values range from -90 (straight up) to 0 (at the horizon) to +90 (straight down). Cannot duplicate this argument.
- Java Edition:
[x_rotation=<value>]
- This argument supports ranges:
@e[x_rotation=0]
— Select all entities that are looking directly at the horizon.@e[x_rotation=30..60]
— Select all entities that are looking between 30° and 60° (inclusive) below the horizon.@e[x_rotation=45..]
— Select all entities that are looking 45° or more below the horizon.@e[x_rotation=..0]
— Select all entities that are looking at or above the horizon.
- This argument supports ranges:
- Bedrock Edition:
[rx=<value>]
- the maximum x-rotation value to search for.[rxm=<value>]
- the minimum x-rotation value to search for.- As such:
@e[rxm=0,rx=0]
— Selects all entities that are looking directly at the horizon.@e[rxm=30,rx=60]
— Selects all entities that are looking between 30° and 60° (inclusive) below the horizon.@e[rxm=45]
— Select all entities that are looking 45° or more below the horizon.@e[rx=0]
— Select all entities that are looking at or above the horizon.
- As such:
- Selecting targets by horizontal rotation
- Filter target selection based on their rotation in the horizontal XZ-plane, measured clockwise in degrees from due south (or the positive Z direction). Values vary from -180 (facing due north) to -90 (facing due east) to 0 (facing due south) to +90 (facing due west) to +180 (facing due north again). Cannot duplicate this argument.
- Java Edition:
[y_rotation=<value>]
- This argument supports ranges, and the maximum can reach values over 180. Some examples:
@e[y_rotation=0]
— Select all entities that are facing due south.@e[y_rotation=45]
— Select all entities that are facing 45° west of south.@e[y_rotation=180..270]
— Select all entities that are facing in the 90° between due north and due east (inclusive).@e[y_rotation=-90..0]
— Select all entities that are facing in the 90° between due east and due south (inclusive).@e[y_rotation=-90..90]
— Select all entities that are facing between due east and due west (inclusive), through south.@e[y_rotation=0..180]
— Select all entities that are not facing at all east.
- This argument supports ranges, and the maximum can reach values over 180. Some examples:
- Bedrock Edition:
[ry=<value>]
- the maximum y-rotation value to search for.[rym=<value>]
- the minimum y-rotation value to search for.- As such:
@e[rym=0,ry=0]
— Select all entities that are facing due south.@e[rym=45,ry=45]
— Select all entities that are facing 45° west of south.@e[rym=-90,ry=0]
— Select all entities that are facing in the 90° between due east and due south (inclusive).@e[rym=0,ry=180]
— Select all entities that are not facing at all east.
- Selecting targets by type
[type=<entityType>]
— Filter target selection to those of a specific entity type.[type=!<entityType>]
— Filter target selection to those not of a specific entity type.- The given entity type must be a valid entity ID or entity type tag[Java Edition only] used to identify different types of entities internally. The namespace can be left out if the ID is within the
minecraft:
namespace. (For example,creeper
for creepers,minecart
for regular minecarts,tnt
for primed TNT, etc.) Entity IDs or tags are case-sensitive. - In Bedrock Edition, when using the
@r
parameter, this argument defaults to the typeplayer
. Defining a type for this parameter can filter the random selection to other entities. - Examples:
@e[type=skeleton]
— Select all skeletons.@e[type=!chicken,type=!cow]
— Select all entities except chickens and cows.@e[type=#skeletons]
— Select all skeletons, wither skeletons, and strays.[Java Edition only]
- Selecting targets by family[Bedrock Edition only]
[family=<family>]
— Filter target selection to those of a specific entity family.[family=!<family>]
— Filter target selection to those not of a specific entity family.- Multiple family arguments are allowed. The given entity family can be any string. It does not include a namespace. These entity families are defined in an entities type_family behavior component. Default values used by the vanilla behavior pack include among others more broad terms like
mob
,inanimate
,monster
andundead
as well as more specific, smaller families likezombie
andskeleton
and single-mob families likewandering_trader
,enderman
andcreeper
. A single entity can be part of multiple families.@e[family=skeleton]
— Select all skeletons, wither skeletons and strays.@e[family=mob,family=!monster]
— Select all mobs that are not also monsters (so for example cows, chickens, pigs, but not zombies or skeletons).@e[family=monster,family=undead]
— Select all monsters that are also undead (that includes monsters like zombies and skeletons, but not creepers or endermen).
- Selecting targets by tag
[tag=<string>]
— Filter target selection to those that have at least one tag of the given name.[tag=!<string>]
— Filter to those that have no tags of the given name.[tag=]
— Filter to those that have exactly zero tags.[tag=!]
— Filter to those that have at least one tag.- Multiple tag arguments are allowed. All argument specifications must be fulfilled for an entity to be selected.
@e[tag=a,tag=b,tag=!c]
— Select all entities that have tags a and b, but not tag c.@r[tag=a]
— Select one random player who has tag a.
- Selecting targets by NBT[Java Edition only]
[nbt=<compoundTag>]
— Select all targets that have the specified NBT. The NBT is written in its command definition.[nbt=!<compoundTag>]
— Select all targets that does not have the specified NBT.- For example:
@a[nbt={OnGround:true}]
— Select all players on the ground.@e[type=sheep,nbt={Color:0b}]
— Select all sheep that are dyed white.@e[type=item,nbt={Item:{id:"minecraft:slime_ball"}}]
— Selects all slime ball item entities.@e[nbt={Tags:[a,b]}]
is the same as@e[tag=a,tag=b]
. The latter is simpler and reduces CPU load.
- Note: When matching the string form of namespaced IDs within a tag, the namespace cannot be omitted.
- Hence
@e[type=item,nbt={Item:{id:slime_ball}}]
cannot find any item entities as the id field always contains a namespaced ID-converted string.
- Hence
- Selecting targets by advancements[Java Edition only]
[advancements={<namespaced ID>=<bool>}]
— Select all targets that match the specified advancement and value.[advancements={<namespaced ID>={<criteria>=<bool>}}]
— Select all targets that match the specified advancement and value.- The argument name is the advancement ID (namespace can be left out when namespaced
minecraft
). The value is true or false. - For advancements with one criterion, testing for that criterion always gives the same results as testing for the advancement.
@a[advancements={story/form_obsidian=true}]
— Selects players who have achieved the advancement minecraft:story/form_obsidian.@a[advancements={story/form_obsidian=false}]
— Selects players who haven't achieved the advancement minecraft:story/form_obsidian.@a[advancements={story/obtain_armor={iron_helmet=true}}]
— Selects players who had armored with iron helmet. The selected players needn't be wearing iron helmet when selected, and needn't have achieved the advancement minecraft:story/obtain_armor.@a[advancements={story/follow_ender_eye=true}]
is the same as@a[advancements={story/follow_ender_eye={in_stronghold=true}}]
.
- Selecting targets by predicate[Java Edition only]
[predicate=<namespaced ID>]
— Select all targets that match the specified predicate.[predicate=!<namespaced ID>]
— Select all targets that fail to match the specified predicate.
- Examples:
@a[predicate=example:test_predicate]
— Selects players who match the example:test_predicate predicate.@e[predicate=!minecraft-wiki:smart_entity]
— Selects entities who do not match the minecraft-wiki:smart_entity predicate.
Data tags[edit]
A data tag is a tree-shaped data structure that can be described starting with attribute-value pairs enclosed in curly braces. One common usage of data tags in Java Edition is in commands, used to specify complex data for any entity.
A data tag consists of zero or more attribute-value pairs delimited by commas and enclosed in curly braces. Each attribute-value pair consists of an attribute name and the attribute's value, separated by a colon. Some values, however, may themselves contain attribute-value pairs, allowing a data tag to describe a hierarchical data structure.
- Example:
{name1:123,name2:"sometext",name3:{subname1:456,subname2:789}}
The data structures that data tags describe are the same ones used in Minecraft's save files. These data structures are described in other articles and commands expect data tags to use the same attribute names (which are case-sensitive):
Objects | Examples |
---|---|
Block entities | chests, furnaces, command blocks, mob spawners, signs, etc. |
Items | items in inventories (includes specifications for enchantments, lore, custom names, etc.) |
Item entities | items on the ground |
Mobs | creepers, cows, villagers, etc. |
Projectiles | arrows, fireballs, thrown potions, etc. |
Vehicles | boats, minecarts, etc. |
Dynamic tiles | primed TNT, falling sand/gravel/concrete powder/anvils |
Other entities | firework rockets, paintings, and item frames |
The defined data structures also expect the values to be of the correct type.
Type | Description |
---|---|
Byte | A signed 8-bit integer, ranging from -128 to 127 (inclusive). |
Short | A signed 16-bit integer, ranging from -32,768 to 32,767 (inclusive). |
Int | A signed 32-bit integer, ranging from -2,147,483,648 and 2,147,483,647 (inclusive). |
Long | A signed 64-bit integer, ranging from -9,223,372,036,854,775,808 to 9,223,372,036,854,775,807 (inclusive). |
Float | A 32-bit, single-precision floating-point number, ranging from -3.4E+38 to +3.4E+38.
See IEEE floating point for details. |
Double | A 64-bit, double-precision floating-point, ranging from -1.7E+308 to +1.7E+308.
See IEEE floating point for details. |
String | A sequence of characters, enclosed in quotes. For strings without commas, brackets, braces or spaces, quote enclosure is optional. Quotes can be both single quote ' or double " . Nested quotes can be included within a string by escaping the character with a \ escape.
|
List | An ordered list of tags, enclosed in square brackets and delimited by commas. The tags must be of the same type, determined by the first tag in the list.
|
Compound | An ordered list of attribute-value pairs, enclosed in curly braces and delimited by commas.
Each tag may be of any type. |
Byte Array | B; followed by an ordered list of 8-bit integers, delimited by commas. Tag is enclosed in square brackets.
|
Int Array | I; followed by an ordered list of 32-bit integers, delimited by commas. Tag is enclosed in square brackets.
|
Long Array | L; followed by an ordered list of 64-bit integers, delimited by commas. Tag is enclosed in square brackets.
|
Boolean | A value, expressed as "true" or "false". This is resolved by the game into a Byte tag as 0 (for false) and 1 (for true).
|
Some commands may require that a number's type be specified by adding a letter (B, S, L, F, D) to the end of the value. For example, 3s
for a short, 3.2f
for a float, etc. (This doesn't work with I for int.) The letter can be uppercase or lowercase. When no letter is used and Minecraft can't tell the type from context, it assumes double if there's a decimal point, int if there's no decimal point and the size fits within 32 bits, or string if neither is true. A square-bracketed literal is assumed to be a list unless an identifier is used: [I;1,2,3]
for an int array and [L;1L,2L,3L]
for a long array.
When commands such as /clear
are used to match data tags, they check only for the presence of the provided tags in the target entity/block/item. This means that the entity/block/item can have additional tags and still match. This is true even for lists and arrays: the order of a list is not acknowledged, and as long as every requested element is in the list, it matches even if there are additional elements.
Raw JSON text[edit]
The /tellraw
and /title
commands use the raw JSON text format to display texts.
Also, Some values of arguments in NBT structures are using JSON format.
Command guide[edit]
Syntax[edit]
In Java Edition:
Syntax Meaning plain text
Enter this literally, exactly as shown. <argumentsName>
An argument that should be replaced with an appropriate value. [entry]
This entry is optional. (entry|entry)
(Required) Pick one of the entries that is shown. [entry|entry]
(Optional) Pick one of the entries that is shown. ellipsis ...
Another sub-command is required.
In Bedrock Edition:
Syntax Meaning plain text
Enter this literally, exactly as shown. name: type
An argument that should be replaced with an appropriate value. entry|entry
Pick one of the entries that is shown. <entry>
This entry is required. [entry]
This entry is optional.
ID arguments in Java Edition[edit]
Many commands have arguments that identify particular types of blocks, items, entities, advancements, bossbars, effects, enchantments and so on. In the command syntax below, these typically appear as elements named <block>
, <item>
, or the like, which are replaced with identifiers such as minecraft:stone
in the examples. These IDs all have namespaces. All original Minecraft contents are namespaced minecraft
while contents from mods or data packs have other namespaces. Namespace prefix of IDs namespaced minecraft
can be omitted for most situations; however, in certain cases, such as NBT data tag matching, full namespaced ids are required.
<block>
[edit]
A single <block>
argument looks like this:
stone
minecraft:redstone_wire[power=15,north=up,south=side]
minecraft:jukebox{RecordItem:{...}}
minecraft:furnace[facing=north]{BurnTime:200}
The format of <block>
parameters is namespaced_ID[block_states]{data_tags}
, in which block states and data tags can be omitted when they are not needed.
- Namespaced ID is required (though if namespace isn't set it defaults to
minecraft:
).- In the context of "conditions"/testing for blocks, it can also be the namespace ID of block tag with the prefix of
#
, such as#minecraft:planks
.
- In the context of "conditions"/testing for blocks, it can also be the namespace ID of block tag with the prefix of
- Block states are inside
[]
, comma-separated and must be properties/values supported by the blocks. They are optional.minecraft:stone[doesntexist=purpleberry]
is a syntax error, becausestone
doesn't havedoesntexist
.minecraft:redstone_wire[power=tuesday]
is a syntax error, becauseredstone_wire
'spower
is a number between 0 and 15.
- Data tags are inside
{}
. It's optional. - In the context of "conditions"/testing for blocks, only the states provided are tested.
- If command tests
redstone_wire[power=15]
, it checks only power, but ignores other states such asnorth
.
- If command tests
- In the context of setting blocks, any states provided are set, but anything omitted retain their default values, depending on the block.
- If command sets
redstone_wire[power=15]
, it is setpower
to 15, butnorth
is a default value (in this case, set tonone
).
- If command sets
<item>
[edit]
A single <item>
argument that looks like this:
stone
minecraft:stick{display:{Name:"\"Stick of Untruths\""}}
The format of <item>
parameters is namespaced_ID{data_tags}
, in which data tags can be omitted when not needed.
- Namespaced ID is required (though if namespace isn't set it defaults to
minecraft:
). - Data tags are inside
{}
. It's optional.
List of argument types[edit]
These are the argument types.
Success Conditions[edit]
- A command's Success Conditions must be met in order for the game to consider the command "successful". This is used to determine a variety of things, such as the output of a redstone comparator feeding from a command block with a command. Note that not all "successful" commands actually do something, and not all "failed" commands fail to do something useful.
Restrictions[edit]
- Describes restrictions on who can use the command or in what context.
- None: The command has no restriction.
- Cheat only[Bedrock Edition only]: When executed by a player, the command is available only if cheats is enabled.
- In Bedrock Edition, when cheats is disabled, these commands can't be used by players even if they have a high permission level. In Java Edition, if players have a high enough permission level, they can use corresponding commands no matter whether cheats is allowed.
- Dedicated server only: The command is available only on a dedicated server.
- No command blocks: The command cannot be executed by a command block.
Permission level[edit]
- Permission level is used to describe permissions on what commands can be used by an executor. For example, in Bedrock Edition,
/setmaxplayers
can't be executed in a command block, because this command requires executor to have permission of level 3, while command blocks have permission of only 1 level.
- In Java Edition, permission level can be 0, 1, 2, 3, and 4.
- A command block or a minecart with command block has permission level of 2.
- The console of a server has permission level of 4.
- A function has permission level of 2 (but it can be changed in server.properties).
- For a player:
- If the player is an op in dedicated server, their permission level is specified in ops file.
- If the player is in a singleplayer world or is the owner of a LAN world, and cheat is enabled, permission level is 4.
- If the player is in a cheat-allowed LAN world, permission level is 4.
- Otherwise, permission level is 0.
- In Bedrock Edition, permission level can be 0, 1, 2, 3, and 4.
- A command block or a minecart with command block has permission level of 1.
- The console of a server has permission level of 4.
- A function as well as a script in Add-ons has permission level of 1.
- For a player:
- If in dedicated server, the player's "Operator Commands" option is enabled in the "Player Permission" screen, their permission level is 1 by default (which can be changed in server.properties).
- If in a singleplayer world or a LAN world, the player's "Operator Commands" option is enabled in the "Player Permission" screen, permission level is 3.
- Otherwise, the player's permission level is 0.[needs testing]
- Note that command permission level differs from permission level in pause menu screen and "Player Permission" screen in Bedrock Edition, which includes Visitor/Member/Operator/Custom. However, operator in singleplayer world must have command permission level of 3, because its Operator Commands is enabled. Similarly, visitors and members have a command permission level of 0.
List and summary of commands[edit]
The table below summarizes all commands, including upcoming ones.
Command | Description | BE | EE | JE | JE OP level | BE&EE OP level | MP only | ||||
---|---|---|---|---|---|---|---|---|---|---|---|
/?
|
An alias of /help . Provides help for commands.
|
Yes | Yes | Yes | 0 | 0 | — | — | — | — | — |
/ability
|
Grants or revokes a player ability. | Yes | Yes | — | — | 1 | — | — | — | — | |
/advancement
|
Gives, removes, or checks player advancements. | — | — | Yes | 2 | — | — | — | — | — | |
/agent
|
Controls the agent. | Yes | Yes | — | — | 0[EE only] 1[BE only] |
— | — | — | — | |
/alwaysday
|
An alias of /daylock . Locks and unlocks the day-night cycle.
|
Yes | Yes | — | — | 1 | — | — | — | — | |
/attribute
|
Queries, adds, removes or sets an entity attribute. | — | — | Yes | 2 | — | — | — | — | ||
/ban
|
Adds player to banlist. | — | — | Yes | 3 | — | MP | — | — | — | |
/ban-ip
|
Adds IP address to banlist. | — | — | Yes | 3 | — | MP | — | — | — | |
/banlist
|
Displays banlist. | — | — | Yes | 3 | — | MP | — | — | — | |
/bossbar
|
Creates and modifies bossbars. | — | — | Yes | 2 | — | — | — | — | ||
/camerashake
|
Used to enable a camera shaking effect. | Yes | — | — | — | 1 | — | — | — | — | |
/changesetting
|
Changes a setting on the dedicated server while it's running. | Yes | — | — | — | 4 | MP | — | — | — | — |
/classroommode
|
Ability to edit restricted blocks. | — | Yes | — | — | 0 | — | — | — | — | — |
/clear
|
Clears items from player inventory. | Yes | Yes | Yes | 2 | 1 | — | — | — | — | |
/clearspawnpoint
|
Remove spawnpoints in the world. | Yes | — | — | — | 1 | — | — | — | — | |
/clone
|
Copies blocks from one place to another. | Yes | Yes | Yes | 2 | 1 | — | — | — | — | |
/closechat
|
Closes the chat window of the local player if it is open. | Yes | Yes | — | — | 0 | — | — | — | — | — |
/closewebsocket
|
Closes websocket connection if there is one. | Yes | Yes | — | — | 0 | — | — | — | — | — |
/code
|
Launches Code Builder. | — | Yes | — | — | 0 | — | — | — | — | — |
/codebuilder
|
Sets Code Builder state for a player. | Yes | Yes | — | — | 1 | — | — | — | — | — |
/connect
|
An alias of /wsserver . Attempts to connect to the websocket server.
|
Yes | Yes | — | — | 0[EE only] 2[BE only] |
— | — | — | — | — |
/data
|
Gets, merges, modifies and removes block entity and entity NBT data. | — | — | Yes | 2 | — | — | — | |||
/datapack
|
Controls loaded data packs. | — | — | Yes | 2 | — | — | — | — | — | |
/daylock
|
An alias of /alwaysday . Locks and unlocks the day-night cycle.
|
Yes | Yes | — | — | 1 | — | — | — | — | |
/debug
|
Starts or stops a debugging session. | — | — | Yes | 3 | — | — | — | — | — | — |
/dedicatedwsserver
|
Attempts to connect to the websocket server. | Yes | — | — | — | 0 | MP | — | — | — | — |
/defaultgamemode
|
Sets the default game mode. | — | — | Yes | 2 | — | — | — | — | — | |
/deop
|
Revokes operator status from a player. | Yes | Yes | Yes | 3 | 2 | MP[Java Edition only] | — | — | — | |
/dialogue
|
Opens NPC dialogue for a player. | — | Yes | — | — | 1 | — | — | — | — | |
/difficulty
|
Sets the difficulty level. | Yes | Yes | Yes | 2 | 1 | — | — | — | — | |
/effect
|
Add or remove status effects. | Yes | Yes | Yes | 2 | 1 | — | — | — | ||
/enableencryption
|
Enable encryption for the current websocket connection. | Yes | Yes | — | — | 0 | — | — | — | — | — |
/enchant
|
Adds an enchantment to a player's selected item. | Yes | Yes | Yes | 2 | 1 | — | — | — | — | |
/event
|
Used to trigger an event on an entity. | Yes | — | — | — | 1 | — | — | — | ||
/execute
|
Executes another command. | Yes | Yes | Yes | 2 | 1 | — | ||||
/experience
|
An alias of /xp . Adds or removes player experience.
|
— | — | Yes | 2 | — | — | — | — | — | |
/fill
|
Fills a region with a specific block. | Yes | Yes | Yes | 2 | 1 | — | — | — | — | |
/fog
|
Used for managing active fog settings for players. | Yes | — | — | — | 1 | — | — | — | — | |
/forceload
|
Forces chunks to constantly be loaded or not. | — | — | Yes | 2 | — | — | — | — | — | |
/function
|
Runs a function. | Yes | Yes | Yes | 2 | 1 | — | — | — | — | |
/gamemode
|
Sets a player's game mode. | Yes | Yes | Yes | 2 | 1 | — | — | — | — | |
/gamerule
|
Sets or queries a game rule value. | Yes | Yes | Yes | 2 | 1 | — | — | — | — | |
/gametest
|
To test the GameTest features. | Yes | — | — | — | 1 | — | — | — | — | — |
/getchunkdata
|
Gets pixels for a specific chunk. | Yes | Yes | — | — | 3 | — | — | — | — | — |
/getchunks
|
Gets list of chunks that are loaded. | Yes | Yes | — | — | 3 | — | — | — | — | — |
/geteduclientinfo
|
Shows the information about the client. | — | Yes | — | — | 0 | — | — | — | — | — |
/geteduserverinfo
|
Shows the information about the server. | Yes | — | — | — | 0 | MP | — | — | — | — |
/getlocalplayername
|
Shows the name of the local player. | Yes | Yes | — | — | 0 | — | — | — | — | — |
/getspawnpoint
|
Gets the spawn position of the specified player(s). | Yes | Yes | — | — | 3 | — | — | — | — | — |
/gettopsolidblock
|
Gets the position of the top non-air block below the specified position. | Yes | Yes | — | — | 0[EE only] 1[BE only] |
— | — | — | — | — |
/give
|
Gives an item to a player. | Yes | Yes | Yes | 2 | 1 | — | — | — | — | |
/globalpause
|
Sets or gets the paused state of the game for all players. | Yes | Yes | — | — | 3 | — | — | — | — | — |
/help
|
An alias of /? . Provides help for commands.
|
Yes | Yes | Yes | 0 | 0 | — | — | — | — | — |
/immutableworld
|
Allows setting immutable state of a world. | Yes | Yes | — | — | 1 | — | — | — | — | |
/item
|
Manipulates items in inventories. [upcoming: JE 1.17] | — | — | Planned | 2 | — | — | — | |||
/kick
|
Kicks a player off a server. | Yes | Yes | Yes | 3 | 1 | — | — | — | — | |
/kill
|
Kills entities (players, mobs, items, etc.). | Yes | Yes | Yes | 2 | 1 | — | — | — | ||
/lesson
|
Handle Educational Lesson reporting. | — | Yes | — | — | 0 | — | — | — | — | — |
/list
|
Lists players on the server. | Yes | Yes | Yes | 0 | 0 | — | — | — | — | |
/listd
|
Lists the information about players on the server. | Yes | Yes | — | — | 3 | — | — | — | — | |
/locate
|
Locates closest structure. | Yes | Yes | Yes | 2 | 1 | — | — | — | — | |
/locatebiome
|
Locates closest biome. | — | — | Yes | 2 | — | — | — | — | — | |
/loot
|
Drops items from an inventory slot onto the ground. | — | — | Yes | 2 | — | — | — | |||
/me
|
Displays a message about the sender. | Yes | Yes | Yes | 0 | 0 | — | — | — | — | |
/mobevent
|
Enables/disables a specified mob event. | Yes | Yes | — | — | 1 | — | — | — | — | |
/msg
|
An alias of /tell and /w . Displays a private message to other players.
|
Yes | Yes | Yes | 0 | 0 | — | — | — | — | |
/music
|
Allows the player to control playing music tracks. | Yes | — | — | — | 1 | — | — | — | — | |
/op
|
Grants operator status to a player. | Yes | Yes | Yes | 3 | 2 | MP[Java Edition only] | — | — | — | |
/ops
|
An alias of /permission . Reloads and applies permissions.
|
Yes | Yes | — | — | 4 | Mp | — | — | — | |
/pardon
|
Removes entries from the banlist. | — | — | Yes | 3 | — | MP | — | — | — | |
/pardon-ip
|
Removes entries from the banlist. | — | — | Yes | 3 | — | MP | — | — | — | |
/particle
|
Creates particles. | Yes | Yes | Yes | 2 | 1 | — | — | — | — | |
/permission
|
An alias of /ops . Reloads and applies permissions.
|
Yes | Yes | — | — | 4 | Mp | — | — | — | |
/playanimation
|
Used to run a one-off animation. | Yes | — | — | — | 1 | — | — | — | ||
/playsound
|
Plays a sound. | Yes | Yes | Yes | 2 | 1 | — | — | — | — | |
/publish
|
Opens single-player world to local network. | — | — | Yes | 4 | — | SP only | — | — | — | |
/querytarget
|
Gets transform, name, and id information about the given target entity or entities. | Yes | Yes | — | — | 0[EE only] 2[BE only] |
— | — | — | ||
/recipe
|
Gives or takes player recipes. | — | — | Yes | 2 | — | — | — | — | — | |
/reload
|
Reloads loot tables, advancements, and functions from disk. | Yes | Yes | Yes | 2 | 2 | — | — | — | — | |
/remove
|
Removing agent. | — | ? | — | — | 2 | — | — | — | — | |
/replaceitem
|
Replaces items in inventories. | Yes | Yes | Yes[until JE 1.17] | 2 | 1 | — | — | |||
/ride
|
Used to make entities ride other entities, stop entities from riding, make rides evict their riders, or summon rides or riders. | Yes | — | — | — | 1 | — | — | — | ||
/save
|
Prepares a backup, queries its status, or resumes. | Yes | — | — | — | 4 | MP | — | — | — | |
/save-all
|
Saves the server to disk. | — | — | Yes | 4 | — | MP | — | — | — | |
/save-off
|
Disables automatic server saves. | — | — | Yes | 4 | — | MP | — | — | — | |
/save-on
|
Enables automatic server saves. | — | — | Yes | 4 | — | MP | — | — | — | |
/say
|
Displays a message to multiple players. | Yes | Yes | Yes | 2 | 1 | — | — | — | — | |
/schedule
|
Delays the execution of a function. | Yes | — | Yes | 2 | 1 | — | — | — | — | — |
/scoreboard
|
Manages scoreboard objectives and players. | Yes | Yes | Yes | 2 | 1 | — | — | — | ||
/seed
|
Displays the world seed. | — | — | Yes | 0 in singleplayer 2 in multiplayer |
— | — | — | — | — | |
/setblock
|
Changes a block to another block. | Yes | Yes | Yes | 2 | 1 | — | — | — | — | |
/setidletimeout
|
Sets the time before idle players are kicked. | — | — | Yes | 3 | — | MP | — | — | — | |
/setmaxplayers
|
Sets the maximum number of players allowed to join. | Yes | Yes | — | — | 3 | — | — | — | — | |
/setworldspawn
|
Sets the world spawn. | Yes | Yes | Yes | 2 | 1 | — | — | — | — | |
/spawnitem
|
Spawns an item entity at position. | — | Yes | — | — | 0 | — | — | — | — | |
/spawnpoint
|
Sets the spawn point for a player. | Yes | Yes | Yes | 2 | 1 | — | — | — | — | |
/spectate
|
Make one player in spectator mode spectate an entity. | — | — | Yes | 2 | — | — | — | — | — | |
/spreadplayers
|
Teleports entities to random locations. | Yes | Yes | Yes | 2 | 1 | — | — | — | ||
/stop
|
Stops a server. | Yes | — | Yes | 4 | 4 | MP | — | — | — | |
/stopsound
|
Stops a sound. | Yes | Yes | Yes | 2 | 1 | — | — | — | — | |
/structure
|
Used to save and load structures without having to use structure blocks items in inventories. | Yes | — | — | — | 1 | — | — | |||
/summon
|
Summons an entity. | Yes | Yes | Yes | 2 | 1 | — | — | — | — | |
/tag
|
Controls entity tags. | Yes | Yes | Yes | 2 | 1 | — | — | — | ||
/takepicture
|
Takes a photo of a player or from a player's point of view. | Yes | Yes | — | — | 1 | — | — | — | — | |
/team
|
Controls teams. | — | — | Yes | 2 | — | — | — | — | ||
/teammsg
|
An alias of /tm . Specifies the message to send to team.
|
— | — | Yes | 0 | — | — | — | — | — | |
/teleport
|
An alias of /tp . Teleports entities.
|
Yes | Yes | Yes | 2 | 1 | — | — | — | ||
/tell
|
An alias of /msg and /w . Displays a private message to other players.
|
Yes | Yes | Yes | 0 | 0 | — | — | — | — | |
/tellraw
|
Displays a JSON message to players. | Yes | Yes | Yes | 2 | 1 | — | — | — | — | |
/testfor
|
Counts entities matching specified conditions. | Yes | Yes | Removed | 2 | 1 | — | — | — | ||
/testforblock
|
Tests whether a block is in a location. | Yes | Yes | Removed | 2 | 1 | — | — | — | — | |
/testforblocks
|
Tests whether the blocks in two regions match. | Yes | Yes | Removed | 2 | 1 | — | — | — | — | |
/tickingarea
|
Add, remove, or list ticking areas. | Yes | Yes | — | — | 1 | — | — | — | — | |
/time
|
Changes or queries the world's game time. | Yes | Yes | Yes | 2 | 1 | — | — | — | — | |
/title
|
Manages screen titles. | Yes | Yes | Yes | 2 | 1 | — | — | — | — | |
/titleraw
|
Controls screen titles with JSON messages. | Yes | Yes | — | — | 1 | — | — | — | — | |
/tm
|
An alias of /teammsg . Specifies the message to send to team.
|
— | — | Yes | 0 | — | — | — | — | — | |
/toggledownfall
|
Toggles the weather. | Yes | Yes | — | — | 1 | — | — | — | — | |
/tp
|
An alias of /teleport . Teleports entities.
|
Yes | Yes | Yes | 2 | 1 | — | — | — | ||
/trigger
|
Sets a trigger to be activated. | — | — | Yes | 0 | — | — | — | — | — | |
/videostream
|
Attempts to connect to the websocket server to send a video stream. | — | Yes | — | — | 0 | — | — | — | — | — |
/w
|
An alias of /tell and /msg . Displays a private message to other players.
|
Yes | Yes | Yes | 0 | 0 | — | — | — | — | |
/wb
|
An alias of /worldbuilder . Ability to edit restricted blocks.
|
Yes | Yes | — | — | 1 | — | — | — | — | |
/weather
|
Sets the weather. | Yes | Yes | Yes | 2 | 1 | — | — | — | — | |
/whitelist
|
Manages server whitelist. | Yes | — | Yes | 3 | 4 | MP | — | — | — | |
/worldborder
|
Manages the world border. | — | — | Yes | 2 | — | — | — | — | — | |
/worldbuilder
|
An alias of /wb . Ability to edit restricted blocks.
|
Yes | Yes | — | — | 1 | — | — | — | — | |
/wsserver
|
An alias of /connect . Attempts to connect to the websocket server.
|
Yes | Yes | — | — | 0[EE only] 2[BE only] |
— | — | — | — | — |
/xp
|
An alias of /experience [Java Edition only]. Adds or removes player experience.
|
Yes | Yes | Yes | 2 | 1 | — | — | — | — |
Removed commands[edit]
Command | Description | Version Removed | Reason for Deletion | BE | EE | JE | JE OP level | BE&EE OP level | MP Only | ||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
/achievement
|
Gives or takes an achievement from a player | Java Edition 1.12 (17w13a) |
Achievements were superseded by advancements | — | — | Removed | 2 | — | — | — | — | — | |
/banip
|
Bans a player by IP number | Java Edition Indev 0.31 | Superseded by /ban-ip
|
— | — | Removed | ? | — | MP | — | — | — | |
/blockdata
|
Modifies the data tag of a block | Java Edition 1.13 (17w47a) |
Superseded by /data
|
— | — | Removed | 2 | — | — | — | — | — | |
/broadcast
|
Broadcasts a message across the entire server | Java Edition Classic 0.0.16a_01 | Superseded by /say
|
— | — | Removed | 1 | — | — | — | — | — | — |
/chunk
|
Force chunks to load constantly or not | Java Edition 1.13.1-pre1 | Superseded by /forceload
|
— | — | Removed | 2 | — | — | — | — | — | |
/clearfixedinv
|
Clears fixed inventory slots | Pocket Edition Alpha 0.16.0 (build 2) |
? | Removed | Removed | — | — | ? | ? | — | — | — | |
/detect
|
Execute a command when condition is met. | Bedrock Edition 1.2.0 | Superseded by /execute
|
Removed | — | — | — | 1 | — | — | — | — | — |
/entitydata
|
Modifies the data tag of an entity | Java Edition 1.13 (17w45b) |
Superseded by /data
|
— | — | Removed | 2 | — | — | — | — | — | |
/executeasself
|
Execute a command. | ? | ? | Removed | Removed | — | — | 0 | — | — | — | — | — |
/home
|
Teleports player to the world spawn | Java Edition Alpha v1.2.5 | World spawn became based on spawn chunks instead of a singular location | — | — | Removed | 0 | — | — | — | — | — | — |
/position
|
Toggles player coordinates to be displayed on the HUD. | Education Edition 1.0.21 | Superseded by /gamerule
|
— | Removed | — | — | 0 | — | — | — | — | — |
/mixer
|
Mixer interactivity control. | Bedrock Edition 1.16.210 | Mixer discontinued | Yes | — | — | — | 0 | — | — | — | — | — |
/resupply
|
Update the villagers' supply for economic trade. | ? | ? | Removed | — | — | 2 | — | — | — | — | — | |
/setfixedinvslot
|
Sets fixed inventory slot with a specific item. | Pocket Edition Alpha 0.16.0 (build 2) |
? | Removed | Removed | — | — | ? | ? | — | — | — | |
/setfixedinvslots
|
Sets the amount of fixed inventory slots | Pocket Edition Alpha 0.16.0 (build 2) |
? | Removed | Removed | — | — | ? | ? | — | — | — | |
/setspawn
|
Sets the current location as the default spawn location for new players | Java Edition Indev 0.31 | World spawn became based on spawn chunks instead of a singular location | — | — | Removed | 2 | — | — | — | — | — | — |
/solid
|
Toggles between placing stone and placing bedrock | Java Edition Indev 0.31 | Placing blocks became inventory based | — | — | Removed | 2 | — | — | — | — | — | — |
/stats
|
Update objectives from command results | Java Edition 1.13 (17w45a) |
Merged with /execute
|
— | — | Removed | 2 | — | — | — | |||
/toggledownfall
|
Toggles the weather | Java Edition 1.13 (17w45a) |
Redundancy with /weather
|
Available | Available | Removed | 2 | — | — | — | — | — | |
/transferserver
|
Transfer player to a server. | Bedrock Edition 1.2.3 | ? | Removed | Removed | — | — | ? | — | — | — | — | — |
/unban
|
Pardons a banned player | Java Edition Alpha v1.0.16 | Superseded by /pardon
|
— | — | Removed | 3 | — | MP | — | — | — |
Others[edit]
- Developer commands
- See Developer commands.
- Agent commands
- Superseded by
/agent
- Superseded by
History[edit]
Java Edition Classic | |||||
---|---|---|---|---|---|
0.0.15a (Multiplayer Test 3) | Added commands. | ||||
Java Edition Indev | |||||
0.31 | ? | Removed all commands. | |||
Java Edition Alpha | |||||
v1.0.16 | Re-added several commands. | ||||
Java Edition | |||||
1.3.1 | 12w16a | Added cheats mode. | |||
12w25a | Cheats can now be turned on or off when opening a world to other players through LAN. | ||||
1.4.2 | 12w32a | Added target selectors. | |||
1.8 | 14w02a | Added the @e target selector variable. | |||
14w03a | Added dx , dy , and dz to target selector arguments.
| ||||
NBT data now supports using string IDs rather than numerical IDs. | |||||
Numerical IDs no longer work in other parts of commands, though they still work for NBT data. | |||||
1.9 | 16w02a | The m selector now accepts the standard literal gamemode values and abbreviations, such as a and adventure , and these may be negated as well. | |||
1.11 | 16w32a | Added block state support to commands. | |||
16w38a | Removed implicit target selectors (for example, @e[167,28,454] ).
| ||||
Invalid target selectors (such as @e[Type=creeper] , @e[asdf=nonexistent] , and @e[malformed] ) now generate an error instead of being silently ignored. | |||||
1.12 | 17w16b | Added the @s target selector variable | |||
1.13 | 17w45a | A new library named Brigadier is now used to parse commands. Different components of commands are displayed in different colors, and errors are displayed in red without having to run the command. Commands, for the most part, do not allow uppercase letters, and are now much faster and more efficient. | |||
Added the nbt target selector argument. | |||||
17w46a | The player now has the option to toggle automatic command suggestions. | ||||
The command UI has a new prototype, and now works in multiplayer. | |||||
17w47a | Added an option in chat to toggle automatic command suggestions. | ||||
17w48a | Tweaked the command suggestion UI. | ||||
Reworked tab-completion for coordinates. | |||||
17w50a | Local coordinates can now be specified in commands using ^ .
| ||||
Tab-completing when not targeting a block suggests ~ ~ ~ . | |||||
18w01a | Changed all custom names (blocks, items, entities, block entities) to translatable text components. | ||||
Thrower and Owner nbt keys of item entities are no longer strings, but are instead compounds with two longs named L and M . | |||||
owner nbt key of snowballs, eggs and ender pearls are no longer strings, but are instead compounds with two longs named L and M . | |||||
18w02a | Errors during a command are now a nicer error message (with a tool tip for more info). | ||||
Server commands now run from world spawn in the Overworld, instead of at 0,0,0 . | |||||
18w03a | Improved performance of command parsing and command execution. | ||||
18w05a | Added basic entity selector suggestions in the command UI. | ||||
A warning is now logged for ambiguous commands. | |||||
18w06a | Added command suggestions for entity selectors. | ||||
Whitespaces are now allowed in entity selectors & block state arguments. | |||||
September 26, 2018 | Brigadier open-sourced under the MIT license. (Source code previously was available on the library site, with no license specified). | ||||
1.16 | 20w17a | Added /attribute . | |||
Upcoming Java Edition | |||||
1.17 | 20w46a | Removed /replaceitem . Replaced with /item replace . | |||
Pocket Edition Alpha | |||||
v0.7.4 | Added support for commands, though none are implemented yet. | ||||
v0.16.0 | build 1 | Added commands. | |||
Functionality of most commands is equivalent to Java Edition 1.10 usage. Differences include: no support for data tags. | |||||
Bedrock Edition | |||||
1.2.0 | ? | A new command parsing system is now used. |
Issues[edit]
Issues relating to "Commands" are maintained on the bug tracker. Report issues there.
See also[edit]
References[edit]
Versions | |||
---|---|---|---|
Development |
| ||
Technical |
| ||
Multiplayer | |||
Game customization |
Editions |
| ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Development |
| ||||||||||
Technical | |||||||||||
Multiplayer | |||||||||||
Exclusive features |
| ||||||||||
Removed |