[0.18.8.0] Condo I/O: Relay-to-All Improvements and I/O suggestions

Greetings!

I wanted to take some time to suggest some much-needed improvements for the Relay-to-all Modules, as while they are very handy and honestly a big improvement to builds featuring multitudes of the same items, they are still somewhat limited to what they’re capable of.

A small recap for those uninitiated to Condo I/O: Relay-to-all modules basically allow you to group up multiple items to the same connection, and apply a command to all of them at once. For instance, if you had a series of lamps in a room, and wanted them to all turn on and off with the same button, then rather than manually wire up the connection for each, you can connect the lamps to the Relay-to-All module, then connect that button to that module with the command to toggle the lights. Pressing the buttons will then switch the lights on and off all at once. It’s a very cost-effective, efficient way of grouping connections.

However, despite their utility, they are still limited.

Take a look at the image below:

This is the relay system for my studio’s RGB light controls. It is very extensive, but only because I cannot compress the connections down any further. As you can see, the RTA module uses persistent connections to hook up to items (this one in particular is meant to lock/unlock a group of relays as part of the selector mechanism), But I cannot, in turn, add any delays or limitations to the connected items. This means that, when I execute a command, it applies it to all connected items at the same time. Normally, this wouldn’t be a problem, however, as part of the system, I wanted the lights to change color in sequence, rather than all at once, which as forced me to group up the lights in a rather haphazard arrangement in order to maintain that sequence.

This is what I suggest, in turn, to improve the RTA modules and some I/O:

1) Add Delay support - Delays in how the RTA module executes the commands given would allow for a rapid expansion of its capability, as well as allow players to not have to use multiple RTA modules on the same set of lights in order to achieve a sequenced effect. Similar to how you can add delays to connections with a normal Relay Module, Delays on an RTA module would simply apply the command in a sequenced order rather than all-at-once. You could, if it is much easier, create a “Priority” mode, that applies the command to the connected items in an established sequence the player provides, with a player-set delay between those commands.

2) Add a time slider to the “FadeToColor” option - “FadeToColor” has always been one of my preferred ways of using Lights in I/O, however I cannot control how quickly these colors change, and the short transition leaves me limited in my options for what I can do. If I could simply edit the time it takes to transition, it would greatly help.

Further I/O Improvements:

Switch Modules - Switch Modules act akin to Toggle Modules, except that they swap between multiple outputs rather than just two. A player can edit the number of outputs, akin to the randomizer module, but they can actively control the output it fires. This can help with making I/O contraptions that have multiple “modes” or “options” as part of their design.

Color Averaging/Spread - Color Average Modules, when fired, can take the color values of items connected to them, and either set them to a color that is averaged between them, or set them, by established order, to a gradient of colors that is spread across all connected items. This can be useful if you want to set items to have a gradient or “fade” of colors from one to another, like decorative lights, panels, or really anything!

Anywho, that’s all I’ve got for now, thanks for coming to my TEDTalk.

-Alex Out