# Extend redstone signal maintaining signal strength

I'm trying to build an archery range with targets of varying distances. When you shoot one of the targets the signal travels through the ground to the very back of the range. At the back there's a high wall with redstone lamps at the top to indicate how accurate your shot is. I am wondering how do I extend the redstone signal to reach the back wall and maintain signal strength.

For example, if I shoot a target which produces a signal strength of 4, I want the signal to travel x distance to then light up 4 redstone lamps.

• Please clarify your specific problem or provide additional details to highlight exactly what you need. As it's currently written, it's hard to tell exactly what you're asking.
– Community Bot
Commented Jan 16, 2022 at 8:14
• Am I correct in saying you want to make the signal travel further but still ensure it is the level that it was immediately after it left the source block? Commented Jan 16, 2022 at 9:39
• @Halesy yes! Tried googling ways of doing so but no luck
– Plee
Commented Jan 16, 2022 at 23:37

You can use repeaters and comparators to change the strength of a signal (reset to 15 and subtract respectively).

Signal going in the back of the repeater is increased to level 15 strength on the wire piece in front. You could put repeaters branching of a trail of wire from the target, each on activating 1 lamp. (This may require spacing the lamps.)

Comparators output the same signal strength, that they received with a two tick (1 redstone tick) delay. To extend the signal you can could just build a long chain of comparators. But this will create a long time of delay, depending on the distance the signal has to travel.

Alternatively you can save on comparators and use a chain of comparator, solid block, redstone dust and a solid block again. Repeat this as many times as you need.

You will still have some delay, but only a quarter of that of the first method.

Comparators maintain signal strength. You can use a comparator line as IceFreez3r suggested. The comparator line can be made instant using some tricks:

When a comparator is updated (for example when you power it), it calculates the signal strength it should output. If this calculated signal strength differs from the one it is outputting currently, it will schedule a so called tile tick.

This tile tick is simply a way the comparator can ask the game to execute some behaviour later, in this case 2 game ticks (1 redstone tick) later.

When the tile tick is processed, that is, after the 2 game ticks have passed, the comparator calculates the output signal strength again based on the current inputs and finally outputs it. This signal strength can be different from the one the comparator calculated before scheduling the tile tick and, in fact, it often is.

This the reason comparators do not react to signals from observers or 0-tick generators. By the time the comparator actually tries to change the output the signal is not there.

However we can use this to our advantage: If we update the comparators in our line in order using, for example, observers, and then supply the signal we want to transmit we can get an instant comparator line. Here the output that is calculated at first differs from the one that is finally used too.

So normally you would have first comparator register your signal, wait 2 game ticks, send it to the next comparator and so on, having each comparator add 2 game ticks to the delay. In the instant comparator setup, all comparators are updated in the first tick, then all wait 2 game ticks, and then they pass the signal throughout the third tick. (The comparators all fire in the same game tick, but nevertheless in order.)

Alternatively, you could, of course, also convert the signal to binary as others have suggested.

you could try converting signal strength to binary and converting it back to signal strength