Need help on how to make a non-spammable activation block?

    Joined
    Sep 12, 2017
    Messages
    84
    Reaction score
    31
    I have made a rail contraption, and it breaks if you press the activation module while the rail parts are moving. Therefor I am trying to make a way so that as soon as you've pressed the activation module, it cannot be changed after e.g. 10 seconds (time it takes for the rail system to finish). How would one do such a thing?

    It's simply:

    On ---> wait x seconds to be able to be turned off --- x seconds later--> off ----> wait x seconds to be able to press on again

    I just can't seem to make something that does this. Any ideas?
     
    Joined
    Oct 22, 2014
    Messages
    338
    Reaction score
    148
    • Legacy Citizen 3
    Place an activator under the starting and ending points, link to an OR, link OR to an AND. Your main activator goes to the AND, AND goes to your logic that operates the rail, and will only trigger the movement when the rail is in either starting or ending position. This might solve your problem. There are probably other ways too.

    Edit: If you have separate controls to return the rails to the original position, you don't need the OR. You just link the activator placed under each end to an AND(separate AND for each), and link activator that starts/returns to each AND respectively, then ANDs to logic that controls rail movements.

    If you try to push the button, and the rails are not in the starting/ending position, the AND will prevent the signal from being sent.
     
    Last edited:
    • Like
    Reactions: silverfoe

    DrTarDIS

    Eldrich Timelord
    Joined
    Jan 16, 2014
    Messages
    1,114
    Reaction score
    310
    cannibalize this. It's used to keep a door "open" for 2 seconds and auto-reset to "closed". It's probably what you're looking for? Just hook up extra delays if you want a longer timer.

    If you really want it to be a "allowed to go blue, wait x seconds, allowed to go orange" just connect the "or" in this contraption to a flip-flop.

    Hope it helps.

    edit: to be clear, this is a TEMPLATE. put it in the templates folder in your SM directory, then "load" it into copy/paste in-game. Use creative mode and plop down a couple of them to teast out how they work and then build the circuit yourself to your specs.
     

    Attachments

    • Like
    Reactions: silverfoe
    Joined
    Oct 22, 2014
    Messages
    338
    Reaction score
    148
    • Legacy Citizen 3
    Whatever you do, keep playing with logic, it gets intense and is totally fun. You can make some pretty complicated stuff if you keep at it.
     
    Joined
    Sep 12, 2017
    Messages
    84
    Reaction score
    31
    cannibalize this. It's used to keep a door "open" for 2 seconds and auto-reset to "closed". It's probably what you're looking for? Just hook up extra delays if you want a longer timer.

    If you really want it to be a "allowed to go blue, wait x seconds, allowed to go orange" just connect the "or" in this contraption to a flip-flop.

    Hope it helps.

    edit: to be clear, this is a TEMPLATE. put it in the templates folder in your SM directory, then "load" it into copy/paste in-game. Use creative mode and plop down a couple of them to teast out how they work and then build the circuit yourself to your specs.
    Can you please explain to me what you mean by connect the or to a flipflop. I do not find an or in the template you gave me. Would I just connect a flipflop to the or, but then where does the flipflop connect to?

    Place an activator under the starting and ending points, link to an OR, link OR to an AND. Your main activator goes to the AND, AND goes to your logic that operates the rail, and will only trigger the movement when the rail is in either starting or ending position. This might solve your problem. There are probably other ways too.

    Edit: If you have separate controls to return the rails to the original position, you don't need the OR. You just link the activator placed under each end to an AND(separate AND for each), and link activator that starts/returns to each AND respectively, then ANDs to logic that controls rail movements.

    If you try to push the button, and the rails are not in the starting/ending position, the AND will prevent the signal from being sent.
    I actually tried that. The problem is the final stage in which the rail rests in is a rotator and rotators dont seem to give the same logic signal that basic rails do, it seems to remain on even after the rail has rotated back.

    Whatever you do, keep playing with logic, it gets intense and is totally fun. You can make some pretty complicated stuff if you keep at it.
    Yup i will keep trying :)


    Here is what I am building. It is a dramatically scaled down version for much larger docked entities, where the rails will rotate much slower and I really do not want random stuff to undock or get twisted:
     

    Attachments

    Joined
    Jul 30, 2013
    Messages
    398
    Reaction score
    282
    • Wired for Logic Gold
    • Legacy Citizen 8
    • Purchased!
    hello, as the other comrades have told you, you have 2 ways to do that:
    1. Using delay bloks
    2. Start-finish condition
    -------------------------------------​
    • First, we know that a delay block takes 0.5 seconds to activate, so two delay blocks are 1 second.
    • Second, if we want longer times, we should use more delay bloks, as many as we need.
    • Third, you must connect the delay blocks in this way: from the first one, the second, from the second to the third, from the third to the fourth ... so they will be activated in a chain until the last one.
    • Fourth, finally, you must create the conditions that allows to activate the counter again. To do this you have 2 ways.
    • 1) Use all delay blocks as a condition ( if there are any active delay block, do not allow the system to work ), or 2) use the last delay block as reset for the counter ( the last delay block will send a "reset" signal to the counter ).



    You could use other methods, but it would be too complicated for such a futile task.

    You can replace the delay blocks with any other signal, for example, using the signals detected by the rails


    If you have problems with the "rotator rails", it is because the logic signal is not sent when the entity arrives, it is when the entity "finishes doing" what the rotator rail sends him, so, if the entity passes over a rorator rail, and this is configured to make the entity "rotate" to the right, it will send a logical signal, when the entity finishes "rotate", not when it passes over.

    if you need more help, just ask in the chat of the website, or send me an MP.
     
    Last edited:
    Joined
    Sep 12, 2017
    Messages
    84
    Reaction score
    31
    hello, as the other comrades have told you, you have 2 ways to do that:
    1. Using delay bloks
    2. Start-finish condition
    -------------------------------------​
    • First, we know that a delay block takes 0.5 seconds to activate, so two delay blocks are 1 second.
    • Second, if we want longer times, we should use more delay bloks, as many as we need.
    • Third, you must connect the delay blocks in this way: from the first one, the second, from the second to the third, from the third to the fourth ... so they will be activated in a chain until the last one.
    • Fourth, finally, you must create the conditions that allows to activate the counter again. To do this you have 2 ways.
    • 1) Use all delay blocks as a condition ( if there are any active delay block, do not allow the system to work ), or 2) use the last delay block as reset for the counter ( the last delay block will send a "reset" signal to the counter ).



    You could use other methods, but it would be too complicated for such a futile task.

    You can replace the delay blocks with any other signal, for example, using the signals detected by the rails


    If you have problems with the "rotator rails", it is because the logic signal is not sent when the entity arrives, it is when the entity "finishes doing" what the rotator rail sends him, so, if the entity passes over a rorator rail, and this is configured to make the entity "rotate" to the right, it will send a logical signal, when the entity finishes "rotate", not when it passes over.

    if you need more help, just ask in the chat of the website, or send me an MP.
    Thanks so much galactus for you in depth explanation :D
    I'd prefer to have it work with activators rather than buttons. The blueprint I linked is basically going to work as an extending turret platform. So Id want to know if its extended just by looking at my hotbar. Would a button-flipflop work? Testing stuff right now.

    Here is why I need spam proof. When pressing the activator while rotating, the rotator will rotate extra times. Its suppsed to rotate 45, then when deactivated 45 back and back in. Like as if it was a turret extension arm.
     
    Joined
    Oct 22, 2014
    Messages
    338
    Reaction score
    148
    • Legacy Citizen 3
    Yeah, rotators work different. I'd have to really think about that one. I have done things that use rotators and had similar problems, don't remember if I had a solution other than not pressing the button again though.

    Edit: I'm still learning too
     
    Joined
    Jul 30, 2013
    Messages
    398
    Reaction score
    282
    • Wired for Logic Gold
    • Legacy Citizen 8
    • Purchased!
    Galactus, this design seems to not be spamproof. If you press the button when the signal goes to the and it will turn off the first delay before it goes further so the system gets stuck.
    I have tried it, but I do not get any error or signal stuck, the "activation block + AND gate + flip-flop + NOT gate" is link to avoid that precisely, do not allow any input signal, except the first activation block activation and the signal of the delay block ... are you sure to link it correctly?
     

    Crashmaster

    I got N64 problems but a bitch ain't one
    Joined
    Oct 18, 2013
    Messages
    453
    Reaction score
    361
    Here's how I would do the thing;


    Turret extender maybe

    Only once the extending rotation step is complete will the OR-latch set and allow the retraction operation. Latch is needed due to lack of signal from the rotator on completion of the retraction rotation step.

    I can't think of a way to prevent the innership remote from being toggled by the operator but you could easily add an in/out indicator to the hotbar with another innership remote or some other visible display method.
     
    Last edited:
    • Like
    Reactions: Zekester81