01 · 快速入門
狀態工具包含一個擁有數值的物件,以及讀取或變更該數值的動作:
狀態節點
- 位於畫布上。
- 儲存值(ON/OFF、計數、時間戳記或使用者)。
- Gate、Counter 和 Rate Limiter 可以在一般事件路徑中執行。
- User Memory 是其他節點參照的共用中心。
狀態動作
- 放在下游。
- 讀取或變更已儲存值(設為 ON、加 1、記憶、抽獎、重設等)。
- 可以位於流程中的任意位置,只需選擇相符的節點名稱。
請記住: 先新增狀態節點,為它取一個唯一名稱,然後在每個相符動作中選擇它。沒有基礎節點,狀態動作就沒有可更新的物件。
02 · 開/關開關(閘控)
開關是一個布林守衛。ON 時訊息通過;OFF 時流程在此節點停止。
適合
- 聊天命令的冷卻時間。
- 手動切換(啟用/停用疊加畫面)。
- 維護時段(在 BRB 場景中暫停功能)。
關鍵動作
Set Gate State— 切換 ON 或 OFF。Reset State Node— 還原預設值(通常為 ON)。
範例:15 秒冷卻
!hello ──▶ Switch (ON?) ─▶ Send Reply ─▶ Set Gate: OFF ─▶ Delay 15s ─▶ Set Gate: ON
建立步驟
- 放置開關節點,命名為「helloCooldown」,預設 ON。
- 連接觸發條件 → 開關 → 動作。
- 在您的動作之後,新增 設定閘控狀態(Set Gate State) (OFF),參照「helloCooldown」。
- 新增一個 延遲(Delay) 節點(15 秒)。
- 再新增一個 設定閘控狀態(Set Gate State) (ON),用於「helloCooldown」。
03 · 計數器
計數器跨訊息追蹤數值。訊息通過時會自動遞增,也可以透過動作手動調整数值。
自動遞增: 每次承載資料通過 Counter 節點時都會加 1(除非使用「Only count when gate is true」選項將其暫停)。
使用情境
- 每第 N 位聊天者觸發一次獎品。
- 追蹤社群目標進度。
- 儲存透過命令兌換的點數。
操作
Increment Counter— 加上或減去自訂數值。Set Counter Value— 跳至指定數字。Reset State Node— 還原預設起始值。
範例:每 5 則訊息慶祝一次
Any Message ─▶ Counter (name: hype5) ─▶ Condition (value % 5 === 0?) ─▶ Play Celebration
在 Condition 節點內,比較 state.hype5.value 或直接使用 Counter 節點屬性中內建的「Trigger when value matches Target」選項。
04 · 速率限制器(節流)
節流器記住時間戳記,並拒絕新事件,直到符合您指定的速率。
適用需求
- 「每分鐘只允許五個抽獎項目。」
- 「每 10 秒呼叫一次 API。」
- 「如果疊加畫面已經忙碌,則捨棄提醒。」
設定
- 設定允許的最大事件數。
- 選擇時間區間(秒)。
- 決定將超出限制的事件排入佇列還是捨棄。
注意: 編輯流程時,節流器不會自動重設。使用
Reset State Node 如果測試期間需要清空狀態。
05 · 使用者記憶
User Memory 擁有一個包含不重複人員的具名清單。在使用者參加時記住他們,在後續訊息中檢查該清單、移除某個人、隨機選擇得獎者,或僅清空該清單。
適合
- 以禮物或徽章為依據的資格。
- 記住按讚、報名或參加過的觀眾。
- 每人一份資格的抽獎。
- 為不同活動使用獨立清單。
動作
Remember User和Forget User.User Is Remembered.Pick Random User.Clear All Users或Reset State Node.
Participation Trigger ──▶ Remember User ······▶ User Memory: Entrants
Draw Command ───────────▶ Pick Random User ···▶ User Memory: Entrants
Reset Command ──────────▶ Clear All Users ·····▶ User Memory: Entrants
藍綠色實線傳遞事件。紫色虛線表示某個動作使用哪項共用記憶。每個 User Memory 都有自己的計數、持續儲存模式和重設原則,因此清除一個清單不會影響另一個。
請參閱專門的 使用者記憶指南 查看經核對的螢幕擷取畫面、可下載抽獎流程、TikTok 資格、參加範例和重設詳細資訊。
06 · 問題解決方案
選擇一個情境並依步驟操作。
命令冷卻
- 名為「commandCooldown」的開關節點。
- 觸發條件 → 開關 → 回覆。
- Set Gate OFF → Delay → Set Gate ON。
- 如果需要,在 false 輸出上新增聊天訊息「Cooldown active」。
限量贈品
- 計數器預設值為 0,目標為 3。
- 每次兌換後遞增。
- 當 value ≥ 3 時,分支至「Sorry, all gone」。
- 在直播結束時使用 Reset 動作。
觀眾開關
- 名為「overlayToggle」的開關。
!overlay on命令 → Set Gate ON。!overlay off命令 → Set Gate OFF。- 所有疊加畫面觸發條件都通過該開關。
範例流程圖
Trigger ─▶ Switch (overlayToggle) ─▶ If ON → Show Overlay
└─false─▶ Notify moderator “Overlay disabled”
Redeem Reward ─▶ Counter ticketsSold
├─value < 50 ─▶ Approve Redemption
└─value ≥ 50 ─▶ Deny + Refund points
07 · 疑難排解和常見問題
| 症狀 | 可能原因 | 解決方法 |
|---|---|---|
| Set Gate State 動作無法儲存。 | 沒有相符的開關節點(或名稱不同)。 | 先新增開關節點,並確認下拉式選單參照它。 |
| 計數器從不遞增。 | 流程繞過計數器節點,或閘控為 false。 | 確保觸發條件連線通過計數器,且閘控輸出為 true。 |
| 節流器一直阻止所有事件。 | 時間區間過嚴,或測試遺留狀態。 | 放寬限制,並在重新測試前放置一個 Reset State Node 動作。 |
| User Memory 動作沒有虛線連結。 | 未選擇目標記憶。 | 在動作屬性中選擇具名記憶,或將紫色側邊連接器拖到記憶上。 |
| 指南按鈕無法開啟。 | 在擴充功能內執行,但未更新 web_accessible 資源。 | 確保 actions/state-nodes-guide.html 透過 manifest 提供,然後重新載入擴充功能。 |
測試檢查表
- 使用 Event Flow 的「Send Test Event」工具模擬命令。
- 驗證時暫時縮短冷卻時間(2 秒)或降低計數器目標。
- 在測試之間重設狀態節點,避免讀取過期資料。
- 為分支加入標籤(例如「false → cooldown active」),以便直觀地追蹤路徑。
08 · 後續步驟
將狀態節點與 Event Flow 工具集的其他功能結合:
- 在開關之前使用邏輯閘(AND/OR/NOT),決定誰可以切換它。
- 將由狀態驅動的中繼資料儲存在
meta讓疊加畫面知道分支為何觸發。 - 將有效模式匯出為範本,方便團隊稍後重新匯入。
繼續嘗試!新的 Event Flow 指南 與本實用指南搭配,協助您掌握邏輯層和狀態層。