Sticky Piston

Sticky pistons are very similar to their non-sticky counterparts. The chief difference lies in their ability to not just push blocks, but to pull blocks as well.

Pulling Blocks

When a sticky piston is first activated, it pushes up to twelve blocks out, just like a normal piston. When it deactivates, rather than leaving the blocks pushed out like a normal piston would, the sticky piston is able to pull the block it "sticks" to back to the first position it was in, right against the piston head. However, it is only able to pull what it sticks to; it cannot pull all the blocks it pushed, unless said blocks are sticky blocks.

Sticky Blocks

Sticky blocks include slime blocks and honey blocks. They are often used in piston contraptions, such as flying machines. These blocks stick to almost anything they are placed adjacent to, with the main exception being glazed terracotta. Also, slime blocks and honey blocks do not stick to one another, which is a very useful property when building things that require sticky blocks to be next to one another without actually sticking to one another.

If a piston (sticky or not) moves a non-sticky block that is next to a sticky block, the sticky blocks will not move with the non-sticky block. The opposite does work, however; if a piston moves a sticky block that's attached to non-sticky blocks, all the non-sticky blocks immediately next to the sticky block will move with it.

Sticky Pistons and Sticky Blocks

What if we want a sticky piston to push a column of 12 blocks and also pull the entire column back? We can use sticky blocks!

On the left, we have the sticky piston. In the middle are the two sticky block variants: slime blocks and honey blocks. On the right, we have our only strictly non-sticky block that can still be pushed by pistons, glazed terracotta.