Zum Inhalt

Pattern: Set Argument — Defaults und Fallbacks

Set Argument legt ein lokales Argument an oder überschreibt eines. Wichtigster Use-Case: Default-Werte BEVOR If/Else prüft.

Pfad: Core → Arguments → Set Argument Doku: https://docs.streamer.bot/api/sub-actions/core/arguments/set-argument

Felder

Feld Bedeutung
Variable Name Name OHNE %. Beispiel targetLogin
Value Wert. Kann %arg% und $func()$ enthalten
Auto Type Default an. Automatische Typ-Erkennung (Zahl/Bool/String)

Auto Type aus = alles als String. Selten nötig.

Klassischer Use-Case: Default vor Check

1. Set Argument: targetLogin = $replace(%input0%, @, )$
2. If/Else: %targetLogin% Is Null or Empty
   └─ Set Argument: targetLogin = %userName%
3. Get User Info for Target (User Login = %targetLogin%)

Schritt 1: Default vom Input mit @ entfernt. Wenn %input0% leer war, ist targetLogin jetzt leer. Schritt 2: Falls leer → mit Sender überschreiben. Schritt 3: %targetLogin% enthält jetzt entweder den Target oder den Sender.

Use-Case: Output kopieren bevor er überschrieben wird

Get Random Number setzt immer %randomNumber%. Wenn du zwei Random Numbers brauchst musst du den ersten Wert sichern:

1. Get Random Number (0, 100)
2. Set Argument: roll1 = %randomNumber%
3. Get Random Number (0, 100)
4. Set Argument: roll2 = %randomNumber%
5. Send Message: "@%user% rollt %roll1% und %roll2%"

Use-Case: String-Manipulation als Variable

Wenn du den replaced/lowercased Wert mehrfach brauchst, einmal in eine Variable:

1. Set Argument: cleanInput = $lower($replace(%input0%, @, ))$
2. ... %cleanInput% an mehreren Stellen verwenden ...

Ohne Set Argument müsstest du $lower($replace(%input0%, @, ))$ in jedem Feld wiederholen.

Use-Case: Bool für If/Else vorbereiten

1. Set Argument: isAdmin = false
2. If/Else: %userType% Equals broadcaster
   └─ Set Argument: isAdmin = true
3. If/Else: %userType% Equals moderator
   └─ Set Argument: isAdmin = true
4. If/Else: %isAdmin% Equals true
   └─ ... mod-only Logic ...

Häufige Fallen

  • % im Variable-Name-Feld → falsch. Nur den nackten Namen
  • Auto Type unbeabsichtigt aktiv — "5" wird zu Integer 5, dann Equals "5" schlägt fehl. Im Zweifel mit Equals (Ignore Case) String-Vergleich erzwingen oder Auto Type aus
  • Set Argument im falschen Branch — innerhalb eines If/Else-Then-Pfads gesetzte Argumente überleben das If/Else trotzdem (Scope ist die ganze Action)

Pattern-Kombinationen

Set Argument ist Glue-Code zwischen vielen Patterns. Klassische Kombi:

Set Argument → If/Else → Set Argument → Get User Info for Target → Send Message

oder

Get Random Number → Set Argument → If/Else cascade → Send Message