I’m going to share the answer I gave over on reddit because while the “start with as many parentheses as you have conditions, then close out the brackets” is a good rule of thumb, if you want to make it work with “and” as well as “or” conditions you’ve got to understand the underlying principle.
The key thing with logic statements like “or” and “and” is to never give Choicescript more than 2 things to deal with at a time. Anything in parentheses can count as 1 thing.
You can manage a four-thing condition with a big stack of parentheses on one end, like folks have been suggesting here. That would turn “a + b + c + d” into (((a+b) + c) + d). The potential weakness is making sure you haven’t ended up with too many parentheses at the stack end – that can be hard to visually check (though tools like CSIDE make it easier).
You can also do it by grouping into pairs. (a + b) + (c + d) will work. Using your full example, “*if ((a = 0) or (b = 0)) or ((c = 0) or (d = 0))” would work just fine, condensing your four conditions into two sets of two.
See this thread for more examples: Is it possible... (making or/and statements with 3+ variables) - #8 by Havenstone