Toggle menu
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

Minecraft:Piston: Difference between revisions

From SAS Gaming Wiki
SyncBot (talk | contribs)
Remove broken links to missing pages
SyncBot (talk | contribs)
Sync: updated from Minecraft
 
(One intermediate revision by the same user not shown)
Line 14: Line 14:
| lavasusceptible = No
| lavasusceptible = No
}}
}}
A '''piston''' is a [[Minecraft:block]] capable of pushing most entities and blocks when given a [[Minecraft:redstone]] signal.  
A '''piston''' is a [[Minecraft:block]] capable of pushing most [[Minecraft:entities]] and blocks when given a [[Minecraft: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.
Some blocks cannot be moved, break when pushed or have other interactions with pistons. A piston can move up to twelve blocks at once.
Line 45: Line 45:


=== Redstone component ===
=== Redstone component ===
Pistons are always placed facing toward the player. When powered, the piston's wooden surface (the "head") tries to start extending after a [[#Start delay|start delay]]. The extension takes {{convert|2|game tick|second}} to finish. 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 an extending piston (or any block it might be moving) are pushed along, when possible. If the entities cannot be moved, the block is pushed inside them, suffocating [[Minecraft:mob]]s when pushed into their eye height (assuming said block is solid).
Pistons are always placed facing toward the player. When powered, the piston's wooden surface (the "head") tries to start extending after a [[#Start delay|start delay]]. The extension takes {{convert|2|game tick|second}} to finish. 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 an extending piston (or any block it might be moving) are pushed along, when possible. If the entities cannot be moved, the block is pushed inside them, suffocating [[Minecraft:mob]]s when pushed into their [[Minecraft:eye height]] (assuming said block is solid).


When a piston loses power, its head retracts. Like the extension, the retraction starts after a [[#Start delay|start delay]] and takes {{convert|2|game tick|second}} to finish.
When a piston loses power, its head retracts. Like the extension, the retraction starts after a [[#Start delay|start delay]] and takes {{convert|2|game tick|second}} to finish.


A piston that pushes a slime block bounces any entity that it displaces in the direction the piston is facing. Entities on top of a moving honey block, or any other moving block,{{only|bedrock|short=1}} will also move with it. In addition, when a slime block or a honey block is moved by a piston, any movable block adjacent (not diagonally) to it also moves. See the "[[#Slime blocks and honey blocks|Slime blocks and honey blocks]]" section of this page for more details.
A piston that pushes a [[Minecraft:slime block]] bounces any entity that it displaces in the direction the piston is facing. Entities on top of a moving [[Minecraft:honey block]], or any other moving block,{{only|bedrock|short=1}} will also move with it. In addition, when a slime block or a honey block is moved by a piston, any movable block adjacent (not diagonally) to it also moves. See the "[[#Slime blocks and honey blocks|Slime blocks and honey blocks]]" section of this page for more details.


{{IN|be}}, blocks that require a support (such as levers) can be placed on the back or sides of a piston without being destroyed when that piston extends. {{IN|je}}, on the other hand, the majority of blocks that require a support are only safe to place on the back of pistons.
{{IN|be}}, blocks that require a support (such as levers) can be placed on the back or sides of a piston without being destroyed when that piston extends. {{IN|je}}, on the other hand, the majority of blocks that require a support are only safe to place on the back of pistons.
Line 55: Line 55:
==== Soft inversion ====
==== Soft inversion ====
{{exclusive|bedrock|section=1}}
{{exclusive|bedrock|section=1}}
When a piston that has a redstone torch attached to it is powered, the redstone torch turns off—and when said piston is depowered, the redstone torch turns back on: this mechanic is known by the community as ''soft inversion''.<ref>{{bug|MCPE-17909|||WF}}</ref><ref>"Explaining soft inversion: the Minecraft Bedrock Redstone bug that won't get fixed" – https://www.youtube.com/watch?v=zUgKXTsLOA0</ref> Since soft inversion works even if the piston is being powered indirectly through a block, it can be used to toggle the state of a redstone torch from farther away compared to other powering methods. It's still possible to take advantage of soft inversion even if the piston cannot extend or retract.
When a piston that has a [[Minecraft:redstone torch]] attached to it is powered, the redstone torch turns off—and when said piston is depowered, the redstone torch turns back on: this mechanic is known by the community as ''[[Minecraft:soft inversion]]''.<ref>{{bug|MCPE-17909|||WF}}</ref><ref>"Explaining soft inversion: the Minecraft Bedrock Redstone bug that won't get fixed" – https://www.youtube.com/watch?v=zUgKXTsLOA0</ref> Since soft inversion works even if the piston is being powered indirectly through a block, it can be used to toggle the state of a redstone torch from farther away compared to other powering methods. It's still possible to take advantage of soft inversion even if the piston cannot extend or retract.


==== Interaction with comparators ====
==== Interaction with comparators ====
Line 64: Line 64:
A piston won't extend or retract immediately when it is activated: this phenomenon is known as "start delay".
A piston won't extend or retract immediately when it is activated: this phenomenon is known as "start delay".


{{IN|be}}, the start delay is fixed at {{convert|2|game tick|second}}, meaning that the piston starts to extend or retract 2 game ticks after it is activated. Pistons can only activate on the input/consumer redstone tick (C-tick).
{{IN|be}}, the start delay is fixed at {{convert|2|game tick|second}}, meaning that the piston starts to extend or retract 2 game ticks after it is activated. Pistons can only activate on the input/consumer redstone tick ([[Minecraft:C-tick]]).


{{IN|je}}, the start delay can be 0 (activation in the same tick) or {{convert|1|game tick|second}} (activation in the next tick) depending on the [[Minecraft:Tick#Game process|game process]] in which the piston is powered:
{{IN|je}}, the start delay can be 0 (activation in the same tick) or {{convert|1|game tick|second}} (activation in the next tick) depending on the [[Minecraft:Tick#Game process|game process]] in which the piston is powered:
* If the piston is powered and updated in the [[Minecraft:Tick#Scheduled tick|scheduled tick]] phase, random tick phase or block event phase, the piston activates in this game tick's block event phase, which means the start delay in this case is 0.
* If the piston is powered and updated in the [[Minecraft:Tick#Scheduled tick|scheduled tick]] phase, [[Minecraft:random tick]] phase or block event phase, the piston activates in this game tick's block event phase, which means the start delay in this case is 0.
* If the piston is powered and updated during the entity phase or the [[Minecraft:block entity]] phase, or by player actions, the piston activates in the next game tick's block event phase, which means the start delay in this case is 1 tick. Notably, because blocks pushed by pistons arrive during the block entity phase (except when [[Minecraft:Sticky Piston#Block dropping|dropped]] by a sticky piston), in a chain of pistons each pushing a redstone block to activate the next, successive activations will happen 3 ticks apart.
* If the piston is powered and updated during the [[Minecraft:entity]] phase or the [[Minecraft:block entity]] phase, or by player actions, the piston activates in the next game tick's block event phase, which means the start delay in this case is 1 tick. Notably, because blocks pushed by pistons arrive during the block entity phase (except when [[Minecraft:Sticky Piston#Block dropping|dropped]] by a sticky piston), in a chain of pistons each pushing a redstone block to activate the next, successive activations will happen 3 ticks apart.


=== Limitations ===
=== Limitations ===
<!-- Push reaction redirects here. -->
<!-- [[Minecraft:Push reaction]] redirects here. -->
Pistons can push most blocks, with the exception of the ones listed in the table below.  
Pistons can push most blocks, with the exception of the ones listed in the table below.  


Pistons cannot push blocks into the void, above the build limit, or beyond {{JE}}'s world border. 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 cannot push blocks into the [[Minecraft:void]], above the [[Minecraft:build limit]], or beyond {{JE}}'s [[Minecraft:world border]]. 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.


{{:Piston/Table}}
{{:Piston/Table}}
Line 83: Line 83:
Pistons can be activated from any side, excluding from the head. {{IN|BE}}, redstone dust gets automatically redirected toward pistons if placed next to them (except for the head's side).
Pistons can be activated from any side, excluding from the head. {{IN|BE}}, redstone dust gets automatically redirected toward pistons if placed next to them (except for the head's side).


{{IN|JE}}, pistons can be powered from one block above compared to most redstone components: this property is called quasi-connectivity and can be used to make a BUD switch, taking advantage of the fact that a piston powered through quasi-connectivity doesn't always get updated. With quasi-connectivity, a piston facing up can also be powered from the head's direction, which is otherwise impossible. Due to quasi-connectivity, a piston facing up that has a block of redstone on top of itself can extend but not retract: this happens because after the piston extends, it keeps receiving power from the redstone block.
{{IN|JE}}, pistons can be powered from one block above compared to most redstone components: this property is called [[Minecraft:Tutorial:Quasi-connectivity|quasi-connectivity]] and can be used to make a [[Minecraft:Tutorial:Block update detector|BUD switch]], taking advantage of the fact that a piston powered through quasi-connectivity doesn't always get updated. With quasi-connectivity, a piston facing up can also be powered from the head's direction, which is otherwise impossible. Due to quasi-connectivity, a piston facing up that has a [[Minecraft:block of redstone]] on top of itself can extend but not retract: this happens because after the piston extends, it keeps receiving power from the redstone block.


=== Slime blocks and honey blocks===
=== Slime blocks and honey blocks===
Line 92: Line 92:
}}
}}


When a slime block is pushed or pulled by a piston, adjacent blocks also move with the slime block, due to its stickiness. 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 push additional ground blocks in the direction of motion just as if they were being pushed directly by a piston. The same occurs when a slime block is moved by another adjacent slime block. For example, a 2×2×2 cube of slime blocks may be pushed or pulled as a single unit by a piston acting on any of the blocks in the cube. A slime block adjacent to a block that cannot be moved by pistons or a block that can be broken by piston ignores that block. However, if an adjacent block could be moved, but is prevented to by the presence of an unmovable block, the slime block is prevented from moving as well and the piston does not extend.
When a [[Minecraft:slime block]] is pushed or pulled by a piston, adjacent blocks also move with the slime block, due to its stickiness. 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 push additional ground blocks in the direction of motion just as if they were being pushed directly by a piston. The same occurs when a slime block is moved by another adjacent slime block. For example, a 2×2×2 cube of slime blocks may be pushed or pulled as a single unit by a piston acting on any of the blocks in the cube. A slime block adjacent to a block that cannot be moved by pistons or a block that can be broken by piston ignores that block. However, if an adjacent block could be moved, but is prevented to by the presence of an unmovable block, the slime block is prevented from moving as well and the piston does not extend.


Slime blocks' stickiness is unilateral, as such they can't be pulled by a non-sticky piston and they are not 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 structure of slime blocks may be pushed by a piston as long as no other movable block is 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 more informations, see the article Tutorial:Flying machines.
Slime blocks' stickiness is unilateral, as such they can't be pulled by a non-[[Minecraft:sticky piston]] and they are not 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 structure of slime blocks may be pushed by a piston as long as no other movable block is 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 more informations, see the article [[Minecraft:Tutorial:Flying machines]].


Honey blocks work like slime blocks when it comes to moving other blocks, however honey blocks and slime blocks do not stick to each other. This allows, by alternating slime blocks and honey blocks, to have redstone contraptions which make use of these sticky blocks stay side by side without interfering with one another.
[[Minecraft:Honey block]]s work like slime blocks when it comes to moving other blocks, however honey blocks and slime blocks do not stick to each other. This allows, by alternating slime blocks and honey blocks, to have redstone contraptions which make use of these sticky blocks stay side by side without interfering with one another.


Glazed terracotta and the heavy core{{only|bedrock|short=1}} have an interesting property: they ''do not'' stick to adjacent slime blocks or honey blocks, even though they can be pushed by pistons.
[[Minecraft:Glazed terracotta]] and the [[Minecraft:heavy core]]{{only|bedrock|short=1}} have an interesting property: they ''do not'' stick to adjacent slime blocks or honey blocks, even though they can be pushed by pistons.


== Technical components ==
== Technical components ==
Line 183: Line 183:
=== Development ===
=== Development ===
{{HistoryTable
{{HistoryTable
|{{HistoryLine||May 21, 2009|link=wordofnotch:110762705|Notch shows interest in adding [[Minecraft:block]]s that can pull and push other blocks when a pulse from a wire is received; he called them "Pulley1", which would pull a block down, and "Pulley2", which would push a block up.}}
|{{HistoryLine||May 21, 2009|link=wordofnotch:110762705|[[Minecraft:Notch]] shows interest in adding [[Minecraft:block]]s that can pull and push other blocks when a pulse from a wire is received; he called them "Pulley1", which would pull a block down, and "Pulley2", which would push a block up.}}
|{{HistoryLine||?|[[File:Piston normal mod.png|32px]] [[File:Piston normal extended mod.png|32px]] The original piston was a mod posted on the Minecraft Forums by Hippoplatimus.<ref>http://www.minecraftforum.net/viewtopic.php?t=247686&f=1032</ref> 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.
|{{HistoryLine||?|[[File:Piston normal mod.png|32px]] [[File:Piston normal extended mod.png|32px]] The original piston was a mod posted on the [[Minecraft:Minecraft Forums]] by Hippoplatimus.<ref>http://www.minecraftforum.net/viewtopic.php?t=247686&f=1032</ref> The code for that version was given to [[Minecraft:Jeb]], who then worked on implementing pistons into vanilla [[Minecraft: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.<ref>http://www.reddit.com/r/Minecraft/comments/hvkmo/attribution_of_the_piston_mod_in_vanilla_minecraft/</ref>}}
|Another user, DiEvAl, privately submitted code as well, including the idea of [[Minecraft:block entities]] to track moving blocks.<ref>http://www.reddit.com/r/Minecraft/comments/hvkmo/attribution_of_the_piston_mod_in_vanilla_minecraft/</ref>}}
|{{HistoryLine||June 7, 2011|link={{tweet|jeb|78167135435759617}}|Jeb tweets an image of pistons in development.
|{{HistoryLine||June 7, 2011|link={{tweet|jeb|78167135435759617}}|[[Minecraft:Jeb]] tweets an image of pistons in development.
|[[File:Piston (U) pJE20110607.png|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.}}
|[[File:Piston (U) pJE20110607.png|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.}}
}}
}}
Line 198: Line 198:
|Headless pistons do not break upon receiving a [[Minecraft:block update]] anymore.}}
|Headless pistons do not break upon receiving a [[Minecraft:block update]] anymore.}}
|{{HistoryLine|java}}
|{{HistoryLine|java}}
|{{HistoryLine||1.2.4|dev=release|Spruce planks, birch planks, and jungle planks can now be used to craft pistons.}}
|{{HistoryLine||1.2.4|dev=release|[[Minecraft:Spruce planks]], [[Minecraft:birch planks]], and [[Minecraft:jungle planks]] can now be used to craft pistons.}}
|{{HistoryLine||1.3.1|dev=12w26a|Pistons now schedule extensions and retractions rather than executing them as soon as they are updated.}}
|{{HistoryLine||1.3.1|dev=12w26a|Pistons now schedule extensions and retractions rather than executing them as soon as they are updated.}}
|{{HistoryLine||1.5|dev=13w10a|Pistons changing their {{code|extended}} state from {{code|false}} to {{code|true}} is now the ''last'' step of (the start of) the extension process, rather then the first. This change affects some redstone contraptions.}}
|{{HistoryLine||1.5|dev=13w10a|Pistons changing their {{code|extended}} state from {{code|false}} to {{code|true}} is now the ''last'' step of (the start of) the extension process, rather then the first. This change affects some redstone contraptions.}}
|{{HistoryLine||1.7.2|dev=1.7.1|Acacia planks and dark oak planks can now be used to craft pistons.}}
|{{HistoryLine||1.7.2|dev=1.7.1|[[Minecraft:Acacia planks]] and [[Minecraft:dark oak planks]] can now be used to craft pistons.}}
|{{HistoryLine||1.8|dev=14w17a|[[File:Piston (U) JE2.png|32px]] [[File:Piston (D) JE2.png|32px]] [[File:Headless Piston (U) JE2.png|32px]] [[File:Headless Piston (D) JE2.png|32px]] The models for pistons when facing up and down have been changed.}}
|{{HistoryLine||1.8|dev=14w17a|[[File:Piston (U) JE2.png|32px]] [[File:Piston (D) JE2.png|32px]] [[File:Headless Piston (U) JE2.png|32px]] [[File:Headless Piston (D) JE2.png|32px]] The models for pistons when facing up and down have been changed.}}
|{{HistoryLine|||dev=14w18a|Slime blocks now push and pull blocks adjacent when connected to sticky pistons.
|{{HistoryLine|||dev=14w18a|[[Minecraft:Slime block]]s 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 ([[Minecraft:mob]]s, players, [[Minecraft:item]]s, launched [[Minecraft:arrow]]s, etc) into the [[Minecraft:air]].}}
|Extending a piston with a slime block on top of it launches the [[Minecraft:entity]] ([[Minecraft:mob]]s, [[Minecraft:player]]s, [[Minecraft:item]]s, launched [[Minecraft:arrow]]s, etc) into the [[Minecraft:air]].}}
|{{HistoryLine|||dev=14w19a|Slime blocks can now push entities sideways and downward when attached to a piston.}}
|{{HistoryLine|||dev=14w19a|Slime blocks can now push entities sideways and downward when attached to a piston.}}
|{{HistoryLine|||dev=14w26a|Pistons do not check if they are receiving power in the moment in which their {{code|extended}} state changes from {{code|false}} to {{code|true}} anymore.}}
|{{HistoryLine|||dev=14w26a|Pistons do not check if they are receiving power in the moment in which their {{code|extended}} state changes from {{code|false}} to {{code|true}} anymore.}}
|{{HistoryLine||1.9|dev=15w38b|Retracting pistons can now pull entities through them.<ref>{{bug|MC-89030}}</ref> This behavior was known as "piston translocation" by the community.}}
|{{HistoryLine||1.9|dev=15w38b|Retracting pistons can now pull [[Minecraft:entities]] through them.<ref>{{bug|MC-89030}}</ref> This behavior was known as "piston translocation" by the community.}}
|{{HistoryLine|||dev=15w49a|Unextended pistons, downward-facing pistons, and upward-facing piston heads are now considered to have a solid top surface, like upside-down [[Minecraft:stairs]] and top [[Minecraft:slab]]s.}}
|{{HistoryLine|||dev=15w49a|Unextended pistons, downward-facing pistons, and upward-facing piston heads are now considered to have a solid top surface, like upside-down [[Minecraft:stairs]] and top [[Minecraft:slab]]s.}}
|{{HistoryLine||1.11|dev=16w40a|Retracting pistons can no longer pull entities through them. "Piston translocation" has been removed.}}
|{{HistoryLine||1.11|dev=16w40a|Retracting pistons can no longer pull [[Minecraft:entities]] through them. "Piston translocation" has been removed.}}
|{{HistoryLine||1.12|dev=17w16a|When pistons move slime blocks, they do not move glazed terracotta attached to the side of the slime block.}}
|{{HistoryLine||1.12|dev=17w16a|When pistons move [[Minecraft:slime block]]s, they do not move glazed terracotta attached to the side of the slime block.}}
|{{HistoryLine|||dev=pre3|Glazed terracotta does not stick to slime blocks in some situations anymore.<ref>{{bug|MC-116373|||fixed}}</ref>}}
|{{HistoryLine|||dev=pre3|Glazed terracotta does not stick to slime blocks in some situations anymore.<ref>{{bug|MC-116373|||fixed}}</ref>}}
|{{HistoryLine||1.13|dev=17w47a|Pistons now can push note blocks.}}
|{{HistoryLine||1.13|dev=17w47a|Pistons now can push [[Minecraft:note block]]s.}}
|{{HistoryLine|||dev=17w48a|Piston heads are no longer removed when breaking a piston while it is extending.<ref>{{bug|MC-122711|}}</ref>}}
|{{HistoryLine|||dev=17w49a|Piston heads are now once again removed when breaking a piston while it is extending.}}
|{{HistoryLine|||dev=pre7|Pistons now have the same block dropping behavior of sticky pistons.<ref>{{bug|MC-133273}}</ref>}}
|{{HistoryLine|||dev=pre7|Pistons now have the same block dropping behavior of sticky pistons.<ref>{{bug|MC-133273}}</ref>}}
|{{HistoryLine||1.13.1|dev=18w30b|Pistons don't drop blocks anymore.}}
|{{HistoryLine||1.13.1|dev=18w30b|Pistons don't drop blocks anymore.}}
|{{HistoryLine||1.14|dev=18w43a|[[File:Piston (U) JE3.png|32px]] [[File:Piston (N) JE2.png|32px]] [[File:Piston (E) JE2.png|32px]] [[File:Piston (S) JE2.png|32px]] [[File:Piston (W) JE2.png|32px]] [[File:Piston (D) JE3.png|32px]]<br>[[File:Headless Piston (U) JE3.png|32px]] [[File:Headless Piston (N) JE2.png|32px]] [[File:Headless Piston (E) JE2.png|32px]] [[File:Headless Piston (S) JE2.png|32px]] [[File:Headless Piston (W) JE2.png|32px]] [[File:Headless Piston (D) JE3.png|32px]]<br>The textures associated with pistons have been changed.
|{{HistoryLine||1.14|dev=18w43a|[[File:Piston (U) JE3.png|32px]] [[File:Piston (N) JE2.png|32px]] [[File:Piston (E) JE2.png|32px]] [[File:Piston (S) JE2.png|32px]] [[File:Piston (W) JE2.png|32px]] [[File:Piston (D) JE3.png|32px]]<br>[[File:Headless Piston (U) JE3.png|32px]] [[File:Headless Piston (N) JE2.png|32px]] [[File:Headless Piston (E) JE2.png|32px]] [[File:Headless Piston (S) JE2.png|32px]] [[File:Headless Piston (W) JE2.png|32px]] [[File:Headless Piston (D) JE3.png|32px]]<br>The textures associated with pistons 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.<ref>{{bug|MC-248841|||WAI}}</ref>}}
|While the texture for oak planks was later updated in subsequent snapshots, the piston texture is yet to be changed to reflect this.<ref>{{bug|MC-248841|||WAI}}</ref>}}
|{{HistoryLine|||dev=18w44a|Non-extended pistons now block light.}}
|{{HistoryLine|||dev=18w44a|Non-extended pistons now block [[Minecraft:light]].}}
|{{HistoryLine|||dev=18w46a|Added support for directional opacity of blocks. As such, extended pistons now allow light to only pass through certain faces.}}
|{{HistoryLine|||dev=18w46a|Added support for directional opacity of blocks. As such, extended pistons now allow light to only pass through certain faces.}}
|{{HistoryLine||1.15|dev=19w41a|Added honey blocks, which have multiple different types of interactions with pistons.}}
|{{HistoryLine||1.15|dev=19w41a|Added honey blocks, which have multiple different types of interactions with pistons.}}
Line 224: Line 226:
|[[Minecraft:Pickaxe]]s are now the tool for breaking pistons.
|[[Minecraft:Pickaxe]]s are now the tool for breaking pistons.
|Pistons no longer pop off redstone components placed on the back when retracting.
|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.}}
|[[Minecraft:Crimson planks]] and [[Minecraft:warped planks]] can now be used to craft pistons.}}
|{{HistoryLine||1.17|dev=20w45a|Particles now appear if a block is broken by a piston.}}
|{{HistoryLine||1.17|dev=20w45a|Particles now appear if a block is broken by a piston.}}
|{{HistoryLine||1.19|dev=22w11a|Mangrove planks can now be used to craft pistons.}}
|{{HistoryLine||1.19|dev=22w11a|[[Minecraft:Mangrove planks]] can now be used to craft pistons.}}
|{{HistoryLine|||dev=22w17a|[[File:Piston (U) JE4.png|32px]] [[File:Piston (N) JE3.png|32px]] [[File:Piston (E) JE3.png|32px]] [[File:Piston (S) JE3.png|32px]] [[File:Piston (W) JE3.png|32px]] [[File:Piston (D) JE4.png|32px]] Changed piston textures, to match the color of the oak planks on the piston head.}}
|{{HistoryLine|||dev=22w17a|[[File:Piston (U) JE4.png|32px]] [[File:Piston (N) JE3.png|32px]] [[File:Piston (E) JE3.png|32px]] [[File:Piston (S) JE3.png|32px]] [[File:Piston (W) JE3.png|32px]] [[File:Piston (D) JE4.png|32px]] Changed piston textures, to match the color of the oak planks on the piston head.}}
|{{HistoryLine||1.19.3|exp=Update 1.20|dev=22w42a|Bamboo planks can now be used to craft pistons.}}
|{{HistoryLine||1.19.3|exp=Update 1.20|dev=22w42a|[[Minecraft:Bamboo planks]] can now be used to craft pistons.}}
|{{HistoryLine||1.19.4|exp=Update 1.20|dev=23w07a|Cherry planks can now be used to craft pistons.}}
|{{HistoryLine||1.19.4|exp=Update 1.20|dev=23w07a|[[Minecraft:Cherry planks]] can now be used to craft pistons.}}
|{{HistoryLine||1.21|dev=24w20a|Piston sounds have been updated to be quieter and less harsh.<br>[[File:Piston extend JE2.ogg]]<br>[[File:Piston contract JE2.ogg]]}}
|{{HistoryLine||1.21|dev=24w20a|Piston sounds have been updated to be quieter and less harsh.<br>[[File:Piston extend JE2.ogg]]<br>[[File:Piston contract JE2.ogg]]}}
|{{HistoryLine|||dev=24w21a|Piston sounds have been reverted to what they previously were, but the attenuation distance and sound level has been halved.}}
|{{HistoryLine|||dev=24w21a|Piston sounds have been reverted to what they previously were, but the attenuation distance and sound level has been halved.}}
Line 239: Line 241:
|{{HistoryLine|pocket alpha}}
|{{HistoryLine|pocket alpha}}
|{{HistoryLine||v0.15.0|dev=build 1|[[File:Piston (U) JE2 BE1.png|32px]] Added pistons.
|{{HistoryLine||v0.15.0|dev=build 1|[[File:Piston (U) JE2 BE1.png|32px]] Added pistons.
|Pistons have a version exclusive animation and the ability to push block entities.}}
|Pistons have a version exclusive animation and the ability to push [[Minecraft:block entities]].}}
|{{HistoryLine|bedrock}}
|{{HistoryLine|bedrock}}
|{{HistoryLine||1.10.0|dev=beta 1.10.0.3|[[File:Piston BE2.png|32px]] The texture of pistons has been changed.}}
|{{HistoryLine||1.10.0|dev=beta 1.10.0.3|[[File:Piston BE2.png|32px]] The texture of pistons has been changed.}}
Line 249: Line 251:
|{{HistoryLine|console}}
|{{HistoryLine|console}}
|{{HistoryLine||xbox=TU3|xbone=CU1|ps3=1.00|psvita=1.00|ps4=1.00|wiiu=Patch 1|switch=1.0.1|[[File:Piston (U) JE1.png|32px]] Added pistons.}}
|{{HistoryLine||xbox=TU3|xbone=CU1|ps3=1.00|psvita=1.00|ps4=1.00|wiiu=Patch 1|switch=1.0.1|[[File:Piston (U) JE1.png|32px]] Added pistons.}}
|{{HistoryLine||xbox=TU14|ps3=1.04|psvita=1.00|ps4=1.00|Pistons have been changed 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.}}
|{{HistoryLine||xbox=TU14|ps3=1.04|psvita=1.00|ps4=1.00|Pistons have been changed to make them less error-prone, thus they also appear to update slower. This also alters the way pistons work, so the [[Minecraft:player]] might have to adapt their [[Minecraft:repeater]] delays and similar.}}
|{{HistoryLine||xbox=TU46|xbone=CU36|ps3=1.38|psvita=1.38|ps4=1.38|wiiu=Patch 15|switch=1.0.1|Retracting pistons can now pull entities through them. This was known as "piston translocation" by the community.}}
|{{HistoryLine||xbox=TU46|xbone=CU36|ps3=1.38|psvita=1.38|ps4=1.38|wiiu=Patch 15|switch=1.0.1|Retracting pistons can now pull [[Minecraft:entities]] through them. This was known as "piston translocation" by the community.}}
|{{HistoryLine||xbox=TU54|xbone=CU44|ps3=1.52|psvita=1.52|ps4=1.52|wiiu=Patch 24|switch=1.0.4|Retracting pistons can no longer pull entities through them. "Piston translocation" has been removed.}}
|{{HistoryLine||xbox=TU54|xbone=CU44|ps3=1.52|psvita=1.52|ps4=1.52|wiiu=Patch 24|switch=1.0.4|Retracting pistons can no longer pull [[Minecraft:entities]] through them. "Piston translocation" has been removed.}}
|{{HistoryLine||xbox=TU57|xbone=CU49|ps3=1.57|psvita=1.56|ps4=1.56|wiiu=Patch 27|switch=1.0.7|Pistons can now move daylight detectors.}}
|{{HistoryLine||xbox=TU57|xbone=CU49|ps3=1.57|psvita=1.56|ps4=1.56|wiiu=Patch 27|switch=1.0.7|Pistons can now move [[Minecraft:daylight detector]]s.}}
|{{HistoryLine||xbox=TU60|xbone=CU51|ps3=1.64|psvita=1.64|ps4=1.64|wiiu=Patch 30|switch=1.0.11|Pistons can no longer move cauldrons.}}
|{{HistoryLine||xbox=TU60|xbone=CU51|ps3=1.64|psvita=1.64|ps4=1.64|wiiu=Patch 30|switch=1.0.11|Pistons can no longer move cauldrons.}}
|{{HistoryLine||xbox=TU62|xbone=CU52|ps3=1.66|psvita=1.66|ps4=1.66|wiiu=Patch 31|switch=1.0.12|Pistons can now move small chests but only if the new position would have been valid for players to place a new chest. This limitation can however be bypassed by moving the chests simultaniously.|Pistons can move cauldrons again.}}
|{{HistoryLine||xbox=TU62|xbone=CU52|ps3=1.66|psvita=1.66|ps4=1.66|wiiu=Patch 31|switch=1.0.12|Pistons can now move small chests but only if the new position would have been valid for players to place a new chest. This limitation can however be bypassed by moving the chests simultaniously.|Pistons can move cauldrons again.}}
Line 268: Line 270:
{{HistoryTable
{{HistoryTable
|{{HistoryLine|java beta}}
|{{HistoryLine|java beta}}
|{{HistoryLine||1.7|Six-sided pistons exist as extreme metadata variants of pistons.}}
|{{HistoryLine||1.7|[[Minecraft:Six-sided piston]]s exist as extreme metadata variants of pistons.}}
|{{HistoryLine|java}}
|{{HistoryLine|java}}
|{{HistoryLine||1.8|dev=14w26a|Pistons now use block states instead of metadata. As such, weird pistons have been removed.}}
|{{HistoryLine||1.8|dev=14w26a|Pistons now use block states instead of metadata. As such, weird pistons have been removed.}}
|{{HistoryLine||1.13|dev=17w47a|Prior to ''The Flattening'', this block's numeral ID was 33.}}
|{{HistoryLine||1.13|dev=17w47a|Prior to ''[[Minecraft:The Flattening]]'', this block's numeral ID was 33.}}
}}
}}


Line 305: Line 307:
=== Screenshots===
=== Screenshots===
<gallery>
<gallery>
Pistongates.png|Fundamental logic gates, implemented purely with pistons and redstone repeaters, clockwise from upper left: AND, OR, XOR, and NOT
Pistongates.png|Fundamental logic gates, implemented purely with pistons and [[Minecraft:redstone repeater]]s, clockwise from upper left: AND, OR, XOR, and NOT
Pistonslowclockgenerator.png|Slow clock generator with pistons and redstone
Pistonslowclockgenerator.png|Slow clock generator with pistons and redstone
Piston Waterflow control.png|An example of a piston-controlled waterflow
Piston Waterflow control.png|An example of a piston-controlled waterflow
Line 316: Line 318:
Pocket Edition Pistons.jpg|Redstone connecting to pistons in ''Bedrock Edition''
Pocket Edition Pistons.jpg|Redstone connecting to pistons in ''Bedrock Edition''
Fish Piston.jpg|A piston being crafted with a fish. This is a joke about the piston sounds heard in Java Edition 24w20a, which have been said to sound wet.
Fish Piston.jpg|A piston being crafted with a fish. This is a joke about the piston sounds heard in Java Edition 24w20a, which have been said to sound wet.
Makena's pistons.jpg|"Makena tinkering with a Redstone contraption made up of Pistons pushing a Lime Wool block"<ref>{{mcnet|minecraft-java-edition-1-20-3|Minecraft Java Edition 1.20.3|December 5, 2023|Java Team}}</ref>
Makena's pistons.jpg|"[[Minecraft:Makena]] tinkering with a Redstone contraption made up of Pistons pushing a Lime Wool block"<ref>{{mcnet|minecraft-java-edition-1-20-3|Minecraft Java Edition 1.20.3|December 5, 2023|Java Team}}</ref>
</gallery>
</gallery>


Line 326: Line 328:
=== In other media ===
=== In other media ===
<gallery>
<gallery>
Piston Artwork.png|Artwork of an incorrectly-rotated piston connected to a [[Minecraft:lever]] via redstone dust
Piston Artwork.png|Artwork of an incorrectly-rotated piston connected to a [[Minecraft:lever]] via [[Minecraft:redstone dust]]
Minecraft - Shape Your World (13).png|Pistons as they appear in '' Shape Your World''
Minecraft - Shape Your World (13).png|Pistons as they appear in ''[[Minecraft: Shape Your World]]''
AMCM Two pistons.png|Pistons as they appear in {{AMCM}}.
AMCM Two pistons.png|Pistons as they appear in {{AMCM}}.
Crystal bomb duo costume.jpg|A duo dressed as a piston and End crystal
Crystal bomb duo costume.jpg|A duo dressed as a piston and [[Minecraft:End crystal]]
</gallery>
</gallery>


== See also ==
== See also ==
*Slime block
*[[Minecraft:Slime block]]
*[[Minecraft:Redstone]]
*[[Minecraft:Redstone]]
*Tutorial:Piston uses
*[[Minecraft:Tutorial:Piston uses]]
*Tutorial:Headless pistons
*[[Minecraft:Tutorial:Headless pistons]]
*Mechanics/Redstone/Piston circuits
*[[Minecraft:Mechanics/Redstone/Piston circuits]]


== Notes ==
== Notes ==
Line 346: Line 348:


== External links ==
== External links ==
*{{Mcnet|block-week-piston|Block of the Week: Piston|October 13, 2017|Duncan Geere}}
*{{Mcnet|block-week-piston|Block of the Week: Piston|October 13, 2017|[[Minecraft:Duncan Geere]]}}


== Navigation ==
== Navigation ==
Line 355: Line 357:
[[Category:Manufactured blocks]]
[[Category:Manufactured blocks]]


de:Kolben
[[Minecraft:de:Kolben]]
es:Pistón
[[Minecraft:es:Pistón]]
fr:Piston
[[Minecraft:fr:Piston]]
hu:Dugattyú
[[Minecraft:hu:Dugattyú]]
it:Pistone
[[Minecraft:it:Pistone]]
ja:ピストン
[[Minecraft:ja:ピストン]]
ko:피스톤
[[Minecraft:ko:피스톤]]
nl:Zuiger
[[Minecraft:nl:Zuiger]]
pl:Tłok
[[Minecraft:pl:Tłok]]
pt:Pistão
[[Minecraft:pt:Pistão]]
ru:Поршень
[[Minecraft:ru:Поршень]]
th:ลูกสูบ
[[Minecraft:th:ลูกสูบ]]
uk:Поршень
[[Minecraft:uk:Поршень]]
zh:活塞
[[Minecraft:zh:活塞]]

Latest revision as of 11:16, 16 April 2026

Template:For Template:Infobox block A piston is a Minecraft:block capable of pushing most Minecraft:entities and blocks when given a Minecraft: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

Breaking

A piston can be broken using any Minecraft:tool with equal efficiency, and always drops itself. It is faster to break them with a Minecraft:pickaxe. The pickaxe is also the preferred tool for breaking the head when extended.<ref>Template:Bug</ref> Template:Breaking row

Crafting

Template:Crafting

Usage

Template:See also

Crafting ingredient

Template:Crafting usage

Redstone component

Pistons are always placed facing toward the player. When powered, the piston's wooden surface (the "head") tries to start extending after a start delay. The extension takes Template:Convert to finish. 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 an extending piston (or any block it might be moving) are pushed along, when possible. If the entities cannot be moved, the block is pushed inside them, suffocating Minecraft:mobs when pushed into their Minecraft:eye height (assuming said block is solid).

When a piston loses power, its head retracts. Like the extension, the retraction starts after a start delay and takes Template:Convert to finish.

A piston that pushes a Minecraft:slime block bounces any entity that it displaces in the direction the piston is facing. Entities on top of a moving Minecraft:honey block, or any other moving block,Template:Only will also move with it. In addition, when a slime block or a honey block is moved by a piston, any movable block adjacent (not diagonally) to it also moves. See the "Slime blocks and honey blocks" section of this page for more details.

Template:IN, blocks that require a support (such as levers) can be placed on the back or sides of a piston without being destroyed when that piston extends. Template:IN, on the other hand, the majority of blocks that require a support are only safe to place on the back of pistons.

Soft inversion

Template:Exclusive When a piston that has a Minecraft:redstone torch attached to it is powered, the redstone torch turns off—and when said piston is depowered, the redstone torch turns back on: this mechanic is known by the community as Minecraft:soft inversion.<ref>Template:Bug</ref><ref>"Explaining soft inversion: the Minecraft Bedrock Redstone bug that won't get fixed" – https://www.youtube.com/watch?v=zUgKXTsLOA0</ref> Since soft inversion works even if the piston is being powered indirectly through a block, it can be used to toggle the state of a redstone torch from farther away compared to other powering methods. It's still possible to take advantage of soft inversion even if the piston cannot extend or retract.

Interaction with comparators

Template:Exclusive Despite not being a conductive block, comparators can read the fullness of containers through pistons.

Start delay

A piston won't extend or retract immediately when it is activated: this phenomenon is known as "start delay".

Template:IN, the start delay is fixed at Template:Convert, meaning that the piston starts to extend or retract 2 game ticks after it is activated. Pistons can only activate on the input/consumer redstone tick (Minecraft:C-tick).

Template:IN, the start delay can be 0 (activation in the same tick) or Template:Convert (activation in the next tick) depending on the game process in which the piston is powered:

  • If the piston is powered and updated in the scheduled tick phase, Minecraft:random tick phase or block event phase, the piston activates in this game tick's block event phase, which means the start delay in this case is 0.
  • If the piston is powered and updated during the Minecraft:entity phase or the Minecraft:block entity phase, or by player actions, the piston activates in the next game tick's block event phase, which means the start delay in this case is 1 tick. Notably, because blocks pushed by pistons arrive during the block entity phase (except when dropped by a sticky piston), in a chain of pistons each pushing a redstone block to activate the next, successive activations will happen 3 ticks apart.

Limitations

Pistons can push most blocks, with the exception of the ones listed in the table below.

Pistons cannot push blocks into the Minecraft:void, above the Minecraft:build limit, or beyond Template:JE's Minecraft:world border. 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.

Piston/Table

Powering pistons

File:Stacked pistons powered by one redstone line.png
Pistons powered by one line of redstone.

Pistons can be activated from any side, excluding from the head. Template:IN, redstone dust gets automatically redirected toward pistons if placed next to them (except for the head's side).

Template:IN, pistons can be powered from one block above compared to most redstone components: this property is called quasi-connectivity and can be used to make a BUD switch, taking advantage of the fact that a piston powered through quasi-connectivity doesn't always get updated. With quasi-connectivity, a piston facing up can also be powered from the head's direction, which is otherwise impossible. Due to quasi-connectivity, a piston facing up that has a Minecraft:block of redstone on top of itself can extend but not retract: this happens because after the piston extends, it keeps receiving power from the redstone block.

Slime blocks and honey blocks

Template:Schematic

When a Minecraft:slime block is pushed or pulled by a piston, adjacent blocks also move with the slime block, due to its stickiness. 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 push additional ground blocks in the direction of motion just as if they were being pushed directly by a piston. The same occurs when a slime block is moved by another adjacent slime block. For example, a 2×2×2 cube of slime blocks may be pushed or pulled as a single unit by a piston acting on any of the blocks in the cube. A slime block adjacent to a block that cannot be moved by pistons or a block that can be broken by piston ignores that block. However, if an adjacent block could be moved, but is prevented to by the presence of an unmovable block, the slime block is prevented from moving as well and the piston does not extend.

Slime blocks' stickiness is unilateral, as such they can't be pulled by a non-Minecraft:sticky piston and they are not 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 structure of slime blocks may be pushed by a piston as long as no other movable block is 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 more informations, see the article Minecraft:Tutorial:Flying machines.

Minecraft:Honey blocks work like slime blocks when it comes to moving other blocks, however honey blocks and slime blocks do not stick to each other. This allows, by alternating slime blocks and honey blocks, to have redstone contraptions which make use of these sticky blocks stay side by side without interfering with one another.

Minecraft:Glazed terracotta and the Minecraft:heavy coreTemplate:Only have an interesting property: they do not stick to adjacent slime blocks or honey blocks, even though they can be pushed by pistons.

Technical components

Template:Main Pistons have 2 technical blocks that cannot be obtained. These include the piston head and moving piston blocks.

Sounds

Generic

Template:Edition: Template:Sound table/Block/Stone/JE Template:Edition (piston): Template:Sound table/Block/Stone/BE Template:Edition (arm): Template:Sound table/Block/Normal/BE

Unique

Piston/Sounds

Data values

ID

Template:Edition: Template:ID table

Template:Edition: Template:ID table Template:ID table

Block states

Template:See also The piston block uses following block states:

<section begin="block states"/>Template:El: Template:Bst Template:Bst

Template:El: Template:Bst<section end="block states"/>

Block data

Template:Exclusive Template:IN, a piston has a Minecraft:block entity associated with it that holds additional data about the block.

See Minecraft:Bedrock Edition level format/Block entity format.

Achievements

Template:Load achievements

Videos

Template:Yt

History

Template:Needs render

Development

Template:HistoryTable

Java Edition

Template:HistoryTable

Bedrock Edition

Template:HistoryTable

Legacy Console Edition

Template:HistoryTable

New Nintendo 3DS Edition

Template:HistoryTable

Data history

Java Edition

Template:HistoryTable

Bedrock Edition

Template:HistoryTable

Legacy Console Edition

Template:HistoryTable

Issues

Template:Issue list

Trivia

  • Mojang stated that the 12-block push limit for pistons would not be changed, because "the current limitations are by design".<ref>

Template:Cite </ref>

  • 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 Template:Cmd.

Gallery

Screenshots

Mojang screenshots

Concept artwork

In other media

See also

Notes

Template:Notelist

References

Template:Reflist

External links

Navigation

Template:Navbox redstone Template:Navbox blocks

Minecraft:de:Kolben Minecraft:es:Pistón Minecraft:fr:Piston Minecraft:hu:Dugattyú Minecraft:it:Pistone Minecraft:ja:ピストン Minecraft:ko:피스톤 Minecraft:nl:Zuiger Minecraft:pl:Tłok Minecraft:pt:Pistão Minecraft:ru:Поршень Minecraft:th:ลูกสูบ Minecraft:uk:Поршень Minecraft:zh:活塞