01 · Краткое введение
У инструментов состояния есть объект, который хранит значение, и операции, которые читают или меняют его:
Узел состояния
- Находится на рабочем поле.
- Хранит значение (ON/OFF, число, отметки времени или пользователей).
- Шлюз, счётчик и ограничитель частоты могут работать в обычной цепочке событий.
- Память пользователей — общий узел, на который ссылаются другие узлы.
Действие состояния
- Размещается дальше по цепочке.
- Читает или меняет сохранённое значение: включить ON, добавить +1, запомнить, выбрать победителя, сбросить и т. д.
- Может находиться в любом месте потока — просто выберите имя нужного узла.
02 · Переключатель вкл./выкл. (шлюз)
Переключатель — логический пропускной узел. При ON сообщения проходят; при OFF поток останавливается на этом узле.
Подходит для
- Паузы между командами чата.
- Ручное переключение: включение и отключение оверлеев.
- Периоды обслуживания: приостанавливайте функции во время сцен BRB.
Основные действия
Set Gate State— переключить ON или OFF.Reset State Node— вернуть значение по умолчанию, обычно ON.
Пример: пауза 15 секунд
Шаги настройки
- Добавьте узел переключателя, назовите его «helloCooldown», начальное состояние — ON.
- Соедините триггер → переключатель → действия.
- После своего действия добавьте Задать состояние шлюза (OFF) со ссылкой на «helloCooldown».
- Добавьте Задержка узел (15 секунд).
- Добавьте ещё одно действие Задать состояние шлюза (ON) для «helloCooldown».
03 · Счётчик
Счётчики отслеживают числа между сообщениями. Они автоматически увеличиваются при прохождении сообщения, а действия позволяют менять значения вручную.
Сценарии использования
- Каждый N-й участник чата запускает выдачу приза.
- Отслеживайте прогресс к общей цели сообщества.
- Храните баллы, потраченные через команды.
Действия
Increment Counter— прибавить или вычесть произвольное значение.Set Counter Value— установить конкретное число.Reset State Node— вернуть начальное значение по умолчанию.
Пример: празднование каждые 5 сообщений
В узле условия сравните state.hype5.value или просто используйте встроенную опцию «Запускать при совпадении значения с целью» в свойствах счётчика.
04 · Ограничитель частоты (Throttle)
Ограничитель хранит отметки времени и отклоняет новые события, пока не будет соблюдена заданная частота.
Когда это полезно
- «Только пять заявок на розыгрыш в минуту».
- «Один вызов API каждые 10 секунд».
- «Отбрасывать оповещения, если оверлей уже занят».
Настройка
- Задайте максимальное число разрешённых событий.
- Выберите временное окно в секундах.
- Выберите, ставить ли лишние события в очередь или отбрасывать их.
Reset State Node если при тестировании нужно начать с чистого состояния.
05 · Память пользователей
Память пользователей хранит один именованный список уникальных людей. Запоминайте участников, проверяйте список при следующих сообщениях, удаляйте человека, выбирайте случайного победителя или очищайте только этот список.
Подходит для
- Допуск по подаркам или значкам.
- Запоминание зрителей, которые поставили лайк, записались или участвовали.
- Розыгрыши с уникальными участниками.
- Отдельные списки для разных кампаний.
Операции
Remember UserиForget User.User Is Remembered.Pick Random User.Clear All UsersилиReset State Node.
Сплошные бирюзовые связи передают события. Пунктирные фиолетовые показывают, какую общую память использует операция. У каждого узла памяти пользователей свой счётчик, режим сохранения и политика сброса, поэтому очистка одного списка не затрагивает другие.
06 · Готовые решения
Выберите сценарий и выполните шаги.
Пауза между командами
- Узел переключателя с именем «commandCooldown».
- Триггер → переключатель → ответ.
- Состояние шлюза OFF → Задержка → Состояние шлюза ON.
- При желании добавьте сообщение «Пауза активна» на выход false.
Ограниченные бесплатные награды
- Начальное значение счётчика — 0, цель — 3.
- Увеличивайте после каждого обмена.
- Когда value ≥ 3, переходите в ветку «Извините, всё закончилось».
- Используйте действие сброса в конце трансляции.
Переключатель для зрителей
- Переключатель с именем «overlayToggle».
!overlay onкоманда → Состояние шлюза ON.!overlay offкоманда → Состояние шлюза OFF.- Все триггеры оверлея проходят через переключатель.
Примеры схем потоков
07 · Устранение неполадок и вопросы
| Симптом | Вероятная причина | Решение |
|---|---|---|
| Действие «Задать состояние шлюза» не сохраняется. | Подходящего узла переключателя нет либо имена различаются. | Сначала добавьте узел переключателя и убедитесь, что он выбран в раскрывающемся списке. |
| Счётчик не увеличивается. | Поток обходит узел счётчика либо значение шлюза равно false. | Убедитесь, что связь от триггера проходит через счётчик, а выход шлюза равен true. |
| Ограничитель блокирует всё навсегда. | Слишком строгое временное окно или остаточное состояние после тестов. | Ослабьте ограничение и перед повторным тестом добавьте действие «Сбросить узел состояния». |
| У операции памяти пользователей нет пунктирной связи. | Не выбрана целевая память. | Выберите именованную память в свойствах операции или перетащите её фиолетовый боковой разъём на узел памяти. |
| Кнопки руководств не открываются. | Работа внутри расширения без обновлённых ресурсов web_accessible. | Убедитесь, что actions/state-nodes-guide.html поставляется через манифест, затем перезагрузите расширение. |
Проверка при тестировании
- Используйте инструмент Event Flow «Отправить тестовое событие» для имитации команд.
- Во время проверки временно сокращайте паузы до 2 секунд или уменьшайте цели счётчиков.
- Сбрасывайте узлы состояния между тестами, чтобы не считывать старые данные.
- Подписывайте ветки, например «false → пауза активна», чтобы визуально отслеживать путь.
08 · Следующие шаги
Сочетайте узлы состояния с остальными инструментами Event Flow:
- Используйте логические узлы AND/OR/NOT перед переключателем, чтобы определить, кто может им управлять.
- Храните метаданные, связанные с состоянием, в
metaчтобы оверлеи знали, почему сработала ветка. - Экспортируйте рабочие схемы как шаблоны, чтобы команда могла импортировать их позже.