Manual de nós de estado

Os nós de estado dão memória ao Social Stream Ninja. Use-os para criar tempos de espera, interruptores, contadores, limitadores, listas de participantes e sorteios que mantêm as automações previsíveis.

01 · Orientação rápida

As ferramentas de estado têm um objeto que armazena o valor e operações que o leem ou alteram:

Nó de estado

  • Fica na área de edição.
  • Armazena o valor (LIGADO/DESLIGADO, contagem, horários ou usuários).
  • Gate, Counter e Rate Limiter podem funcionar no caminho normal de eventos.
  • A Memória de usuários é um núcleo compartilhado referenciado por outros nós.

Ação de estado

  • É colocada depois no fluxo.
  • Lê ou altera o valor armazenado (ligar, somar +1, memorizar, sortear, redefinir etc.).
  • Pode ficar em qualquer lugar do fluxo — basta escolher o nome do nó correspondente.
Lembre-se: Adicione primeiro o nó de estado, dê a ele um nome exclusivo e selecione-o em cada operação correspondente. Sem o nó-base, as ações de estado não têm o que atualizar.

02 · Interruptor liga/desliga (Gate)

O interruptor é uma barreira booleana. Quando está LIGADO, as mensagens passam; quando está DESLIGADO, o fluxo para neste nó.

Ideal para

  • Tempos de espera para comandos de chat.
  • Alternâncias manuais (ativar/desativar sobreposições).
  • Janelas de manutenção (pausar recursos durante cenas de pausa).

Ações principais

  • Set Gate State— alterne entre LIGADO e DESLIGADO.
  • Reset State Node— volte ao padrão (geralmente LIGADO).

Exemplo: tempo de espera de 15s

!hello ──▶ Interruptor (LIGADO?) ─▶ Enviar resposta ─▶ Definir porta: DESLIGADA ─▶ Aguardar 15s ─▶ Definir porta: LIGADA

Etapas de criação

  1. Adicione o nó de interruptor, nomeie-o “helloCooldown” e deixe-o LIGADO por padrão.
  2. Conecte seu gatilho → interruptor → ações.
  3. Depois da sua ação, adicione Definir estado da porta (Set Gate State) (DESLIGADA) referenciando “helloCooldown”.
  4. Adicione uma ação Atraso (Delay) de atraso (15 segundos).
  5. Adicione outra ação Definir estado da porta (Set Gate State) (LIGADA) para “helloCooldown”.

03 · Contador

Contadores acompanham números entre mensagens. Eles aumentam automaticamente quando uma mensagem passa por eles, e você pode ajustar os valores manualmente com ações.

Incremento automático: Sempre que um payload passa pelo nó Contador, ele soma 1 (a menos que você o pause com a opção “Contar somente quando a porta for verdadeira”).

Casos de uso

  • Cada enésimo participante do chat dispara um prêmio.
  • Acompanhar o progresso de uma meta da comunidade.
  • Armazenar pontos resgatados por comandos.

Ações

  • Increment Counter— adicione ou subtraia valores personalizados.
  • Set Counter Value— defina um número específico.
  • Reset State Node— volte ao valor inicial padrão.

Exemplo: comemorar a cada 5 mensagens

Qualquer mensagem ─▶ Contador (nome: hype5) ─▶ Condição (value % 5 === 0?) ─▶ Reproduzir comemoração

Dentro do nó Condição, compare state.hype5.value ou simplesmente use a opção integrada “Disparar quando o valor corresponder ao alvo” nas propriedades do nó Contador.

04 · Limitador de frequência (Throttle)

O limitador armazena horários e recusa novos eventos até que a frequência definida seja respeitada.

Ideal quando você precisa de

  • “Somente cinco entradas de sorteio por minuto.”
  • “Uma chamada de API a cada 10 segundos.”
  • “Descartar alertas se a sobreposição já estiver ocupada.”

Configuração

  • Defina o máximo de eventos permitidos.
  • Escolha a janela de tempo (segundos).
  • Decida se o excesso deve ser enfileirado ou descartado.
Atenção: Os limitadores não são redefinidos automaticamente quando você edita o fluxo. Use Reset State Node se precisar começar do zero durante os testes.

05 · Memória de usuários

A Memória de usuários contém uma lista nomeada de pessoas únicas. Memorize usuários quando participarem, consulte a lista em mensagens posteriores, remova uma pessoa, sorteie um vencedor ou limpe apenas essa lista.

Ideal para

  • Elegibilidade por presentes ou distintivos.
  • Lembrar espectadores que curtiram, se inscreveram ou participaram.
  • Sorteios com uma entrada por pessoa.
  • Listas separadas para campanhas separadas.

Operações

  • Remember User e Forget User.
  • User Is Remembered.
  • Pick Random User.
  • Clear All Users ou Reset State Node.
Gatilho de participação ──▶ Memorizar usuário ······▶ Memória de usuários: Participantes Comando de sorteio ───────────▶ Sortear usuário ···▶ Memória de usuários: Participantes Comando de redefinição ──────────▶ Limpar todos os usuários ·····▶ Memória de usuários: Participantes

As linhas sólidas verde-azuladas carregam eventos. As ligações tracejadas roxas mostram qual memória compartilhada uma operação usa. Cada Memória de usuários tem sua própria contagem, modo de persistência e política de redefinição; limpar uma lista não afeta outra.

Veja o guia específico Guia de memória do usuário para capturas de tela revisadas, um fluxo de sorteio para download, elegibilidade do TikTok, exemplos de participação e detalhes de redefinição.

06 · Soluções prontas

Escolha um cenário e siga as etapas.

Tempo de espera de comando

  1. Nó de interruptor chamado “commandCooldown”.
  2. Gatilho → interruptor → resposta.
  3. Desligar porta → Atraso → Ligar porta.
  4. Adicione uma mensagem de chat “Tempo de espera ativo” à saída falsa, se desejar.

Brindes limitados

  1. Contador com padrão 0 e alvo 3.
  2. Incremente após cada resgate.
  3. Quando value ≥ 3, desvie para “Desculpe, acabou”.
  4. Use a ação Redefinir no fim da transmissão.

Interruptor para espectadores

  1. Interruptor chamado “overlayToggle”.
  2. !overlay on comando → Ligar porta.
  3. !overlay off comando → Desligar porta.
  4. Todos os gatilhos de sobreposição passam pelo interruptor.

Diagramas de fluxo de exemplo

Gatilho ─▶ Interruptor (overlayToggle) ─▶ Se LIGADO → Mostrar sobreposição └─false─▶ Avisar moderador “Sobreposição desativada”
Resgatar recompensa ─▶ Contador ticketsSold ├─value < 50 ─▶ Aprovar resgate └─value ≥ 50 ─▶ Negar + Reembolsar pontos

07 · Solução de problemas e perguntas frequentes

Sintoma Causa provável Correção
A ação Definir estado da porta não salva. Não existe um nó de interruptor correspondente (ou os nomes são diferentes). Adicione primeiro o nó de interruptor e confirme que o menu o referencia.
O contador nunca aumenta. O fluxo ignora o nó contador ou a porta é falsa. Verifique se a ligação do gatilho passa pelo contador e se a saída da porta é verdadeira.
O limitador bloqueia tudo para sempre. Janela muito restritiva ou estado restante de testes. Aumente o limite e adicione uma ação Redefinir nó de estado antes de testar novamente.
Uma operação de Memória de usuários não tem ligação tracejada. Nenhuma memória de destino está selecionada. Escolha a memória nomeada nas propriedades da operação ou arraste seu conector lateral roxo até a memória.
Os botões do guia não abrem. Execução dentro da extensão sem os recursos web_accessible atualizados. Verifique se actions/state-nodes-guide.html está incluído pelo manifesto e recarregue a extensão.

Lista de verificação de testes

  • Use a ferramenta “Enviar evento de teste” do Event Flow para simular comandos.
  • Reduza temporariamente os tempos de espera (2 segundos) ou os alvos dos contadores durante a verificação.
  • Redefina os nós de estado entre testes para não ler dados antigos.
  • Rotule as ramificações (ex.: “false → tempo de espera ativo”) para acompanhar o caminho visualmente.

08 · Próximas etapas

Combine os nós de estado com o restante das ferramentas do Event Flow:

  • Use portas lógicas (AND/OR/NOT) antes de um interruptor para decidir quem pode alterná-lo.
  • Armazene metadados baseados em estado em meta para que as sobreposições saibam por que uma ramificação foi acionada.
  • Exporte padrões funcionais como modelos para que sua equipe possa importá-los novamente depois.
Continue experimentando! O novo Guia do Event Flow complementa este manual para você dominar tanto a camada lógica quanto a de estado.