Tutorials/Block update detector

The Block Update Detector, or "BUD switch", is a redstone mechanism that exploits bugs and quirks in the game in order to detect changes in nearby blocks. There are many different designs, but they are all based on the same general idea: a redstone circuit is put in a state that should be unstable, but is stable due to some block within not being notified of changes in the circuit that would otherwise affect it. This lazy block then functions as the "sensor". When an adjacent block changes state in some way, it sends a notification to the sensor block and "wakes it up". The circuit then performs some other action and goes back into the sleeping state.

The method was discovered by Cored. It was later popularized by Etho and further developed by many different players.

What it detects
The BUD switch detects the following events when they happen next to the sensor block:


 * Placement of blocks
 * Destruction of blocks
 * Re-flowing of water or lava
 * Freezing or melting of ice
 * Gravel or sand landing from a fall
 * Movement of blocks by pistons, and the movement of pistons themselves
 * Growth of plants other than trees, including:
 * wheat
 * mushrooms
 * sugar cane
 * flowers
 * tall grass
 * cactus
 * pumpkins, melons, and their stems
 * Leaf growth and decay
 * Growth and death of grass
 * Dirt becoming tilled soil, soil becoming moist, soil reverting to dirt (but this can be more easily detected with a repeater)
 * Fire igniting or burning out
 * Redstone ore starting to glow, or stopping
 * Changes in redstone state or power level, and activation of redstone devices
 * Setting the delay on a repeater
 * Getting in or out of a bed
 * A furnace starting to smelt, or finishing
 * Opening or closing a door, trapdoor, or Fence Gate
 * Inserting or removing Music Discs from a jukebox

Water Based
This BUD switch takes advantage of the fact that water flows toward the nearest hole, but it doesn't notice new holes until it is updated for some other reason. The water source block acts as the sensor. Though charming, this design is dated and is more complicated than newer designs.





Piston Based
There are many BUD switch designs based on pistons. This simple and popular design exploits a bug in which pistons aren't properly notified when powered through the space above them. The piston acts as the sensor.



This design can be extended with multiple sensor blocks. All of the pistons in this design are sensors.



The next design works because pistons can't be pushed by other pistons while extended. And when a piston retracts, it doesn't notify any other pistons that were trying to push it. This design has the advantage of a low profile and also that the quirk it exploits is less likely to be fixed than an outright bug.



Redstone Wire Based
Bugs prevent the power level from correctly propagating through redstone dust when it is receiving power from multiple sources. This can be exploited to make the large BUD switch below. 12 of the redstone dust pieces on the bottom are sensors.



Powered Rail Based
Similar to pistons, powered rails can receive power through the space above them, but don't update properly when powered in this way. Combined with a detector rail and minecart, this can be exploited to make the BUD array below. All of the p-rails in this device act as sensors.



This design can be shortened down to a single p-rail or stretched to as many as 14 p-rails long.



Detector Rail Based
It is possible to create a BUD switch by using detector rails and mine carts. Here's an example.

Variations
Other devices can be built using the same underlying principle as the BUD switch.

T-BUD
By eliminating the reset mechanism of a BUD switch, it becomes a T-BUD or Toggle-BUD. This device has two stable states, which it switches between when it detects a block update next to the piston. This is equivalent to a normal BUD connected to a T Flip-Flop, but much simpler to build. It is useful for tracking the state of blocks like furnaces, grass/dirt, and beds.