Tutorials/Quasi-connectivity

From Minecraft Wiki
Jump to: navigation, search

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 recognized as a feature that "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[edit | edit source]

Activation of Mechanism Components — Mechanism components can be activated by power components (for example, redstone torches), powered blocks, redstone dust, repeaters, and comparators (not shown), but only if configured correctly.

Before discussing activation by quasi-connectivity, let's review 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.). Most Minecrafters would just say they are "powered", but it can be useful to distinguish "powered" vs. "activated".

All mechanism components are activated by:

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
Examples: Redstone torches won't power blocks which aren't above them, but can activate mechanism components in any space next to them. Levers and buttons won't power blocks they aren't attached to, but can activate mechanism components in any space next to them.
  • an adjacent powered opaque block (either strongly-powered or weakly-powered), including above or below
  • 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[edit | edit source]







Quasi-Connectivity — Anything that would activate the lamp will also activate the piston, even if the lamp isn't there.

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 space above the piston, even if there is no mechanism component there (even if the block above the component is air or a transparent block).

Another way to look at it is that pistons have an activation "shape" similar to doors. Anything that activates the top of a door also activates the bottom of the door, and anything that activates the space above a piston also activates the piston.

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





The Update Problem — The lever can activate the piston by quasi-connectivity, but is too far away to update the piston when it changes.

Where quasi-connectivity gets complicated is that it can cause states where a piston should be activated by QC … but doesn't know it. When redstone components change their state, they update other redstone component around them of the change so that they can update their state in response (for example, when a lever turns on, it updates nearby components that they should now be powered or activated). However, redstone components only update other blocks a maximum of two spaces away, but quasi-connectivity can create situations where a piston should be activated from a redstone component three spaces away. For example, a redstone component powering a block next to the space above a piston—the redstone component can activate the piston by QC but is three spaces away so won't provide an update to the piston.

Because of this update problem, 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[edit | edit source]

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 other redstone components two blocks away from them.

Two block by taxicab distance














Two blocks 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).






Immediate QC Activation by Redstone Comparator — The piston will activate immediately when the redstone comparator turns on.







Immediate QC Activation by Redstone Dust — Both pistons will activate immediately when the redstone dust turns on (we're not using a solid block under the dust because its powering would activate the pistons directly).






Immediate QC Activation by Redstone Repeater — The piston will activate immediately when the redstone repeater turns on.






Immediate QC Activation by Redstone Torch — Both pistons will activate immediately when the redstone torch turns on.
Neighbors of component and of attachment block









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:
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.





Immediate QC Activation by Button — Both pistons will activate immediately when the button gets pressed.





Immediate QC Activation by Detector Rail — Both pistons will activate immediately when the detector rail gets activated by a minecart.





Immediate QC Activation by Lever — Both pistons will activate immediately when the lever gets switched on.





Immediate QC Activation by Pressure Plate — Both pistons will activate immediately when the pressure plate gets stepped on. Also works with weighted pressure plates.




Immediate QC Activation by Trapped Chest — Both pistons will activate immediately when the trapped chest gets opened.

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[edit | edit source]

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.

Pistons can be updated in a number of ways:

  • placing or destroying a block next to a piston
  • moving a block next to a piston
  • changing the state of some blocks next to a piston (for example, changing the delay on a repeater)
  • changing some states of some redstone components within two spaces of a piston:
    • changing the state of a redstone torch within two spaces of a piston
    • changing the power level (but not the orientation) of redstone dust within two spaces of a piston
    • changing the power level (but not the delay) of a repeater facing a space next to a piston
    • changing the power level or switching from subtraction mode to comparison mode (but not from comparison mode to subtraction mode) of a comparator facing a space next to a piston
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:



*



Update QC Activation by Button-Powered Block — When either button is pressed, neither piston will activate unless updated before the button pops out.



*





Update QC Activation by Comparator-Powered Block — Neither piston will activate until updated.



*



Update QC Activation by Detector Rail-Powered Block — When the detector rail is activated, neither piston will activate until updated.



*


*




Update QC Activation by Dust-Powered Block — None of the pistons will activate until updated.



*



Update QC Activation by Lever-Powered Block — When either lever is activated, neither piston will activate until updated.


*



Update QC Activation by Pressure Plate-Powered Block — When the pressure plate is activated, neither piston will activate until updated.



*





Update QC Activation by Repeater-Powered Block — Neither piston will activate until updated.


*



Update QC Activation by Trapped Chest-Powered Block — When the trapped chest is activated, neither piston will activate until updated.
A block of redstone
acts like a powered block but can't be turned off, so the only way it can activate or deactivate pistons by quasi-connectivity is if it's moved into or out of a position where it would activate the space above the piston, either from the side or from above.








Update QC Activation by Block of Redstone — Neither of the bottom two pistons will activate until updated.
Neighbors of component and of attachment block









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:
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).





Update QC Activation by Button — When the button is activated, neither piston will activate unless updated before the button pops out.





Update QC Activation by Lever — When the lever is activated, neither piston will activate until updated.








Update QC Activation by Tripwire Hook — When the tripwire hook is activated, neither piston will activate until updated.
Immediate neighbors






Immediate neighbors
The following redstone components update only their immediate neighbors when they change their state, including above and below:
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.




Update QC Activation by Daylight Sensor — When the daylight sensor is activated, neither piston will activate until updated.

The redstone components which cannot be used to put a piston into a QC activation may still be useful for updating them. For example, tripwire will update adjacent blocks when an entity moves into or out of its space, and activator rails and powered rails are useful in that they will update adjacent blocks when activated or deactivated (thus updates can be controlled with redstone without directly powering neighbors).

Benefits of quasi-connectivity[edit | edit source]

Although somewhat difficult to understand, quasi-connectivity does offer many benefits.

More activation options[edit | edit source]

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 activate it.

Remote activation[edit | edit source]

Because a piston can be activated by anything that would activate the space above it, pistons can be activated from two spaces away while most redstone components can only be activated from one space away.

Block update detectors[edit | edit source]

Update QC activation can be used to create a block update detector: a redstone circuit which is triggered by a block update rather than a redstone power input.

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).

Torch keys[edit | edit source]

A torch key is a circuit which can react to the placement of a redstone torch in a particular location, even when the circuit is hidden beneath the ground. They are used to create a hidden method of activating another mechanism (for example, a piston door).

There are two primary methods of designing a torch key. The first is to place a block update detector under the ground so that the placement of a redstone torch will update the BUD -- however, BUDs can also be updated remotely by other redstone components, increasing the chances of discovery. The second method is to use immediate QC activation by placing the torch so that it simply activates a piston by quasi-connectivity.

Floating button[edit | edit source]





















Dropper-Based Floating Button — The dropper and the bottom right hopper each have a single item in them.























Piston-Based Floating Button

Similar to torch keys, but with an obvious input, a floating button is a button which doesn't appear to be connected to anything but can still be used. The strategy is to put a button far enough away that it can activate a piston by update QC activation and then repeatedly update the piston (without activating it) so that it responds quickly to the button turning on and off.

For example, the schematic on the left shows one way to build a floating button. The clock circuit on the left repeatedly powers and unpowers the powered rail next to the piston. When the powered rail changes state it will update the piston without activating it. If the piston is updated while the button has been pushed, it will extend because the button would activate a mechanism in the space above the piston. Similarly, if the piston is updated after the button pops back out, the piston will retract again.

A quieter floating button (right schematic) can be created by using a dropper instead of a piston and using it to push an item into a hopper which pushes it right back (unlike the dropper, the hopper isn't affected by redstone components two blocks above it), but briefly activates a comparator output. This version updates the dropper with a hopper clock, which is a little slower and thus slightly less responsive, but smaller than a torch-repeater clock.

Drawbacks of quasi-connectivity[edit | edit source]

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[edit | edit source]

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.








Redstone dust over piston
"Insulate" the space below with a repeater or comparator
Adds minimum 1 tick delay to transmission, takes up two spaces above piston.












Repeater or comparator over piston 1










Repeater or comparator over piston 2
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.

Cauldron transmission over piston.png