Minecraft – Why does parity of redstone wire length affect piston behavior

minecraft-java-editionminecraft-redstone

Consider the following simple redstone contraption:

enter image description here

The following can be reproduced in 1.14.* and 19w45b:

If a button above a blue wool is pressed, the piston would extend, but not retract (unless you send a block update by pushing the reset button). However, if you press a button over an orange wool, then the piston would extend and retract automatically.

Back in 1.5.2, all button press would cause automatic retraction; in 1.10, none would cause automatic retraction.

So my question is, why does the parity (i.e. odd or even) of the redstone wire length affect the behavior of the piston? Shouldn't it be uniform?

Best Answer

Short answer: It is a bug.

The issue was reported with bug id MC-11193 in the year 2013 for the release 1.5 including a video on Youtube. Today the bug is still unsolved.

Mojang does neither supply Minecraft's source code nor discuss bugs with the community in detail, so all we "know" are assumptions from bug reporters or mod developers why Minecraft behaves as it does. They say that the reason lies in the order that the blocks under the redstone dusts are updated. However these days, some mod developers discuss on the official bug site, how to correct the bug within their mods.

From my own experiences I can say:

  • Your blue wool button may or may not work correctly, depending on its position and the direction of the redstone signal in any any Minecraft release.

  • Your orange wool button seems to work correctly since release 1.14.

A simple workaround to avoid these problems: Replace all redstone powered blocks above the piston as well as its adjacent ones with top slabs. This way you force the piston to use quasi-connectivity, which works correctly in this case.