Практичний посібник із вузлів стану

Вузли стану надають Social Stream Ninja пам’ять. Створюйте з ними паузи, перемикачі, лічильники, обмежувачі частоти, списки учасників і розіграші призів, щоб автоматизації працювали передбачувано.

01 · Короткий огляд

Засоби стану мають об’єкт, що зберігає значення, та операції, які читають або змінюють його:

Вузол стану

  • Розташовується на полотні.
  • Зберігає значення (ON/OFF, число, часові мітки або користувачів).
  • Gate, Counter і Rate Limiter можуть працювати у звичайному шляху подій.
  • User Memory — спільний центр, на який посилаються інші вузли.

Дія стану

  • Розміщується далі за потоком.
  • Читає або змінює збережене значення (установити ON, додати +1, запам’ятати, розіграти, скинути тощо).
  • Може розташовуватися будь-де у сценарії — просто виберіть відповідну назву вузла.
Пам’ятайте: Спочатку додайте вузол стану, надайте йому унікальну назву, а потім виберіть його в кожній відповідній операції. Без базового вузла діям стану нічого оновлювати.

02 · Перемикач увімк./вимк. (Gate)

Перемикач — це логічний пропускний механізм. У стані ON повідомлення проходять; у стані OFF потік зупиняється на цьому вузлі.

Найкраще для

  • Паузи між командами чату.
  • Ручні перемикачі (увімкнення/вимкнення оверлеїв).
  • Періоди обслуговування (призупинення функцій під час сцен перерви BRB).

Основні дії

  • Set Gate State— перемкнути на ON або OFF.
  • Reset State Node— повернути початковий стан (зазвичай ON).

Приклад: пауза 15 секунд

!hello ──▶ Перемикач (ON?) ─▶ Надіслати відповідь ─▶ Стан перемикача: OFF ─▶ Затримка 15 с ─▶ Стан перемикача: ON

Кроки створення

  1. Додайте вузол перемикача, назвіть його «helloCooldown», початковий стан — ON.
  2. З’єднайте тригер → перемикач → дії.
  3. Після своєї дії додайте Установити стан перемикача (Set Gate State) (OFF) із посиланням на «helloCooldown».
  4. Додайте Затримка (Delay) вузол (15 секунд).
  5. Додайте ще один Установити стан перемикача (Set Gate State) (ON) для «helloCooldown».

03 · Лічильник

Лічильники відстежують числа між повідомленнями. Вони автоматично збільшуються, коли проходить повідомлення, а значення можна вручну змінювати діями.

Автоматичне збільшення: Щоразу, коли дані проходять через вузол Counter, він додає 1 (якщо його не призупинено опцією Only count when gate is true).

Варіанти використання

  • Кожен N-й учасник чату запускає приз.
  • Відстежуйте поступ до спільної цілі.
  • Зберігайте витрачені через команди бали.

Дії

  • Increment Counter— додати або відняти довільну величину.
  • Set Counter Value— перейти до певного числа.
  • Reset State Node— повернути початкове значення за замовчуванням.

Приклад: святкування кожних 5 повідомлень

Будь-яке повідомлення ─▶ Лічильник (назва: hype5) ─▶ Умова (value % 5 === 0?) ─▶ Відтворити святковий ефект

У вузлі Condition порівняйте state.hype5.value або просто використовуйте вбудовану опцію Trigger when value matches Target у властивостях вузла Counter.

04 · Обмежувач частоти (Throttle)

Обмежувач частоти запам’ятовує часові мітки й відхиляє нові події, доки не буде дотримано заданої частоти.

Корисно, коли потрібно

  • «Лише п’ять реєстрацій у розіграші за хвилину».
  • «Один виклик API кожні 10 секунд».
  • «Відкидати сповіщення, якщо оверлей уже зайнятий».

Конфігурація

  • Установіть максимальну дозволену кількість подій.
  • Виберіть часове вікно (секунди).
  • Вирішіть, чи ставити надлишок у чергу, чи відкидати.
Зверніть увагу: Обмежувачі частоти не скидаються автоматично після редагування сценарію. Використовуйте Reset State Node якщо під час тестування потрібно почати з чистого стану.

05 · Пам’ять користувачів

User Memory зберігає один іменований список унікальних людей. Запам’ятовуйте користувачів під час участі, перевіряйте цей список у наступних повідомленнях, видаляйте людину, вибирайте випадкового переможця або очищайте лише цей список.

Найкраще для

  • Допуск на основі подарунків або значків.
  • Запам’ятовування глядачів, які вподобали, зареєструвалися або взяли участь.
  • Розіграші призів з унікальними учасниками.
  • Окремі списки для окремих кампаній.

Операції

  • Remember User і Forget User.
  • User Is Remembered.
  • Pick Random User.
  • Clear All Users або Reset State Node.
Тригер участі ──▶ Запам’ятати користувача ······▶ Пам’ять користувачів: Entrants Команда розіграшу ───────────▶ Вибрати випадкового користувача ···▶ Пам’ять користувачів: Entrants Команда скидання ──────────▶ Очистити всіх користувачів ·····▶ Пам’ять користувачів: Entrants

Суцільні бірюзові лінії передають події. Пунктирні фіолетові зв’язки показують, яку спільну пам’ять використовує операція. Кожна User Memory має власний лічильник, режим зберігання та правила скидання, тому очищення одного списку не впливає на інший.

Дивіться окремий Посібник із пам’яті користувачів із перевіреними знімками екрана, завантажуваним сценарієм розіграшу, допуском TikTok, прикладами участі та подробицями скидання.

06 · Готові рішення

Виберіть сценарій і виконайте кроки.

Пауза між командами

  1. Вузол перемикача з назвою «commandCooldown».
  2. Тригер → перемикач → відповідь.
  3. Установити Gate OFF → Затримка → Установити Gate ON.
  4. За бажанням додайте до виходу false повідомлення чату «Пауза між командами активна».

Обмежені безкоштовні нагороди

  1. Початкове значення лічильника — 0, ціль — 3.
  2. Збільшуйте після кожного отримання нагороди.
  3. Коли value ≥ 3, перейдіть до гілки «Вибачте, усе закінчилося».
  4. Наприкінці трансляції використовуйте дію скидання.

Перемикач для глядача

  1. Перемикач із назвою «overlayToggle».
  2. !overlay on команда → Установити Gate ON.
  3. !overlay off команда → Установити Gate OFF.
  4. Усі тригери оверлею проходять через перемикач.

Приклади схем сценаріїв

Тригер ─▶ Перемикач (overlayToggle) ─▶ Якщо ON → Показати оверлей └─false─▶ Повідомити модератора «Оверлей вимкнено»
Отримати нагороду ─▶ Лічильник ticketsSold ├─value < 50 ─▶ Підтвердити отримання └─value ≥ 50 ─▶ Відхилити + повернути бали

07 · Усунення неполадок і поширені запитання

Симптом Імовірна причина Виправлення
Дія Set Gate State не зберігається. Відповідного вузла перемикача немає (або назви відрізняються). Спочатку додайте вузол перемикача й перевірте, що він вибраний у спадному списку.
Лічильник ніколи не збільшується. Сценарій обходить вузол лічильника або перемикач має значення false. Переконайтеся, що провід тригера проходить через лічильник, а вихід перемикача має значення true.
Обмежувач частоти назавжди блокує все. Надто суворе часове вікно або залишковий стан від тестування. Послабте обмеження й перед повторною перевіркою додайте дію Reset State Node.
Операція пам’яті користувачів не має пунктирного зв’язку. Цільову пам’ять не вибрано. Виберіть іменовану пам’ять у властивостях операції або перетягніть її фіолетовий бічний з’єднувач на пам’ять.
Кнопки посібників не відкриваються. Запуск усередині розширення без оновлених ресурсів web_accessible. Переконайтеся, що actions/state-nodes-guide.html входить до пакета через manifest, і перезавантажте розширення.

Список перевірок

  • Використовуйте засіб Send Test Event в Event Flow для імітації команд.
  • Під час перевірки тимчасово скорочуйте паузи (до 2 секунд) або зменшуйте цільові значення лічильників.
  • Скидайте вузли стану між перевірками, щоб не читати застарілі дані.
  • Підписуйте гілки (наприклад, «false → пауза активна»), щоб візуально відстежувати шлях.

08 · Наступні кроки

Поєднуйте вузли стану з іншими засобами Event Flow:

  • Перед перемикачем використовуйте логічні вузли (AND/OR/NOT), щоб визначити, хто може його перемикати.
  • Зберігайте метадані, що залежать від стану, у meta щоб оверлеї знали, чому спрацювала гілка.
  • Експортуйте робочі схеми як шаблони, щоб команда могла повторно імпортувати їх.
Продовжуйте експериментувати! Новий Посібник із потоків подій доповнює цей практичний посібник, щоб ви могли опанувати і логіку, і стан.