While: Schleifen in Actions
Wiederholt Sub-Actions in einer Schleife solange eine Bedingung wahr ist. Nützlich für Countdowns, Batch-Operationen und retry-artige Logik.
Core Logic WhileDoku: docs.streamer.bot · While
| Feld | Bedeutung | Empfehlung |
|---|---|---|
| Variable | Der Wert der bei jedem Durchlauf geprüft wird | z.B. %counter% |
| Operation | Vergleichsoperator (gleich wie bei If/Else) | z.B. Greater Than |
| Value | Rechte Seite des Vergleichs | z.B. 0 |
Die Operatoren sind identisch mit If/Else: Equals, Not Equals, Less Than, Greater Than, Contains, Regex Match, etc.
- While prüft die Bedingung
- Wenn wahr → alle Sub-Actions innerhalb der While-Group laufen
- Zurück zu Schritt 1
- Wenn falsch → Schleife endet, Action fährt nach der While-Group fort
Beispiel: Countdown im Chat
Abschnitt betitelt „Beispiel: Countdown im Chat“[Cmd] !countdown├── 1. Set Argument: counter = 5├── 2. While: %counter% Greater Than 0│ ├── Send Message: "%counter%…"│ ├── Delay: 1000ms│ └── Set Argument: counter = $math(%counter% - 1)$├── 3. Send Message: "LOS GEHT'S! 🎉"Ergebnis im Chat:
5…4…3…2…1…LOS GEHT'S! 🎉Beispiel: Batch-Shoutout
Abschnitt betitelt „Beispiel: Batch-Shoutout“Mehrere User hintereinander ankündigen:
[Event] Stream Online├── 1. Set Argument: shoutoutIndex = 0├── 2. Set Argument: shoutoutMax = 3├── 3. While: %shoutoutIndex% Less Than %shoutoutMax%│ ├── Global Get: autoShoutout_%shoutoutIndex% → shoutoutUser│ ├── If/Else: %shoutoutUser% Is Null or Empty → Break│ ├── Send Message: "Schaut bei @%shoutoutUser% vorbei!"│ ├── Delay: 2000ms│ └── Set Argument: shoutoutIndex = $math(%shoutoutIndex% + 1)$Sicherheits-Pattern: Max-Iterationen
Abschnitt betitelt „Sicherheits-Pattern: Max-Iterationen“Bau immer eine Obergrenze ein, falls die reguläre Abbruchbedingung nicht greift:
├── Set Argument: safetyCounter = 0├── While: %condition% Equals true│ ├── (deine Logik hier)│ ├── Set Argument: safetyCounter = $math(%safetyCounter% + 1)$│ ├── If/Else: %safetyCounter% Greater Than 50│ │ └── BreakWhile vs andere Patterns
Abschnitt betitelt „While vs andere Patterns“| Aufgabe | Besser |
|---|---|
| Countdown/Timer | While mit Delay |
| Zufalls-Auswahl | Random Group |
| Mehrere feste Varianten | Switch |
| Bedingungs-Check (einmalig) | If/Else |
Häufige Fallen
Abschnitt betitelt „Häufige Fallen“- Counter nicht hochzählen: Endlosschleife.
Set Argumentmit$math()$bei JEDEM Durchlauf. - Break innerhalb einer Group:
Breakbeendet die umschließende Group, nicht die While-Schleife. Zum Schleifenabbruch: die While-Bedingung falsch machen (z.B. Counter auf 0 setzen). - Zu schnelle Sends: Twitch drosselt bei vielen Messages in kurzer Zeit. Delay von 1–2 Sekunden einbauen.
- Variable initial nicht gesetzt:
%counter%ist undefined → While-Vergleich schlägt fehl. Immer vorherSet Argument.