4

When two pistons face each other and powered simultaneously, which will push?

I am making a contraption that requires that this behavior be consistent, what it depends on is irrelevant as long as it is consistent.

After doing some testing, I came to the conclusion that it kinda depends on orientation and source of power (or the redstone connecting them), but not entirely. It is weird beyond imagination and I cannot find a general rule.

Pistons facing each other

In the image, the left actually always win except if the lever is placed on the rightmost block

4
  • Have you tested this in reverse? What happens?
    – Ben
    Dec 15, 2016 at 14:24
  • I would assume that it is decided in microseconds; whichever one updates first.
    – rivermont
    Dec 15, 2016 at 15:24
  • You're right that the rule is weird beyond imagination: Hash results are designed to be unpredictible. Minecraft's code probably shouldn't use hash sets to determine update order.
    – user170887
    Dec 22, 2016 at 17:48
  • Yeah, as Panda4994 demonstrated, the current behaviour is illogical and there is a more reasonable behaviour. I think at the very least it should never depend on Java's version, which is pure dumbness. If I load a world up, it should always have the same behaviour.
    – Passer By
    Dec 24, 2016 at 11:12

1 Answer 1

6

There is no way to know for sure. This behavior depends on a number of factors, including the device location, rotation, and even your version of Java. This is because Minecraft uses Java's HashSet code to control redstone dust update order. The HashSet uses all properties of an object when deciding the order, and it changes between Java versions.

Technically, your game does follow rules, but if you wanted to predict which piston would get the signal first, you would need to be able to compute multiple hashes, which is infeasible to do by hand, and it would take less time to try it in game.

There is no easy way to predict which one extends first. Placing nearby redstone, moving your pistons, rotating the entire machine, updating Minecraft, switching computers, and changing the redstone input can all affect the way the pistons interact.

This is a bug in Minecraft. Here's a link to the bug in the bug tracker: MC-11193

4
  • 1
    Is there a complete list of those factors? Can you get a stable behaviour if you guarantee them being consistent? Or is there some factor out of our control that influences the outcome? I feel like this answer only amounts to "it's hard" and doesn't answer the question.
    – Deltharis
    Dec 15, 2016 at 18:42
  • Panda4994's video on redstone symmetry gives a lot more info: youtu.be/aRr3NpmQiCg The description of his video has links to the bug tracker for randomness/symmetry issues in Minecraft
    – user170887
    Dec 15, 2016 at 18:46
  • A link to the two issues that video links to and a short description of how they relate to the question here would be an incredibly better answer (and would even contain information of when it becomes outdated - when those issues get resolved).
    – Deltharis
    Dec 15, 2016 at 18:55
  • The video also contains helpful information. I'll add everything covered in the video, and point to the bug tracker posts!
    – user170887
    Dec 15, 2016 at 18:58

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .