Minecraft:Piston: Difference between revisions
More actions
Remove broken links to missing pages |
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 | [[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 | |{{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, | |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 | |{{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 | |{{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 | |{{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 | |{{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 | 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
Usage
Crafting ingredient
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.
Powering pistons
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
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
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.
Achievements
Videos
History
Development
Java Edition
Bedrock Edition
Legacy Console Edition
New Nintendo 3DS Edition
Data history
Java Edition
Bedrock Edition
Legacy Console Edition
Issues
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
-
Fundamental logic gates, implemented purely with pistons and Minecraft: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
Mojang screenshots
-
First screenshot of pistons
-
Light shining through an extended piston
-
Redstone connecting to pistons in Bedrock Edition
-
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.
-
"Minecraft:Makena tinkering with a Redstone contraption made up of Pistons pushing a Lime Wool block"<ref>Template:Mcnet</ref>
Concept artwork
-
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)<ref>Template:Tweet</ref>
In other media
-
Artwork of an incorrectly-rotated piston connected to a Minecraft:lever via Minecraft:redstone dust
-
Pistons as they appear in Minecraft: Shape Your World
-
Pistons as they appear in Template:AMCM.
-
A duo dressed as a piston and Minecraft:End crystal
See also
Notes
References
External links
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:活塞