Command Block

A command block is a block that can execute commands. Because it cannot be obtained in Survival mode without cheats, it is primarily used on multiplayer servers and in custom maps.

Obtaining
Command blocks are not available in the Creative inventory. It can either be obtained by using the control, or by using various commands, such as, or.

Just like other blocks that can store NBT data, using +  will copy the command and options inside the command block. This allows it to be placed elsewhere without having to re-enter the the data inside.

Command blocks also cannot be broken in Survival mode without operator permissions, are not flammable, cannot be moved by pistons, and have the same blast resistance as bedrock.

Usage
A command block can execute commands when activated by redstone power. It always has all permissions, so it can be used to allow a specific use of a command by players who can't use that command in general (for example, allowing anyone to obtain a specific item with, without allowing everyone to /give themselves whatever they want).

A command block has an orientation ("facing") which determines which chain command block will be activated, and which blocks will be checked to see if a command block in "Conditional" mode executes.

Modification


To enter or modify the command in a command block, use the control on the command block to open the command block GUI (graphical user interface). The GUI will only open if the player is in Creative mode, and has the proper permissions. In singleplayer, cheats must be enabled to edit command blocks. In multiplayer, command blocks can only be edited successfully by operators in Creative mode, and for command blocks to work at all the following values must be set in the server.properties file:
 * must be set to
 * must be set to  or above (default is 4)


 * Console Command


 * Commands can be entered in the top text pane. The text limit for commands in a command block is 32,500 characters, but the text pane can only show a small portion of this amount at a time. Press to complete words or cycle through options.


 * Commands in a command block do not need to be prefixed with the forward slash as they do in the chat window, but doing so will still work.


 * Below the console command text pane are some reminder tips about how to use target selectors.


 * Previous Output


 * The bottom text pane displays the output message (success or failure) of the last executed command (initially blank). Its text is not editable.


 * A button to the right of the Previous Output text pane specifies whether the last output should be stored and displayed. It shows  (the default) when the output should be stored and   when the output should not be stored. A command block that's tracking its output while executing its command will cause a block update, and when you have 64 of those command blocks tracking their output while executing their command sharing the same chunk, it will then cause 1 or more chunk updates because 64 block updates in 1 chunk will cause one or more chunk updates. If the amount of chunk updates is high enough, then it can cause fps drops for players if they're receiving the chunk updates. To avoid this, simply have all of your command blocks not track their output at all, except for temporary debugging purposes.


 * Impulse/Chain/Repeat


 * Click the "Impulse/Chain/Repeat" button to change the command block's type. The default state is "Impulse", but non-default command blocks can be placed. The command block also changes color when changing its command block type:


 * "Impulse" command blocks are orange. These execute once every time they are activated.
 * "Chain" command blocks are green. These execute only after the command block pointing to it is processed. This differs from the Conditional option in that it detects what is pointing to it, instead of simply behind it. The command blocks pointing to it also don't need to be chain command blocks themselves to trigger the chain.
 * "Repeat" command blocks are purple. These will execute their commands once per game tick as long as they are activated (20 times per second, barring lag).


 * Conditional/Unconditional


 * Click the "Conditional/Unconditional" button to change the command block's conditional behavior:
 * "Conditional": A command block in conditional mode will only execute its command after the command block behind it has executed successfully ("behind it" in the sense of opposite to the direction the command block is facing, regardless of chain direction or even if chaining is occurring).
 * "Unconditional" (default): A command block in unconditional mode will execute its command (if activated correctly) even if there's a command block behind it that didn't execute its command successfully.


 * Always Active/Needs Redstone


 * Click the "Always Active/Needs Redstone" button to change the command block's activation requirements:
 * "Needs Redstone" (the default for impulse and repeat command blocks): A command block in the "Needs Redstone" setting must be activated with redstone in order to execute its command.
 * "Always Active" (the default for chain command blocks): The command block is always active even without redstone activation (chain command blocks will execute their command when chained, repeating command blocks will execute their command every game tick (20 times every second), and impulse command blocks activate once then cannot be activated again).


 * Done


 * Click the "Done" button or to save the command and leave the command block GUI.


 * Cancel


 * Click the "Cancel" button or to leave the command block GUI without saving any changes.

Activation
Command blocks are redstone mechanisms and can be activated by:
 * An adjacent active power component: for example, a redstone torch (except that a redstone torch will not activate a command block it is attached to), a block of redstone, a daylight sensor, a button etc.
 * An adjacent powered block (for example, an opaque block with an active redstone torch under it)
 * A powered redstone comparator or redstone repeater facing the mechanism component
 * Powered redstone dust configured to point at the command block (or on top of it) or directionless; a command block is not activated by adjacent powered redstone dust which is configured to point away from it.

In addition, when a command block is cloned by a command to a powered location, the new command block will only execute its command if the original has never been activated (visible in the F3 debug screen as "triggered").

Unlike all other redstone components, except the note block, a command block can be activated every game tick (20 times per second, barring lag). However, if it's set to Needs Redstone, then activating it two game ticks in a row requires that it transition from powered to unpowered and back during the same tick (for example, with a setblock clock).

A command block in "Always Active" mode is always activated. The default state is "Needs Redstone", which means that it runs only when powered.

When activated, a command block will try to execute its command. depending on the command block's type:
 * a command block ("Impulse") will try to execute its command once
 * a chain command block ("Chain") will not try to execute its command until another command block facing it executes its own command
 * a repeating command block ("Repeat") will try to execute its command every game tick until no longer activated

Chained execution
If any command block faces a chain command block (a command block in "Chain" mode) when activated, it will notify the chain command block to also attempt execution. The chain command block will only execute its command if activated and, if in "Conditional" mode, if the command block behind it executed successfully (behind in the sense of the direction it is facing, not in the sense of which command block chained to it). Whether or not the chain command block is activated or executes successfully, if it is facing another chain command block, it will notify it to attempt execution as well.

Chained command blocks execute in the same game tick in the order they are chained. Chained execution cannot be passed to a command block which has already executed in that game tick (loops execute only once).

Output
When activated, a command block can produce multiple types of output:


 * Redstone Comparator


 * A command block can power a redstone comparator facing away from it (possibly separated by a block) with a signal strength specific to the last executed command (for example, the number of players affected by the command).


 * The signal strength always reflects the last command executed, even after the command block is deactivated.


 * Message


 * The output message describes the success or failure of the executed command, and may be written to multiple destinations:


 * Previous Output: The output message is always written to the "Previous Output" text pane of the command block GUI.


 * Chat: The output message is written to the chat text in singleplayer mode, or broadcast to all other ops in multiplayer mode, unless it has been suppressed with . Some commands may write additional text to the chat as their normal function which won't be suppressed (for example, the command will write a message to the chat of all players), separate from the output message. Chat messages which would usually be prefaced by a player's name (such as from the,  and  commands) use   as the player name. If the command block had been named in an anvil before placement, that name will be used instead.


 * Logs: The output message is written to multiplayer server logs unless it has been suppressed with.


 * Command Stats


 * Command blocks can post various success results to scoreboard objectives, including:
 * SuccessCount: the number of successes (previously also available by redstone comparator output, but not limited to 15)
 * AffectedBlocks: the number of blocks that were altered
 * AffectedEntities: the number of entities that were altered (including players)
 * AffectedItems: the number of items that were altered
 * QueryResult: value returned by command


 * The objectives to be used can be specified by running the command or by modifying the command block's NBT data directly with the  command.

Easter eggs
Running "Searge" as the command in the command block without a preceding " " will now set the previous output to "#itzlipofutzli". Additionally, if is run via command block, it gives various messages prefixed with "Searge says: ".

Block data
In Bedrock Edition, a command block's block data specifies whether the command block is currently activated.

Block entity
A command block has a block entity associated with it that holds additional data about the block.