Manuale pratico dei nodi di stato

I nodi di stato danno memoria a Social Stream Ninja. Usali per creare tempi di attesa, interruttori, contatori, limitatori, elenchi di partecipanti ed estrazioni che rendano prevedibili le automazioni.

01 · Orientamento rapido

Gli strumenti di stato hanno un oggetto che gestisce il valore e operazioni che lo leggono o lo modificano:

Nodo di stato

  • Si trova nell'area di lavoro.
  • Conserva il valore (ON/OFF, conteggio, timestamp o utenti).
  • Gate, Counter e Rate Limiter possono essere inseriti nel normale percorso degli eventi.
  • User Memory è un nodo centrale condiviso a cui fanno riferimento altri nodi.

Azione di stato

  • Posizionata a valle.
  • Legge o modifica il valore memorizzato (imposta ON, aggiunge +1, ricorda, estrae, azzera ecc.).
  • Può trovarsi ovunque nel flusso: basta scegliere il nome del nodo corrispondente.
Ricorda: Aggiungi prima il nodo di stato, assegnagli un nome univoco e poi selezionalo in ogni operazione corrispondente. Senza il nodo di base, le azioni di stato non hanno nulla da aggiornare.

02 · Interruttore acceso/spento (porta)

L'interruttore è un controllo booleano. Quando è ON, i messaggi passano; quando è OFF, il flusso si ferma a questo nodo.

Ideale per

  • Tempi di attesa per i comandi chat.
  • Interruttori manuali (attiva/disattiva gli overlay).
  • Finestre di manutenzione (sospendi le funzionalità durante le scene di pausa).

Azioni principali

  • Set Gate State— passa a ON o OFF.
  • Reset State Node— torna al valore predefinito (di solito ON).

Esempio: attesa di 15 secondi

!hello ──▶ Interruttore (ON?) ─▶ Invia risposta ─▶ Imposta porta: OFF ─▶ Ritardo 15s ─▶ Imposta porta: ON

Passaggi di creazione

  1. Inserisci il nodo interruttore, chiamalo “helloCooldown” e imposta ON come predefinito.
  2. Collega trigger → interruttore → azioni.
  3. Dopo l'azione, aggiungi Imposta stato porta (Set Gate State) (OFF) con riferimento a “helloCooldown”.
  4. Aggiungi un Ritardo (Delay) (15 secondi).
  5. Aggiungi un altro Imposta stato porta (Set Gate State) (ON) per “helloCooldown”.

03 · Contatore

I contatori tengono traccia dei numeri tra i messaggi. Aumentano automaticamente quando passa un messaggio e puoi regolare manualmente i valori tramite azioni.

Incremento automatico: Ogni volta che un payload passa nel nodo Counter, questo aggiunge 1 (a meno che non lo sospendi con l'opzione “Only count when gate is true”).

Casi d'uso

  • Ogni ennesimo partecipante alla chat attiva un premio.
  • Tieni traccia dei progressi verso un obiettivo della community.
  • Memorizza i punti riscattati tramite comandi.

Azioni

  • Increment Counter— aggiunge o sottrae quantità personalizzate.
  • Set Counter Value— imposta un numero specifico.
  • Reset State Node— torna al valore iniziale predefinito.

Esempio: festeggia ogni 5 messaggi

Qualsiasi messaggio ─▶ Contatore (nome: hype5) ─▶ Condizione (value % 5 === 0?) ─▶ Riproduci festeggiamento

Nel nodo Condition, confronta state.hype5.value oppure usa semplicemente l'opzione integrata “Trigger when value matches Target” nelle proprietà del nodo Counter.

04 · Limitatore di frequenza (Throttle)

Il limitatore ricorda i timestamp e rifiuta nuovi eventi finché non viene rispettata la frequenza specificata.

Ideale quando ti serve

  • “Solo cinque partecipazioni alla lotteria al minuto.”
  • “Una chiamata API ogni 10 secondi.”
  • “Scarta gli avvisi se l'overlay è già occupato.”

Configurazione

  • Imposta il numero massimo di eventi consentiti.
  • Scegli la finestra temporale (secondi).
  • Decidi se mettere in coda o scartare gli eventi in eccesso.
Attenzione: I limitatori non si azzerano automaticamente quando modifichi il flusso. Usa Reset State Node se ti serve ripartire da zero durante i test.

05 · Memoria utenti

User Memory gestisce un elenco con nome di persone uniche. Ricorda gli utenti quando partecipano, controlla quell'elenco nei messaggi successivi, rimuovi una persona, scegli un vincitore casuale oppure svuota solo quell'elenco.

Ideale per

  • Idoneità basata su regali o badge.
  • Ricordare gli spettatori che hanno messo Mi piace, si sono iscritti o hanno partecipato.
  • Estrazioni con una partecipazione per utente.
  • Elenchi separati per campagne separate.

Operazioni

  • Remember User e Forget User.
  • User Is Remembered.
  • Pick Random User.
  • Clear All Users oppure Reset State Node.
Trigger di partecipazione ──▶ Remember User ······▶ User Memory: Partecipanti Comando di estrazione ─────▶ Pick Random User ···▶ User Memory: Partecipanti Comando di azzeramento ────▶ Clear All Users ·····▶ User Memory: Partecipanti

I fili verde acqua continui trasportano gli eventi. I collegamenti viola tratteggiati mostrano quale memoria condivisa usa un'operazione. Ogni User Memory ha un proprio conteggio, una modalità di persistenza e una politica di azzeramento, quindi svuotare un elenco non influisce su un altro.

Consulta la guida dedicata Guida a User Memory per screenshot verificati, un flusso di estrazione scaricabile, idoneità TikTok, esempi di partecipazione e dettagli sull'azzeramento.

06 · Soluzioni pratiche

Scegli uno scenario e segui i passaggi.

Tempo di attesa del comando

  1. Nodo interruttore chiamato “commandCooldown”.
  2. Trigger → interruttore → risposta.
  3. Set Gate OFF → Delay → Set Gate ON.
  4. Se vuoi, aggiungi un messaggio chat “Tempo di attesa attivo” all'uscita false.

Omaggi limitati

  1. Contatore con valore predefinito 0, obiettivo 3.
  2. Incrementa dopo ogni riscatto.
  3. Quando value ≥ 3, passa al ramo “Spiacenti, tutto esaurito”.
  4. Usa l'azione Reset alla fine della diretta.

Interruttore degli spettatori

  1. Interruttore chiamato “overlayToggle”.
  2. !overlay on comando → Set Gate ON.
  3. !overlay off comando → Set Gate OFF.
  4. Tutti i trigger dell'overlay passano attraverso l'interruttore.

Diagrammi di flusso di esempio

Trigger ─▶ Interruttore (overlayToggle) ─▶ Se ON → Mostra overlay └─false─▶ Avvisa il moderatore “Overlay disattivato”
Riscatta ricompensa ─▶ Contatore ticketsSold ├─value < 50 ─▶ Approva riscatto └─value ≥ 50 ─▶ Rifiuta + rimborsa punti

07 · Risoluzione dei problemi e domande frequenti

Sintomo Causa probabile Soluzione
L'azione Set Gate State non viene salvata. Non esiste un nodo interruttore corrispondente (oppure i nomi differiscono). Aggiungi prima il nodo interruttore e verifica che il menu a discesa faccia riferimento a esso.
Il contatore non aumenta mai. Il flusso salta il nodo contatore oppure la porta è false. Verifica che il collegamento del trigger passi attraverso il contatore e che l'uscita della porta sia true.
Il limitatore blocca tutto per sempre. Finestra troppo restrittiva o stato residuo dei test. Allenta il limite e inserisci un'azione Reset State Node prima di riprovare.
Un'operazione User Memory non ha il collegamento tratteggiato. Non è selezionata alcuna memoria di destinazione. Scegli la memoria con nome nelle proprietà dell'operazione oppure trascina il connettore laterale viola sulla memoria.
I pulsanti delle guide non si aprono. Esecuzione nell'estensione senza aggiornare le risorse web_accessible. Assicurati che actions/state-nodes-guide.html sia incluso nel manifest e ricarica l'estensione.

Elenco dei controlli di test

  • Usa lo strumento “Send Test Event” di Event Flow per simulare comandi.
  • Durante la verifica, accorcia temporaneamente i tempi di attesa (2 secondi) oppure riduci gli obiettivi dei contatori.
  • Azzera i nodi di stato tra un test e l'altro per non leggere dati obsoleti.
  • Etichetta i rami (ad esempio “false → tempo di attesa attivo”) per seguirne visivamente il percorso.

08 · Passaggi successivi

Combina i nodi di stato con il resto degli strumenti Event Flow:

  • Usa porte logiche (AND/OR/NOT) prima di un interruttore per decidere chi può cambiarne lo stato.
  • Memorizza i metadati basati sullo stato sotto meta così gli overlay sanno perché si è attivato un ramo.
  • Esporta gli schemi funzionanti come modelli, così il team potrà reimportarli in seguito.
Continua a sperimentare! La nuova Guida a Event Flow si affianca a questo manuale per aiutarti a padroneggiare sia la logica sia lo stato.