Argument types

From Minecraft Wiki
Jump to navigation Jump to search

This page contains a list of all command argument types.

Java Edition

[edit | edit source]

brigadier:bool

[edit | edit source]

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

brigadier:double

[edit | edit source]

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

[edit | edit source]

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

[edit | edit source]

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

[edit | edit source]

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

[edit | edit source]

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

[edit | edit source]

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

[edit | edit source]

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

[edit | edit source]

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

[edit | edit source]

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

[edit | edit source]

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

minecraft:column_pos

[edit | edit source]

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

minecraft:component

[edit | edit source]

It must be a valid text component.

minecraft:dimension

[edit | edit source]

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

minecraft:entity

[edit | edit source]

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

[edit | edit source]

Must be either eyes or feet.

minecraft:float_range

[edit | edit source]

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.)

minecraft:function

[edit | edit source]

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

[edit | edit source]

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

[edit | edit source]

Must be one of the following:

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

minecraft:heightmap

[edit | edit source]

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

minecraft:int_range

[edit | edit source]

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

[edit | edit source]

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

[edit | edit source]

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

[edit | edit source]

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

[edit | edit source]

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

[edit | edit source]

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

[edit | edit source]

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

[edit | edit source]

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

[edit | edit source]

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

[edit | edit source]

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

minecraft:nbt_path

[edit | edit source]

Must be an NBT path.

minecraft:nbt_tag

[edit | edit source]

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

minecraft:objective

[edit | edit source]

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

[edit | edit source]

Must be a scoreboard objective criterion.

minecraft:operation

[edit | edit source]

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

[edit | edit source]

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

[edit | edit source]

Must be an existing registered resource location in correct registry.

minecraft:resource_key

[edit | edit source]

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

minecraft:resource_location

[edit | edit source]

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

[edit | edit source]

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

minecraft:resource_or_tag_key

[edit | edit source]

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

minecraft:resource_selector

[edit | edit source]

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

[edit | edit source]

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

[edit | edit source]

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​[more information needed].

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

minecraft:scoreboard_slot

[edit | edit source]

Must be a scoreboard display slot.

minecraft:style

[edit | edit source]

Must contain style information for text component.

minecraft:swizzle

[edit | edit source]

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

[edit | edit source]

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

[edit | edit source]

Must be one of none, front_back, and left_right.

minecraft:template_rotation

[edit | edit source]

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

minecraft:time

[edit | edit source]

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

[edit | edit source]

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

minecraft:vec2

[edit | edit source]

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

minecraft:vec3

[edit | edit source]

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

Removed

[edit | edit source]

minecraft:entity_summon

[edit | edit source]

Must be a resource location of a summonable entity type.

minecraft:item_enchantment

[edit | edit source]

Must be an ID of an enchantment.

minecraft:mob_effect

[edit | edit source]

Must be an ID of a status effect.

Bedrock Edition

[edit | edit source]
This section needs to be updated.
 
Please update this section to reflect recent updates or newly available information. The talk page may contain suggestions.

BlockStateCommandParam

[edit | edit source]

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

[edit | edit source]

Also known as COMPAREOPERATOR.

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

CommandFilePath

[edit | edit source]

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

[edit | edit source]

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

[edit | edit source]

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

[edit | edit source]

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

[edit | edit source]

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

[edit | edit source]

Also known as POSITION_FLOAT.

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

CommandRawText

[edit | edit source]

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>

[edit | edit source]

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

[edit | edit source]

Also known as WILDCARDINT.

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

float

[edit | edit source]

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) ).

Also known as INT.

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

Json::Value

[edit | edit source]

Also known as JSON_OBJECT.

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

RelativeFloat

[edit | edit source]

Also known as RVAL.

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

std::basic_string

[edit | edit source]

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>

[edit | edit source]

Also known as SLASHCOMMAND.

Represents a complete command.

WildcardCommandSelector<Actor>

[edit | edit source]

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​[more information needed].

Must be an unquoted string without space.

History

[edit | edit source]
This article is missing information about: Bedrock Edition
 
Please expand the article to include this information. Further details may exist on the talk page.
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 an 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

[edit | edit source]
  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".
[edit | edit source]