The Redstone Comparator is a block for use with redstone circuitry. It looks similar to a repeater, except with an additional redstone torch. It has two inputs: one from the back, signal A, and one from the side, signal B. The output, the torch in front, has different behavior depending on the mode of operation.
There are two modes of operation: subtraction, when the torch is lit; and comparison, when the torch is dark. Right clicking the comparator will change modes.
Subtraction mode, when the front torch is lit: When signal A is stronger than signal B, there will be an output proportional to (A-B). Example: When the back has a strength of 15 and the side has a strength of 1, the output is 14.
Comparison mode, when the front torch is dark: When signal A is stronger than signal B, the strength of signal A is passed through. This is similar to a Bipolar Junction Transistor (electronics).
When the rear of the comparator (the side with two redstone torches) is placed against a storage block it emits a signal equal to the percentage the storage block is full (see below).
Crafting
| Ingredients | Input » Output |
|---|---|
| Redstone Torches, | Template:Grid/Crafting Table |
Uses
As a low-delay wire/diode
Like a repeater, the comparator acts as a diode. On its own, a comparator can be used as a diode (with 1 redstone tick delay), providing output of the same strength as its input, but not allowing current to flow against the direction of its arrow. However, unlike a repeater, it will not create an output for a 1-tick pulse.
As a comparator
The comparator's side inputs may be used to set a threshold for the input signal. The input, signal A, will only be output if it is greater than or equal to signal B. Otherwise, there is no output. Signal A is the signal input to the back of the comparator. Signal B is considered the greater of the two side inputs; the weaker side input is ignored. This is similar to a real-life op-amp without a feedback circuit, with signal A to its non-inverting input and signal B to its inverting input.
As a diminisher
If a comparator is right-clicked, its third redstone torch becomes active. In this state, the output will be signal A minus signal B: the input signal will be reduced by the comparison signal. If signal B is greater than or equal to signal A, of course, there will be no output.
As a damper signal
If a line of 3 or more comparators are in a loop and then you increase one leg of the loop to 2 redstone before the next comparator, the signal strength output will then be dampened by 1 every sequence through the loop until the power is dampened entirely.
As a clock
Whenever Signal A is connected with full strength and the output is forwarded to signal B and the comparator toggle is set to on, the device will act as a 1-clock.
As an inventory contents checker
If a comparator is placed next to a container, it will provide an output based on the percentage of used space in the container. This includes: regular/large/trapped Chest, Furnace, Dispenser, Hopper, Brewing Stand, Dropper, Jukebox, End Portal Frame, Cauldron, or a Detector Rail with a Minecart with Chest / Hopper on it. The comparator may be separated from the input by one solid block if the 3 blocks form a line, however redstone current from below the separator may interfere. See below for more info.
An example of what a comparator can do:
Inventory checking output
When a container is empty, the output is off.
When it is not empty, the output signal strength is calculated as follows:
signal strength = truncate(1 + ((sum of all slots' fullnesses) / number of slots in container) * 14)
fullness of a slot = (number of items in slot) / (max stack size for this type of item)
Example: 300 blocks in a dispenser (which has 9 slots), where each block stacks to a maximum of 64, produces output with a signal strength of 8:
1 + ((300 items / 64 items per slot) / 9 slots) * 14 = 8.292, truncated is 8
Note that a non-stackable item is counted as a full slot (1 item in a slot, with a max stack size of 1: 1 / 1 = 1.0), and items which stack up to 16 (such as ender pearls and snowballs and eggs) are similarly considered a full slot at 16.
Specific output signal strength creation
It can be useful in redstone circuits to use containers with comparators to create signals of a specific strength. The number of items required in a container to produce a signal of desired strength is calculated as follows:
items required = max(desired signal strength, roundup((total slots in container * 64 / 14) * (desired signal strength - 1) ) )
Example: To use a furnace (which has 3 slots) to create a strength 9 signal, you need 110 items:
max(8, (3*64/14)*(9-1)) = 109.714, rounded up is 110
Power listings of a furnace
This table shows the number of full slots(e.g. non-stackables like shovels,...) and blocks/items(stackable to 64) needed to get a specific output strength when using a furnace. Minimum and maximum needed items are shown. The optimal column tries to round to the nearest number of full slots between the minimum and maximum, if that isn't possible it optimizes by splitting 64-stacks in half and so on. Basically it's easier to count and needs less clicks to get a number of blocks/items in the furnace.
| Signal strength | At least | At most | Optimal | |||
|---|---|---|---|---|---|---|
| Full slots | Blocks/Items | Full slots | Blocks/Items | Full slots | Blocks/Items | |
| 1 | 0 | 1 | 0 | 13 | 0 | 8 |
| 2 | 0 | 14 | 0 | 27 | 0 | 16 |
| 3 | 0 | 28 | 0 | 41 | 0 | 32 |
| 4 | 0 | 42 | 0 | 54 | 0 | 48 |
| 5 | 0 | 55 | 1 | 4 | 1 | 0 |
| 6 | 1 | 5 | 1 | 18 | 1 | 16 |
| 7 | 1 | 19 | 1 | 31 | 1 | 24 |
| 8 | 1 | 32 | 1 | 45 | 1 | 40 |
| 9 | 1 | 46 | 1 | 59 | 1 | 48 |
| 10 | 1 | 60 | 2 | 9 | 2 | 0 |
| 11* | 2 | 10 | 2 | 22 | 2 | 16 |
| 12* | 2 | 23 | 2 | 36 | 2 | 32 |
| 13* | 2 | 37 | 2 | 50 | 2 | 48 |
| 14* | 2 | 51 | 2 | 63 | 2 | 56 |
| 15* | 3 | 0 | 3 | 0 | 3 | 0 |
*Note that you have to smelt things to get items into the third slot, therefore using chests may be a better option if you want signal strength 11 or higher.
Power listings of a single chest
This table shows the number of full slots(e.g. non-stackables like shovels,...) and blocks/items(stackable to 64) needed to get a specific output strength when using a single chest. Minimum and maximum needed items are shown. The optimal column tries to round to the nearest number of full slots between the minimum and maximum.
| Signal strength | At least | At most | Optimal | ||
|---|---|---|---|---|---|
| Full slots | Blocks/Items | Full slots | Blocks/Items | Full slots | |
| 1 | 0 | 1 | 1 | 59 | 1 |
| 2 | 1 | 60 | 3 | 54 | 2 |
| 3 | 3 | 55 | 5 | 50 | 4 |
| 4 | 5 | 51 | 7 | 45 | 6 |
| 5 | 7 | 46 | 9 | 41 | 8 |
| 6 | 9 | 42 | 11 | 36 | 10 |
| 7 | 11 | 37 | 13 | 31 | 12 |
| 8 | 13 | 32 | 15 | 27 | 14 |
| 9 | 15 | 28 | 17 | 22 | 16 |
| 10 | 17 | 23 | 19 | 18 | 18 |
| 11 | 19 | 19 | 21 | 13 | 20 |
| 12 | 21 | 14 | 23 | 9 | 22 |
| 13 | 23 | 10 | 25 | 4 | 24 |
| 14 | 25 | 5 | 26 | 63 | 26 |
| 15 | 27 | 0 | 27 | 0 | 27 |
By using the /give command, it is possible to get a stack that has more than the normal maximum for an item. For example, beds normally do not stack, however you can use /give <Player> bed 27 to get a stack of 27 beds. If you put the resulting stack of 27 beds in a chest, it will then output a signal strength of 15. Using this technique, and increasing the number to greater than 27, you can create chests (and other containers) which are more than 100% full. While you cannot store a signal with strength larger than 15 in redstone wire, redstone comparators can internally have a strength of more than 15. This internal strength can then be subtracted to reach signal strengths that wire can carry. For example, if you put 29 beds in a chest, set a comparator examining the chest to subtraction mode, and subtract a signal of maximum strength (15), the comparator will output a signal strength of 1.
| Signal strength | At least | At most | Optimal | ||
|---|---|---|---|---|---|
| Full slots | Blocks/Items | Full slots | Blocks/Items | Full slots | |
| 16* | ? | ? | ? | ? | 29 |
| 17* | ? | ? | ? | ? | 31 |
| 18* | ? | ? | ? | ? | 33 |
| 19* | ? | ? | ? | ? | 35 |
| 20* | ? | ? | ? | ? | 37 |
| 21* | ? | ? | ? | ? | 39 |
| n (n>1) | ? | ? | ? | ? | n*2-2-n/15
(round up) |
| 897* | ? | ? | ? | ? | 1728 (max) |
Jukebox record identification
Unlike most containers, the signal output by a jukebox represents the record it contains. It outputs:
| Signal | Record |
|---|---|
| 0 | none |
| 1 | 13 |
| 2 | cat |
| 3 | blocks |
| 4 | chirp |
| 5 | far |
| 6 | mall |
| 7 | mellohi |
| 8 | stal |
| 9 | strad |
| 10 | ward |
| 11 | 11 |
| 12 | wait |
| 13 | unused |
| 14 | unused |
| 15 | unused |
Other Unique Block Outputs
End Portal Frame blocks output a full signal of 15 if they contain an Eye of Ender and zero otherwise.
Cauldrons output different signal strengths depending on how much water is inside. From completely empty to completely full, the output values are 0, 2, 3, and 4.
Command Block Output
Command Blocks output a property called "Success Count", which represents the number of times the most recently-used command of this Command Block succeeded. A "success" is defined by the command's success conditions: if a red error message is returned, the command was not successful.
Most commands can only succeed once per execution, but certain commands (such as those which accept players as arguments) can succeed multiple times, and the comparator will output the number of times it succeeded (of course, this is capped at a full signal of 15, so it will output 15 if there were 15 or more successes). Examples of such commands are /tell and /testfor. Note that /say will never output more than 1, as the command only outputs one message in chat regardless of the number of players who are referenced (their names are merely formatted as a list of the form "name1, name2, and name3").
Note that the comparator will output the Command Block's success count for the last command executed: it will be a constant signal (or lack thereof) and will only update when the command is next executed.
Video
Redstone Comparator/video
History
| r |
|---|
Issues
Issues relating to "Redstone Comparator" are maintained on the bug tracker. Report issues there.
Trivia
- The comparator does not re-strengthen a redstone signal. This means it can not be used for super-long instant circuits.
- If placed every second block between redstone, they can endlessly carry a signal, at same speed than repeaters on first setting, without it losing power strength. Placing a non-transparent block at every corner allows it to bend without losing power. It is also possible to reduce the needed amount of comparators further (and thus improve the signal speed) by facing the comparators into solid blocks behind which redstone is placed
- A redstone comparator outputs a strong signal. This does not mean it resets the signal strength like repeaters, but it means the signal can be picked up through a block without using a repeater (Like a repeater)
- If you join up the redstone torches, an arrow is created which points to the redstone output. This arrow can also be seen as a red triangle on the Comparator, if one looks hard enough.
- In American English (the wiki default), "comparator" is pronounced kuhm-par-uh-ter (kəmˈpɛrətɚ in IPA), with the stress on the second syllable, but kom-puh-rey-ter, with the primary stress on the first syllable and secondary stress on the third, is also used in places.
Gallery
- ComparatorsExplained.PNG
An image depicting two comparators and their inputs and outputs.
- Comporatorssubtract.png
This image explains the way comparator subtraction works.
- Inverteddaylightsensor.png
Using subtraction mode to make a night sensor, i.e., 1 charge = 14 charge
- TrappedChestJingle.png
A jingle that uses comparators is connected to a trapped chest.
- JukeboxLock.png
A comparator used with a jukebox to serve as a lock.
