Commands

From Minecraft Wiki
(Redirected from Command)
Jump to: navigation, search

Commands are advanced features activated by typing certain strings of text.

Usage[edit]

In the client, commands are entered via the chat window, which is displayed by pressing the T key (default) or, in Java Edition, / 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 admin 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:

Some player commands are also available in singleplayer 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 prevent players from unlocking achievements in that world, even if cheats are later turned off.

Tilde and caret notation[edit]

Many commands allow relative coordinates to be specified using tildes (~) or carets (^). A number following a tilde or caret specifies an offset from a certain origin rather than a coordinate. The origin depends on the command. For example, in /tp the offset is from the target's starting position. Other common offsets include from the position of the command's execution or from another coordinate specified by the command.

For tilde notation, the offsets are in the positive directions of the world coordinate axes: ~Δx ~Δy ~Δz. For caret notation, they are along axes originating in the center of the target's head and pointing leftward, upward, and forward, respectively, changing with the head's rotation. In terms of a TNB frame: ^(-ΔB) ^ΔN ^ΔT. For both, the sign of the offset specifies whether the offset is in the positive or negative direction along that axis. A single tilde or caret by itself is shorthand for ~0 or ^0, meaning no offset in that direction.

For example, /tp 0 64 0 teleports the user to the coordinate (0, 64, 0), while /tp ~3 ~ ~-3 teleports the user to a position +3 blocks in the "x" direction (i.e., east), keep their current height, and -3 blocks in the "z" direction (i.e., north) and /tp ^ ^ ^3 teleports the user to a position +3 forward in the direction the player is looking.

Usually, absolute coordinates can be mixed with relative coordinates. For example, /tp ~ 64 ~ keeps the user's "x" and "z" coordinates unchanged, but teleports the user to an absolute height of 64. Similarly, /tp ^-5 ^ ^ teleports the player 5 blocks to the right, based on the tilt of their head.

Target selectors[edit]

In most commands where a player may be specified as an argument, it is possible to "target" one or more players satisfying certain conditions instead of specifying players by name. To target players 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[edit]

Summary of 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. When run by the console, the origin of selection is (0, 0, 0). 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] or limit[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.

@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. Whereas @r[limit=3] targets three random players.
In Java Edition, one cannot use @r to target entities via the type selector argument. To select a random entity, use @e[sort=random,limit=1] instead.
In Bedrock Edition, @r ignores dead players.
@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 in loaded chunks (Includes players unless if @e[type=!player] is specified).
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

Summary of 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 scoreboard 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
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>,...].

Arguments and values are case-sensitive. Spaces are allowed around the brackets, equal signs, and commas, except in 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, dx, dy and dz. Defining the position alone can be used with a target selector that selects the nearest entity from those coordinates, but it otherwise has no use, so applying it (and only it) to @e still selects all entities in the world.
The positional components are doubles, allowing for values like +12.34, and they are not center-corrected, meaning x=0 is not corrected to x=0.5 - tilde notation is available for selector argument coordinates.‌[Bedrock Edition only]
Selecting targets by distance
[<x>,<y>,<z>,distance=<value>] - 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/i is calculated relative to the position of the command's execution. Only unsigned values are allowed.
In Java Edition, 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).
In Bedrock Edition, r represents the maximum range to find entities and rm represents the minimum. 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.
Selecting targets by volume
[<x>,<y>,<z>,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[JE] or by their feet.[BE]
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 (in Bedrock Edition, whose feet are within that volume). 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 collects 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 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.
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).
Selecting targets by team‌[Java Edition only]
[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
[limit=<value>] - Limit the number of targets selected to be no higher than the given value.
When using the variables @p and @r, this argument defaults to one. Applying the limit 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.
[limit=<value>,sort=(nearest|furthest|random|arbitrary)][JE] - Limit the number of targets, and specify selection priority.
  • sort=nearest — Sort by increasing distance. (Default for @p, @e,[BE] @a[BE])
  • sort=furthest — Sort by decreasing distance.
  • sort=random — Sort randomly. (Default for @r)
  • sort=arbitrary — Do not sort. (Default for @e,[JE] @a[JE])
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
[level=<value>] - Filter target selection based on their experience levels. This naturally filters out all non-player targets.
In Java Edition, 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).
In Bedrock Edition, l represents the maximum level to search for and lm represents the minimum. 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).
Selecting targets by game mode
[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.
This naturally filters out all non-player targets. Permitted values for <gamemodeName> are spectator[Java Edition only], adventure, creative, and survival. In Bedrock Edition, the shorthand values a and 2, c and 1, and s and 0 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
[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
[x_rotation=<value>] — 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).
In Java Edition, 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.
In Bedrock Edition, rx represents the maximum x-rotation value to search for and rxm represents the minimum. 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.
Selecting targets by horizontal rotation
[y_rotation=<value>] — 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).
In Java Edition, 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.
In Bedrock Edition, ry represents the maximum y-rotation value to search for and rym represents the minimum. 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.
When using the @r parameter, this argument defaults to the type player. Defining a type for this parameter can filter the random selection to other entities.‌[Bedrock Edition only]
  • @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]
Note that @e[type=pig,type=cow] fails because a given entity cannot be both a pig and a cow.
Selecting targets by data 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 arguments 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 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.
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.
Since 19w38a, selectors can use predicates in the argument.
  • @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):

Data Structure Specification Links
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/anvils
Other entities firework rockets, paintings, and item frames

The defined data structures also expect the values to be of the correct type.

Data Tags Value Types
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
 Double
Float: A 32-bit, single-precision floating-point number, ranging from -3.4E+38 to +3.4E+38.
Example: 3.1415926

Double: A 64-bit, double-precision floating-point, ranging from -1.7E+308 to +1.7E+308.

Example: 3.141592653589793

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. Nested quotes can be included within a string by escaping the character with the \" escape sequence.
Example: "Call me \"Ishmael\""
 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.
Example: [3.2,64.5,129.5]
 Compound An ordered list of attribute-value pairs, enclosed in curly braces and delimited by commas.
Example: {X:3,Y:64,Z:129}

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.
Example: [B;1b,2b,3b]
 Int Array I; followed by an ordered list of 32-bit integers, delimited by commas. Tag is enclosed in square brackets.
Example: [I;1,2,3]
 Long Array L; followed by an ordered list of 64-bit integers, delimited by commas. Tag is enclosed in square brackets.
Example: [L;1l,2l,3l]
 Boolean A value, expressed as "true" or "false". This is seen only in JSON formatting, as a  Byte tag is usually used in NBT data to determine a boolean value as 0 (for false) and 1 (for true).
Example: {doFoo: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.

ID arguments in Java Edition[edit]

Information icon.svg
This feature is exclusive to Java Edition.

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:).
  • 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, because stone doesn't have doesntexist.
    • minecraft:redstone_wire[power=tuesday] is a syntax error, because redstone_wire's power 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 as north.
  • 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 set power to 15, but north is a default value (in this case, set to none).
  • 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.

<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 in Java Edition[edit]

These are the argument types in Java Edition.

List and summary of commands[edit]

The table below summarizes all commands, including upcoming ones. Click a column heading to sort by that column. Click the link in the first unit of each row to get detailed usage of each command.

Summary of Commands
Command Description BE EE JE OP level MP only
/ability Grants or revokes a player ability. Yes Yes 2
/attribute Queries, adds, removes or sets an entity attribute Yes 2
/advancement Gives, removes, or checks player advancements. 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
/classroommode Ability to edit restricted blocks. Yes 3
/clear Clears items from player inventory. Yes Yes Yes 2
/clone Copies blocks from one place to another. Yes Yes Yes 2
/code Used to access code connection. Yes ?
/collect Collects all items within a one block from Agent in three dimensions. Yes ?
/createagent Creates Agent on the current player position. Yes ?
/data Gets, merges, modifies and removes block entity and entity NBT data. Yes 2
/datapack Controls loaded data packs. Yes 2
/debug Starts or stops a debugging session. Yes 3
/defaultgamemode Sets the default game mode. Yes 2
/deop Revokes operator status from a player. Yes Yes Yes 3 MP‌[Java Edition only]
/destroy Agent destroys block or item in the specified direction. Yes ?
/detect Agent detects if there is a collidable block in the specified direction. Yes ?
/detectredstone Agent detects a redstone signal in the specified direction. Yes ?
/difficulty Sets the difficulty level. Yes Yes Yes 2
/dropall Agent drops all items from all slots onto the ground by one block in the specified direction. Yes ?
/effect Add or remove status effects. Yes Yes Yes 2
/enchant Enchants a player item. Yes Yes Yes 2
/execute Executes another command. Yes Yes Yes 2
/experience Adds or removes player experience. Yes Yes Yes 2
/fill Fills a region with a specific block. Yes Yes Yes 2
/forceload Forces chunks to constantly be loaded or not. Yes 2
/function Runs a function. Yes Yes 2
/gamemode Sets a player's game mode. Yes Yes Yes 2
/gamerule Sets or queries a game rule value. Yes Yes Yes 2
/geteduclientinfo Shows the information about the client. Yes ?
/give Gives an item to a player. Yes Yes Yes 2
/help Provides help for commands. Yes Yes Yes 0
/immutableworld Allows setting immutable state of a world. Yes 3
/kick Kicks a player off a server. Yes Yes Yes 3
/kill Kills entities (players, mobs, items, etc.). Yes Yes Yes 2
/list Lists players on the server. Yes Yes Yes 0
/locate Locates closest structure. Yes Yes Yes 2
/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
/mixer Mixer interactivity control. Yes 2
/mobevent Enables/disables a specified mob event. Yes Yes 2
/move Moves an Agent in a specified direction. Yes ?
/msg Displays a private message to other players. Yes Yes Yes 0
/op Grants operator status to a player. Yes Yes Yes 3 MP‌[Java Edition only]
/pardon Removes entries from the banlist. Yes 3 MP
/particle Creates particles. Yes Yes 2
/playsound Plays a sound. Yes Yes Yes 2
/position Toggles player coordinates to be displayed on the HUD. Yes ?
/publish Opens single-player world to local network. Yes 4 SP only
/raytracefog Adjusts ray tracing fog. Planned 3 MP
/recipe Gives or takes player recipes. Yes 2
/reload Reloads loot tables, advancements, and functions from disk. Yes Yes 2
/remove Removing agent. Yes 3
/replaceitem Replaces items in inventories. Yes Yes Yes 2
/save Prepares a backup, queries its status, or resumes. BDS only 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 1
/schedule Delays the execution of a function. Yes 2
/scoreboard Manages scoreboard objectives and players Yes Yes 2
/seed Displays the world seed. Yes 2
/setblock Changes a block to another block. Yes Yes Yes 2
/setidletimeout Sets the time before idle players are kicked. Yes 3 MP
/setmaxplayers Sets the maximum number of players allowed to join. Yes Yes 0
/setworldspawn Sets the world spawn. Yes Yes Yes 2
/spawnpoint Sets the spawn point for a player. Yes Yes Yes 2
/spectate Make one player in spectator mode spectate an entity. Yes 2
/spreadplayers Teleports entities to random locations. Yes Yes Yes 2
/stop Stops a server. Yes 4 MP
/stopsound Stops a sound. Yes Yes Yes 2
/summon Summons an entity. Yes Yes Yes 2
/tag Controls entity tags. Yes Yes 2
/team Controls teams. Yes 2
/teammsg Specifies the message to send to team. Yes 0
/teleport Teleports entities. Yes Yes Yes 2
/tell Displays a private message to other players. Yes Yes Yes 0
/tellraw Displays a JSON message to players. Yes Yes 2
/testfor Counts entities matching specified conditions. Yes Yes 2
/testforblock Tests whether a block is in a location. Yes Yes 2
/testforblocks Tests whether the blocks in two regions match. Yes Yes 2
/tickingarea Add, remove, or list ticking areas. Yes Yes 2
/time Changes or queries the world's game time. Yes Yes Yes 2
/title Manages screen titles. Yes Yes Yes 2
/toggledownfall Toggles the weather. Yes Yes 2
/tp Teleports entities. Yes Yes Yes 2
/tpagent Teleport player to the Agent's position. Yes ?
/transfer Transfers specified quantity of items from the selected slot to another specified slot of Agent's inventory. Yes ?
/transferserver Transfer player to a server. Yes Yes 0
/trigger Sets a trigger to be activated. Yes 0
/turn Rotates Agent in the specified direction by 90 degrees. Yes ?
/w Displays a private message to other players. Yes Yes Yes 0
/weather Sets the weather. Yes Yes Yes 2
/whitelist Manages server whitelist. Yes 3 MP
/worldborder Manages the world border. Yes 2
/worldbuilder Ability to edit restricted blocks. Yes Yes 3
/wsserver Connects to a WebSocket server. Yes Yes 0
/xp Adds or removes player experience. Yes Yes Yes 2


Removed commands[edit]

Summary of Commands
Command Description Version Removed Reason for Deletion BE EE JE 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
/clearfixedinv Clears fixed inventory slots Pocket Edition Alpha 0.16.0
(build 2)
? Removed ? ?
/entitydata Modifies the data tag of an entity Java Edition 1.13
(17w45b)
Superseded by /data Removed 2
/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
/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 ? ?
/setfixedinvslots Sets the amount of fixed inventory slots Pocket Edition Alpha 0.16.0
(build 2)
? 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
/unban Pardons a banned player Java Edition Alpha v1.0.16 Superseded by /pardon Removed 3 MP

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.

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.
No multiplayer commands permit target selectors in arguments.
Except for /list, multiplayer commands cannot be used in command blocks.
Many of these commands can be used on players who have never been to the server, or even on names that are not (or cannot be) registered as Minecraft accounts.


Video[edit]

Video made by slicedlime:

History[edit]

Java Edition Classic
0.0.15a (Multiplayer Test 3)Added commands.
Java Edition Indev
0.31Removed all commands.
Java Edition Alpha
v1.0.16Re-added several commands.
Java Edition
1.3.112w16aAdded cheats mode.
12w25aCheats can now be turned on or off when opening a world to other players through LAN.
1.4.212w32aAdded target selectors.
1.814w02aAdded the @e target selector variable.
14w03aAdded 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.916w02aThe m selector now accepts the standard literal gamemode values and abbreviations, such as a and adventure, and these may be negated as well.
1.1116w32aAdded block state support to commands.
16w38aRemoved 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.1217w16bAdded the @s target selector variable
1.1317w45aA 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.
17w46aThe player now has the option to toggle automatic command suggestions.
The command UI has a new prototype, and now works in multiplayer.
17w47aAdded an option in chat to toggle automatic command suggestions.
17w48aTweaked the command suggestion UI.
Reworked tab-completion for coordinates.
17w50aLocal coordinates can now be specified in commands using ^.
Tab-completing when not targeting a block suggests ~ ~ ~.
18w01aChanged 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.
18w02aErrors 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.
18w03aImproved performance of command parsing and command execution.
18w05aAdded basic entity selector suggestions in the command UI.
A warning is now logged for ambiguous commands.
18w06aAdded command suggestions for entity selectors.
Whitespaces are now allowed in entity selectors & block state arguments.
September 26, 2018Brigadier open-sourced under the MIT license. (Source code previously was available on the library site, with no license specified).
1.1620w17aAdded /attribute.
Pocket Edition Alpha
0.7.4Added support for commands, though none are implemented yet.
0.16.0build 1Added commands.
Functionality of most commands is equivalent to Java Edition 1.10 usage. Differences include: no support for data tags.

Issues[edit]

Issues relating to "Commands" are maintained on the bug tracker. Report issues there.

See also[edit]