Это один из четырёх способов настроить логику автоматизации и определить, когда, что и где нажимать.
С их помощью можно собирать как простые линейные последовательности действий, например клавиатурный макрос:

Так и создавать логику любой сложности — с вложенными циклами, условиями, вызовами других макросов и C#-скриптами:

В программе есть 4 способа моделировать логику:
Ауры появились в самом начале, когда программа только формировалась. Идея простая: мы настраиваем триггеры, которые реагируют на какое-то событие — например, появление изображения на экране, падение HP персонажа или получение сетевого сообщения. Когда триггер срабатывает, аура запускает последовательность команд.
Этот подход хорошо работал там, где программе нужно было реагировать именно на внешние события. Но для построения ботов он подходил хуже: события часто происходят одновременно, и это приходилось решать обходными путями, иначе бот начинал метаться между несколькими задачами.

В качестве универсального решения была добавлена поддержка C#-скриптов. Это сняло практически все ограничения и в целом позволило писать любую логику так, как удобно пользователю. Единственный минус — этот вариант требует навыков программирования, а в некоторых случаях было проще вообще ничего не делать, чем разбираться со скриптами.
Кроме того, логика построения ботов не всегда хорошо ложится в код. Например, описывать ротации довольно сложно: нужно отслеживать кулдауны, выстраивать систему приоритетов и так далее. Да, всё это можно реализовать кодом, но жизнь это не упрощает. Хотелось получить инструмент, который закрывал бы эти недостатки.

Так появились деревья поведения. Этот механизм давно доказал свою жизнеспособность в играх и активно используется в игровых движках вроде Unity и Unreal для построения логики NPC. В некоторых сценариях они просто идеальны — например, для настройки ротаций скиллов. В других случаях скрипты всё ещё удобнее.
Но у деревьев поведения всегда была одна проблема: это очень мощный, но при этом довольно сложный для понимания инструмент. Нужно время, чтобы в голове всё «щёлкнуло». А если умножить это на то, что и сама программа не самая простая, получается двойная сложность, которая отпугивает огромную часть пользователей и фактически делает инструмент недоступным.
Нужно было что-то одновременно проще, но с похожими возможностями.

И вот мы пришли к текущему варианту. Макросы отличаются от аур, деревьев поведения и скриптов. При этом они позволяют объединить ВСЕ существующие методы в одном месте.
По сути, это просто последовательность блоков команд, которую можно запускать через триггеры — например, по хоткею или при обнаружении изображения. В этом смысле макросы чем-то похожи на ауры: их тоже нужно как-то активировать.
Главное отличие в том, что макросы не обязаны отрабатывать быстро. Они могут выполняться столько, сколько нужно, и включать любое количество команд, переходов, циклов и условий.
То есть вы можете написать макрос, который просто отправляет цепочку нажатий клавиш, а можете углубиться и описать в одном макросе всю логику бота.

Как и ауры с деревьями поведения, макросы активируются через Enabling Conditions: вы создаёте ауру, добавляете в неё триггер, например HotkeyIsActive, а затем привязываете эту ауру как условие запуска макроса. Как только условие выполнится — например, вы нажмёте кнопку — макрос начнёт выполняться.

Есть несколько вариантов того, что произойдёт при срабатывании макроса. Это настраивается в блоке When Activated.

Название говорит само за себя. Когда условие выполнится, макрос запустится один раз и завершится.
Этот вариант позволяет настроить режим, в котором макрос будет запускаться периодически, с некоторой задержкой между циклами. Это будет происходить только до тех пор, пока выполняется условие активации.