{{for|the regular variant|Piston}}{{Infobox block
| image = Sticky Piston.gif
| imagecaption = Java Edition
| image2 = Sticky Piston BE.gif
| image2caption = Bedrock Edition
| invimage = Sticky Piston
| transparent = '''[[JE]]''': No<br>'''[[BE]]''': Yes
| light = No
| tool = Pickaxe
| renewable = Yes
| stackable = Yes (64)
| flammable = No
| lavasusceptible = No
}}
A '''sticky piston''' is a variant of the [[piston]] that can additionally pull most blocks when it retracts.

== Obtaining ==
=== Breaking ===
A sticky piston can be broken using any [[tool]] with equal efficiency, and always drops itself.
{{IN|java}}, it is faster to break them with a [[pickaxe]]. The pickaxe is also the preferred tool for breaking the head when extended.<ref>{{bug|MC-171370|||WAI}}</ref>
{{breaking row|horizontal=1|Sticky Piston|Pickaxe}}

=== Natural generation ===
Three sticky pistons generate as part of each [[jungle pyramid]]. Five sticky pistons also generate in each [[ancient city]].

=== Crafting ===
{{Crafting
|B1 = Slimeball
|B2 = Piston
|Output = Sticky Piston
|type = Redstone
}}

== Usage ==
{{see also|Piston}}
A sticky piston behaves the same way as a [[Piston|normal piston]], except when pulling. A sticky piston pulls when it is [[Redstone circuits|unpowered]].

=== Pulling ===
A sticky piston also pulls the block attached to its head and any blocks attached to the head via [[Slime Block|slime]]- or [[Honey Block|honey blocks]], but not any of the other blocks it may have pushed.

A sticky piston cannot pull a [[Falling Block|falling block]].

==== Spitting ====
{{Conjecture|section=1}}
{{IN|je}}, sticky pistons finish extending early and start retracting if given a pulse shorter than 3 or 2 game ticks (depending on if there is [[#Start delay|start delay]]). This causes a sticky piston to "spit" its block, leaving it behind. Also, this causes the block to end up in its final position earlier. A sticky piston still pulls a block back if the piston extended through an air gap to contact the block. 

{{:Piston/Table}}

== Technical components ==
{{main|Piston/Technical components}}
Sticky pistons have 2 technical blocks that cannot be obtained. These include the '''piston head''' and '''moving piston''' blocks.

== Sounds ==
=== Generic ===
{{edition|java}}:
{{Sound table/Block/Stone/JE}}
{{edition|bedrock}} (piston):
{{Sound table/Block/Stone/BE}}
{{edition|bedrock}} (arm):
{{Sound table/Block/Normal/BE}}

=== Unique ===
{{:Piston/Sounds|a sticky piston}}

== Data values ==
=== ID ===
{{edition|java}}:
{{ID table
|edition=java
|showblocktags=y
|showforms=y
|generatetranslationkeys=y
|displayname=Sticky Piston
|spritetype=block
|nameid=sticky_piston
|foot=1}}
{{ID table
|displayname=Block entity
|spritename=piston
|spritetype=block
|nameid=piston
|foot=1}}

{{edition|bedrock}}:
{{ID table
|edition=bedrock
|shownumericids=y
|showaliasids=y
|showforms=y
|generatetranslationkeys=y
|displayname=Sticky Piston
|spritetype=block
|nameid=sticky_piston
|id=29
|foot=1}}
{{ID table
|notnamespaced=y
|displayname=Piston block entity
|spritename=piston
|spritetype=block
|nameid=PistonArm
|foot=1}}

=== Block states ===
{{see also|Block states}}
The <code>sticky_piston</code> block uses following block states:

{{:Piston/BS}}

=== Block data ===
A sticky piston has a [[block entity]] associated with it that holds additional data about the block.
{{el|java}}:
{{see also|Block entity format}}
{{:Piston/BE|piston}}

{{el|bedrock}}:
: See [[Bedrock Edition level format/Block entity format]].

== Video ==
{{yt|dKDSUKXN138}}

== History ==
{{Needs render|type=old|{{bug|MCPE-38053}}, extended sticky piston from the original mod, and extended sticky pistons in Legacy Console Edition.}}
{{HistoryTable
|{{HistoryLine|java beta}}
|{{HistoryLine||?|[[File:Sticky piston mod.png|32px]] The original sticky 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.
|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>}}
|{{HistoryLine||1.7|[[File:Sticky Piston (U) JE1.png|32px]] [[File:Sticky Piston (N) JE1 BE1.png|32px]] [[File:Sticky Piston (E) JE1 BE1.png|32px]] [[File:Sticky Piston (S) JE1 BE1.png|32px]] [[File:Sticky Piston (W) JE1 BE1.png|32px]] [[File:Sticky Piston (D) JE1 BE1.png|32px]]<br>[[File:Headless Piston (U) JE1 BE1.png|32px]] [[File:Headless Piston (N) JE1 BE1.png|32px]] [[File:Headless Piston (E) JE1 BE1.png|32px]] [[File:Headless Piston (S) JE1 BE1.png|32px]] [[File:Headless Piston (W) JE1 BE1.png|32px]] [[File:Headless Piston (D) JE1 BE1.png|32px]]<br>[[File:Sticky Piston Head (U) JE1.png|32px]] [[File:Sticky Piston Head (N) JE1.png|32px]] [[File:Sticky Piston Head (E) JE1.png|32px]] [[File:Sticky Piston Head (S) JE1.png|32px]] [[File:Sticky Piston Head (W) JE1.png|32px]] [[File:Sticky Piston Head (D) JE1.png|32px]]<br>Added sticky pistons, alongside associated head and moving blocks.}}
|{{HistoryLine||1.7.3|Sticky pistons now spit the first out of the blocks they are pushing when they are powered by a short pulse.}}
|{{HistoryLine|java}}
|{{HistoryLine||1.3.1|dev=12w22a|Sticky pistons now generate naturally inside [[jungle temple]]s. In the temples, the pistons are used to form a puzzle mechanism.}}
|{{HistoryLine|||dev=12w26a|Sticky pistons now schedule extensions and retractions rather than executing them as soon as they are updated.}}
|{{HistoryLine||1.5|dev=13w06a|Sticky pistons can now pull extended sticky and normal pistons as long as they are both depowered in the same tick, but only if the first one is updated before the other. This behavior is intended.<ref>{{bug|MC-9342|||WAI}}</ref>}}
|{{HistoryLine||1.8|dev=14w17a|[[File:Sticky Piston (U) JE2.png|32px]] [[File:Sticky Piston (D) JE2.png|32px]] [[File:Headless Piston (U) JE2.png|32px]] [[File:Headless Piston (D) JE2.png|32px]] [[File:Sticky Piston Head (U) JE2.png|32px]] [[File:Sticky Piston Head (D) JE2.png|32px]] The models for sticky piston and related blocks when facing up and down have been changed.}}
|{{HistoryLine|||dev=14w18a|[[Slime block]]s now push and pull blocks adjacent when connected to sticky pistons.
|Extending a sticky piston with a slime block on top of it launches the [[entity]] ([[mob]]s, [[player]]s, [[item]]s, launched [[arrow]]s, etc) into the [[air]].}}
|{{HistoryLine|||dev=14w29a|[[File:Short Sticky Piston Head (U) JE1.png|32px]] [[File:Short Sticky Piston Head (N) JE1.png|32px]] [[File:Short Sticky Piston Head (E) JE1.png|32px]] [[File:Short Sticky Piston Head (S) JE1.png|32px]] [[File:Short Sticky Piston Head (W) JE1.png|32px]] [[File:Short Sticky Piston Head (D) JE1.png|32px]]<br>There are now "short" sticky piston heads. Their use is unknown.}}
|{{HistoryLine||1.9|dev=15w38b|Retracting sticky pistons can now pull [[entities]] through them. This was known as "piston translocation" by the community.
|Sticky pistons can no longer pull extended sticky and normal pistons when depowered in the same tick due to a bug.<ref>{{bug|MC-88959|}}</ref>}}
|{{HistoryLine|||dev=15w49a|Unextended sticky pistons, downward-facing sticky pistons, and upward-facing sticky piston heads are now considered to have a solid top surface, like upside-down [[stairs]] and top [[slab]]s.}}
|{{HistoryLine||1.11|dev=16w40a|Retracting sticky pistons can no longer pull [[entities]] through them. "Piston translocation" has been removed.}}
|{{HistoryLine||1.12|dev=17w16a|Sticky pistons do not pull [[glazed terracotta]], and when pistons move [[slime block]]s, they do not move glazed terracotta attached to the side of the slime block.}}
|{{HistoryLine|||dev=pre3|Slime blocks can no longer pull glazed terracotta attached to any side of a sticky piston, whatsoever.}}
|{{HistoryLine||1.13|dev=17w47a|Sticky pistons now can push [[note block]]s.}}
|{{HistoryLine|||dev=pre6|Sticky pistons now pull [[glazed terracotta]] again.}}
|{{HistoryLine|||dev=pre8|Sticky pistons no longer pull glazed terracotta.}}
|{{HistoryLine||1.14|dev=18w43a|[[File:Sticky Piston (U) JE3.png|32px]] [[File:Sticky Piston (N) JE2.png|32px]] [[File:Sticky Piston (E) JE2.png|32px]] [[File:Sticky Piston (S) JE2.png|32px]] [[File:Sticky Piston (W) JE2.png|32px]] [[File:Sticky 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>[[File:Sticky Piston Head (U) JE3.png|32px]] [[File:Sticky Piston Head (N) JE2.png|32px]] [[File:Sticky Piston Head (E) JE2.png|32px]] [[File:Sticky Piston Head (S) JE2.png|32px]] [[File:Sticky Piston Head (W) JE2.png|32px]] [[File:Sticky Piston Head (D) JE3.png|32px]]<br>[[File:Short Sticky Piston Head (U) JE2.png|32px]] [[File:Short Sticky Piston Head (N) JE2.png|32px]] [[File:Short Sticky Piston Head (E) JE2.png|32px]] [[File:Short Sticky Piston Head (S) JE2.png|32px]] [[File:Short Sticky Piston Head (W) JE2.png|32px]] [[File:Short Sticky Piston Head (D) JE2.png|32px]]<br>The textures associated with sticky pistons have been changed.
|While the texture for oak planks was later updated in subsequent snapshots, the sticky piston texture is yet to be changed to reflect this.<ref>{{bug|MC-248841|||WAI}}</ref>}}
|{{HistoryLine|||dev=18w44a|Sticky pistons are no longer transparent.}}
|{{HistoryLine|||dev=18w46a|Extended sticky pistons now allow light to pass through certain faces.}}
|{{HistoryLine||1.15|dev=19w41a|Added honey blocks, which have multiple different types of interactions with sticky pistons.}}
|{{HistoryLine||1.16|dev=20w06a|The hardness of sticky pistons has been increased from 0.5 to 1.5.
|[[Pickaxe]]s are now the tool for breaking sticky pistons.
|Sticky pistons no longer pop off redstone components placed on the back when retracting.}}
|{{HistoryLine||1.17|dev=20w45a|Particles now appear if a block is broken by a sticky piston.}}
|{{HistoryLine|||dev=22w13a|Sticky pistons and piston heads now generate in [[ancient cities]].}}
|{{HistoryLine|||dev=22w17a|[[File:Sticky Piston (U) JE4.png|32px]] Changed sticky piston textures, to match the color of the oak planks on the piston head.}}

|{{HistoryLine||1.21|dev=24w20a|Sticky 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|Sticky piston sounds have been reverted to what they previously were, but the attenuation distance and sound level has been halved.}}

|{{HistoryLine|pocket alpha}}
|{{HistoryLine||v0.15.0|dev=build 1|[[File:Sticky Piston (U) JE2 BE1.png|32px]] Added sticky pistons.
|Sticky pistons have a version exclusive animation and the ability to push [[block entities]].}}
|{{HistoryLine|bedrock}}
|{{HistoryLine||1.10.0|dev=beta 1.10.0.3|[[File:Sticky Piston BE2.png|32px]] The texture of sticky pistons has been changed.}}
|{{HistoryLine||1.20.30|dev=Preview 1.20.20.21|Increased the hardness and blast resistance of sticky pistons from 0.5 to 1.5.}}

|{{HistoryLine|console}}
|{{HistoryLine||xbox=TU3|xbone=CU1|ps3=1.00|psvita=1.00|ps4=1.00|wiiu=Patch 1|switch=1.0.1|[[File:Sticky Piston (U) JE1.png|32px]] Added sticky pistons.}}
|{{HistoryLine||xbox=TU14|ps3=1.04|psvita=1.00|ps4=1.00|Sticky pistons have been updated to make them less error-prone, thus they also appear to update slower. This also alters the way pistons work, so the [[player]] might have to adapt their [[repeater]] delays and similar.}}
|{{HistoryLine||xbox=TU46|xbone=CU36|ps3=1.38|psvita=1.38|ps4=1.38|wiiu=Patch 15|switch=1.0.1|Retracting sticky pistons can now pull [[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 sticky pistons can no longer pull [[entities]] through them. "Piston translocation" has been removed.|Sticky pistons can no longer pull [[glazed terracotta]].}}
|{{HistoryLine||xbox=TU57|xbone=CU49|ps3=1.57|psvita=1.56|ps4=1.56|wiiu=Patch 27|switch=1.0.7|Sticky pistons can now move [[daylight detector]]s.}}
|{{HistoryLine||xbox=TU60|xbone=CU51|ps3=1.64|psvita=1.64|ps4=1.64|wiiu=Patch 30|switch=1.0.11|Sticky 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|Sticky 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.|Sticky pistons can move cauldrons again.}}
|{{HistoryLine||xbox=none|xbone=none|ps3=none|psvita=none|ps4=1.90|wiiu=none|switch=none|[[File:Sticky Piston (U) BE2.png|32px]] The texture of sticky pistons has been changed.}}

|{{HistoryLine|3ds}}
|{{HistoryLine||0.1.0|[[File:Sticky Piston (U) JE2 BE1.png|32px]] Added sticky pistons.}}
}}

<gallery>
Pistonscreen.png|First screenshot of pistons.
</gallery>

=== Data history ===
{{HistoryTable
|{{HistoryLine|bedrock}}
|{{HistoryLine||1.13.0|dev=beta 1.13.0.9|Sticky piston heads are now a separate [[block]] from normal heads, instead of being differentiated by a block state. The namespaced ID is now <code>stickypistonarmcollision</code>, while the numerical ID is 472.}}
|{{HistoryLine||1.18.30|dev=beta 1.18.30.26|The ID of <code>stickypistonarmcollision</code> is changed to <code>sticky_piston_arm_collision</code>}}
|{{HistoryLine|console}}
|{{HistoryLine||?|Weird sticky pistons definitely existed at one point.}}
}}

== Issues ==
{{Issue list}}

== Trivia ==
* Mojang stated that the 12-block push limit for sticky pistons would not be changed, because "the current limitations are by design".<ref>
{{cite
|url=https://feedback.minecraft.net/hc/en-us/articles/360005029872-Previously-Considered-Suggestions
|title=Piston Push Limits (and increases). The current limitations are by design.
|website=Minecraft Feedback
|date=January 3, 2019}}
</ref>
* When toggled between on and off rapidly with a gravity affected block (such as sand) above it, a sticky piston can eventually break the block, which can be picked up as a resource. However, gravel broken this way never drops flint.
* If a sticky piston powered by a short pulse directly pushes a waterlogged block, the block remains waterlogged at its new position.
* Carpet can be placed on the sticky piston extension block, and remains even if it is replaced with a solid block using {{cmd|setblock}}.

== Gallery ==
=== Screenshots ===
<gallery>
File:Glassp.gif|An example of sticky piston use with [[glass pane]]s.
File:Sticky piston rails.gif|An example of sticky piston use with rails.
File:Sticky piston fence.gif|An example of sticky piston use with fences.
File:Efe tinkers.jpg|[[Efe]] tinkering with a sticky piston.<ref>{{mcnet|trails-tales-update-out-today-java|Trails Tales Update Out Today on Java|June 7, 2023}}</ref>
</gallery>

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

== Notes ==
{{Notelist}}

== References ==
{{Reflist}}

== Navigation ==
{{Navbox redstone|components}}
{{Navbox blocks|utility}}

[[Category:Block entities]]
[[Category:Mechanisms]]
[[Category:Manufactured blocks]]
[[Category:Generated structure blocks]]

[[nl:Kleefzuiger]]
[[pt:Pistão grudento]]
[[uk:Липкий поршень]]
