This is really important. I see so many people using repeaters, but they are literally THE MOST USELESS DEVICE IN THE GAME.
Everything about a repeater is inefficient.
Let’s start with their most basic functionality. Repeating a signal. Let’s say it sends out on channel X every second.
WOAH! We can do that with triggers too!
If it has a delay of one, sends on channel X, and receives on channel X, WOW! It’s literally the same exact thing but with TEN TIMES THE MEMORY EFFICIENCY.
Let me tell you about looping.
The most simple one is a trigger. It sends and receives on the same channel, and has a customizable delay. We can count the number of times it sends out on with a counter that increments on the channel. If we want to cap it at a certain amount, that’s easy to do. If we want to stop it after a certain amount of time, we can just use a trigger that counts in seconds and once it hits x time, it disables the other system.
Basically, you can do pretty much everything with the delay ability/activation states of triggers + the counting ability of counters.
Wow!
Ok, so now lets look at the abilities of repeaters.
After period of time? Can be done with a timer hooked up to a different system.
After number of repetitions? Easily done with a counter that tracks channel broadcasts.
After receiving on a channel? Magic, we just… turn off the trigger. Bonus points – we just turn it back on again right afterwards!
Max concurrent tasks?!!?!?!? Well, a trigger already has 300. (well, the wire/channel caps dictate that the limit is 300, at least)
Lets say the trigger has a delay of X seconds, and we want Y concurrent tasks for the trigger.
We simulate this by having a counter counting output broadcasts. It gets incremented every time the loop runs, and decremented every X/Y seconds. Then, if it ever goes over the limit of #Y per X seconds, it can just… turn off the trigger. If you want to store this stuff somehow, you’d need to use a property and then keep going back and forth and starting up new loops.
For those of below average literacy
Repeater no good. Too much memory. Trigger can do same thing. Trigger start on X, trigger broadcast on X. Wow! Much good. If you want do more, you use counter to track things.