2

Currently I have something like this set up: B-R-R-R-C-R-R-R-C-R-R-R-C (etc...)

B stands for a redstone block, R stands for a repeater, and C stands for a command block.

I have a line like this (curling back once in a while, but not a loop) up to a minute -- but this method uses 120 repeaters at full delay. What circuit could I use to create something that behaves AS CLOSE AS POSSIBLE to what I have now, but taking up less space? Specifically:

1) Removing the redstone block power source won't stop the already-sent signal 2) Must have room for gradual command blocks (so at 20 seconds I could have a command block, at 30, at 35, etc...)

For specifics, this is my Deathmatch system in a vanilla Survival Games map. When the minute is over, it reaches command blocks which teleport everyone to one location. The admin in the match uses a command button in a /tellraw command to start the countdown for Deathmatch when (s)he deems it appropriate - this command sets a redstone block as the input. After it is placed, it remains placed for the rest of the game -- but I want to be able to destroy it while not stopping the minute countdown for debugging purposes. And, as it's a countdown, it needs to be able to send out a signal every second to command blocks for stuff like "15 more seconds until Deathmatch!"

Summary: I am looking for a delay as opposed to a timer. I do not want a signal that loops and am not looking for a necessarily long delay, I just want an accurate delay that is more efficient than using repeaters AND can support gradual output (IE at half delay an output, at three quarters, etc...) Hooking a timer up to an AND gate with the input won't work as far as I know (if you know a way please tell) because if the timer was half-passed when the input was given, then the "delay" would be half the intended time. And removing the input signal should NOT stop the delay from continuing. It also needs to be silent, as it is close to the surface, and non-laggy (no super-quick repeater loops).

I am asking for a very specific redstone circuit, I know.

  • Do I get to refuke why it's not a duplicate, or let moderators decide by themselves? – James Of Da Peach Feb 9 '14 at 14:53
  • @JamesOfDaPeach Simply explain your thinking :) no one knows what you're looking for better than you do. – badp Feb 9 '14 at 14:55
  • 2
    Ok. Well, I have reasons for why the answers to that question aren't suitable -- and that question was asked a year ago (hopefully there are better methods now). The key in my question is that I can have gradual command blocks throughout the time, where his question only has 1 destination command block. – James Of Da Peach Feb 9 '14 at 14:59
  • 1
    @JamesOfDaPeach Fredley's solution can very easily be turned into a toggled timer (i.e. monostable circuit). Much more easily than the solution I presented. Use some imagination. If you don't understand how to get Fredley's solution to work for you, ask that! Don't get angry at me after I've pointed you at a solution. Ask me how to use that solution if you don't already understand it for yourself. – MBraedley Feb 9 '14 at 15:29
  • 1
    #MBraedley I'm not angry at anyone, I'm just frustrated that my question got misinterpretted. – James Of Da Peach Feb 9 '14 at 18:50
2

If you're willing to fill this up with arrow from time to time, you could use an arrow that shoots into a wooden button. The arrow will activate the button and despawn after exactly 1 minute, unpressing the button again:

enter image description here

You could also use a bunch of T-FlipFlops which toggle on/off every time they get a signal. If you put them in a row, it will take much longer until the last one is toggled. (This is a binary counter) In fact, any additional T-FlipFlop will need double the time until it's re-activated. enter image description here

  • For the first one: I'd still need bunches of repeaters for the gradual outputs, but it's good to know the despawn time for an arrow (thx). – James Of Da Peach Feb 14 '14 at 3:21
  • Since you're already using command blocks, you can have one run periodically (have it be triggered by a daylight sensor maybe) to spawn a chest full of arrows above a hopper above that dispenser. Then you don't have to manually refill it. – Cody Apr 17 '17 at 22:42
2

As it turns out, the circuit you pretty much can plug a hopper timer into any place you have looping repeaters. It's a very versatile circuit. In this case, you've got a series of command blocks that pulse every given amount of time. If that given amount of time is constant, you can use a hopper timer set to the appropriate delay (it might take some experimentation, but I found that 7 items we pretty close to 2.5 seconds on, 2.5 seconds off).

And you can turn off this type of timer too by forcibly locking one of the hoppers, like so:

Illustration of locking a hopper timer in the "off" state

From there, (I assume this is your test world that MBraedley posted in the comments), you've got some good ideas on how to use a clock like this to drive the circuit (I honestly would not have thought of doing it that way). For the sake of people who have this type of question in the future, I'm going to go ahead and break that part down.

Series of hoppers taking a continuous clock and turning it into a sequentially changing output

Essentially, this circuit takes the clock provided by the timer of your choice (in this case, a hopper timer), and sends it sequentially down the line by locking and unlocking a series of hoppers. When the timer starts, an item is dropped into the hopper system, and the first command block triggers. This item goes down the line until it reaches the end. When it reaches the end, it resets a RS-NOR latch that locks the hopper timer.

0

I made a scoreboard

/scoreboard objectives add timer dummy

Then I summon an armor stand that count the seconds,

/summon armor_stand x y z {PersistenceRequired:1b,CustomName:timer}

Then a set up a 1 second delay clock,

B*-R-R-D#
D*-D-R-C#

B* stand next to D*, then C# next to D#

Where;

B = solid, redstone-passable block, C = command block with, /scoreboard players remove @e[type=armor_stand,name=timer,score_timer_min=0] timer 1, D = redstone dust

When actually its 15 seconds left, Set up a Repeat, Always Active command block with:

/testfor @e[name=timer,type=armor_stand,score_timer_min=15,score_timer=15]

It connect with a Chain,(Conditional?),Always active command block with the same direction,or a comparactor then a Impulse, Need Redstone command block with:

/tellraw @a {"text":"You have 15 seconds left!","color":"dark_red"}

And when the times up, Set up a Repeat, Always Active command block with :

/testfor @e[name=timer,type=armor_stand,score_timer_min=0,score_timer=0]

And then the same procedure(Chain command block or Impulse command block) with:

/tp @a x y z

Also I suggest putting up /spreadplayers but I'm not sure how.

To start the timer:

/scoreboard players set @e[name=timer,type=armors_stand] timer 120

where 120 means 120 seconds.

Tested this for 1.11 Minecraft version.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.