1d20 и писать
в чат; всё остальное добавляется шагами. Шаг — это строка дерева: тип слева, значения правятся
прямо в строке.1. Перед началом
Действие принадлежит токену, листу персонажа или системе правил — но редактор везде один и тот же,
и формат данных один и тот же. Примеры ниже собраны на встроенной D&D 5e (SRD): от системы приходят
названия характеристик (str_mod), каталог типов урона, список состояний и ячейки заклинаний.
В другой системе будут другие имена, а шаги останутся теми же.
Формулы считаются на компьютере мастера. Игрок нажимает кнопку — результат приходит ему в чат.
2. Где живёт редактор
Правая кнопка по токену открывает меню; в группе «Действия» стоят все действия этого токена. Карандаш в строке открывает действие на правку, «Добавить действие…» создаёт новое.

Редактор открывается штатной панелью стола: карта остаётся видна, токен — на месте, панель можно двигать за шапку и тянуть за угол.

Тот же редактор открывается из листа персонажа. На страницах систем (/systems) он показывает те же
данные формой — там правят действия системы, а не конкретного токена.
3. Что из этого видит игрок
Запуск действия печатает в чате карточку: что бросили, с чем сравнили, чем закончилось.

Всё, что описано ниже, нужно ровно для этой карточки и для того, что произойдёт с целью.
4. Из чего состоит действие
Сверху — название и панель инструментов. Ниже — дерево шагов. Внизу — «Отмена» и «Сохранить».

Каждый шаг — строка: цветной тип слева, значения — в самой строке. Ничего не прячется в отдельном окне: формула, тип урона, адресат и условие правятся там же, где читаются.
| Часть | Что делает |
|---|---|
| Название | Строка вверху. Под ним появляется красная строка, если действие пока нельзя сохранить. |
| Панель инструментов | Отмена и повтор правки, шаблоны, агент, настройки действия, код действия, справка. |
| Дерево шагов | Что действие делает по порядку. |
| Настройки действия | Кто запускает, вид, стоимость, повтор, выбор целей, значок. |
5. Первое действие за минуту
«Добавить действие…» создаёт документ, который уже работает: бросок 1d20, имя результата
«Бросок» и сообщение «Бросок атаки: {Бросок}». Запустите его — в чате появится строка с числом.

Дальше его правят под себя:
- Назвать действие — например, «Проверка Силы».
- Дописать формулу —
1d20 + str_modвместо1d20. - Переписать сообщение — «Проверка Силы: {Бросок}».
В фигурных скобках пишется имя результата, а не внутренний ключ: имя видно тут же, в строке
броска, после слова «Результат». Переименуете «Бросок» в «Атаку» — в сообщении станет {Атака},
и ничего не сломается: ключ под именем остаётся прежним, его просто не показывают.

Под самим сообщением редактор показывает, что получится: имена в нём заменены на значения шагов.
6. Компактный и полный вид
У каждого шага два вида. Компактный читается одной строкой — он оставляет то, чем шаги отличаются друг от друга: формулу, адресата, условие, длительность.

Полный вид добавляет редкие параметры и блок «Когда применяется».

Вид переключается у каждого шага отдельно и запоминается: собранное действие можно читать свёрнутым, а править — только тот шаг, который сейчас нужен.
7. Как добавить, сменить и переставить шаг
Плюс под деревом и полоса слева добавляют шаг. Полоса появляется между строками при наведении; её горизонтальное положение задаёт уровень вложенности — так шаг кладут внутрь варианта, а не после него.

Выбор типа — одна палитра на двенадцать видов. Ею же тип меняется: нажатие на цветное название шага открывает ту же палитру.

Совместимые параметры при смене типа переносятся, а то, что перенести нельзя, редактор перечисляет под шагом. Повторный выбор текущего типа ничего не сбрасывает.
Порядок меняется перетаскиванием за ручку в строке команд шага или стрелками «вверх/вниз».
8. Формулы: подсказки вместо угадывания
Формула набирается словами системы. Редактор подсказывает доступные характеристики и результаты предыдущих шагов и объясняет каждый символ: откуда он берётся и как считается.

Подсказка видна только там, где значение действительно доступно. Результат шага виден шагам ниже,
а не соседней ветке; поля цели начинаются с target_.
Полная справка по формулам и броскам открывается из панели инструментов и из любого поля броска — отдельным окном, которое не закрывает редактор.

9. Атака: бросок против защиты
Атака — это бросок со сравнением. В поле «против» ставится защита цели, и бросок сам решает, попал он или нет.

После сравнения у броска появляются ещё два результата: попадание и критическое попадание.
Проверять попадание руками (atk >= target_ac) не нужно и вредно — ручная проверка не знает
про крит и про правки результата.
10. Когда применяется
Вопрос «срабатывает ли этот шаг на этой цели» у шагов урона, состояния, временного эффекта и изменения поля решается одним блоком с четырьмя режимами.

| Режим | Когда шаг срабатывает |
|---|---|
| всегда | На каждой выбранной цели. |
| при попадании | Только по тем целям, по которым попал выбранный бросок. |
| по спасброску | Зависит от спасброска цели: множитель 0 — не применять, 0.5 — половина, 1 — полностью. |
| по условию | По своей формуле: например, target_hp <= target_max_hp / 2. |
«При попадании» подставляет результат настоящего броска — отдельное «Ветвление» ради этого заводить не нужно.

Если выше нет ни одного броска со сравнением, режим «при попадании» показан, но недоступен: ссылаться не на что, и шаг молча не сработал бы ни на одной цели.
11. Спасбросок и площадь
Заклинание по площади устроено из двух шагов: спасбросок и урон, который от него зависит.

Спасбросок бросает каждая цель отдельно, сложность — формула действия
(8 + int_mod + proficiency_bonus). Урон связывается с ним режимом «по спасброску».

Множитель 0.5 — это половина того же броска, а не второй бросок: спасшиеся и провалившие делят один результат. Область задаётся в настройках действия — форма «круг» и радиус.
12. Состояния и временные эффекты
«Состояние» берёт определение из системы: список состояний приходит оттуда же, откуда лист берёт их значки и правила.

«Временный эффект» меняет характеристику на срок и сам снимает изменение, когда срок вышел. Базовое значение при этом сохраняется — лист не переписывается.

Постоянная запись — это уже другой шаг, «Изменить поле»: он меняет базовое значение и остаётся после действия.
13. Стоимость и ресурсы
Стоимость списывается до исполнения. Ресурс выбирается из объявленных системой — ячейки заклинаний, хиты, заряды.

Внутри шагов ресурсами занимаются «Расход ресурса» и «Восстановление». У восстановления режим «до»
задаёт итог, а «+» прибавляет к текущему; max означает максимум ресурса.
14. Варианты
«Варианты» нужны там, где исходов правда несколько. Выполняется первый подходящий сверху вниз.

Последний вариант — «В других случаях». Это безусловная ветка, и она обязана стоять последней: всё, что ниже неё, недостижимо, и редактор такие ветки отмечает.
Для гейта «попал / не попал» ветвление больше не нужно — для этого есть «Когда применяется».
15. Настройки действия

| Настройка | О чём она |
|---|---|
| Кто использует | Владелец токена или только мастер. |
| Вид | Место действия в правилах хода: активное, бонусное, реакция. |
| Описание | Текст, который виден при наведении. |
| Значок и цвет | Как действие выглядит в меню и в карточке. |
| Выключено | Действие остаётся в списке и правится, но не запускается. |
| Стоимость | Что списать перед исполнением. |
| Повтор × | Сколько раз выполнить все шаги. |
| Выбор целей | Форма (одна цель, круг, конус, линия, квадрат), дальность, размер, максимум целей. |
Неприменимые поля области скрыты: у формы «одна цель» нет радиуса, у круга нет угла конуса.
16. Код действия
Та же самая запись, только текстом. Полезно, когда нужно скопировать действие целиком или разобраться в чужом.

Правки в коде нужно применить, прежде чем сохранять действие: пока код не применён, «Сохранить» об этом честно скажет.
17. Если не работает

- В карточке ноль. Почти всегда имя поля написано не так, как оно объявлено в системе. Битая формула не падает с ошибкой, а тихо считается нулём. Проверьте по подсказке умного ввода.
- Красная строка под названием. Действие нельзя сохранить: редактор называет поле и причину.
- «Примените изменения кода». Открыт код действия с неприменёнными правками.
- Урон срабатывает при промахе. Редактор предупреждает, если шаг урона не связан ни с одним броском атаки: поставьте «при попадании» либо положите урон в вариант с условием попадания.
- Спасбросок «висит». Шаг ссылается на спасбросок, которого выше нет; выберите существующий.
18. Двенадцать типов шагов
| Тип | Зачем |
|---|---|
| Бросок | Бросить формулу и сохранить результат; при сравнении даёт попадание и крит. |
| Урон | Нанести урон выбранного типа; общий бросок на всех или отдельный по каждой цели. |
| Спасбросок | Каждая цель бросает характеристику против сложности. |
| Состояние | Наложить состояние из каталога системы. |
| Временный эффект | Изменить характеристики на срок и снять изменение по истечении. |
| Сообщение | Написать в чат; имена результатов подставляются в фигурных скобках. |
| Расход ресурса | Списать ресурс. |
| Восстановление | Восстановить ресурс или группу. |
| Изменить поле | Записать новое базовое значение навсегда. |
| Запрос | Спросить игрока до исполнения; ответ становится переменной. |
| Способность | Вызвать зарегистрированную механику. |
| Варианты | Выбрать первый подходящий вариант. |
19. Что дальше
Готовое действие можно положить в компендиум и раздать игрокам — об этом отдельный материал, как сделать своё заклинание.
Значения всех терминов — в справочнике: он открывается книжкой рядом с названием шага и рядом с заголовком «Когда применяется».
Тем, кто собирает действия генератором или просит помощи у модели, нужен не этот текст, а строгий контракт со всеми перечислениями и проверенными примерами: action-dsl-reference.json. Примеры из него прогоняются живой схемой проекта, поэтому расхождение с продуктом ловится сборкой, а не читателем.