===Macro Variables=== Macro variables are variables that are local to a particular macro on a particular node. Unlike the more complex [[concepts:variables|variable system]] that sits under [[concepts:zones]], they are simply represented by name/value pairs, like: ''thisVar=cheese'' They can be set one of three ways: * From within the macro using [[concepts:macros:parser_directives|#setlocal or #inclocal]] * Using the command [[commands:macro_node_commands:node_macroset]] * When a macro trigger is received with a list of equality statements after it in square brackets. For example: ''node_macrorun: mynode | mytrigger[var3=foo, var4=bar]'' would set those two variables and then run the macro. Variables are created by setting a value; they cannot be deleted without clearing the macro. Variables can then be referred to using the same interpolation system used by [[concepts:variables:references|variables]]. Local variables are interpolated as the macro is run before the command is passed to the [[commands:parsing|command parser]] - so macro variables can reference zone variables and [[concepts:dynamic_objects]], but not the other way around. Note that as local variables, they cannot be referenced from outside their containing macro.