Piston/Technical components
Pistons and sticky pistons have 2 technical blocks that cannot be obtained. These include the piston head and moving piston blocks.
Piston head
_JE3.png)
_BE2.png)
_JE3.png)
_BE2.png)
| Renewable |
Yes |
|---|---|
| Stackable |
No |
| Tool | |
| Blast resistance |
1.5 |
| Hardness |
1.5 |
| Luminous |
No |
| Transparent |
Yes |
| Flammable |
No |
| Catches fire from lava |
No |
| Map color (JE) |
|
{
"title": "Piston Head",
"rows": [
{
"field": "Yes",
"label": "(link to Renewable resource article, displayed as Renewable)"
},
{
"field": "No",
"label": "Stackable"
},
{
"field": "<span class=\"sprite-file\" style=\"height:32px;width:32px;--vertical-align:middle\">(link to File:SlotSprite Pickaxe Required.png article, displayed as 32x32px|link=Pickaxe|alt=|class=pixel-image|This block can be broken with any tool, but a pickaxe is the quickest)</span>",
"label": "Tool"
},
{
"field": "1.5",
"label": "(link to Explosion#Blast resistance article, displayed as Blast resistance)"
},
{
"field": "1.5",
"label": "(link to Breaking#Blocks by hardness article, displayed as Hardness)"
},
{
"field": "No",
"label": "(link to Light article, displayed as Luminous)"
},
{
"field": "Yes",
"label": "(link to Opacity article, displayed as Transparent)"
},
{
"field": "No",
"label": "(link to Flammable article, displayed as Flammable)"
},
{
"field": "No",
"label": "Catches fire<br>from (link to lava article, displayed as lava)"
},
{
"field": "<span style=\"display: inline-block; white-space: nowrap;\"><span style=\"display: inline-block; background-color: rgb(112, 112, 112); border: 1px solid #888; border-radius: 0.3em; color: transparent; width: 1em; height: 1em; vertical-align: -0.36em; margin-right: -0.1em\"><br></span> 11 STONE</span>",
"label": "(link to Map color article, displayed as Map color) <small>((link to Java Edition article, displayed as ''JE''))</small>"
}
],
"invimages": [
"pistonArmCollision",
"Piston Arm Collision",
"Sticky Piston Arm Collision"
],
"images": [
"Piston Head.png",
"Piston Head BE.png",
"Sticky Piston Head.png",
"Sticky Piston Head BE.png"
]
}
The piston head is a technical block that appears as the front part of an extended piston. It is not available in the Creative inventory and does not drop anything when removed.
Normally, piston heads are created automatically when a piston extends. However, they can also be placed manually using the /setblock command. Alternatively a debug stick[Java Edition only] can be used to change the facing direction of a piston head that's currently attached to a piston base. Piston heads that do not have a valid support block behind them will be removed when receiving a shape update from behind in Java Edition, or when receiving a block update from any direction in Bedrock Edition.
In rare cases, a client-side, duplicate piston head can appear when placing a piston next to a power source in Java Edition, due to client-server desync issues.[1] These client-side piston heads cannot be broken directly but can be removed by placing another block in the same location.
In Java Edition, normal and sticky piston heads are distinguished by a block state. In Bedrock Edition, they use separate block IDs. The normal and sticky piston heads can be obtained as items in Bedrock Edition with the commands /give @s pistonarmcollision and /give @s stickypistonarmcollision. They face down when placed.
In Bedrock Edition, piston head blocks do not actually have a texture, as the piston arm texture is part of the piston block entity, and piston heads that aren't connected to a piston base have neither collisions nor an interaction box.
Block states
| Name | Default value | Allowed values | Description |
|---|---|---|---|
| facing | north | downeastnorthsouthupwest | The direction the piston head is pointing. |
| short | false | falsetrue | If true, the piston arm is shorter than usual, by 4 pixels. |
| type | normal | normalsticky | The type of piston head. |
Bedrock Edition:
Piston Head:
| Name | Metadata Bits | Default value | Allowed values | Values for Metadata Bits |
Description |
|---|---|---|---|---|---|
| facing_direction | 0x10x20x4 | 0 | 012345 | 012345 | The direction the piston head is pointing.
|
Sticky Piston Head:
| Name | Metadata Bits | Default value | Allowed values | Values for Metadata Bits |
Description |
|---|---|---|---|---|---|
| facing_direction | Not Supported | 0 | 012345 | Unsupported | The direction the piston head is pointing.
|
Moving piston
| Renewable |
Yes |
|---|---|
| Stackable |
No |
| Tool |
None |
| Blast resistance |
0 |
| Hardness |
-1 |
| Luminous |
No |
| Transparent |
Yes |
| Flammable |
No |
| Catches fire from lava |
No |
{
"title": "Moving Piston",
"rows": [
{
"field": "Yes",
"label": "(link to Renewable resource article, displayed as Renewable)"
},
{
"field": "No",
"label": "Stackable"
},
{
"field": "None",
"label": "Tool"
},
{
"field": "0",
"label": "(link to Explosion#Blast resistance article, displayed as Blast resistance)"
},
{
"field": "-1",
"label": "(link to Breaking#Blocks by hardness article, displayed as Hardness)"
},
{
"field": "No",
"label": "(link to Light article, displayed as Luminous)"
},
{
"field": "Yes",
"label": "(link to Opacity article, displayed as Transparent)"
},
{
"field": "No",
"label": "(link to Flammable article, displayed as Flammable)"
},
{
"field": "No",
"label": "Catches fire<br>from (link to lava article, displayed as lava)"
}
],
"invimages": [
"movingBlock"
],
"images": []
}
The moving piston, also known as block 36 due to its pre-flattening block ID, is an unobtainable technical block that contains part of a piston head, and/or part of one or two blocks that the piston is carrying into or out of the grid cell (including blocks carried indirectly via slime blocks). Since moving blocks vary in how much of each grid cell they occupy, they can't be stored as normal blocks and are instead stored as block entities. At the end of the piston stroke, it gets replaced with either air, the piston head, or the carried block; but if it is placed through editing and no piston is connected, it remains indefinitely.
It is invisible and non-solid in Java Edition, and cannot be broken without the use of commands, TNT, or a structure generating over it (such as the end platform). Although it is non-solid, fluids cannot pass through it. It also prevents players from building at its location. Mobs can see through it, but cannot walk through it. The game treats the block as a stone block when it comes to the player's footstep sounds. It is similar to invisible bedrock in properties with the exception that the player can walk through the moving piston but not invisible bedrock.
Block states
| Name | Default value | Allowed values | Description |
|---|---|---|---|
| facing | north | downeastnorthsouthupwest | The direction the block is being pushed by the piston. |
| type | normal | normalsticky | What piston base this has. |
Block data
The moving piston has a block entity associated with it that holds additional data about the block.
- [NBT Compound / JSON Object] Block entity data
- Tags common to all block entities see Template:Nbt inherit/blockentity/template
- [NBT Compound / JSON Object] blockState: The moving block represented by this block entity.
- Block state see Template:Nbt inherit/block state/template
- [Byte] extending: 1 or 0 (true/false) – true if the piston is extending instead of withdrawing.
- [Int] facing: Direction that the piston pushes (0=down, 1=up, 2=north, 3=south, 4=west, 5=east).
- [Float] progress: How far the block has been moved. Starts at 0.0, and increments by 0.5 each tick, including the tick on which moving the piston is created. If the value is 1.0 or higher at the start of a tick of the block entity (before incrementing), then the block transforms into the stored blockState. Negative values can be used to increase the time until transformation.
- [Byte] source: 1 or 0 (true/false) – true if the block represents the piston head itself, false if it represents a block being pushed.
Data values
ID
| Name | Identifier | Form | Block tags | Translation key |
|---|---|---|---|---|
piston_head | Block | None | block | |
moving_piston | Block | dragon_immunewither_immune |
block |
| Name | Identifier |
|---|---|
piston |
| Name | Identifier | Alias ID | Numeric ID | Form | Item ID[i 1] | Translation key |
|---|---|---|---|---|---|---|
piston_arm_collision | pistonArmCollision | 34 | Block & Ungiveable Item[i 2] | Identical[i 3] | tile | |
sticky_piston_arm_collision | stickyPistonArmCollision | 472 | Block & Ungiveable Item[i 2] | Identical[i 3] (Numeric: -217) |
tile | |
moving_block | movingBlock | 250 | Block & Ungiveable Item[i 2] | Identical[i 3] | — |
| Name | Savegame ID |
|---|---|
MovingBlock |
History
The specific instructions are: 1.19 piston changes
| Java Edition Beta | |||||||
|---|---|---|---|---|---|---|---|
| 1.7 | Added piston head and moving piston blocks. | ||||||
| Java Edition | |||||||
| 1.8 | 14w17a | ||||||
| 14w27b | The moving piston block no longer has a selection outline. | ||||||
| 14w29a | There are now "short" piston heads. Their model is used during a piston's extension/retraction to avoid having part of the head's texture poke out of the back of the piston. | ||||||
| 1.14 | 18w43a | The textures associated with piston heads have been changed. | |||||
| While the texture for oak planks was later updated in subsequent snapshots, the piston texture is yet to be changed to reflect this.[2] | |||||||
| 1.19 | 22w17a | Changed piston textures, to match the color of the oak planks on the piston head. | |||||
Data history
Java Edition
| Java Edition | |||||||
|---|---|---|---|---|---|---|---|
| 1.8 | 14w29a | Added the "short=true/false" block state to piston_head. | |||||
| 1.11.1 | 16w50a | Added a new byte tag source for the piston_extension block entity, which is true if the block represents the piston head itself, and false if it represents a block being pushed. Pistons moving entities to the other side has been fixed. | |||||
| 1.13 | 17w47a | The moving block ID of pistons has been changed from piston_extension to moving_piston.
| |||||
| Prior to The Flattening, these blocks' numeral IDs were 34 and 36. | |||||||
Bedrock Edition
| Pocket Edition Alpha | |||||||
|---|---|---|---|---|---|---|---|
| v0.16.0 | build 5 | The movingblock block for pistons can no longer be placed using commands. | |||||
| Bedrock Edition | |||||||
| 1.13.0 | beta 1.13.0.9 | Sticky piston heads are now a separate block from normal heads, instead of being differentiated by a block state. The namespaced ID is now stickypistonarmcollision, while the numerical ID is 472. | |||||
| 1.18.30 | beta 1.18.30.26 | The ID of pistonarmcollision is changed to piston_arm_collision
| |||||
The ID of stickypistonarmcollision is changed to sticky_piston_arm_collision
| |||||||
The ID of movingblock is changed to moving_block | |||||||
Trivia
- Mobs can spawn inside the piston head block.
- In Bedrock Edition, the piston head is invisible and non-solid when placed with commands. The moving piston cannot be placed with block placement commands in this edition.
- The
moving_pistonis transparent and does not emit light.- If a light-emitting block is moved, the player can see it turn dark briefly. If an opaque block is moved, the player may see light passing through it.
References
| All editions | |
|---|---|
| Java Edition only | |
| Bedrock Edition only | |