If/Else Conditions for Condo IO

This is kind of an obvious thing missing with IO currently so I wouldn’t be surprised if it was already planned, but it’d be very useful to have if/else conditions you could add onto outputs.


The way I think it’d work best is if there was an “Add Condition” button to the right of the Actions, which when pressed would add another item select and a Condition selector. Imagine something like this but not ugly:

The conditions themselves are kinda self explanatory, I think. When the action is fired, the game first checks the if the condition is true, and if it is, the game fires it like normal; if it’s false, the game ignores the action.

Lights have IsOn, IsOff, doors have IsOpened, IsClosed, IsLocked, etc. Maybe for other items you could check if a player is interacting with it, like a PlayerIsReading condition on the Notebook, or a PlayerIsInside condition for Trigger Volumes, stuff like that.


Alongside if conditions, it’d be useful to set up an output (or series of outputs) if the condition ends up being false. These ‘else’ outputs could be put into a dropdown menu so you could hide them to reduce clutter.

Another image to roast your eyes upon:

Relays would actually work really well with this since you could just have one relay fire as the ‘Else’ output, and then you could add more else interactions in the Relay’s connections. (I assume you couldn’t normally have nested else outputs because the UI would get kinda messy at that point)


tldr; if/else statements please

I think what you need (and what would be more universal) is just logic gates, like AND, OR, XOR and NOT.
You would use AND one for the example you’re giving, wiring both SecurityButton_isPressed and CasinoLamp_isOn (so a bit changed names to fit their goals more) as inputs and then leading the output signal to one or a bunch of stuffs you need.

What we would rather need conditions for is for numeric checking like “if counter==5”, or maybe just an integer comparator module; but pardon me if this functionality already exists cause I haven’t tried I/O yet