/setblock

/setblock
Permission level
required
  • 2 ‌
  • 1 ‌
Restrictions

Cheat only‌

Changes a block to another block.

Syntax

  • Java Edition
setblock <pos> <block> [destroy|keep|replace|strict]
  • Bedrock Edition
setblock <position: x y z> <tileName: Block> <blockStates: block states> [destroy|keep|replace]
setblock <position: x y z> <tileName: Block> [destroy|keep|replace]

Arguments

JE<pos>: block_pos
BE: position: x y z: CommandPosition

Specifies the position of the block to be changed.
In Java Edition, must be a block position composed of <X>, <Y> and <Z>, each of which must be an integer or a tilde and caret notation. In Bedrock Edition, 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.

JE<block>: block_state
BE: tileName: Block: enum

Specifies the new block.
In Java Edition, must be in the format of block_id[block_states]{data_tags}(does not accept block tags), in which block states and data tags can be omitted when they are not needed. In Bedrock Edition, must be a block id.

BE: blockStates: block states: BlockStateCommandParam

Specifies the block states to use for the block.
Must be a blockstate argument as ["<state1>"=<value1>,"<state2>"=<value2>,...]. For example: ["old_leaf_type"="birch","persistent_bit"=true].

destroy|keep|replace and destroy|keep|replace|strict

Specifies how to handle the block change. Must be one of:
  • destroy — The old block drops both itself and its contents (as if destroyed by a player). Plays the appropriate block breaking noise.
  • keep — Only air blocks are changed (non-air blocks are unchanged).
  • replace — The old block drops neither itself nor any contents. Plays no sound.
  • strict — Place blocks as-is without triggering block updates and shape updates.
If not specified, defaults to replace.

Result

CommandTriggerJava EditionBedrock Edition
AnyThe command is incomplete, or any argument is not specified correctly. Unparseable Unparseable
The specified position is unloaded or out of the world. Failed Failed
Trying to place block in debug mode. N/A
/setblock ... keepTrying to change a non-air block. Failed
/setblock ... keep
/setblock ... replace
/setblock ... strict
Trying to replace a block with an identical copy (ignoring the block entity).
Trying to replace some kinds of redstone components with an unstable block (e.g. replacing one of two adjacent standing redstone torches with a TNT block)[1]. Successful
AnyOtherwiseSuccessful

Output

CommandEditionSituationSuccess Count/execute store success .../execute store result ...
AnyJava EditionOn fail000
On success111
Bedrock EditionOn fail0N/AN/A
On success1N/AN/A

Examples

  • Put a chest facing east at your feet
    • setblock ~ ~ ~ chest[facing=east]
    • setblock ~ ~ ~ chest ["minecraft:cardinal_direction"="east"]
  • Place a sign next to it in Java Edition
    • setblock ~ ~ ~-1 birch_sign{Text1:'"My chest"',Text2:'"Do not open!"'} (Note the two sets of quotes around the text. They are required.)
  • Put a top quartz slab at the top of your head
    • setblock ~ ~2 ~ quartz_slab[type=top]
    • setblock ~ ~2 ~ quartz_slab ["minecraft:vertical_half"="top"]

History

Java Edition
1.7.213w37aAdded /setblock.
1.1116w32aAdded block state support to /setblock.
1.1620w06a/setblock ~ ~ ~ air destroy now can destroy liquids.[2]
1.21.525w02aThe behavior of / command has changed in how it handles block entity data.
Accepts a new option: strict.
New syntax for commands to use the new strict option.
Pocket Edition Alpha
v0.16.0build 1Added /setblock.
Bedrock Edition
1.16.210beta 1.16.210.53Added block state support to /setblock.
1.19.70Preview 1.19.70.21Removed tileData: int argument.

See also

  • /data — modifies the data tags of a block or entity
  • /clone — copies blocks from one region to another
  • /fill — fills a region with a block

References

  1. MC-255198
  2. MC-163286 — resolved as "Fixed".

Navigation