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 指南 与本实用指南配合,帮助您掌握逻辑层和状态层。