Argument types

This page contains a list of all command argument types.

Java Edition

brigadier:bool

Must be a [Boolean]Boolean (either true or false).

brigadier:double

Must be a [Double]Double-precision floating-point number (from -(2-2-52)×21023 (≈-1.8×10308) to (2-2-52)×21023 (≈1.8×10308) ).

Each double argument may have a custom minimum and maximum value.

Precision varies throughout number line; the maximum absolute value is about 1.8×10308.

brigadier:float

Must be a [Float]Single-precision floating-point number (from -(2-2-23)×2127 (≈-3.4×1038) to (2-2-23)2×127 (≈3.4×1038) ).

Each float argument type may have a custom minimum and maximum value.

Precision varies throughout number line; the maximum absolute value is about 3.4×1038.

brigadier:integer

Must be a [Int]32-bit integer number (from -2147483648 (-231) to 2147483647 (231-1) ).

Each integer argument type may have a custom minimum and maximum value.

Maximum range is from −(231) to (231 − 1), or from (−2,147,483,648) to (2,147,483,647).

brigadier:long

Must be a [Long] 64-bit long (from -9223372036854775808 (-263) to 9223372036854775807 (263-1) ).

Note: Although a long argument type is present in brigadier, it is not used by Minecraft.

Each long argument type may have a custom minimum and maximum value.

Maximum range is from −(263) to (263−1), or from (−9,223,372,036,854,775,808) to (9,223,372,036,854,775,807).

brigadier:string

Must be a string.

Each string argument type can accept either a single word (no spaces), a quotable phrase (either single word or quoted string), or a greedy phrase (taking the rest of the command as the string argument).

minecraft:angle

Must be a yaw angle, measured in degrees with single-precision floating-point numbers. -180.0 for due north, -90.0 for due east, 0.0 for due south, 90.0 for due west, to 179.9 for just west of due north, before wrapping back around to -180.0. Tilde notation can be used to specify a rotation relative to the execution yaw rotation.

minecraft:block_pos

Must be a block position composed of <X>, <Y> and <Z>, each of which must be an integer or a tilde and caret notation.

minecraft:block_predicate

The format of block_predicate parameters is block_id[block_states]{data_tags}, in which block states and data tags can be omitted when they are not needed.

  • block_id is required, and it should be in the format of resource location(if namespace isn't set it defaults to minecraft:).
    • It can also be the resource location of a block tag prefixed with #, such as #minecraft:planks.
  • Block states are inside [], comma-separated and properties and values must be supported by the block or all blocks in the tag. They are optional.
    • minecraft:stone[doesntexist=purpleberry] is unparseable, because stone doesn't have doesntexist.
    • minecraft:redstone_wire[power=tuesday] is unparseable, because redstone_wire's power is a number between 0 and 15.
  • Data tags are inside {}. They are optional.
  • When test for block, only the states provided are tested.
    • If a command tests for redstone_wire[power=15], it checks only power, but ignores other states such as north.

minecraft:block_state

The format of block_state parameters is block_id[block_states]{data_tags}, in which block states and data tags can be omitted when they are not needed.

  • block_id is required, and it should be in the format of resource location (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 unparseable, because stone doesn't have doesntexist.
    • minecraft:redstone_wire[power=tuesday] is unparseable, because redstone_wire's power is a number between 0 and 15.
  • Data tags are inside {}. They are optional.
  • When placing blocks, any states provided are set, but anything omitted retain their default values, depending on the block type.
    • If a command sets redstone_wire[power=15], it is set power to 15, but north is a default value (in this case, set to none).

minecraft:color

Must be a team color (reset or one of the 16 chat colors.)

minecraft:column_pos

Must be a column coordinates composed of <X> and <Z>, each of which must be an integer or tilde notation.

minecraft:component

It must be a valid text component.

minecraft:dimension

It must be a resource location, which resolves into a dimension during command execution.

minecraft:entity

Must be a player name, a target selector or a UUID.

Each entity argument may place limits on the number of entities (single/multiple) selected or the type of entities (player/any entity) selected.

minecraft:entity_anchor

Must be either eyes or feet.

minecraft:float_range

Must be a range acceptable for single-precision floating-point values. (e.g. 0.1 - exact match of 0.1. ..0.1 - less than or equal to 0.1. 0.1.. - more than or equal to 0.1. 0.1..1 - from 0.1 to 1, both inclusive.)

Note: Although the float range argument type is present, it is not used by Minecraft.

minecraft:function

It must be a resource location or one prefixed with a #, which resolves into a function or a function tag during command execution.

minecraft:game_profile

Specifies one or more game profiles (player profiles). Must be a player name (should be a real one if the server is in online mode) or a player-type target selector.

minecraft:gamemode

Must be one of the following:

Note that "hardcore" is not a valid option, as it is technically not a game mode.

minecraft:heightmap

Must be one of world_surface, motion_blocking, motion_blocking_no_leaves, and ocean_floor.

minecraft:int_range

Must be a range acceptable for 32-bit integer values. (e.g. 0 - exact match of 0. ..0 - less than or equal to 0. 0.. - more than or equal to 0. 0..1 - from 0 to 1, both inclusive.)

minecraft:item_predicate

The format of item_predicate parameters is <item_type>[<list of tests>], in which the list of tests with [] can be omitted when not needed.

  • <item_type> is required.
    • It can be in the format of resource location (if namespace isn't set it defaults to minecraft:).
    • It can also be the resource location of a block tag or item tag with the prefix of #, such as #minecraft:planks.
    • It can also be a wildcard character * to match any item type.
  • The list of tests is optional. Test entries are inside [] and separated with <separator>.
  • A test entry can be:
    • <component_id> - Checks if a component exists.
    • <component_id>=<value> - Matches exact value of a component.
      • <value> is a representation of component value in SNBT format.
    • <predicate_id>~<value> - Checks an item sub-predicate
      • <predicate_id> is the ID of an item sub-predicate.
      • <value> is a representation of item sub-predicate in SNBT format.
      • Example: *[damage~{durability:{min:3}}] matches any stack with at least 3 uses left.
    • minecraft:count - Matches the stack size.
      • count - Always passes.
      • count=<positive_int> - Passes only when the stack size equals to the given value.
      • count~<positive_int> - Passes only when the stack size equals to the given value.
      • count~<int_range> - Passes when the stack size is in the specified range.
        • <int_range> is an SNBT of {min:<min value>, max:<max value>}. Both min and max are optional.
      • Example: *[count~{max:2}] matches any stack with count <= 2.
    • Any test entry above can be negated by prefixing with !.
      • Example: *[!count=1] matches any stack that has count other than 1.
  • A <separator> can be:
    • | - Logical OR.
    • , - Logical AND.
    • Unlike most programming languages, the precedence of | (Logical OR) is higher than , (Logical AND).
    • That means tests entries joined with | are treated as a single entry to check multiple alternatives.
    • Example: *[!damage|damage=0, count=1] looks for items without damage component or with 0 damage, and its count must be 1.

minecraft:item_slot

Must be a string notation that refer to a single slot in the inventory, which consists of "slot type" and optional "slot number", in the format of <slot_type> or <slot_type>.<slot_number>. See Slot for details.

minecraft:item_slots

Must be a string notation that refer to certain slot(s) in the inventory, which consists of "slot type" and optional "slot number", in the format of <slot_type> or <slot_type>.<slot_number>. Wildcard (*) is accepted. See Slot for details.

minecraft:item_stack

The format of item_stack is <item_id>[<list of components>], in which the list of components with [] can be omitted when not needed.

  • <item_id> is required, and it should be in the format of resource location (if namespace isn't set it defaults to minecraft:).
  • The list of data components is optional. Data component entries are inside [] separated with ,.
    • A data component entry can be:
      • <component_id>=<value> - Sets value of a data component.
        • <component_id> is the ID of a data component.
        • <value> is a representation of component value in SNBT format.
      • !<component_id> - Removes a default data component of the item.
  • When giving items, any components provided are set or removed, but anything omitted retain their default values, depending on the item type.

minecraft:loot_modifier

Specifies a item modifier with a resource location or in SNBT format. Must be a valid item modifier definition in SNBT format, or a resource location of an existing item modifier (an entry in minecraft:item_modifier registry). For NBT tag, if it is a string tag, the tag is also parsed into a resource location and resolved into an existing item modifier; otherwise, the tag is parsed as a new item modifier definition.

minecraft:loot_predicate

Specifies a predicate with a resource location or in SNBT format. Must be a valid predicate definition in SNBT format, or a resource location of an existing predicate (an entry in minecraft:predicate registry). For NBT tag, if it is a string tag, the tag is also parsed into a resource location and resolved into an existing predicate; otherwise, the tag is parsed as a new predicate definition.

minecraft:loot_table

Specifies a loot table with a resource location or in SNBT format. Must be a valid loot table definition in SNBT format, or a resource location of an existing loot table (an entry in minecraft:loot_table registry). For NBT tag, if it is a string tag, the tag is also parsed into a resource location and resolved into an existing loot table; otherwise, the tag is parsed as a new loot table definition.

minecraft:message

It is a greedy phrase string argument (taking the rest of the command as the string argument). Can include spaces as well as target selectors. The game replaces entity selectors in the message with the list of selected entities' names, which is formatted as "name1 and name2" for two entities, or "name1, name2, ... and namen" for n entities.

minecraft:nbt_compound_tag

Must be a [NBT Compound / JSON Object] compound NBT in SNBT format.

minecraft:nbt_path

Must be an NBT path.

minecraft:nbt_tag

Must be an NBT tag of any type in SNBT format.

minecraft:objective

It must be a single word. (Allowed characters include: -, +, ., _, A-Z, a-z, and 0-9) It resolves into a scoreboard objective during command execution.

minecraft:objective_criteria

Must be a scoreboard objective criterion.

minecraft:operation

Must be an arithmetic operator for /scoreboard.
Valid values include = (assignment), += (addition), -= (subtraction), *= (multiplication), /= (floor division), %= (modulus), >< (swapping), < (choosing minimum) and > (choosing maximum).

minecraft:particle

It must be in the format of particle_type_id{configuration tags} for particle types with configurations, or the format of particle_type_id for particle types without configurations.

minecraft:resource

Must be an existing registered resource location in correct registry.

minecraft:resource_key

Must be a resource location, which resolves during command execution into a registry entry in correct registry.

minecraft:resource_location

Must be a resource location for an unregistered content. It is resolved during command execution into the unregistered content, or sent to the client to resolve into a client-side content.

minecraft:resource_or_tag

Must be an existing registered resource location or tag in correct registry.

minecraft:resource_or_tag_key

Must be a resource location or a tag, which resolves during command execution into an entry or tag in correct registry.

minecraft:resource_selector

Similar to resouce_location except enables the use of wildcard characters.

  • * - matches from 0 to any number of characters
  • ? - matches exactly one character

minecraft:rotation

Must be a rotation consisting of two double number elements, including yaw and pitch, measured in degrees.

  • For the horizontal rotation (yaw), -180.0 for due north, -90.0 for due east, 0.0 for due south, 90.0 for due west, to 179.9 for just west of due north, before wrapping back around to -180.0.
  • For the vertical rotation (pitch), -90.0 for straight up to 90.0 for straight down.

Tilde notation can be used to specify a rotation relative to the execution rotation.

minecraft:score_holder

It must be either a target selector, a player name, a UUID, or * for all score holders being tracked by the scoreboard system. Player names don't need to be of a player that is online or a player that exists and can use almost all unicode characters​.

Each score holder argument may specify if it can select only one score holder or multiple score holders.

minecraft:scoreboard_slot

Must be a scoreboard display slot.

minecraft:style

Must contain style information for text component.

minecraft:swizzle

Any non-repeating combination of the characters 'x', 'y', and 'z'. Axes can be declared in any order, but they cannot duplicate. (For example, x, xz, zyx, or yz.)

minecraft:team

Must be an unquoted string, which resolves into a team during command execution. Allowed characters include: -, +, ., _, A-Z, a-z, and 0-9.

minecraft:template_mirror

Must be one of none, front_back, and left_right.

minecraft:template_rotation

Must be one of none, clockwise_90, counterclockwise_90, and 180.

minecraft:time

It must be a single-precision floating-point number suffixed with a unit. It must be not less than 0 gameticks. Units include:

  • d: an in-game day, 24000 gameticks;
  • s: a second, 20 gameticks;
  • t (default and omitable): a single gametick; the default unit.

The time is set to the closest integer after unit conversion to gametick. For example. .5d is same as 12000 gameticks.

minecraft:uuid

Must be a UUID in the hyphenated hexadecimal format. Allowed characters include: -, A-F、, a-f, and 0-9.

Note: Although the UUID argument type is present, it is not used by Minecraft.

minecraft:vec2

Must be two-dimensional coordinates with double-precision floating-point number elements. Accepts tilde notations.

minecraft:vec3

Must be three-dimensional coordinates with double-precision floating-point number elements. Accepts tilde and caret notations.

Removed

minecraft:entity_summon

Must be a resource location of a summonable entity type.

minecraft:item_enchantment

Must be an ID of an enchantment.

minecraft:mob_effect

Must be an ID of a status effect.

Bedrock Edition

This section needs to be updated.
 
Please update this section to reflect recent updates or newly available information.

BlockStateCommandParam

Also known as BLOCK_STATE_ARRAY.

Must be a blockstate argument as ["<state1>"=<value1>,"<state2>"=<value2>,...]. For example: ["old_leaf_type"="birch","persistent_bit"=true].

CommandCompareOperator

Also known as COMPAREOPERATOR.

Must be one of <, <=, =, >=, and >.

CommandFilePath

Also known as PATHCOMMAND.

It must be of the format path/to/function/file, which resolves into a function located at [behavior_pack]/functions/path/to/function/file.mcfunction during command execution.

CommandIntegerRange

Also known as FULLINTEGERRANGE.

Must be a range acceptable for 32-bit integer values. (e.g. 0 - exact match of 0. ..0 - less than or equal to 0. 0.. - more than or equal to 0. 0..1 - from 0 to 1, both inclusive.)

CommandMessage

Also known as MESSAGE_ROOT.

It is a greedy phrase string argument (taking the rest of the command as the string argument). Can include spaces as well as target selectors. The game replaces entity selectors in the message with the list of selected entities' names, which is formatted as "name1 and name2" for two entities, or "name1, name2, ... and namen" for n entities.@<player name> can be used to mention a player; @here can be used to mention all players.

CommandOperator

Also known as OPERATOR.

Must be an arithmetic operator for /scoreboard.
Valid values include = (assignment), += (addition), -= (subtraction), *= (multiplication), /= (floor division), %= (modulus), >< (swapping), < (choosing minimum) and > (choosing maximum).

CommandPosition

Also known as POSITION.

Must be a three-dimensional coordinates composed of <X>, <Y> and <Z>, each of which must be a single-precision floating-point number or tilde and caret notation.

CommandPositionFloat

Also known as POSITION_FLOAT.

Must be three-dimensional coordinates with single-precision floating-point number elements. Accepts tilde and caret notations.

CommandRawText

Also known as RAWTEXT.

It is a greedy phrase string argument (taking the rest of the command as the string argument).

CommandSelector<Actor> and CommandSelector<Player>

Also known as SELECTION.

CommandSelector<Actor> is used to specify entities. Must be a player name or a target selector.

CommandSelector<Player> is used to specify players. Must be a player name or a target selector.

CommandWildcardInt

Also known as WILDCARDINT.

Must be a 32-bit integer, or a asterisk (*) to represent MIN_INT(-2,147,483,648),

float

Also known as VAL.

Must be a [Float]Single-precision floating-point number (from -(2-2-23)×2127 (≈-3.4×1038) to (2-2-23)2×127 (≈3.4×1038) ).

int

Also known as INT.

Must be a [Int]32-bit integer number (from -2147483648 (-231) to 2147483647 (231-1) ).

Json::Value

Also known as JSON_OBJECT.

It must be a JSON [NBT Compound / JSON Object]Object.

RelativeFloat

Also known as RVAL.

Must be a [Float] float. Accepts tilde notation.

std::basic_string

Also known as ID.

Must be a string. And it must be a single word that has no space or a double-quoted string (When quoted, \ can be used to escape characters).

std::unique_ptr<Command>

Also known as SLASHCOMMAND.

Represents a complete command.

WildcardCommandSelector<Actor>

Also known as WILDCARDSELECTION.

It must be either a target selector, a player name, a unique ID of an entity, or * for all score holders being tracked by the scoreboard system. Player names don't need to be of a player that is online or a player that exists and can use almost all unicode characters​.

Enum

Must be an unquoted string without space.

History

Java Edition
1.1317w45aCommand arguments are now handled with Brigadier.
1.1419w08aNow allows single quotes for strings in commands.[1]
1.1620w17aAdded minecraft:uuid argument type.
1.16.220w29aAdded angle arguments to /spawnpoint and /setworldspawn, with a argument type that is not registered.[2]
20w30aAdded minecraft:angle argument type.
Now /spawnpoint and /setworldspawn use this argument type.[2]
?Now minecraft:dimension argument type checks whether the dimension exists during execution instead of parsing.
1.1720w45aNow minecraft:angle argument type does not accept NaN or Infinite.[3]
21w10aNow minecraft:block_pos arguments in /spawnpoint and /setworldspawn require <x> and <z> to be in the range of [-30000000, 30000000), and <y> to be in the range of [-20000000, 20000000) when executing.[4]
1.1821w37aRemoved 16-character limit in minecraft:objective argument type.[5]
1.18.2Pre-release 3Added minecraft:resource and minecraft:resource_or_tag argument types.
Now minecraft:resource_location is used only for pack contents, while minecraft:resource is used for registry entries.
1.1922w11aNow minecraft:item_predicate and minecraft:block_predicate require tag to exist when parsing instead of executing.[6]
22w19aAdded minecraft:template_mirror and minecraft:template_rotation argument types.
1.19.322w42aAdded minecraft:resource_key and minecraft:resource_or_tag_key argument types, which are used for reloadable registry entries (i.e. registered pack contents).
Now minecraft:resource and minecraft:resource_or_tag are used only for un-reloadable registry entries.
Removed minecraft:mob_effect, minecraft:entity_summon and minecraft:item_enchantment argument types. Replaced by minecraft:resource.
22w45aAdded minecraft:gamemode argument type.
1.19.423w03aAdded min property to minecraft:time argument type.[7]
The min value of minecraft:time is always 0 before this update.
1.19.4-pre1Added minecraft:heightmap argument type.
1.20.323w46aAdded minecraft:style argument type.
1.20.524w10aAdded minecraft:item_slots argument type.

References

  1. "Allow single quote in strings by boq · Pull Request #52" – Mojang/brigadier – GitHub.
  2. a b MC-195052 — resolved as "Fixed".
  3. MC-198414 — resolved as "Fixed".
  4. MC-210408 — resolved as "Fixed".
  5. MC-123277 — resolved as "Fixed".
  6. MC-124984 — resolved as "Fixed".
  7. MC-122595 — resolved as "Fixed".

Navigation