Tutorials/Quasi-connectivity

Quasi-connectivity is a property of dispensers, droppers, and pistons that allows them to be activated by anything that would activate the space above them, no matter what is actually in that space. While quasi-connectivity can be difficult to work around sometimes and might seem like a bug, it is officially "works as intended" and does make some builds much easier (for example, piston walls).

"Quasi-connectivity" means the block's activation is quasi-connected to the space above itself ("quasi-" means "seemingly" or "apparently"). Quasi-connectivity can be abbreviated as QC. Other terms used for this property include "connectivity", "piston connectivity" (as the property originated with pistons), "indirect power" (but that term is also sometimes used for activating mechanism components with an adjacent powered block), and "BUD-powered" (although quasi-connectivity and block update detectors are not synonymous).

Rather than repeating "dispensers, droppers, and pistons", this tutorial will discuss only pistons, but everything discussed here applies to dispensers and droppers as well.

Activation by normal methods
Before discussing activation by quasi-connectivity, let's discuss more general methods of activation.

Mechanism components (pistons, doors, redstone lamps, etc.) can be activated, which causes the mechanism component to do something (push a block, open the door, turn on, etc.).

All mechanism components are activated by:


 * an adjacent active power component, including above or below
 * Exceptions: a redstone torch will not activate a mechanism component it is attached to, and a piston is not activated by a power component directly in front of it


 * an adjacent powered opaque block (either strongly-powered or weakly-powered), including above or below
 * a powered redstone comparator or redstone repeater facing the mechanism component
 * powered redstone dust configured to point at the mechanism component (or on top of it, for mechanism components which can support redstone dust, but not beneath it), or adjacent "directionless" redstone dust; a mechanism component is not activated by adjacent powered redstone dust which is not configured to point at it.

Activation by quasi-connectivity
In addition to the normal methods of activation described above, pistons can also be activated if one of the methods above would activate a mechanism component in the block above the piston, even if there is no mechanism component there (even if the block above the component is air or a transparent block).

This method of activation is known as "quasi-connectivity" and is often simplified to saying that the components can be powered by blocks diagonally above or two blocks above, but other methods of such activation exist (described below).

Some methods of activation by quasi-connectivity ("QC activation", for short) will update the piston immediately ("immediate QC activation"), while others will put the piston into a state where it should be activated but doesn't know it yet so it will wait to activate until it is updated ("update QC activation").

Immediate QC activation
Immediate QC activation is the activation of a piston by quasi-connectivity which occurs immediately and doesn't require the piston to be separately updated. This only works with redstone components which can update redstone components


 * Two block by taxicab distance


 * The following redstone components can activate mechanism components one block away, but will update all redstone components up to two blocks away (by taxicab distance):


 * This means that when these redstone components activate the space above a piston (one block away), they will also simultaneously update the piston as well (two blocks away). Redstone comparators and repeaters can only activate mechanism components adjacent to themselves horizontally, but redstone dust and torches can also activate mechanism components below themselves as well (redstone torches can also activate above, but that doesn't help for QC activation).


 * Neighbors of component and of attachment block


 * The following redstone components can activate mechanism components one block away, and will update redstone components adjacent to the block they are attached to (including above and below) as well as redstone components adjacent to themselves:
 * (attaches in any direction)
 * (attaches only downwards)
 * (attaches in any direction)
 * (attaches only downwards)
 * (doesn't actually attach, but updates as if attached to block beneath)
 * (attaches only sideways)
 * (attaches only downwards)


 * This means that when these redstone components are attached to a block beneath them, they can activate the space above a piston (one block away), and will also simultaneously update the piston as well (two blocks away). A trapped chest updates redstone components adjacent to the space beneath it, but doesn't need to be attached to any block (for example, like a pressure plate) — the other examples below use an upside-down slab instead of a block because a powered block would activate the pistons directly. A tripwire hook cannot be attached to a block beneath itself so cannot be used for immediate QC activation.

Other redstone components cannot update redstone components more than one block away so cannot be used for immediate QC activation, only for update QC activation.

Update QC activation
Update QC activation is the act of putting a piston into a state where it should activate by quasi-connectivity, but it hasn't received a redstone update so doesn't know it should activate — it will then wait to activate until it receives an update.


 * Powered block


 * A powered block can activate the space above a piston, from the side or from above, without updating the piston, producing an update QC activation:


 * Neighbors of component and of attachment block


 * The following redstone components can activate mechanism components one block away, and will update redstone components adjacent to the block they are attached to (including above and below) as well as redstone components adjacent to themselves:
 * (attaches in any direction)
 * (attaches only downwards)
 * (attaches in any direction)
 * (attaches only downwards)
 * (doesn't actually attach, but updates as if attached to block beneath)
 * (attaches only sideways)
 * (attaches only downwards)


 * Of these redstone components, only buttons, levers, and tripwire hooks can attach sideways so can be used to produce an update QC activation. The others can be attached to a block beneath them, but then it's the block creating the update QC activation (described above).


 * Immediate neighbors


 * The following redstone components update only their immediate neighbors when they change their state, including above and below:
 * (can also activate tripwire hooks in valid tripwire circuit)
 * and Sticky Piston (from both the piston base and the piston head when extended)
 * (can also activate tripwire hooks in valid tripwire circuit)
 * and Sticky Piston (from both the piston base and the piston head when extended)


 * Of these redstone components, only a daylight sensor can activate the space above a piston and thus can be used to produce an update QC activation.

More activation options
Because a piston can be activated in its own space or the space above it, there are simply more options when figuring out how to …

Distant activation
…

Torch keys
…

Block update detectors
…

A piston activated by quasi-connectivity is sometimes described as "BUD-powered". However, quasi-connectivity and block update detectors (BUDs) are neither synonymous nor even subsets of each other. There are methods of QC activation that do not produce block update detectors (for example, any immediate QC activation method) and there are block update detectors that do not depend on quasi-connectivity (for example, stuck-piston BUDs).

Drawbacks of quasi-connectivity
Quasi-connectivity can make it difficult to do things above pistons compactly without also activating them. For example, you can't run redstone dust over a block on a piston because the dust will affect the piston even if the block is a top slab.

Work-arounds
There are a number of strategies for getting a signal over a piston without affecting the piston:


 * Go up a block and use redstone dust on a top slab:


 * Fastest transmission, but takes up the most vertical space.


 * "Insulate" the space below with a repeater or comparator


 * Adds minimum 1 tick delay to transmission, takes up two spaces above piston.


 * Move a cauldron to power a comparator


 * Adds 2.5 ticks delay to signal rising edge (1.5 ticks for piston extension, 1 tick for comparator) and 1 tick delay to signal falling edge, takes up only one space above piston. The difference in rising and falling edge delay will shorten pulses by 1.5 ticks. If the piston moving the cauldron gets a pulse shorter than 1.5 ticks, it will "drop" the cauldron in the extended position, turning on the output until the next time the input turns on and off again.


 * [[File:Cauldron transmission over piston.png]]