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 a record from a jukebox

Types of BUDs
All types of BUDs rely on the fact that Minecraft engine doesn't update all the blocks all the time.


 * The water BUD uses waterflow mechanics to detect a block update. Water is designed to flow towards any hole in the terrain, and to all of them if they are the same distance away. If a new hole is created, but no blocks directly adjacent to the water source updated, the water flow will not update. After updating, if the hole and the waterflow to it are shut off, and the waterflow is then released, no water will flow, and the hole can be opened for a new update


 * The unpushable block BUD uses the ability of pistons to become unpushable when powered. If a continuos signal is sent to a piston, and it cannot extend on the rising edge of a signal (an extended piston is in the way for example), it will remain retracted, even though it is powered and the second piston is no longer in the way. A nearby block update then lets it extend normally


 * (BUD using pistons erroneously receiving power through the piston head)


 * (BUD using redstone wire not updating power level when already powered)


 * Similar to pistons, powered rails can receive power through the space above them, but don't update themselves when powered in this way. Combined with a detector rail and minecart, this can be exploited to make a BUD switch.