REDSTONEPEDIA › Circuits › Block change detectors (BUD switches)
Block change detector (players call it a BUD)
notices blocks placed, removed, changed, updated · 3 blocks
Fires its output when the block next to it (the cell marked TARGET in the 3D view) is placed, removed, changed or updated with nothing changing, without any redstone signal reaching it: a block update detector (BUD).
notices a pure block update and resets itself; the simpler 2-block BUD switch (a sticky piston and a redstone block) latches until you reset it; for visible block changes a single observer is enough · reacts in 3 ticks (0.15 s) · 1 tick (0.05 s) output pulses · ready again after 6 ticks (0.3 s) · made of redstone block, slime block, sticky piston · fits in 1×4×1
Try it
Press play under the view to watch the demo: a block is placed, removed and changed at the cell marked TARGET, and a block next to it is updated with nothing changing (what only a true BUD notices); the box marked OUT turns red when it fires.
How this design does it: The classic BUD: it sees blocks placed, removed or changed next to the target and pure block updates, which no observer can see: the smallest, 3 blocks.
Build it
Download .litematic Download the design as text
The .litematic opens in Litematica (Minecraft 26.3): every block of the design in one region. The text file is the same build written as plain text, block by block.
Blocks used: redstone block slime block sticky piston
Details: how it works, measurements and properties
In depth
A block change detector (players call it a BUD switch, for block update detector) fires its output when something happens at its target cell, next to it, although nothing there powers it. There are five kinds of change: place (a block placed), remove (removed), state (the block changes state), shape (a change that sends shape updates only, the way crops grow) and update (a block update next to the target with nothing changing). Each change it detects gives exactly one output pulse, and nothing fires in between.
This design detects place, remove, state, update; it does not see shape.
Each detection gives a 1 tick (0.05 s) output pulse, 3 ticks (0.15 s) after the change. It can detect the next change 6 ticks (0.3 s) later (re-arm). Two changes close together jam it: update pair 2 ticks (0.1 s) apart.
The simpler 2-block BUD switch (a sticky piston and a redstone block) latches until you reset it; for visible block changes a single observer is enough.
How to try it
Press play under the view to watch the demo on a loop: a block is placed, removed and changed at the cell tagged TARGET (in cyan), and the badge names each step (the same sequence is drawn as a timing diagram below). The output is tagged OUT: watch it fire on the changes the design detects. Touch any control to stop the demo; drag to look around, pinch or scroll to zoom.
Inputs and output over time
The target cell changes on this schedule (the TARGET row: green = a block placed or changed, red = removed, purple = a shape-only change, blue = a pure update with nothing changing; each phase's name says which change it is). Orange: the output is on. Time runs left to right in game ticks (20 ticks = 1 s).
Swipe the diagram sideways: the whole sequence lasts 14316 ticks (11 min 55.8 s).
Step by step (25 lines)
place 1 t: +3 for 1
remove 1 t: +3 for 1
place 2 t: +3 for 1
remove 2 t: +3 for 1
place 3 t: +3 for 1
remove 3 t: +3 for 1
state 1 t: +3 for 1
state 1b t: +3 for 1
state 2 t: +3 for 1
state 2b t: +3 for 1
state 3 t: +3 for 1
state 3b t: +3 for 1
shape 1 t: no output
shape 1b t: no output
shape 2 t: no output
shape 2b t: no output
shape 3 t: no output
shape 3b t: no output
update 1 t: +3 for 1
update 2 t: +3 for 1
update 3 t: +3 for 1
rearm update: 30 ticks (1.5 s): 2 pulse(s), 20 ticks (1 s): 2 pulse(s), 15 ticks (0.75 s): 2 pulse(s), 10 ticks (0.5 s): 2 pulse(s), 8 ticks (0.4 s): 2 pulse(s), 6 ticks (0.3 s): 2 pulse(s), 4 ticks (0.2 s): 1 pulse(s), 2 ticks (0.1 s): 1 pulse(s) (stuck on)
rearm state: 30 ticks (1.5 s): 2 pulse(s), 20 ticks (1 s): 2 pulse(s), 15 ticks (0.75 s): 2 pulse(s), 10 ticks (0.5 s): 2 pulse(s), 8 ticks (0.4 s): 2 pulse(s), 6 ticks (0.3 s): 2 pulse(s), 4 ticks (0.2 s): 1 pulse(s), 2 ticks (0.1 s): 0 pulse(s) (stuck on)
rearm place: 30 ticks (1.5 s): 3 pulse(s), 20 ticks (1 s): 3 pulse(s), 15 ticks (0.75 s): 3 pulse(s), 10 ticks (0.5 s): 3 pulse(s), 8 ticks (0.4 s): 3 pulse(s), 6 ticks (0.3 s): 3 pulse(s), 4 ticks (0.2 s): 2 pulse(s), 2 ticks (0.1 s): 0 pulse(s) (stuck on)
footprint: 1 target(s) + probe cells {0, 3, 4, 5} of 13Measurements
| metric | value | what it means |
|---|---|---|
| detects | place remove state update | the kinds of change at the target that fire the output (place, remove, state, shape, update) |
| latency | 3 ticks (0.15 s) | game ticks from the change at the target to the output pulse |
| pulse | 1 tick (0.05 s) | the length of each output pulse |
| re-arm | 6 ticks (0.3 s) | the shortest time between two changes that are both detected |
| jams | update pair 2 ticks (0.1 s) apart | changes too close together for it |
| footprint | 5 cells | the cells around the design that must be left alone for it to work |
| tileable | every 2 (0 0 2) |
Notes from its designer
The classic BUD: it sees blocks placed, removed or changed next to the target and pure block updates, which no observer can see: the smallest, 3 blocks. A sticky piston under a slime block and a redstone block is powered without having noticed it (the power reaches it only through the block above it, called quasi-connectivity); the first update makes it notice and lift the redstone block past the output for a moment, then pull it back, armed again. Detail: the landing slime block updates the piston through its head so it retracts, the redstone block landing last, so it re-arms without an update. A change by shape alone sends no block update: not detected; two updates 2 ticks apart jam it.
Properties
| Study | Block change detectors (BUD switches) |
|---|---|
| Kind | Block change detector (players call it a BUD) |
| Blocks placed | 3 (not counting the lamp the view adds) |
| Box | 1×4×1 (4 blocks of space) |
| Made of (the blocks that change state) | oak log, redstone block, slime block, sticky piston |
| Inputs / outputs | changes at its target cell / OUT |
| Design file | bud-slime-qc |
The design file
Design file (20 lines)
# Block change detector: notices blocks placed, removed, changed, updated · 3 blocks # https://vjeux.github.io/redstonepedia/circuits/bud/bud-slime-qc.html name: bud-slime-qc circuit: bud tile: 0 0 2 origin: 0 0 0 port target: 1 0 0 port output: 1 3 0 palette: P minecraft:sticky_piston[extended=false,facing=up] S minecraft:slime_block R minecraft:redstone_block layer 0: P. layer 1: S. layer 2: R. layer 3: ..