From Minecraft Wiki
Jump to: navigation, search
Sticky Piston.gif
PistonSticky Piston

Solid Block







Blast resistance





Any tool




Yes (64)



First appearances

See History



Data values

See Data values

Pistons are blocks capable of pushing most blocks, depending on the direction they are facing.

Sticky Pistons are similar to pistons; the difference is that they can pull blocks as well as push them.

Obtaining[edit | edit source]

Pistons can be broken using any tool with equal efficiency, and will always drop itself.

Hardness 0.5
Breaking time[note 1]
Hand 0.75
  1. Times are for unenchanted tools in seconds.

Natural generation[edit | edit source]

Three sticky pistons generate as part of each jungle temple.

Crafting[edit | edit source]

Name Ingredients Crafting recipe


Cobblestone +
Any Wood Planks +
Iron Ingot +

Oak Wood PlanksSpruce Wood PlanksBirch Wood PlanksJungle Wood PlanksAcacia Wood PlanksDark Oak Wood Planks Oak Wood PlanksSpruce Wood PlanksBirch Wood PlanksJungle Wood PlanksAcacia Wood PlanksDark Oak Wood Planks Oak Wood PlanksSpruce Wood PlanksBirch Wood PlanksJungle Wood PlanksAcacia Wood PlanksDark Oak Wood Planks Grid layout Arrow (small).png Piston
Cobblestone Iron Ingot Cobblestone
Cobblestone Redstone Cobblestone

Sticky Piston

Piston +

Grid layout Arrow (small).png Sticky Piston



Usage[edit | edit source]

See also: Piston uses and Piston circuits

Pistons are always placed facing towards the player. When powered, the piston's wooden surface (head) extends outward by one block, which can be heard within a 31x31x31 cube centered on the activating piston, the piston can push up to 12 blocks in a line with it. Any entities in the path of the extending head will be pushed with the blocks. If there is no place for the entities to go, the block will push inside the mob, suffocating it if the block is not transparent.

When a piston loses power, it will retract by simply pulling its head back, unless it is a sticky piston, in which case it will also pull the block in front of the head.

Sticky pistons only stick to a block when retracting, so a block next to the piston head can be pushed aside by another piston and sticky pistons cannot hold falling blocks horizontally against gravity.

A piston that pushes a slime block will bounce any entity that it displaces in the direction the piston is facing.

Pushing blocks[edit | edit source]

Pistons will not push blocks into the Void or the top of the map. They also cannot push more than 12 blocks. In each case, the piston simply will not extend.

Pistons can push most blocks, exceptions are listed below. Sticky pistons cannot pull any of the blocks listed below, they will simply be left behind when the sticky piston retracts.

Block Effect
Piston will not extend.
Piston will not extend because they contain block entities.
Turned into drops when pushed.

Will turn into slices if pushed by a piston.

Will turn into string if pushed by a piston.
Will break when the piston head extends into the block

Pistons also will not move blocks that are "attached to a block", as they will be detached and drop as an item. Exceptions include:

  • Trapdoor
    : as long as their hinged side remains attached to a solid block in their new position.

  • Any rails
    : as long as they remain on top of a solid block in their new position, and that block isn't moving at the same time.[1] Rails will re-orient themselves after being pushed just as they do when placed manually.

  • Carpet

Powering pistons[edit | edit source]

Pistons powered by one line of redstone.

Pistons can be powered in various ways:

  • If a redstone wire is in a line shape towards the piston, as the wire will not automatically curve to the piston.
  • Pistons can be powered by a powered block directly adjacent to them, whether it is strongly powered or weakly powered.
  • Pistons can be powered by a redstone torch directly adjacent to them.
  • Pistons can be powered by any powered block one block above and to the side. However, the piston won't extend or retract until it receives a block update. This property is called quasi-connectivity and can be used to make a BUD switch.
  • A repeater cannot transfer power through a piston, as pistons are a transparent block.
  • An upwards-facing piston can't be powered by a block above it, unless it is extended.

Slime blocks[edit | edit source]



Piston A may extend because the slime block ignores the adjacent furnace. Piston B may not extend because the diamond block is prevented from moving by the furnace and so the slime block will also refuse to move.

When a slime block is pushed or pulled by a piston, it will attempt to move in the same direction all adjacent blocks that can be pulled by a sticky piston. These blocks may in turn push other blocks. For example, a Slime Block sitting on the ground will attempt to move the ground block underneath itself, which will in turn have to push additional ground blocks in the direction of motion just as if it were being pushed directly by a piston.

The same occurs when a slime block is moved by an adjacent Slime Block. For example, a 2×2×2 cube of Slime Blocks may be pushed or pulled as a unit by a single piston acting on any of the blocks in the cube.

A slime block adjacent to a block that cannot be moved by pistons will ignore the immobile block. But if an adjacent block could be moved but is prevented by the presence of an immobile block, the slime block will be prevented from moving.

Slime blocks are not pulled by a non-sticky piston, nor are they moved if an adjacent (non-Slime) block is moved by a piston.

The maximum of 12 blocks moved by a piston still applies. For example, a 2×2×3 collection of Slime Blocks may be pushed or pulled by a sticky piston as long as no other movable blocks are adjacent to it.

A piston cannot move itself via a "hook" constructed of slime blocks, but self-propelled contraptions can be created with multiple pistons.

Data values[edit | edit source]

ID[edit | edit source]

Block ID Name Numerical ID
Piston piston 33
Sticky Piston sticky_piston 29
Piston Head piston_head 34
Piston Extension piston_extension 36

Block data[edit | edit source]

Bits Values
0x0 facing down
0x1 facing up
0x2 facing north
0x3 facing south
0x4 facing west
0x5 facing east
0x6, 0x7 6-sided piston
0x8 (bit flag) When 1, the piston is extended.

Block entity[edit | edit source]

The minecraft:piston_extension technical block uses following block entity data:

  • Block entity data

    •  id: Piston

    •  x: X coordinate of the block entity.

    •  y: Y coordinate of the block entity.

    •  z: Z coordinate of the block entity.

    •  blockId: Block IDs of the block being moved.

    •  blockData: Data value of the block being moved.

    •  facing: Direction in which the block will be pushed.

    •  progress: How far the block has been moved.

    •  extending: 1 or 0 (true/false) - true if the block is being pushed.

Block state[edit | edit source]

The minecraft:piston and minecraft:sticky_piston blocks use following block states:

Name Value Description

If true, the piston is extended.

The direction the piston head is pointing.
The opposite from the direction the player faces while placing the piston.

The minecraft:piston_head technical block uses following block states:

Name Value Description

The direction the piston head is pointing.

If true, the piston arm is shorter than usual, by 4 pixels.

The type of piston head.

The minecraft:piston_extension technical block uses following block states:

Name Value Description

If true, the block is being pushed by the piston.

The direction the block is being pushed by the piston.

Video[edit | edit source]

History[edit | edit source]

1.7 Added pistons.
The original piston was a mod posted on the Minecraft Forums by Hippoplatimus.[2] The code for that version was given to Jeb, who then worked on implementing pistons into vanilla Minecraft.
  • Hippoplatimus is in the game's credits under "Additional Programming", like other modders whose work made it into vanilla Minecraft.
Another user, DiEvAl, privately submitted code as well,[3] including the idea of Tile Entities to track moving blocks.[4]
However, due to Jeb's work on the Pocket Edition, pistons were delayed, and were not released for the Beta 1.5 update nor for the Beta 1.6 update. Finally, when the Pocket Edition was good enough to show at E3, Jeb went back to work on the PC version of Minecraft and pistons were finally added in version Beta 1.7, including Sticky Pistons.
The piston texture as screen-captured while in development had iron bands running over the head. The bands were removed for the release, leaving only iron brackets around the corners and edges.
1.7_01 Sticky pistons do not stick when they aren't retracting.
1.7.3 It is now impossible to place a jack o'lantern onto a sticky piston.
Official release
1.3.1 12w22a Sticky pistons generate naturally inside jungle temples. In the temples the pistons are used to form a puzzle mechanism.
12w27a Updated Pistons to make them less error-prone, thus they also appear to update slower. This also altered the way Pistons work, so you might have to adapt your repeater delays and similar. For this change, pistons now take 2 redstone ticks (4 game ticks) to extend, but they still retract instantly.
1.7.2 13w37a Block 34 (Piston Head) and Block 36 (Piston Extension) are removed from the /give command.
1.8 14w17a When all blocks were converted to use block states, block/data-value combinations 33/6, 33/7, 29/6 and 29/7 (6-sided pistons) were removed.
14w18a Slime blocks will now push and pull blocks adjacent when connected to sticky pistons.
Extending a piston with a slime block on top of it will launch the entity (mobs, players, items, launched arrows etc) into the air.
14w19a Slime blocks can now push entities sideways and downwards when attached to a piston.
Console Edition
TU3 Added pistons and sticky pistons.
TU14 Pistons now take double the amount of time (2 redstone ticks or 4 game ticks) to extend, but they still retract instantly.

Issues[edit | edit source]

Issues relating to "Piston" are maintained on the issue tracker. Report issues there.

Trivia[edit | edit source]

  • When blocks are pushed by a piston, they are momentarily non-solid and cause other kinds of entities on the moving block to fall through it. This effect lasts longer for the slime block than other blocks; entities can fall through one in the time it takes a piston to extend.
  • When toggled between on and off rapidly with a gravity affected block (such as sand) above it, a piston will eventually break the block, which can be picked up as a resource. However, gravel will never break into flint.

Gallery[edit | edit source]

See also[edit | edit source]

References[edit | edit source]

  1. An exception is that when the rail and the block supporting it are on two parallel pistons, and those pistons are extending, the rail remains attached. Trying to move both on the same piston using slime blocks doesn't work, nor does moving them on perpendicular pistons (although the latter will temporarily appear to have worked because of bug MC-75716).