02 Continuous Block Updates and Analysis Methods
This section teaches deeper update mechanisms in Minecraft and how to analyze update order.
1 General Block Update Behavior
Blocks always emit updates in the order of NC update first, PP update second. To deeply understand update theory, you must grasp one concept: an update is not a single event, but a "process".
The diagram is as follows:
For example, when Block A emits an NC update, it updates Block B. At this point, B changes state and emits an NC update. The update process is as follows:
The commonly discussed NC update order refers to the sequence in which NC updates are emitted, and PP update order similarly refers to the sequence in which PP updates are emitted. From the diagrams and examples above, we can see that in more complex updates, the PP update order can also be approximately considered as the sequence in which block NC update processes complete.
2 Update Methods in Minecraft
We will use some clear, simple examples to help you gradually understand how this complex update process occurs.
For example, consider the BUD rail chain below. What will happen when A1 is updated?
2.1 Analysis Method for Update Order
To understand updates, we need to first set aside updates
Imagine you are someone with OCD, and right now you are holding many torches in a mine cavern.
Because you have OCD, you will strictly follow these rules:
- You place a torch at every block you walk to
- At each block, you search for available blocks in the order West, East, Down, Up, North, South
- If there is a block you can walk to, enter it immediately
- When there is no path forward, walk back
- When walking back, pick up the torches you placed
- When walking back to a junction, if there are other directions not yet checked, continue checking them
Following the rules above, let's see how you would explore the cavern below:
- Initially, you are at A1, so you place a torch at A1
- You start searching for paths in the order West, East, Down, Up, North, South, and you find a block to the west
- You enter this block (B1), place a torch, continue checking → find a path to the west, enter C1, place a torch, check → path to the west, enter D1, place a torch
- At this point you check in the order West, East, Down, Up, North, South and find no paths, so you pick up the torch and walk back (enter C1)
- You already checked west, so you check East, Down, Up, North, South, find no paths, pick up torch, return to B1
- East, Down, Up have no paths, but when you check North you find a path, so enter (C2), place a torch
- After checking, you find no paths, pick up torch return to B1
- B1 has no more paths after checking, pick up torch return to A1. You start checking other directions.
- There's a path to the east, enter B3 place torch → path to the east, enter C3 place torch
- No more paths, pick up torch return to B3 → no paths, pick up torch return to A1
- Check remaining directions, path to the south, enter B4, place torch
- No paths, pick up torch return to A1
- A1 has no remaining paths, pick up torch, exploration complete
This process of exploring the cavern is the update process, where "placing torches" corresponds to emitting NC updates (pushing onto the stack), and picking up torches corresponds to emitting PP updates (popping from the stack). As for what this "stack" means, you can refer to Appendix - Terminology Explanation → Stack and Call Stack, and this update method is depth-first search (DFS).
Recommended to watch with BiliBili-tanh_Heng: NC Update × Depth-First Search.exe
Let's understand the update process in the example in a more visual way. We can view the pushing of NC updates onto the stack as "progressively going deeper", and the popping of NC updates from the stack, which is PP updates, as "progressively returning". So, let's redraw the diagram above in a more visual way and add some more nodes:
The diagram shows the update chain after A1 emits an update. The top is the north side.
From the diagram, we can clearly see:
NC update order: A1->B1->C1->D1->C2->B3->C3->B4
PP update order: D1->C1->C2->B1->C3->B3->B4->A1
Imagine the update behavior as a point that starts from A1, moves according to a certain update order, and "doesn't turn back until hitting a wall". Then, the movement path of this point forms the arrows shown in the diagram. The process of progressively going deeper is pushing onto stack or NC update, and the process of "turning back" is popping from stack or PP update.
Note that this analysis simplifies PP updates. This is because typically, PP updates do not cause continuous block updates1. To analyze PP updates, the method is similar to NC updates—analyze from the stack perspective.
3 Common Update Order Analysis
3.1 BUD Rail Chain Update Order Analysis
Let's try to analyze update order with a practical example:
When rails change state, they emit NC updates first, then PP updates. The diagram shows a chain of rails in BUD state, with rails 1-5 oriented east-west. Question: After the note block is pressed, what are the NC update and PP update orders for the rail extinguishing?
When the note block is pressed, it emits an NC update. The adjacent rail 1 receives the NC update, changes its own state, emits an NC update, updating rail 2, then 3 and 4. At rail 4, it first updates rail 5 on the east-west side. After rail 5 receives the update, it changes its own state and emits an NC update. There are no subsequent NC updates, so rail 5 then emits a PP update. Return to rail 4, which then updates rails 6 and 7 on the north-south side. Go deeper to rail 6, which emits an NC update; then go deeper to rail 7, which emits an NC update. Rail 7 finishes updating and emits a PP update. Return to rail 6, which emits a PP update. Return to rail 4, which emits a PP update. Then return to rails 3, 2, 1, which emit PP updates.
Therefore,
NC update order is: 1 -> 2 -> 3 -> 4 -> 5 -> 6 -> 7
PP update order is: 5 -> 7 -> 6 -> 4 -> 3 -> 2 -> 1
4 Analysis Considering NC Update Direction*
This section is not commonly used; readers may choose to skip it.
The rail chain direction in the diagram is as marked, with the rail chain oriented north-south. We will use the northernmost rail as an example to analyze its NC update order in different directions.
NC updates are emitted in the directional order of West, East, Down, Up, North, South. When the northernmost rail extinguishes, it first emits west and east updates—nothing happens; then emits down and up updates—nothing happens; then emits a north update—nothing happens; finally emits a south update, updating the south rail, and subsequent updates can be analyzed using the method described above.
If we create a BUD device on the north side of this rail, then this BUD device will be updated first, and then the south rail will undergo continuous NC updates.
And if we consider the order of NC updates to the block above among the NC updates in six directions, then it is from north to south, that is, from near to far.
Let's reconsider the example in 2.3.1:
The note block is at the westernmost end of the 1-5 rail chain. Consider only the NC updates of the 1-5 rail chain.
When the note block is pressed, rail 1 receives the update and extinguishes, first emitting a west update—nothing happens; then emitting an east update, updating rail 2, rail 2 starts updating... After rails 2, 3, 4... finish updating, rail 1's east NC update is complete, and rail 1 continues to update down, up, north, south.
At this point, if we consider the order of NC updates to the block above, it becomes 5, 4, 3, 2, 1, which is from far to near.
Then readers might wonder: since the order of NC updates also needs to consider directionality, what is the point of learning the order of emitting NC updates in 2.3.3?
There are two uses:
- Used to analyze PP updates. Usually when we use rail chains, we use observers to detect, so this is actually to help us analyze PP updates.
- The directionality of NC updates builds on 2.3.3. Only by understanding 2.3.3 can you better understand directionality.
5 Exercise
In the second example above, we did not consider rails 6 and 7. Readers can try to analyze the order of NC updates to the block above for the entire BUD rail chain when considering rails 6 and 7.
Answer: 5 -> 4 -> 6 -> 7 -> 3 -> 2 -> 1
Footnotes
-
Elements like walls and fences change state after receiving PP updates and emit PP updates. These types of blocks may trigger continuous block updates caused by PP updates. However, this is not within the scope of typical analysis. ↩





