Piston

From Minecraft Wiki
(Redirected from Piston Head)
Jump to: navigation, search
Piston
Piston.gif
Sticky Piston.gif


Transparency

Yes

Luminance

None

Blast resistance

2.5

Tool

Any tool

Renewable

Yes

Stackable

Yes (64)

Flammable

No

Drops

Itself

Data values

See Data values

Duncan Geere Mojang avatar.png Pistons push blocks, up to twelve of them in a row, when given a redstone signal. Flip the power on and the piston's head will extend outwards one block for a fraction of a second. Any entities in the path of the head will be pushed along with it, including the player, and if there's a slime block in front of the head then they'll be sproinged off instead. SPROINGGG!
Duncan Geere[1]

A Piston is a block capable of pushing movable blocks when given a redstone pulse.
A Sticky Piston can both push and pull movable blocks when given a redstone pulse.

Obtaining[edit]

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

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

Natural generation[edit]

Three sticky pistons generate as part of each jungle temple.

Crafting[edit]

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


























Sticky Piston Slimeball +
Piston












Usage[edit]

See also: Piston uses and Piston circuits

Pistons are always placed facing towards the player. When powered, the piston's wooden surface (head) will start extending immediately, and push at most 12 blocks. The extension takes two gameticks, or 1 redstone ticks (0.1 seconds, barring lag). The piston makes a sound that can be heard within a 31x31x31 cube centered on the activating piston. 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, if pushed into the eye height of the mob.

When a piston loses power, it will retract by simply pulling its head back. This retraction starts immediately, but lasts for 2 gameticks or 1 redstone ticks (0.1 seconds barring lag). Sticky pistons will also pull the block in front of their 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. They also don't pull blocks 1 redstone tick (0.1 seconds, barring lag) later after pushing them. This can be done by giving the piston a short pulse, specifically shorter than or equal to two gameticks, or one redstone ticks.[Java Edition only]

A piston that pushes a slime block will bounce 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 will also move. See the "usage" section below for more details.

Blocks that stick to walls (such as levers) can be placed on pistons or sticky pistons.[Bedrock Edition only]

Limitations[edit]

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

Pistons will not push blocks into the void or beyond the top of the map. They also cannot push more than 12 blocks. In these situations, the piston simply will not extend.

Blocks that cannot be pushed or pulled
Block Effect (Java Edition) Effect (Bedrock Edition) Effect (Console Edition)
Cannot be pushed or pulled.
Can be pushed, but not pulled.
Cannot be pushed or pulled. Can be pushed or pulled. Can be pushed or pulled.
Can be pushed, but not pulled.
Can be pushed or pulled, but separates the two chests. Cannot be pushed or pulled.
Breaks when pushed or pulled, turning to drops
Breaks when pushed, turning to drops when applicable. Can not be pulled.
Can be pushed or pulled as normal, but will fall rather than remain attached to sticky pistons.

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

Exceptions[edit]

  • 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.
    • 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 will temporarily appear to work because of a bug MC-75716).
    • Rails will re-orient themselves after being pushed similar to when placed manually.

  • Carpet

Powering pistons[edit]

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.[Java Edition only]
  • 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, including the "activated space" above it (if a piston, both sticky and normal were to be facing up and a Block of redstone on its head, it will extend when powered, but won't retract when the power it receives from the side or back turns off). 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]


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 will also refuse to move.

When a slime block is pushed or pulled by a piston, while moving, adjacent blocks will 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 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.

Glazed terracotta is an exception; it will 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 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. For that, see the article Tutorials/Flying technologies.

Technical components[edit]

Piston head[edit]

Piston Head
Piston Head.png
Sticky Piston Head.png
Type

Technical, Solid

Physics

No

Transparency

Yes

Luminance

No

Blast resistance

2.5

Tool

Any tool

Drops

None

Data value

dec: 34 hex: 22 bin: 100010

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 only be placed using the /setblock command, though if not part of a proper piston, it will disappear after receiving any block tick, such as when a block is placed next to it.

Block state[edit]

See also: Block states

The minecraft:piston_head block uses following block states:

Name Value Description

 facing
north
south
east
west
up
down
The direction the piston head is pointing.

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

 type
normal
sticky
The type of piston head.

Piston extension[edit]

Piston Extension
Type

Technical

Physics

No

Transparency

Yes

Luminance

No

Blast resistance

0

Tool

None

Block Entity ID

piston

Data values

See Data values

Name

piston_extension[until 1.13]
moving_piston[upcoming 1.13]

The piston extension[until 1.13] (a.k.a. "Moving Piston"[upcoming 1.13], "Block Being Moved By Piston" or simply "block 36") 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 by a command and no piston is connected, it will remain indefinitely.

It is invisible, non-solid, and cannot be broken without the use of commands or TNT. It decreases the light level of light passing through by 1. Although it is non-solid, fluids cannot pass through it. It also prevents players from building at its location. The game treats the block as a stone block when it comes to the player's footstep sounds, and as a Missing Texture block when it comes to the breaking animation.

Block entity[edit]

See also: Block entity format

The minecraft:piston_extension technical block has a block entity associated with it that holds additional data about the block. The block's block entity ID is piston.


  • Block entity data
    • Tags common to all block entities see Template:Nbt inherit/blockentity/template

    •  blockId:
      [until 1.13] Block IDs of the block being moved.

    •  blockData:
      [until 1.13] Data value of the block being moved.

    •  blockState:[upcoming 1.13] The moving block represented by this block entity.

      •  Name: The name ID of the block.

      •  Properties: Optional. The block states of the block, listed as key-value pairs under this tag.

    •  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.

Block state[edit]

See also: Block states

The minecraft:piston_extension technical block uses following block states:

Name Value Description

 extended[until 1.13]
true
false
If true, the block is being pushed by the piston.

 facing
north
south
east
west
up
down
The direction the block is being pushed by the piston.

 type[upcoming 1.13]
normal
sticky
What piston base this has.

Data values[edit]

ID[edit]

Java Edition:

Block ID Name Numerical ID

Piston
piston 33[until 1.13]

Sticky Piston
sticky_piston 29[until 1.13]

Piston Head
piston_head 34[until 1.13]
Piston Extension piston_extension[until 1.13]

moving_piston[upcoming 1.13]

36[until 1.13]

Bedrock Edition:

Block ID Name Numerical ID

Piston
piston 33

Sticky Piston
sticky_piston 29

Piston Head
pistonarmcollision 34
Piston Extension movingblock 250

Block data[edit]

See also: 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.

[until 1.13]

Block state[edit]

See also: Block states

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

Name Value Description

 extended
true
false
If true, the piston is extended.

 facing
north
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[edit]

Icon Achievement In-game description Actual requirements (if different) Availability Xbox points earned Trophy type (PS)
Xbox PS Bedrock Nintendo

Inception Push a piston with a piston, then pull the original piston with that piston. No No Yes New 3DS 20G

Video[edit]

History[edit]

Painting.png
This page would benefit from the addition of one or more images.
Please remove this notice once you've added suitable images to the article. The specific instructions are: Reconstruct texture file for old pistons with band and then render
Classic
May 21, 2009 Notch 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.
Beta
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, including the idea of Tile Entities to track moving blocks.[3]
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 Java edition 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.
Inventory sprites for blocks were flipped from left to right, changing

to

.
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 The item forms of block 34 (Piston Head) and block 36 (Piston Extension) are removed from the game. They can no longer exist in inventories, only as blocks in the world.
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.
14w32a The piston extension block no longer has a hitbox.
1.9 15w49a Unextended pistons, downwards-facing pistons, and upwards-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, called translocation.
1.11.1 16w50a Added 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. Translocation was removed.
1.12 17w16a Sticky pistons do not pull glazed terracotta, and when pistons move slime blocks, they will not move glazed terracotta attached to the side of the slime block.
pre3 Slime blocks can no longer pull glazed terracotta attached to any side whatsoever.
Upcoming Java Edition
1.13 17w47a The moving block ID has been changed from piston_extension to moving_piston.
Prior to The Flattening, these blocks' numeral IDs were 29, 33, 34 and 36.
pre6 Sticky pistons now pull glazed terracotta again.[verify]
pre8 Sticky pistons now no longer pull glazed terracotta.
Pocket Edition Alpha
0.15.0 build 1 Added pistons and sticky pistons with a version exclusive animation and the ability to push block entities.
Legacy Console Edition
TU3 CU1 1.0 Patch 1 Patch s1 Added pistons and sticky pistons.
TU14 1.04 Pistons now take double the amount of time (2 redstone ticks or 4 game ticks) to extend, but they still retract instantly.

Issues[edit]

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

Trivia[edit]

  • 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.
  • Mobs can spawn inside the piston head block.
  • Carpet can be placed on the piston extension block, and will remain even if is replaced with a solid block using /setblock.

Gallery[edit]

See also[edit]

References[edit]

Notes[edit]

  1. Paintings are not considered blocks in Java or Bedrock Edition.
Promotional Content