Some additions to scripting (for advanced users =))
1) You can make variables in scripts (but they work only in one button scope, sorry).
2) There is new "HasVariable", "Condition", "ConditionEnd" commands, so you can make that some commands will execute only if condition is true. There is no logical operands like OR/AND, but you can make something like that by combining Condition and GoTo commands.
3) Now string parameter can handle expressions, so 1 + 1 give you 2, if you need exactly 1 + 1, you must enquote it, so it will be '1 + 1' (with quotes).
4) I've sorted script commands.
Condition is special command, because it has two input parameters, and special condition parameter.
You can access state/input variables by adding @ symbol before path. For example, if you need access input (which is title) text at index 0, you must write:
@Inputs[{0}].Elements[0].Text
Note, that {0} is substitution for Input 1 and {1} is substitution for Input 2 GUID.
Elements array is array of all input elements like text, overlay, etc. All parameters named from small letter into result of "http://127.0.0.1:8088/api?" are capitalized. So you need to write "Name" instead of "name", etc.
If you write path from "@" you can't use expressions =( but you can put value from path to variable.
Variables set from indexes, but in expressions them named with prefix "_var", so if you need access to variable 0, you should write _var0.
If you use UpdateInternalButtonState function, button must be state dependent.
If you can test existing projects with this version and all ok, I make it as main version.
DownloadAlso I made small audio reactive sample, you just need to place input with audio in the first Input parameter of condition.
Download sample