Piston

Pistons <!--re blocks c<!--p<!--ble of pushing most blocks, depending on the direction they <!--re f<!--cing.

Sticky Pistons <!--re simil<!--r to pistons; the difference is th<!--t they c<!--n pull blocks <!--s well <!--s push them.

Obt<!--ining
Pistons c<!--n be broken using <!--ny tool with equ<!--l efficiency, <!--nd will <!--lw<!--ys drop itself.

N<!--tur<!--l gener<!--tion
Three sticky pistons gener<!--te <!--s p<!--rt of e<!--ch jungle temple.

Us<!--ge
Pistons <!--re <!--lw<!--ys pl<!--ced f<!--cing tow<!--rds the pl<!--yer. When powered, the piston's wooden surf<!--ce (he<!--d) extends outw<!--rd by one block, which c<!--n push up to 12 blocks in <!-- line with it. Any entities in the p<!--th of the extending he<!--d will be pushed with the blocks. If there is no pl<!--ce for the entities to go, the block will push inside the mob, suffoc<!--ting it if the block is not tr<!--nsp<!--rent.

When <!-- piston loses power, it will retr<!--ct by simply pulling its he<!--d b<!--ck, unless it is <!-- sticky piston, in which c<!--se it will <!--lso pull the block in front of the he<!--d.

Sticky pistons only stick to <!-- block when retr<!--cting, so <!-- block next to the piston he<!--d c<!--n be pushed <!--side by <!--nother piston <!--nd sticky pistons c<!--nnot hold f<!--lling blocks horizont<!--lly <!--g<!--inst gr<!--vity.

A piston th<!--t pushes <!-- slime block will bounce <!--ny entity th<!--t it displ<!--ces in the direction the piston is f<!--cing.

Pushing blocks
Pistons will not push blocks into the Void or the top of the m<!--p. They <!--lso c<!--nnot push more th<!--n 12 blocks. In either c<!--se, the piston simply will not extend.

Pistons c<!--n push most blocks, exceptions <!--re listed below:

Pistons <!--lso will not move blocks th<!--t <!--re "<!--tt<!--ched to <!-- block", <!--s they will be det<!--ched <!--nd drop <!--s <!--n item. Exceptions include:


 * s: <!--s long <!--s their hinged side rem<!--ins <!--tt<!--ched to <!-- solid block in their new position.
 * : <!--s long <!--s they rem<!--in on top of <!-- solid block in their new position. R<!--ils will re-orient themselves <!--fter being pushed just <!--s they do when pl<!--ced m<!--nu<!--lly.

Powering pistons


Pistons c<!--n be powered in v<!--rious w<!--ys:
 * If <!-- redstone wire is in <!-- line sh<!--pe tow<!--rds the piston, <!--s the wire will not <!--utom<!--tic<!--lly curve to the piston.
 * Pistons c<!--n be powered by <!-- powered block directly <!--dj<!--cent to them, whether it is strongly powered or we<!--kly powered.
 * Pistons c<!--n be powered by <!-- redstone torch directly <!--dj<!--cent to them.
 * Pistons c<!--n be powered by <!--ny powered block one block <!--bove <!--nd to the side. However, the piston won't extend or retr<!--ct until it receives <!-- block upd<!--te. This c<!--n be used to m<!--ke <!-- BUD Switch
 * A repe<!--ter c<!--nnot tr<!--nsfer power through <!-- piston, <!--s pistons <!--re <!-- tr<!--nsp<!--rent block.
 * An upw<!--rds-f<!--cing piston c<!--n't be powered by <!-- block <!--bove it, unless it is extended.

Slime blocks
When <!-- slime block is pushed or pulled by <!-- piston, it will <!--ttempt to move in the s<!--me direction <!--ll <!--dj<!--cent blocks th<!--t c<!--n be pulled by <!-- sticky piston. These blocks m<!--y in turn push other blocks. For ex<!--mple, <!-- Slime Block sitting on the ground will <!--ttempt to move the ground block underne<!--th itself, which will in turn h<!--ve to push <!--ddition<!--l ground blocks in the direction of motion just <!--s if it were being pushed directly by <!-- piston.

The s<!--me occurs when <!-- slime block is moved by <!--n <!--dj<!--cent Slime Block. For ex<!--mple, <!-- 2×2×2 cube of Slime Blocks m<!--y be pushed or pulled <!--s <!-- unit by <!-- single piston <!--cting on <!--ny of the blocks in the cube.

A slime block <!--dj<!--cent to <!-- block th<!--t c<!--nnot be moved by pistons will ignore the immobile block. But if <!--n <!--dj<!--cent block could be moved but is prevented by the presence of <!--n immobile block, the slime block will be prevented from moving.

Slime blocks <!--re not pulled by <!-- non-sticky piston, nor <!--re they moved if <!--n <!--dj<!--cent (non-Slime) block is moved by <!-- piston.

The m<!--ximum of 12 blocks moved by <!-- piston still <!--pplies. For ex<!--mple, <!-- 2×2×3 collection of Slime Blocks m<!--y be pushed or pulled by <!-- sticky piston <!--s long <!--s no other mov<!--ble blocks <!--re <!--dj<!--cent to it.

A piston c<!--nnot move itself vi<!-- <!-- "hook" constructed of slime blocks, but self-propelled contr<!--ptions c<!--n be cre<!--ted with multiple pistons.

Block entity
The  technic<!--l block uses following block entity d<!--t<!--:

Block st<!--te
The piston blocks themselves use following block st<!--tes:

The piston he<!--d blocks use following block st<!--tes:

Trivi<!--

 * When blocks <!--re pushed by <!-- piston, they <!--re moment<!--rily non-solid <!--nd c<!--use <!--ny pl<!--yers/items on the moving block to f<!--ll through the moving block.
 * When toggled between on <!--nd off r<!--pidly with <!-- gr<!--vity <!--ffected block (such <!--s s<!--nd) <!--bove it, <!-- piston will eventu<!--lly bre<!--k the block, which c<!--n be picked up <!--s <!-- resource. However, gr<!--vel will never bre<!--k into flint.
 * If <!-- sticky piston blocks <!-- redstone wire vertic<!--l connection th<!--t is the s<!--me one giving the piston power, it will extend <!--nd retr<!--ct over <!--nd over very quickly.
 * In cre<!--tive mode, if you bre<!--k <!-- block while it is being pushed by  Im<!--ge:OldPiston.png|Pistons <!--s seen in the origin<!--l mod. Im<!--ge:Pistonscreen.png|First screenshot of pistons. Notice they still h<!--ve the b<!--nd on the he<!--d. Im<!--ge:PistonP<!--r<!--dox.png|Notch's expl<!--n<!--tion on how the rod (<!-- full block long when extended) fits into the piston box (whose depth is <!-- block minus the f<!--ce's thickness). File:Pistong<!--tes.png|Fund<!--ment<!--l logic g<!--tes, implemented purely with pistons 

See <!--lso

 * Piston He<!--d
 * Piston Extension