If/Else matcht nicht richtig
Symptom
Abschnitt betitelt „Symptom“Dein If/Else nimmt immer den Then-Branch (oder immer den Else-Branch), obwohl die Bedingung „eigentlich“ stimmen sollte.
Schnell-Check (30 Sekunden)
Abschnitt betitelt „Schnell-Check (30 Sekunden)“- Log-Pane öffnen
- Command/Event auslösen
- Schauen ob
[INFO] If/Else: TrueoderFalsesteht - Daneben steht der tatsächliche Input-Wert: stimmt er mit dem überein was du erwartest?
Häufige Ursachen (Top 5)
Abschnitt betitelt „Häufige Ursachen (Top 5)“| Ursache | Symptom | Fix |
|---|---|---|
| Variable case-sensitive | %isVip% ist "True", Vergleich gegen "true" | Equals (Ignore Case) nutzen oder True schreiben |
| Auto Type aus | "10" < "9" (String-Vergleich statt Zahl) | Auto Type aktivieren (Checkbox im If/Else) |
| Variable nicht gesetzt | %meinWert% ist leer → vergleicht leeren String | Vorher mit Is Null or Empty prüfen |
| Operator verwechselt | Less Than statt Greater Than | Operator nochmal lesen |
| Kein ≤ Operator | Es gibt kein “Less Than or Equal” | Less Than mit Wert + 1: statt <= 10 → < 11 |
Debug: Bool-Werte
Abschnitt betitelt „Debug: Bool-Werte“Viele SB-Variablen geben Bools als kapitalisierte Strings zurück: "True" / "False" (nicht "true" / "false").
❌ If/Else: %isVip% Equals "true" → FALSCH (case mismatch)✅ If/Else: %isVip% Equals "True" → richtig✅ If/Else: %isVip% Equals (Ignore Case) "true" → richtigDebug: Zahlen als Strings
Abschnitt betitelt „Debug: Zahlen als Strings“Wenn Auto Type deaktiviert ist, vergleicht SB alles als String. String-Sortierung: "10" < "9" (weil "1" < "9").
❌ Auto Type aus: %randomNumber% Less Than 50 → "100" < "50" = true (String-Vergleich!)✅ Auto Type an: %randomNumber% Less Than 50 → 100 < 50 = false (Zahlen-Vergleich)Regel: Auto Type fast immer aktiviert lassen.
Debug: Variable existiert nicht
Abschnitt betitelt „Debug: Variable existiert nicht“Wenn eine Variable nicht gesetzt wurde, ist der Input-String leer. Less Than auf leeren String vs Zahl → undefined Verhalten.
✅ Prüfung vorschalten: If/Else: %meinWert% Does Not Exist → Send Error + Break If/Else: %meinWert% Less Than 50 → (jetzt sicher dass Variable existiert)Debug: Regex-Match
Abschnitt betitelt „Debug: Regex-Match“Bei Regex Match ist der Input der GANZE Text und der Value die Regex. Nicht umgekehrt.
❌ Input: ^!give (\d+)$ Value: %rawInput% → falsch herum✅ Input: %rawInput% Value: ^!give (\d+)$ → richtig