Piston
Renewable |
Yes |
---|---|
Stackable |
Yes (64) |
Tool | |
Blast resistance |
0.5 |
Hardness |
1.5 |
Luminous |
No |
Transparent | |
Flammable |
No |
Catches fire from lava |
No |
{ "title": "Piston", "rows": [ { "field": "Yes", "label": "(link to Renewable resource article, displayed as Renewable)" }, { "field": "Yes (64)", "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=SlotSprite Pickaxe Required.png: Sprite image for Pickaxe Required in Minecraft linking to Pickaxe|class=pixel-image|This block can be broken with any tool, but a pickaxe is the quickest)</span>", "label": "Tool" }, { "field": "0.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": "'''(link to JE article, displayed as JE)''': No<br>'''(link to BE article, displayed as BE)''': Yes", "label": "(link to Opacity article, displayed as Transparent)" }, { "field": "No", "label": "(link to Flammable article, displayed as Flammable)" }, { "field": "No", "label": "Catches fire from (link to lava article, displayed as lava)" } ], "invimages": [ "Piston" ], "images": [ "Piston.gif", "Piston BE.gif" ] }
A piston is a block capable of pushing most entities and blocks when given a redstone signal.
Some blocks cannot be moved, break when pushed or have other interactions with pistons. A piston can move up to twelve blocks at once.
Obtaining[edit | edit source]
Breaking[edit | edit source]
A piston can be broken using any tool with equal efficiency, and always drops itself. In Java Edition, it is faster to break them with a pickaxe. The pickaxe is also the preferred tool for breaking the head when extended.[1]
Block | Piston | |
---|---|---|
Hardness | 1.5 | |
Tool | ||
Breaking time (sec)[A] | ||
Default | 2.25 | |
Wooden | 1.15 | |
Stone | 0.6 | |
Iron | 0.4 | |
Diamond | 0.3 | |
Netherite | 0.25 | |
Golden | 0.2 |
- ↑ Times are for unenchanted tools as used by players with no status effects, measured in seconds. For more information, see Breaking Speed.
Crafting[edit | edit source]
Ingredients | Crafting recipe |
---|---|
Any Planks + Cobblestone + Iron Ingot + Redstone Dust |
Usage[edit | edit source]
Crafting ingredient[edit | edit source]
Ingredients | Crafting recipe |
---|---|
Slimeball + Piston |
Redstone component[edit | edit source]
Pistons are always placed facing toward the player. When powered, the piston's wooden surface (the "head") tries to start extending after start delay. When it extends, it pushes at most 12 blocks. The piston makes a sound that can be heard within a 31×31×31 cube centered on the activating piston. Any entities in the path of the extending head are pushed with the blocks. If there is no place for the entities to go, the block pushes inside them, suffocating mobs if the block is not transparent when pushed into the eye height of the mob.
When a piston loses power, its head retracts. Like extending, this retraction starts after start delay. It finishes retracting 2 game ticks (1 redstone tick; 0.1 seconds) after it starts.
A piston that pushes a slime block bounces any entity that it displaces in the direction the piston is facing. In addition, when a slime block is moved by a piston, any movable blocks adjacent (not diagonally) to the slime block also moves. See the #Slime blocks and honey blocks section below for more details.
In Bedrock Edition, blocks that stick to walls (such as levers) can be placed on pistons without being destroyed when activated.
Start delay[edit | edit source]
A piston won't extend or retract immediately when it is activated: this is called start delay.
In Bedrock Edition, the start delay is fixed at 2 game ticks (1 redstone tick; 0.1 seconds), meaning that the piston starts to extend or retract 2gt after it's activated.
In Java Edition, the start delay can be 0 game ticks (0 redstone ticks; 0 seconds) (start at the same tick) or 1 game tick (0.5 redstone ticks; 0.05 seconds) (start at the next tick) depending on the game process when the piston is activated:
- If the piston is updated and activated in the scheduled tick stage, random tick stage or block event stage, the piston stage is executed in this game tick's block event stage. At this time, the start delay is 0gt, which means the piston starts at the same tick.
- If the piston is activated during the execution of entity or tile entity, or activated by player actions, the piston stage is executed in the next game tick's block event stage. At this time, the start delay is 1gt, which means the piston starts at the next tick.
Limitations[edit | edit source]
Pistons can push most blocks except those listed in the table below.
Pistons cannot push blocks into the void or beyond the top of the map. They also cannot push more than 12 blocks. If the requirements for a block to be pushed are not met, the piston simply does not extend.
Pistons do not move blocks that are "attached to a block", as they detach and drop as an item.
Exceptions[edit | edit source]
- Rails: as long as they remain on top of a solid face of a block in their new position, and that block isn't moving at the same time.
- An exception is when the rail and block supporting it are on two parallel extended pistons at which the rail remains attached. In Java Edition, in order for the rail to successfully move without breaking, the piston moving the block must be powered 1 block event after the piston moving the rail. Trying to move both on the same piston using slime blocks does not work, nor does moving them on perpendicular pistons (although the latter temporarily appears to work because of the bug MC-75716).
- Rails re-orient themselves after being pushed, similar to when placed manually.
Powering pistons[edit | edit source]
Pistons can be powered in various ways:
- If a redstone wire is in a line shape toward the piston. In Java Edition, the wire does not automatically curve to the piston.
- Pistons can be powered by a powered block directly adjacent to them, whether it is strongly powered or weakly powered.
- Pistons can be powered by a redstone torch directly adjacent to them.
- In Java Edition, pistons can be powered by any powered block one block above and to the side, including the "activated space" above it (if a piston, both sticky and normal were to be facing up and a block of redstone placed on its head, it extends when powered, but doesn't retract when the power it receives from the side or back turns off). However, the piston doesn't extend or retract until it receives a block update. This property is called quasi-connectivity and can be used to make a BUD switch.
- A repeater cannot transfer power through a piston, as pistons are a transparent block.
- An upward-facing piston can't be powered by a block above it, unless it is extended In Java Edition.
- In Bedrock Edition a redstone torch attached to a piston turns off whenever the piston is powered. This mechanic is called soft inversion.
- Pistons can also be powered by observers. This can create a clock if the setup is correct.
Slime blocks and honey blocks[edit | edit source]
A
|
B
|
|||||
When a slime block is pushed or pulled by a piston, while moving, adjacent blocks also move with the slime block, unless a non-piston movable block stops the blocks that are "grabbed" by the slime blocks. These blocks may in turn push other blocks, not just the blocks in the line in front of the piston. For example, a slime block sitting on the ground attempts to move the ground block underneath itself, which in turn has to pushsticky additional ground blocks in the direction of motion just as if it were being pushed directly by a piston.
Glazed terracotta is an exception; it does not move when adjacent slime blocks are moved. The same occurs when a slime block is moved by an adjacent slime block. For example, a 2×2×2 cube of slime blocks may be pushed or pulled as a unit by a single piston acting on any of the blocks in the cube. A slime block adjacent to a block that cannot be moved by pistons ignores the immobile block. But if an adjacent block could be moved but is prevented by the presence of an immobile block, the slime block is prevented from moving.
Slime blocks are not pulled by a non-sticky piston, nor are they moved if an adjacent (non-slime) block is moved by a piston. The maximum of 12 blocks moved by a piston still applies. For example, a 2×2×3 collection of slime blocks may be pushed by a piston as long as no other movable blocks are adjacent to it. A piston cannot move itself via a "hook" constructed of slime blocks, but self-propelled contraptions can be created with multiple pistons. For that, see the article Tutorials/Flying machines. The same happens for the honey block, but it does not stick to slime blocks.
Technical components[edit | edit source]
Pistons have 2 technical blocks that cannot be obtained. These include the piston head and moving piston blocks.
Sounds[edit | edit source]
Generic[edit | edit source]
stone sound type | ||||||||
---|---|---|---|---|---|---|---|---|
Sound | Subtitles | Source | Description | Resource location | Translation key | Volume | Pitch | Attenuation distance |
Block broken | Blocks | Once the block has broken | block | subtitles | 1.0 | 0.8 | 16{ "pitch": "0.8", "subtitle": "​Block broken", "source": "Blocks", "id": "block.stone.break", "distance": "16", "desc": "Once the block has broken", "sounds": [ "Stone dig1.ogg", "Stone dig2.ogg", "Stone dig3.ogg", "Stone dig4.ogg" ], "volume": "1.0", "java": "1", "translationkey": "subtitles.block.generic.break" } | |
Block placed | Blocks | When the block is placed | block | subtitles | 1.0 | 0.8 | 16{ "pitch": "0.8", "subtitle": "​Block placed", "source": "Blocks", "id": "block.stone.place", "distance": "16", "desc": "When the block is placed", "sounds": [ "Stone dig1.ogg", "Stone dig2.ogg", "Stone dig3.ogg", "Stone dig4.ogg" ], "volume": "1.0", "java": "1", "translationkey": "subtitles.block.generic.place" } | |
Block breaking | Blocks | While the block is in the process of being broken | block | subtitles | 0.25 | 0.5 | 16{ "pitch": "0.5", "subtitle": "​Block breaking", "source": "Blocks", "id": "block.stone.hit", "distance": "16", "desc": "While the block is in the process of being broken", "sounds": [ "Stone mining1.ogg", "Stone mining2.ogg", "Stone mining3.ogg", "Stone mining4.ogg", "Stone mining5.ogg", "Stone mining6.ogg" ], "volume": "0.25", "java": "1", "translationkey": "subtitles.block.generic.hit" } | |
None[sound 1] | Entity-Dependent | Falling on the block with fall damage | block | None[sound 1] | 0.5 | 0.75 | 16{ "pitch": "0.75", "subtitle": "''None''​'\"`UNIQ--ref-0000002C-QINU`\"'​", "source": "''[[Sound#Entity-dependent categories|Entity-Dependent]]''", "id": "block.stone.fall", "distance": "16", "desc": "Falling on the block with fall damage", "sounds": [ "Stone hit1.ogg", "Stone hit2.ogg", "Stone hit3.ogg", "Stone hit4.ogg", "Stone hit5.ogg", "Stone hit6.ogg" ], "volume": "0.5", "java": "1" } | |
Footsteps | Entity-Dependent | Walking on the block | block | subtitles | 0.15 | 1.0 | 16{ "pitch": "1.0", "subtitle": "​Footsteps", "source": "''[[Sound#Entity-dependent categories|Entity-Dependent]]''", "id": "block.stone.step", "distance": "16", "desc": "Walking on the block", "sounds": [ "Stone hit1.ogg", "Stone hit2.ogg", "Stone hit3.ogg", "Stone hit4.ogg", "Stone hit5.ogg", "Stone hit6.ogg" ], "volume": "0.15", "java": "1", "translationkey": "subtitles.block.generic.footsteps" } |
Bedrock Edition (piston):
stone sound type | |||||
---|---|---|---|---|---|
Sound | Source | Description | Resource location | Volume | Pitch |
Blocks | Once the block has broken | dig | 1.0 | 0.8-1.0{ "sounds": [ "Stone dig1.ogg", "Stone dig2.ogg", "Stone dig3.ogg", "Stone dig4.ogg" ], "source": "Blocks", "volume": "1.0", "id": "dig.stone", "pitch": "0.8-1.0", "bedrock": "1", "desc": "Once the block has broken" } | |
Blocks | When the block is placed | dig | 1.0 | 0.8-1.0{ "sounds": [ "Stone dig1.ogg", "Stone dig2.ogg", "Stone dig3.ogg", "Stone dig4.ogg" ], "source": "Blocks", "volume": "1.0", "id": "dig.stone", "pitch": "0.8-1.0", "bedrock": "1", "desc": "When the block is placed" } | |
Blocks | While the block is in the process of being broken | hit | 0.37 | 0.5{ "sounds": [ "Stone hit1.ogg", "Stone hit2.ogg", "Stone hit3.ogg", "Stone hit4.ogg", "Stone hit5.ogg", "Stone hit6.ogg" ], "source": "Blocks", "volume": "0.37", "id": "hit.stone", "pitch": "0.5", "bedrock": "1", "desc": "While the block is in the process of being broken" } | |
Players | Falling on the block with fall damage | fall | 0.4 | 1.0{ "sounds": [ "Stone hit1.ogg", "Stone hit2.ogg", "Stone hit3.ogg", "Stone hit4.ogg", "Stone hit5.ogg", "Stone hit6.ogg" ], "source": "Players", "volume": "0.4", "id": "fall.stone", "pitch": "1.0", "bedrock": "1", "desc": "Falling on the block with fall damage" } | |
Players | Walking on the block | step | 0.3 | 1.0{ "sounds": [ "Stone hit1.ogg", "Stone hit2.ogg", "Stone hit3.ogg", "Stone hit4.ogg", "Stone hit5.ogg", "Stone hit6.ogg" ], "source": "Players", "volume": "0.3", "id": "step.stone", "pitch": "1.0", "bedrock": "1", "desc": "Walking on the block" } | |
Players | Jumping from the block | jump | 0.12 | 1.0{ "sounds": [ "Stone jump1.wav", "Stone jump2.wav", "Stone jump3.wav", "Stone jump4.wav" ], "source": "Players", "volume": "0.12", "id": "jump.stone", "pitch": "1.0", "bedrock": "1", "desc": "Jumping from the block" } | |
Players | Falling on the block without fall damage | land | 0.22 | 1.0{ "sounds": [ "Stone jump1.wav", "Stone jump2.wav", "Stone jump3.wav", "Stone jump4.wav" ], "source": "Players", "volume": "0.22", "id": "land.stone", "pitch": "1.0", "bedrock": "1", "desc": "Falling on the block without fall damage" } |
Bedrock Edition (arm):
normal sound type | |||||
---|---|---|---|---|---|
Sound | Source | Description | Resource location | Volume | Pitch |
Blocks | Once the block has broken | dig | 1.0 | 0.8-1.0{ "sounds": [ "Stone dig1.ogg", "Stone dig2.ogg", "Stone dig3.ogg", "Stone dig4.ogg" ], "source": "Blocks", "volume": "1.0", "id": "dig.stone", "pitch": "0.8-1.0", "bedrock": "1", "desc": "Once the block has broken" } | |
Blocks | When the block is placed | dig | 1.0 | 0.8-1.0{ "sounds": [ "Stone dig1.ogg", "Stone dig2.ogg", "Stone dig3.ogg", "Stone dig4.ogg" ], "source": "Blocks", "volume": "1.0", "id": "dig.stone", "pitch": "0.8-1.0", "bedrock": "1", "desc": "When the block is placed" } | |
Blocks | While the block is in the process of being broken | hit | 0.27 [sound 1] | 0.5{ "sounds": [ "Stone hit1.ogg", "Stone hit2.ogg", "Stone hit3.ogg", "Stone hit4.ogg", "Stone hit5.ogg", "Stone hit6.ogg" ], "source": "Blocks", "volume": "0.27 '\"`UNIQ--ref-00000030-QINU`\"'", "id": "hit.stone", "pitch": "0.5", "bedrock": "1", "desc": "While the block is in the process of being broken" } | |
Players | Falling on the block with fall damage | fall | 0.4 | 1.0{ "sounds": [ "Stone hit1.ogg", "Stone hit2.ogg", "Stone hit3.ogg", "Stone hit4.ogg", "Stone hit5.ogg", "Stone hit6.ogg" ], "source": "Players", "volume": "0.4", "id": "fall.stone", "pitch": "1.0", "bedrock": "1", "desc": "Falling on the block with fall damage" } | |
Players | Walking on the block | step | 0.3 | 1.0{ "sounds": [ "Stone hit1.ogg", "Stone hit2.ogg", "Stone hit3.ogg", "Stone hit4.ogg", "Stone hit5.ogg", "Stone hit6.ogg" ], "source": "Players", "volume": "0.3", "id": "step.stone", "pitch": "1.0", "bedrock": "1", "desc": "Walking on the block" } | |
Players | Jumping from the block | jump | 0.12 | 1.0{ "sounds": [ "Stone jump1.wav", "Stone jump2.wav", "Stone jump3.wav", "Stone jump4.wav" ], "source": "Players", "volume": "0.12", "id": "jump.stone", "pitch": "1.0", "bedrock": "1", "desc": "Jumping from the block" } | |
Players | Falling on the block without fall damage | land | 0.22 | 1.0{ "sounds": [ "Stone jump1.wav", "Stone jump2.wav", "Stone jump3.wav", "Stone jump4.wav" ], "source": "Players", "volume": "0.22", "id": "land.stone", "pitch": "1.0", "bedrock": "1", "desc": "Falling on the block without fall damage" } |
- ↑ MCPE-169612 — Many blocks make slightly different sounds to stone
Unique[edit | edit source]
Sounds | ||||||||
---|---|---|---|---|---|---|---|---|
Sound | Subtitles | Source | Description | Resource location | Translation key | Volume | Pitch | Attenuation distance |
Piston moves | Blocks | When a piston extends | block | subtitles | 0.5 | 0.6-0.85 | 16{ "pitch": "0.6-0.85", "subtitle": "​Piston moves", "source": "Blocks", "id": "block.piston.extend", "distance": "16", "desc": "When a piston extends<wbr>‌<sup class=\"noprint nowrap Inline-Template \" title=\"\">[<i><span title=\"This statement does not apply to upcoming versions of Minecraft\">until</span> [[Java Edition 1.21|JE 1.21]]</i>]</sup>[[Category:Upcoming]][[Category:Java Edition upcoming tag]]", "sounds": [ "Piston extend JE1 BE1.ogg" ], "volume": "0.5", "java": "1", "translationkey": "subtitles.block.piston.move" } | |
Piston moves | Blocks | When a piston contracts | block | subtitles | 0.5 | 0.6-0.75 | 16{ "pitch": "0.6-0.75", "subtitle": "​Piston moves", "source": "Blocks", "id": "block.piston.contract", "distance": "16", "desc": "When a piston contracts<wbr>‌<sup class=\"noprint nowrap Inline-Template \" title=\"\">[<i><span title=\"This statement does not apply to upcoming versions of Minecraft\">until</span> [[Java Edition 1.21|JE 1.21]]</i>]</sup>[[Category:Upcoming]][[Category:Java Edition upcoming tag]]", "sounds": [ "Piston contract JE1 BE1.ogg" ], "volume": "0.5", "java": "1", "translationkey": "subtitles.block.piston.move" } | |
Piston moves | Blocks | When a piston extends | block | subtitles | 0.5 | 0.6-0.85 | 8{ "pitch": "0.6-0.85", "subtitle": "​Piston moves", "source": "Blocks", "id": "block.piston.extend", "distance": "8", "desc": "When a piston extends<wbr>​<sup class=\"noprint nowrap Inline-Template \" title=\"\">[<i><span title=\"This statement applies only to upcoming versions of Minecraft.\">upcoming:</span> [[Java Edition 1.21|JE 1.21]]</i>]</sup>[[Category:Upcoming]][[Category:Java Edition upcoming tag]]", "sounds": [ "Piston extend JE2.ogg" ], "volume": "0.5", "java": "1", "translationkey": "subtitles.block.piston.move" } | |
Piston moves | Blocks | When a piston contracts | block | subtitles | 0.5 | 0.6-0.8 | 8{ "pitch": "0.6-0.8", "subtitle": "​Piston moves", "source": "Blocks", "id": "block.piston.contract", "distance": "8", "desc": "When a piston contracts<wbr>​<sup class=\"noprint nowrap Inline-Template \" title=\"\">[<i><span title=\"This statement applies only to upcoming versions of Minecraft.\">upcoming:</span> [[Java Edition 1.21|JE 1.21]]</i>]</sup>[[Category:Upcoming]][[Category:Java Edition upcoming tag]]", "sounds": [ "Piston contract JE2.ogg" ], "volume": "0.5", "java": "1", "translationkey": "subtitles.block.piston.move" } |
Sounds | |||||
---|---|---|---|---|---|
Sound | Source | Description | Resource location | Volume | Pitch |
Blocks | When a piston extends | tile | 0.5 | 0.6-0.75{ "sounds": [ "Piston extend.ogg" ], "source": "Blocks", "volume": "0.5", "id": "tile.piston.out", "pitch": "0.6-0.75", "bedrock": "1", "desc": "When a piston extends" } | |
Blocks | When a piston contracts | tile | 0.5 | 0.6-0.75{ "sounds": [ "Piston contract.ogg" ], "source": "Blocks", "volume": "0.5", "id": "tile.piston.in", "pitch": "0.6-0.75", "bedrock": "1", "desc": "When a piston contracts" } |
Data values[edit | edit source]
ID[edit | edit source]
Name | Identifier | Form | Block tags | Translation key |
---|---|---|---|---|
Piston | piston | Block & Item | None | block.minecraft.piston |
Name | Identifier | Alias ID | Numeric ID | Form | Item ID[i 1] | Translation key |
---|---|---|---|---|---|---|
Piston | piston | None | 33 | Block & Giveable Item[i 2] | Identical[i 3] | tile.piston.name |
Name | Savegame ID |
---|---|
Piston block entity | PistonArm |
Block states[edit | edit source]
The piston
block uses following block states:
Name | Default value | Allowed values | Description |
---|---|---|---|
extended | false | false true | If true, the piston is extended. |
facing | north | down east north south up west | The direction the piston head is pointing. The opposite from the direction the player faces while placing the piston. |
Name | Metadata Bits | Default value | Allowed values | Values for Metadata Bits |
Description |
---|---|---|---|---|---|
facing_direction | 0x1 0x2 0x4 | 0 | 0 1 2 3 4 5 | 0 1 2 3 4 5 | The direction the piston is pointing.
|
Block data[edit | edit source]
In Bedrock Edition, a piston has a block entity associated with it that holds additional data about the block.
Achievements[edit | edit source]
Icon | Achievement | In-game description | Actual requirements (if different) | Gamerscore earned | Trophy type (PS4) | ||
---|---|---|---|---|---|---|---|
PS4 | Other | ||||||
Inception{ "anchor": "", "title": "Inception", "icon": "", "title": "Inception", "description": "Push a [[piston]] with a piston, then pull the original piston with that piston. ", "requirements": " ", "gamerscore": "20G ", "trophytype": "Silver ", "rewards": "" } | Push a piston with a piston, then pull the original piston with that piston. | — | 20G | Silver |
Video[edit | edit source]
History[edit | edit source]
The specific instructions are: Pistons heads in Legacy Console Edition look different since TU46.
Java Edition Classic | |||||
---|---|---|---|---|---|
May 21, 2009 | Notch shows interest in adding blocks that can pull and push other blocks when a pulse from a wire is received; he called them "Pulley1", which would pull a block up, and "Pulley2", which would push a block up.
{"type": "java Classic", "version": "May 21, 2009", "exp": "", "snap": "", "content": "(link to Notch article, displayed as Notch) shows interest in adding (link to block article, displayed as blocks) that can pull and push other blocks when a pulse from a wire is received; he called them \"Pulley1\", which would pull a block up, and \"Pulley2\", which would push a block up."} | ||||
Java Edition Beta | |||||
? | The original piston was a mod posted on the Minecraft Forums by Hippoplatimus.[2] The code for that version was given to Jeb, who then worked on implementing pistons into vanilla Minecraft; Hippoplatimus is in the game's credits under "Additional Programming", like other modders whose work made it into vanilla Minecraft.
{"type": "java Beta", "version": "?", "exp": "", "snap": "", "content": "(link to File:Piston normal mod.png article, displayed as 32px) (link to File:Piston normal extended mod.png article, displayed as 32px) The original piston was a mod posted on the (link to Minecraft Forums article, displayed as Minecraft Forums) by Hippoplatimus. The code for that version was given to (link to Jeb article, displayed as Jeb), who then worked on implementing pistons into vanilla (link to Minecraft article, displayed as Minecraft); Hippoplatimus is in the game's credits under \"Additional Programming\", like other modders whose work made it into vanilla Minecraft."} | ||||
Another user, DiEvAl, privately submitted code as well, including the idea of block entities to track moving blocks.[3]
{"type": "java Beta", "version": "?", "exp": "", "snap": "", "content": "Another user, DiEvAl, privately submitted code as well, including the idea of (link to block entities article, displayed as block entities) to track moving blocks."} | |||||
June 7, 2011 | Jeb tweets an image of pistons in development.
{"type": "java Beta", "version": "June 7, 2011", "exp": "", "snap": "", "content": "(link to Jeb article, displayed as Jeb) tweets an image of pistons in development."} | ||||
The piston texture as screen-captured while in development had iron bands running over the head. The bands were removed for the release, leaving only iron brackets around the corners and edges.
{"type": "java Beta", "version": "June 7, 2011", "exp": "", "snap": "", "content": "(link to File:Piston (pre-release).png article, displayed as 32px) The piston texture as screen-captured while in development had iron bands running over the head. The bands were removed for the release, leaving only iron brackets around the corners and edges."} | |||||
1.7 | Added pistons, alongside associated head and moving blocks. {"type": "java Beta", "version": "1.7", "exp": "", "snap": "", "content": "(values exceeds 1000 characters...)"} | ||||
Java Edition | |||||
? | The wireframe hitbox of the moving piston block is now halfway aligned.
{"type": "java", "version": "?", "exp": "", "snap": "", "content": "The wireframe hitbox of the moving piston block is now halfway aligned."} | ||||
1.2.4 | release | Spruce planks, birch planks, and jungle planks can now be used to craft pistons.
{"type": "java", "version": "1.2.4", "exp": "", "snap": "release", "content": "(link to Spruce planks article, displayed as Spruce planks), (link to birch planks article, displayed as birch planks), and (link to jungle planks article, displayed as jungle planks) can now be used to craft pistons."} | |||
1.3.1 | 12w27a | Pistons have been updated to make them less error-prone, thus they also appear to update slower. This also alters the way pistons work, so the player might have to adapt their repeater delays and similar. For this change, pistons now take 2 redstone ticks (4 game ticks) to extend, but they still retract instantly.
{"type": "java", "version": "1.3.1", "exp": "", "snap": "12w27a", "content": "Pistons have been updated to make them less error-prone, thus they also appear to update slower. This also alters the way pistons work, so the (link to player article, displayed as player) might have to adapt their (link to repeater article, displayed as repeater) delays and similar. For this change, pistons now take 2 redstone ticks (4 (link to game tick article, displayed as game ticks)) to extend, but they still retract instantly."} | |||
1.7.2 | 1.7.1 | Acacia planks and dark oak planks can now be used to craft pistons.
{"type": "java", "version": "1.7.2", "exp": "", "snap": "1.7.1", "content": "(link to Acacia planks article, displayed as Acacia planks) and (link to dark oak planks article, displayed as dark oak planks) can now be used to craft pistons."} | |||
1.8 | 14w17a | The models for piston and related blocks when facing up and down have been changed.
{"type": "java", "version": "1.8", "exp": "", "snap": "14w17a", "content": "(link to File:Piston (U) JE2.png article, displayed as 32px) (link to File:Piston (D) JE2.png article, displayed as 32px) (link to File:Headless Piston (U) JE2.png article, displayed as 32px) (link to File:Headless Piston (D) JE2.png article, displayed as 32px) (link to File:Piston Head (U) JE2.png article, displayed as 32px) (link to File:Piston Head (D) JE2.png article, displayed as 32px) The models for piston and related blocks when facing up and down have been changed."} | |||
14w18a | Slime blocks now push and pull blocks adjacent when connected to sticky pistons.
{"type": "java", "version": "1.8", "exp": "", "snap": "14w18a", "content": "(link to Slime block article, displayed as Slime blocks) now push and pull blocks adjacent when connected to sticky pistons."} | ||||
Extending a piston with a slime block on top of it launches the entity (mobs, players, items, launched arrows, etc) into the air.
{"type": "java", "version": "1.8", "exp": "", "snap": "14w18a", "content": "Extending a piston with a slime block on top of it launches the (link to entity article, displayed as entity) ((link to mob article, displayed as mobs), (link to player article, displayed as players), (link to item article, displayed as items), launched (link to arrow article, displayed as arrows), etc) into the (link to air article, displayed as air)."} | |||||
14w19a | Slime blocks can now push entities sideways and downward when attached to a piston.
{"type": "java", "version": "1.8", "exp": "", "snap": "14w19a", "content": "Slime blocks can now push entities sideways and downward when attached to a piston."} | ||||
14w29a | There are now "short" piston heads. Their use is unknown. {"type": "java", "version": "1.8", "exp": "", "snap": "14w29a", "content": "(link to File:Short Piston Head (U) JE1.png article, displayed as 32px) (link to File:Short Piston Head (N) JE1.png article, displayed as 32px) (link to File:Short Piston Head (E) JE1.png article, displayed as 32px) (link to File:Short Piston Head (S) JE1.png article, displayed as 32px) (link to File:Short Piston Head (W) JE1.png article, displayed as 32px) (link to File:Short Piston Head (D) JE1.png article, displayed as 32px)<br>There are now \"short\" piston heads. Their use is unknown."} | ||||
14w32a | The moving piston block no longer has a hitbox.
{"type": "java", "version": "1.8", "exp": "", "snap": "14w32a", "content": "The moving piston block no longer has a hitbox."} | ||||
1.9 | 15w49a | Unextended pistons, downward-facing pistons, and upward-facing piston heads are now considered to have a solid top surface, like upside-down stairs and top slabs. There also existed a bug where when a piston retracted, it would pull entities through them.
{"type": "java", "version": "1.9", "exp": "", "snap": "15w49a", "content": "Unextended pistons, downward-facing pistons, and upward-facing piston heads are now considered to have a solid top surface, like upside-down (link to stairs article, displayed as stairs) and top (link to slab article, displayed as slabs). There also existed a bug where when a piston retracted, it would pull (link to entities article, displayed as entities) through them."} | |||
1.12 | 17w16a | When pistons move slime blocks, they do not move glazed terracotta attached to the side of the slime block.
{"type": "java", "version": "1.12", "exp": "", "snap": "17w16a", "content": "When pistons move (link to slime block article, displayed as slime blocks), they do not move glazed terracotta attached to the side of the slime block."} | |||
pre3 | Slime blocks can no longer pull glazed terracotta attached to any side of a piston, whatsoever.
{"type": "java", "version": "1.12", "exp": "", "snap": "pre3", "content": "Slime blocks can no longer pull glazed terracotta attached to any side of a piston, whatsoever."} | ||||
1.13 | 17w47a | Pistons now can push note blocks.
{"type": "java", "version": "1.13", "exp": "", "snap": "17w47a", "content": "Pistons now can push (link to note block article, displayed as note blocks)."} | |||
1.14 | 18w43a | The textures associated with pistons have been changed. {"type": "java", "version": "1.14", "exp": "", "snap": "18w43a", "content": "(values exceeds 1000 characters...)"} | |||
While the texture for oak planks was later updated in subsequent snapshots, the piston texture is yet to be changed to reflect this.[4]
{"type": "java", "version": "1.14", "exp": "", "snap": "18w43a", "content": "While the texture for oak planks was later updated in subsequent snapshots, the piston texture is yet to be changed to reflect this."} | |||||
18w44a | Pistons are no longer transparent.
{"type": "java", "version": "1.14", "exp": "", "snap": "18w44a", "content": "Pistons are no longer transparent."} | ||||
18w46a | Extended pistons now allow light to pass through certain faces.
{"type": "java", "version": "1.14", "exp": "", "snap": "18w46a", "content": "Extended pistons now allow light to pass through certain faces."} | ||||
1.15 | 19w41a | Added honey blocks, which have multiple different types of interactions with pistons.
{"type": "java", "version": "1.15", "exp": "", "snap": "19w41a", "content": "Added honey blocks, which have multiple different types of interactions with pistons."} | |||
1.16 | 20w06a | The hardness of pistons has been increased from 0.5 to 1.5.
{"type": "java", "version": "1.16", "exp": "", "snap": "20w06a", "content": "The hardness of pistons has been increased from 0.5 to 1.5."} | |||
Pickaxes are now the tool for breaking pistons.
{"type": "java", "version": "1.16", "exp": "", "snap": "20w06a", "content": "(link to Pickaxe article, displayed as Pickaxes) are now the tool for breaking pistons."} | |||||
Pistons no longer pop off redstone components placed on the back when retracting.
{"type": "java", "version": "1.16", "exp": "", "snap": "20w06a", "content": "Pistons no longer pop off redstone components placed on the back when retracting."} | |||||
Crimson planks and warped planks can now be used to craft pistons.
{"type": "java", "version": "1.16", "exp": "", "snap": "20w06a", "content": "(link to Crimson planks article, displayed as Crimson planks) and (link to warped planks article, displayed as warped planks) can now be used to craft pistons."} | |||||
1.17 | 20w45a | Particles now appear if a block is broken by a piston.
{"type": "java", "version": "1.17", "exp": "", "snap": "20w45a", "content": "Particles now appear if a block is broken by a piston."} | |||
1.19 | 22w11a | Mangrove planks can now be used to craft pistons.
{"type": "java", "version": "1.19", "exp": "", "snap": "22w11a", "content": "(link to Mangrove planks article, displayed as Mangrove planks) can now be used to craft pistons."} | |||
22w17a | Changed piston textures, to match the color of the oak planks on the piston head.
{"type": "java", "version": "1.19", "exp": "", "snap": "22w17a", "content": "(link to File:Piston (U) JE4.png article, displayed as 32px) Changed piston textures, to match the color of the oak planks on the piston head."} | ||||
1.19.3 Experiment | 22w42a | Bamboo planks can now be used to craft pistons.
{"type": "java", "version": "1.19.3", "exp": "Update 1.20", "snap": "22w42a", "content": "(link to Bamboo planks article, displayed as Bamboo planks) can now be used to craft pistons."} | |||
1.19.4 Experiment | 23w07a | Cherry planks can now be used to craft pistons.
{"type": "java", "version": "1.19.4", "exp": "Update 1.20", "snap": "23w07a", "content": "(link to Cherry planks article, displayed as Cherry planks) can now be used to craft pistons."} | |||
Upcoming Java Edition | |||||
1.21 | 24w20a | Piston sounds have been updated to be quieter and less harsh.
{"type": "java upcoming", "version": "1.21", "exp": "", "snap": "24w20a", "content": "Piston sounds have been updated to be quieter and less harsh."} | |||
Pocket Edition Alpha | |||||
v0.15.0 | build 1 | Added pistons.
{"type": "pocket Alpha", "version": "v0.15.0", "exp": "", "snap": "build 1", "content": "(link to File:Piston (U) JE2 BE1.png article, displayed as 32px) Added pistons."} | |||
Pistons have a version exclusive animation and the ability to push block entities.
{"type": "pocket Alpha", "version": "v0.15.0", "exp": "", "snap": "build 1", "content": "Pistons have a version exclusive animation and the ability to push (link to block entities article, displayed as block entities)."} | |||||
Bedrock Edition | |||||
1.10.0 | beta 1.10.0.3 | The texture of pistons has been changed.
{"type": "bedrock", "version": "1.10.0", "exp": "", "snap": "beta 1.10.0.3", "content": "(link to File:Piston BE2.png article, displayed as 32px) The texture of pistons has been changed."} | |||
1.20.30 | Preview 1.20.20.21 | Increased the hardness and blast resistance of pistons from 0.5 to 1.5.
{"type": "bedrock", "version": "1.20.30", "exp": "", "snap": "Preview 1.20.20.21", "content": "Increased the hardness and blast resistance of pistons from 0.5 to 1.5."} | |||
Legacy Console Edition | |||||
TU3 | CU1 | 1.0 | Patch 1 | 1.0.1 | Added pistons.
{"type": "console", "xbox": "TU3", "xbone": "CU1", "ps": "1.0", "wiiu": "Patch 1", "switch": "1.0.1", "content": "(link to File:Piston (U) JE1.png article, displayed as 32px) Added pistons."} |
TU14 | 1.04 | Pistons now take double the amount of time (2 redstone ticks or 4 game ticks) to extend, but they still retract instantly.
{"type": "console", "xbox": "TU14", "xbone": "", "ps": "1.04", "wiiu": "", "switch": "", "content": "Pistons now take double the amount of time (2 redstone ticks or 4 (link to game tick article, displayed as game ticks)) to extend, but they still retract instantly."} | |||
1.90 | The texture of pistons has been changed.
{"type": "console", "xbox": "none", "xbone": "none", "ps": "1.90", "wiiu": "none", "switch": "none", "content": "(link to File:Piston (U) BE2.png article, displayed as 32px) The texture of pistons has been changed."} | ||||
New Nintendo 3DS Edition | |||||
0.1.0 | Added pistons.
{"type": "new3ds", "version": "0.1.0", "exp": "", "snap": "", "content": "(link to File:Piston (U) JE2 BE1.png article, displayed as 32px) Added pistons."} |
-
First screenshot of pistons.
Data history[edit | edit source]
Java Edition Beta | |||||
---|---|---|---|---|---|
1.7 | Six-sided pistons exist as extreme metadata variants of pistons.
{"type": "java Beta", "version": "1.7", "exp": "", "snap": "", "content": "(link to Six-sided piston article, displayed as Six-sided pistons) exist as extreme metadata variants of pistons."} | ||||
Java Edition | |||||
1.8 | 14w26a | Pistons now use block states instead of metadata. As such, weird pistons have been removed.
{"type": "java", "version": "1.8", "exp": "", "snap": "14w26a", "content": "Pistons now use block states instead of metadata. As such, weird pistons have been removed."} | |||
14w29a | Added the "short=true/false" block state to piston_head.
{"type": "java", "version": "1.8", "exp": "", "snap": "14w29a", "content": "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.
{"type": "java", "version": "1.11.1", "exp": "", "snap": "16w50a", "content": "Added a new byte tag <code>source</code> for the <code>piston_extension</code> 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 .
{"type": "java", "version": "1.13", "exp": "", "snap": "17w47a", "content": "The moving block ID of pistons has been changed from <code>piston_extension</code> to <code>moving_piston</code>."} | |||
Prior to The Flattening, these blocks' numeral IDs were 29, 33, 34 and 36.
{"type": "java", "version": "1.13", "exp": "", "snap": "17w47a", "content": "Prior to (link to 1.13/Flattening article, displayed as ''The Flattening''), these blocks' numeral IDs were 29, 33, 34 and 36."} | |||||
Pocket Edition Alpha | |||||
? | Weird pistons also existed, but they didn't look six-sided.
{"type": "pocket Alpha", "version": "?", "exp": "", "snap": "", "content": "Weird pistons also existed, but they didn't look six-sided."} | ||||
Bedrock Edition | |||||
? | The movingblock block for pistons can no longer be placed using commands.
{"type": "bedrock", "version": "?", "exp": "", "snap": "", "content": "The <code>movingblock</code> block for pistons can no longer be placed using (link to commands article, displayed as commands)."} | ||||
1.18.30 | beta 1.18.30.26 | The ID of pistonarmcollision is changed to piston_arm_collision
{"type": "bedrock", "version": "1.18.30", "exp": "", "snap": "beta 1.18.30.26", "content": "The ID of <code>pistonarmcollision</code> is changed to <code>piston_arm_collision</code>"} | |||
The ID of movingblock is changed to moving_block
{"type": "bedrock", "version": "1.18.30", "exp": "", "snap": "beta 1.18.30.26", "content": "The ID of <code>movingblock</code> is changed to <code>moving_block</code>"} | |||||
Legacy Console Edition | |||||
? | Weird pistons definitely existed at one point.
{"type": "console", "version": "?", "exp": "", "snap": "", "content": "Weird pistons definitely existed at one point."} |
Issues[edit | edit source]
Issues relating to "Piston" are maintained on the bug tracker. Report issues there.
Trivia[edit | edit source]
- Mojang stated that the 12-block push limit for pistons would not be changed, because "the current limitations are by design".[5]
- When toggled between on and off rapidly with a gravity affected block (such as sand) above it, a piston can eventually break the block, which can be picked up as a resource. However, gravel broken this way never drops flint.
- Carpet can be placed on the piston extension block, and remains even if it is replaced with a solid block using
/setblock
.
Gallery[edit | edit source]
Screenshots[edit | edit source]
-
Fundamental logic gates, implemented purely with pistons and redstone repeaters, clockwise from upper left: AND, OR, XOR, and NOT.
-
Slow clock generator with pistons and redstone.
-
An example of a piston-controlled waterflow.
-
Light shining through an extended piston.
-
Redstone connecting to pistons in Bedrock Edition.
Concept artwork[edit | edit source]
-
Notch's explanation on how the rod (a full block long when extended) fits into the piston box (whose depth is a block minus the face's thickness).[6]
In other media[edit | edit source]
-
Artwork of a piston connected to a lever.
See also[edit | edit source]
- Slime block
- Redstone
- Tutorials/Piston uses
- Tutorials/Headless pistons
- Mechanics/Redstone/Piston circuits
Notes[edit | edit source]
- ↑ Dragon eggs can be pushed, when in a falling state.
- ↑ In Java Edition, item frames are entities, not blocks. In Bedrock Edition, they are blocks.
- ↑ In Java Edition, if the "Fixed" NBT tag is set to "1", the item frame does not break when attempting to push it using a piston, but it still does not push. If the "Invulnerable" NBT tag is set to "1", the item frame breaks when pushed.
- ↑ Paintings are technically entities, not blocks.
References[edit | edit source]
- ↑ MC-171370 — resolved as "Works As Intended".
- ↑ http://www.minecraftforum.net/viewtopic.php?t=247686&f=1032
- ↑ http://www.reddit.com/r/Minecraft/comments/hvkmo/attribution_of_the_piston_mod_in_vanilla_minecraft/
- ↑ MC-248841
- ↑ "Piston Push Limits (and increases). The current limitations are by design." – Minecraft Feedback, January 3, 2019.
- ↑ https://twitter.com/notch/status/83513677654929408
External links[edit | edit source]
- Block of the Week: Piston – Minecraft.net on October 13, 2017