mojira.dev
MC-8328

Powered mechanisms react when receiving a 0 tick redstone signal (existence of micro-pulses in general / inconsistent block update 'algorithm')

When a piston receives a 0 tick redstone signal it pulses instead of staying in the current state. Before 1.3.1 pistons would turn into derp pistons but now they pulse which is equally annoying. It destroys piston based logic (most importantly instant logic).
It is pretty easy to recreate this bug: Just connect a input with a 1 tick delay (repeater) and the inverted input (1 redstone torch = 1 tick delay) to a piston and switch the state of the input.

Update 1.5.1:
For pistons this bug is still not completely fixed because when receiving a 0 tick redstone signal from other pistons (e.g. in instant logic) a piston will still pulse sometimes depending on how the redstone gets updated.

Edit, 16-MAR-2016: It would be really nice if 0-tick/micro pulses (or as Dico has correctly said years ago, non-existing pulses in Minecraft terms) would finally be patched out of the game and if the game was able to handle actual simultaneity. So a proper/intelligent block update algorithm with a consistently synced quantized timeline instead of random Java hashsets and micro time-intervals, which would allow multiple blocks (that interact with eachother) to be updated all in the same gametick into their correct new stages (instead of purely successive block updates which leads to wrong/unintended behaviour).
To replicate it, OR the input of an instant NOT gate (http://youtu.be/vCsJWc7PcT0) and it's output together and attach it to another piston. Toggle the input and the piston will pulse even though it shouldn't. It usually only happens on the falling edge (lever going from on to off) because the block that gets pulled by the piston (and by that allows a new connection to a powersource) gets updated after the line of redstone that is directly connect to the lever, which leads to a combined output that pulses for a split second. It does not affect all positions/placements because of the location dependent nature of block updates in Minecraft.
With the use of instant ALUs, we could build 5Hz CPUs (maybe with small games running on it) and other very cool things but this completely illogical bug doesn't seem to get the attention it needs.

I suggest a server command / gamerule to switch between the current (unintended) behaviour and the fixed/intended behaviour so that contraptions of people using microticks can remain working.
More info in the last few comments.

Linked issues

MC-258563 Pistons don't react to one-tick pulses in certain chunks Resolved MC-175780 Redstone doesn't update texture through 1 tick piston Resolved MC-182923 Visual bug with monostable circuits using target blocks Resolved MC-12678 Rapid Fire Redstone Connecting to Pistons Creates a Graphical Glitch Resolved MC-157901 When you 1 tick a sticky piston pushing a redstone block, and wire redstone coming from the pushed redstone block into a piston psuhing the redstone block to its original place the redstone will not appear powered but it actually is Resolved

Attachments

Comments 67

I've also seen this before, try to put the piston on a different location, its the order minecraft updates.
Also, there is no 0 tick pulses. a 0 tick pulse is no pulse

Hi dico 😛
A 0 tick pulse would be a signal that turns on and off in the same tick.
And as dico said, it depends on if the repeater or the torch updates first.

Very annoying though as it breaks alot of instant piston logic 😞

Yes, I know it's a special case of the old update bug. But since they are currently fixing these bugs (especially those related to pistons) I wanted to make sure that they know about this one.

Confirmed and applies to all powered mechanisms, attached screenshot for reference: flipping the lever up results in the piston "reacting", while flipping the lever down nothing happens.

Affects 13w09b.

57 more comments

This should be fixed, for feature parity. Similarly, quasi-connectivity should be removed from Java or added to Bedrock.

The 0 tick is a parity for java. It’s a weird mechanic that allows a block to be extended and not get pushed back. Who knows of Mojang will fix this in the future or bring this to bedrock.

Can confirm in 1.17.

Can confirm in 1.17.1 Release Candidate 1.

Vincent Wiltschek

(Unassigned)

Confirmed

Platform

Normal

Block states, Redstone

redstone

Snapshot 13w03a, Snapshot 13w04a, Snapshot 13w09a, Snapshot 13w09b, Snapshot 13w10b, ..., 1.17, 1.17.1 Release Candidate 1, 1.17.1, 1.19.3, 1.21.3

Snapshot 13w09c

Retrieved