Minecraft Wiki
Advertisement
Minecraft Wiki

A piston is a block capable of pushing blocks, players, and mobs when given a redstone pulse.

A sticky piston has the same function as a piston but can also pull the block on its face back when it retracts, unlike the regular piston, which leaves the pushed block in place.

Obtaining[]

Breaking[]

A piston can be broken using any tool with equal efficiency, and always drops itself. Πρότυπο:IN, it is faster to break them with a pickaxe, although the Efficiency enchantment does not increase the mining speed.[Verify] The pickaxe is the preferred tool for the head also, despite it being made almost completely of wood.[1]

Block Piston
Hardness 0.5
Tool
Breaking time[note 1]
Hand 0.75
Wooden 0.4
Stone 0.2
Iron 0.15
Diamond 0.1
Golden 0.1
  1. Times are for unenchanted tools in seconds. For more information, see Haste § Instant mining.

Natural generation[]

Three sticky pistons generate as part of each jungle temple.

Crafting[]

Name Ingredients Crafting recipe
Piston Any Planks +
Cobblestone +
Iron Ingot +
Redstone Dust

Sticky Piston Slimeball +
Piston


Usage[]

See also: Tutorials/Piston uses and Mechanics/Redstone/Piston circuits

Pistons are always placed facing toward the player. When powered, the piston's wooden surface (the "head") starts extending immediately Πρότυπο:In; or either Πρότυπο:Convert later or immediately, depending on how it was powered, Πρότυπο:In. 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 the extending head are pushed with the blocks. If there is no place for the entities to go, the block pushes inside them, suffocating mobs if the block is not transparent when pushed into the eye height of the mob.

When a piston loses power, its head retracts. Like extending, this retraction starts immediately Πρότυπο:In; or, depending on how it was powered, after 1 tick Πρότυπο:In. It finishes retracting Πρότυπο:Convert after it starts. A sticky piston also pulls the block attached to its head, but not any of the other blocks it may have pushed.

Sticky pistons stick to a block only 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. Πρότυπο:IN, pistons finish extending early and start retracting if given a pulse shorter than Πρότυπο:Convert. These shorter pulses cause sticky pistons to "drop" their block, leaving it behind when trying to push it with a short pulse. Also, this causes the block to end up in its final position earlier.

A piston that pushes a slime block bounces any entity that it displaces in the direction the piston is facing. In addition, when a slime block is moved by a piston, any movable blocks adjacent (not diagonally) to the slime block also moves. See the "Slime blocks" section below for more details.

Πρότυπο:IN, blocks that stick to walls (such as levers) can be placed on pistons or sticky pistons.

Limitations[]

Pistons can push most blocks, and sticky pistons can pull most blocks, except those listed in the table below. Sticky pistons simply leave a block behind if it cannot pull it.

Pistons cannot push blocks into the void or beyond the top of the map. 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.

Blocks that cannot be pushed or pulled
Block Effect (Java Edition) Effect (Bedrock Edition)
  • Barrier
  • Beacon
  • Bedrock
  • Command Block
  • Crying Obsidian
  • Enchanting Table
  • End Gateway
  • End Portal
  • End Portal Frame
  • Ender Chest
  • Jigsaw Block
  • Jukebox
  • Lodestone
  • Nether Portal
  • Obsidian
  • Piston (extended)
  • Respawn Anchor
  • Spawner
Cannot be pushed or pulled.
Can be pushed, but not pulled.
Cannot be pushed or pulled. Can be pushed or pulled.
  • Double Chest
Can be pushed or pulled, but separates into two chests.
  • Banner
  • Sign
Breaks when pushed or pulled, turning to drops.
  • Campfire
  • Soul Campfire
Breaks when pushed, turning to drops when applicable. Cannot be pulled.
  • Bamboo
  • Bed
  • Budding Amethystjava 1.17
  • Button
  • Cactus
  • Cake
  • Carved Pumpkin
  • Chorus Flower
  • Chorus Plant
  • Cobweb
  • Cocoa
  • Door
  • Dragon Egg
  • Fire
  • Flower Pot
  • Flower
  • Head
  • Item Frame [note 1]
  • Jack o'Lantern
  • Ladder
  • Lava
  • Leaves
  • Lever
  • Lily Pad
  • Melon
  • Mushroom
  • Nether Wart
  • Painting [note 2]
  • Pressure Plate
  • Pumpkin
  • Redstone Comparator
  • Redstone Dust
  • Redstone Repeater
  • Redstone Torch
  • Scaffolding
  • Shulker Box
  • Snow
  • Sugar Cane
  • Torch
  • Tripwire
  • Tripwire Hook
  • Turtle Egg
  • Vines
  • Water
  • Weighted Pressure Plate
  • Wheat
Breaks when pushed, turning to drops when applicable. Cannot be pulled.
  • Anvil
Cannot be pulled. Pushable only when in falling state. Can be pushed or pulled, but falls if unsupported.
Can be pushed or pulled, but falls if unsupported.

Pistons do not move blocks that are "attached to a block", as they detach and drop as an item.

Exceptions[]
  • Rails: as long as they remain on top of a solid face of a block in their new position, and that block isn't moving at the same time.
    • An exception is when the rail and block supporting it are on two parallel extended pistons at which the rail remains attached. Trying to move both on the same piston using slime blocks does not work, nor does moving them on perpendicular pistons (although the latter temporarily appears to work because of a bug MC-75716).
    • Rails re-orient themselves after being pushed, similar to when placed manually.
  • Carpets

Powering pistons[]

Pistons powered by one line of redstone.

Pistons can be powered in various ways:

  • If a redstone wire is in a line shape toward the piston. Πρότυπο:IN, the wire does 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.
  • Πρότυπο:IN, pistons can be powered by any powered block one block above and to the side, including the "activated space" above it (if a piston, both sticky and normal were to be facing up and a block of redstone placed on its head, it extends when powered, but doesn't retract when the power it receives from the side or back turns off). However, the piston doesn'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 upward-facing piston can't be powered by a block above it, unless it is extended Πρότυπο:IN.
  • Πρότυπο:IN a redstone torch attached to a piston turns off whenever the piston is powered.
  • Pistons can also be powered by observers. This will create a clock if the setup is correct

Slime blocks and honey blocks[]

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

When a slime block is pushed or pulled by a piston, while moving, adjacent blocks also move with the slime block, unless a non-piston movable block stops the blocks that are "grabbed" by the slime blocks. 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 it were being pushed directly by a piston.

Glazed terracotta is an exception; it does not move when adjacent slime blocks are moved.

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 ignores the immobile block. But if an adjacent block could be moved but is prevented by the presence of an immobile block, the slime block is 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. For that, see the article Tutorials/Flying machines.

The same happens for the honey block, but it does not stick to slime blocks.

Technical components[]

Piston Head[]

Piston Head
Piston Head (U) JE3.pngSticky Piston Head (U) JE3.png
Piston Head (U) BE2.pngSticky Piston Head (U) BE2.png
Transparency

Yes

Luminance

No

Blast resistance

?

Tool

Any tool

Renewable

Yes

Stackable

N/A

Flammable

No

Drops

Itself

Name

piston_head

The piston head is a technical block used as the second block of an extended piston. A block state defines whether it is a normal or a sticky piston head. It can be placed using the /setblock command or with the debug stick, though if not part of a proper piston, it disappears after receiving any block tick, such as when a block is placed next to it unless the player uses the debug stick. It drops nothing.

Πρότυπο:IN, the normal and sticky piston heads are distinguished by a block state. Πρότυπο:IN, they used separate block IDs.

Metadata[]

See also: Data values

Πρότυπο:IN, piston heads use the following data values:

Piston/DV2


Block states[]

See also: Block states

Piston/BS3

Moving Piston[]

Moving Piston
Blank.png
Transparency

Yes

Luminance

No

Blast resistance

?

Tool

None

Renewable

Yes

Stackable

N/A

Flammable

No

Drops

Itself

Name

moving_piston

The moving piston is an unobtainable technical block that contains part of a piston head, and/or part of one or two blocks that the piston is carrying into or out of the grid cell (including blocks carried indirectly via slime blocks). Since moving blocks vary in how much of each grid cell they occupy, they can't be stored as normal blocks and are instead stored as block entities. It is overwritten with air, the piston head or the carried block at the end of the piston stroke; but if it is placed through editing and no piston is connected, it remains indefinitely.

It is invisible and non-solid Πρότυπο:In, and cannot be broken without the use of commands or TNT. Although it is non-solid, fluids cannot pass through it. It also prevents players from building at its location. Mobs can see through it, but cannot walk through it. The game treats the block as a stone block when it comes to the player's footstep sounds. It is similar to Invisible Bedrock in properties with the exception that the player can walk through the moving piston but not invisible bedrock.

Block states[]

See also: Block states

Piston/BS2

Block data[]

See also: Block entity format

The moving piston has a block entity associated with it that holds additional data about the block.

  • Block entity data
    • Tags common to all block entities see Template:Nbt inherit/blockentity/template
    •  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. (0=down, 1=up, 2=north, 3=south, 4=west, 5=east)
    •  progress: How far the block has been moved.
    •  extending: 1 or 0 (true/false) - true if the block is being pushed.
    •  source: 1 or 0 (true/false) - true if the block represents the piston head itself, false if it represents a block being pushed.

Sounds[]

Generic[]

Πρότυπο:Sound table/Block/Stone

Unique[]

Java Edition: Πρότυπο:Sound table Πρότυπο:Sound table

Data values[]

ID[]

Πρότυπο:Edition:

Icon Dec Hex Name Block
0 0 (unused)
1 1 (unused)
2 2 (unused)
3 3 (unused)
Icon Dec Hex Name Block
4 4 (unused)

Πρότυπο:Edition:

Icon Dec Hex Name Block
5 5 (unused)
6 6 (unused)
7 7 (unused)
8 8 (unused)
9 9 (unused)
Icon Dec Hex Name Block
10 A (unused)

Metadata[]

See also: Data values

Πρότυπο:IN, pistons use the following data values:

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 states[]

See also: Block states

The piston and sticky_piston blocks use following block states:

Name Value Description
 extendedtrue
false
If true, the piston is extended.
 facingnorth
south
east
west
up
down
The direction the piston head is pointing.
The opposite from the direction the player faces while placing the piston.

Achievements[]

Template:Load achievements: Unknown achievement. Achievement title not found on page Achievements

Video[]

History[]

Πρότυπο:Needs render

java classic
May 21, 2009Notch shows interest in adding blocks that can pull and push other blocks when a pulse from a wire is received; he called them "Pulley1", which would pull a block up, and "Pulley2", which would push a block up.
java beta
June 7, 2011Jeb tweets an image of pistons in development.
Piston (pre-release).png 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.7Piston (U) JE1.png Piston (N) JE1 BE1.png Piston (E) JE1 BE1.png Piston (S) JE1 BE1.png Piston (W) JE1 BE1.png Piston (D) JE1 BE1.png
Sticky Piston (U) JE1.png Piston (N) JE1 BE1.png Sticky Piston (E) JE1 BE1.png Sticky Piston (S) JE1 BE1.png Piston (W) JE1 BE1.png Piston (D) JE1 BE1.png
Headless Piston (U) JE1 BE1.png Headless Piston (N) JE1 BE1.png Headless Piston (E) JE1 BE1.png Headless Piston (S) JE1 BE1.png Headless Piston (W) JE1 BE1.png Headless Piston (D) JE1 BE1.png
Piston Head (U) JE1.png Piston Head (N) JE1.png Piston Head (E) JE1.png Piston Head (S) JE1.png Piston Head (W) JE1.png Piston Head (D) JE1.png
Sticky Piston Head (U) JE1.png Piston Head (N) JE1.png Sticky Piston Head (E) JE1.png Sticky Piston Head (S) JE1.png Piston Head (W) JE1.png Piston Head (D) JE1.png
Added pistons and sticky pistons, alongside associated head and moving blocks.
Hexahedral Piston.png Hexahedral Sticky Piston.png Two blocks with the piston face texture on all sides exist.
Piston normal mod.png Sticky piston mod.png 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, including the idea of Tile Entities to track moving blocks.[3]
1.7_01Sticky pistons no longer stick when they aren't retracting.
1.7.3It is now impossible to place a jack o'lantern onto a sticky piston.Πρότυπο:Check version
java
?The wireframe hitbox of the moving piston block is now halfway aligned.
1.3.112w22aSticky pistons now generate naturally inside jungle temples. In the temples, the pistons are used to form a puzzle mechanism.
12w27aPistons 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. For this change, pistons now take 2 redstone ticks (4 game ticks) to extend, but they still retract instantly.
1.814w17aPiston (U) JE2 BE1.png Piston (D) JE1 BE1.png Sticky Piston (U) JE2 BE1.png Piston (D) JE1 BE1.png Headless Piston (U) JE2.png Headless Piston (D) JE1 BE1.png Piston Head (U) JE2.png Piston Head (D) JE1.png Sticky Piston Head (U) JE2.png Piston Head (D) JE1.png The models with facing up and down has been changed.
Missing Model JE3.png Six-sided piston blocks no longer have a model.
14w18aSlime blocks 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 (mobs, players, items, launched arrows, etc) into the air.
14w19aSlime blocks can now push entities sideways and downward when attached to a piston.
14w25aSince all blocks have been converted to use block states, block/data-value combinations 33/6, 33/7, 29/6 and 29/7 (6-sided pistons) have been removed.
14w32aThe piston extension block no longer has a hitbox.
1.915w49aUnextended pistons, downward-facing pistons, and upward-facing piston extensions are now considered to have a solid top surface, like upside-down stairs and top-half slabs. There also existed a bug where when a piston retracted, it would pull entities through them.
1.11.116w50aAdded a new byte tag source for the piston_extension block entity, which is true if the block represents the piston head itself, and false if it represents a block being pushed. Pistons moving entities to the other side has been fixed.
1.1217w16aSticky pistons do not pull glazed terracotta, and when pistons move slime blocks, they do not move glazed terracotta attached to the side of the slime block.
pre3Slime blocks can no longer pull glazed terracotta attached to any side of a piston, whatsoever.
1.1317w47aThe moving block ID of pistons has been changed from piston_extension to moving_piston.
Prior to The Flattening, these blocks' numeral IDs were 29, 33, 34 and 36.
Pistons now can push note blocks.
pre6Sticky pistons now pull glazed terracotta again.
pre8Sticky pistons no longer pull glazed terracotta.
1.1418w43aPiston (U) JE3.png Sticky Piston (U) JE3.png The texture of pistons has been changed.
18w44aPistons are no longer transparent.
1.1620w06aThe hardness of pistons has been increased from 0.5 to 1.5.
Pickaxes are now more efficient on pistons.
Upcoming Java
1.1720w45aParticles now appear if a block is broken by a piston.
Pocket Edition Alpha
v0.15.0build 1Piston (U) JE2 BE1.png Sticky Piston (U) JE2 BE1.png Added pistons and sticky pistons.
Pistons and sticky pistons have a version exclusive animation and the ability to push block entities.
?Weird Piston.png Pistons and sticky pistons with data values 6 and 7 now have an extremely glitchy appearance. It is not known when this block was introduced, and it was removed some time between 1.10.0 and 1.13.1.
bedrock
1.10.0beta 1.10.0.3Piston (U) BE2.png Sticky Piston (U) BE2.png The texture of pistons has been changed.
1.13.0?Sticky piston heads are now a separate block from normal heads, instead of being differentiated by a block state. The namespaced ID is now stickypistonarmcollision, while the numerical ID is 472.
?The movingblock for pistons can no longer be placed using commands.
Console Edition
TU3CU11.0Patch 1Piston (U) JE1.png Sticky Piston (U) JE1.png Added pistons and sticky pistons.
TU141.04Pistons now take double the amount of time (2 redstone ticks or 4 game ticks) to extend, but they still retract instantly.
1.90Piston (U) BE2.png Sticky Piston (U) BE2.png The texture of pistons has been changed.
3ds
0.1.0Piston (U) JE2 BE1.png Sticky Piston (U) JE2 BE1.png Added pistons and sticky pistons.

Piston head/moving piston "items"[]

java beta
1.7Piston Head (texture) JE1 BE1.png Piston heads have an unobtainable item form corresponding to its block ID, which uses the piston head texture. It can be obtained via inventory editors with numeric item ID 34.
This item has a blank name in the inventory.
Grass Block (top texture) JE3 BE1.png The moving piston has an unobtainable item form corresponding to its block ID, which uses the top texture of the grass block. It can be obtained via inventory editors with numeric item ID 36.
This item has a blank name in the inventory.
If certain colors of cloth were obtained in a world prior to their mass removal in late Infdev, items of these could convert forward into piston head or moving piston items.
1.8Pre-release 2 ;)Added pick block functionality. This will change the currently selected slot to any containing these otherwise-unobtainable items, but will not allow them to be obtained if not already in the hotbar.
java
1.0.0Beta 1.9 Prerelease 2Mousing over a piston head or moving piston in the inventory now causes a game crash.
Beta 1.9 Prerelease 4Mousing over a piston head or moving piston in the inventory now no longer causes a game crash, rendering a tiny empty tooltip box instead.
Beta 1.9 Prerelease 5Grass Block (top texture) JE4 BE2.png The grass block top texture changed in this version, and as a result, this changed the moving piston item form appearance.
1.2.5prePiston heads and moving pistons can now be obtained via Pick Block in creative.
1.3.1?Piston heads and moving pistons can no longer be obtained with pick block in Creative.
12w16aPiston head and moving piston items can now be obtained in singleplayer worlds via the /give command using their respective numeric IDs.
In chat, they are referred to as "null.name".
1.513w02aPiston Head (texture) JE1 BE1.png The item form of the moving piston block has changed to the piston head texture following block and item texture storage reforms.
1.6.113w26aThe names for piston heads and moving pistons as items has been changed to "tile.null.name".
1.7.213w37aThe direct item forms of piston heads and moving pistons have been removed from the game. They can no longer exist as an item in any way, only as placed blocks.
bedrock
?The moving piston item is called tile.pistonArmCollision.name.
?Piston (top texture) JE2 BE2.png The piston head block uses this item texture.
?The moving piston item is called tile.movingBlock.name.
?Info update (texture) BE1.png The moving piston block uses this item texture.
?Sticky piston heads are now a separate block ID from piston heads.
?The item form of the sticky piston head is probably called tile.stickyPistonArmCollision.name.

Issues[]

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

Trivia[]

  • 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.
  • Mobs can spawn inside the piston head block.
  • Carpet can be placed on the piston extension block, and remains even if it is replaced with a solid block using /setblock.
  • Πρότυπο:IN, the piston head is invisible and non-solid when placed with commands. The moving piston cannot be placed with block placement commands in this edition.
  • Piston head extend animations are different Πρότυπο:In from those Πρότυπο:In.
  • The piston heads Πρότυπο:In look slightly different than the ones in all other versions.
  • If a piston is at the top of a world and is facing the top or is at the bottom and is facing the bottom, it cannot extend.[4]
  • The moving_piston is transparent and does not emit light.
    • If a light-emitting block is moved, the player can see it turn dark briefly. If an opaque block is moved, the player may see light passing through it.

Gallery[]

See also[]

Notes[]

  1. Πρότυπο:IN, item frames are technically entities, not blocks. Πρότυπο:IN, they are blocks
  2. Paintings are technically entities, not blocks.

References[]

Advertisement