Tutorials/Block update detector

A Block Update Detector, also popularly known as a BUD switch (term coined by Etho), detects block updates using vanila game mechanics.

The method was discovered by Cored.

Cored's publishing of the discovery

It was later re-introduced by Etho, gained popularity, and many other variations of the BUD have been made

What it detects
A block update detector detects block updates (changes of block ID, data value, or its powered status) at specific coordinates, including:


 * Placement of blocks
 * Destruction of blocks
 * Flowing water or lava
 * Gravel or sand landing in a watched space
 * Growth of wheat, mushrooms, sugar cane and trees
 * The water-based BUD does not detect the growth event in the block the sapling occupies. Using it to detect growing leaves, or any of the log blocks above the sapling works. The piston-based BUDs don't have such a problem
 * Leaf growth and decay
 * Growth of grass
 * Dirt becoming tilled soil, soil becoming moist, soil reverting to dirt
 * This can be done without a BUD, as farmland does not transmit current, while dirt does.
 * Flashing redstone ore
 * Setting the delay on a repeater
 * Redstone power updates
 * This includes not only wires/torches/repeaters changing state, but also blocks updating due to placement of nearby wire, which effectively extends the range of piston-based BUDs to 2 blocks.
 * Player laying down on a bed (an occupied bed block is a different block)
 * Furnace stopping and starting smelting (as a lit furnace is a different block)
 * A piston's head extending/retracting into one of the blocks it detects, or a piston's base activating in any of these blocks

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.