Commands: !title (Set-Variant) und !game (Set-Variant)¶
Die Mod-Erweiterung von !title und !game: wenn ein Mod ein Argument mitschickt, wird Title/Game gesetzt. Ohne Argument bleibt's bei der Read-only-Anzeige.
Voraussetzung: Mod-Permissions Patterns: If/Else (Input vorhanden?) + Set Channel Title/Game Sub-Actions: 5-7 pro Command
Action: [Cmd] !title (erweitert)¶
Wir erweitern die existierende Title-Action um Set-Logic.
Sub-Action 1: If/Else — Argument vorhanden?¶
| Feld | Wert |
|---|---|
| Input | %rawInput% |
| Operation | Is Null or Empty |
Then-Branch: keine Argumente → READ-only (siehe Standard !title).
Sub-Action 2 (im Then von 1): Get User Info + Send Message + Break¶
2a. Get User Info for Target (User Login = %broadcastUserName%)
2b. Send Message: "📺 Aktueller Titel: %targetChannelTitle%"
2c. Break
Sub-Action 3: Permission-Check zur Laufzeit¶
Mod-Permission ist im Command schon gesetzt. Falls du es ZUSÄTZLICH in der Action prüfen willst (z.B. weil du !title für alle zulassen willst, aber Set nur für Mods):
3. If/Else: %isModerator% Equals false
└─ If/Else: %userType% Not Equals broadcaster
├── Send Message: "@%user% nur Mods können den Titel ändern."
└── Break
(Optional — wenn Command-Permission auf Mods steht, kommt das eh nicht hier durch.)
Sub-Action 4: Set Channel Title¶
Pfad: Twitch → Channel → Set Channel Title
| Feld | Wert |
|---|---|
| Title | %rawInput% |
Setzt %titleSuccess% (bool).
Sub-Action 5: If/Else — Erfolg¶
5. If/Else: %titleSuccess% Equals false
├── Send Message: "@%user% Twitch hat abgelehnt — vielleicht zu lang (max 140)?"
└── Break
Sub-Action 6: Send Message — Erfolg¶
| Feld | Wert |
|---|---|
| Message | 📺 Titel geändert: %rawInput% |
Action-Tree (!title komplett)¶
[Cmd] !title
├── 1. If/Else: %rawInput% Is Null or Empty
│ ├── Get User Info for Target (Self)
│ ├── Send Message: "📺 Aktueller Titel: %targetChannelTitle%"
│ └── Break
├── 2. Set Channel Title: Title = %rawInput%
├── 3. If/Else: %titleSuccess% Equals false
│ ├── Send Message: "@%user% Twitch hat abgelehnt..."
│ └── Break
└── 4. Send Message: "📺 Titel geändert: %rawInput%"
Action: [Cmd] !game (erweitert)¶
Gleiche Logik mit Set Channel Game.
[Cmd] !game
├── 1. If/Else: %rawInput% Is Null or Empty
│ ├── Get User Info for Target (Self)
│ ├── Send Message: "🎮 Wir spielen gerade: %game%"
│ └── Break
├── 2. Set Channel Game (Source: String, Title: %rawInput%)
├── 3. If/Else: %gameSuccess% Equals false
│ ├── Send Message: "@%user% Twitch kennt das Game nicht — exakter Name?"
│ └── Break
└── 4. Send Message: "🎮 Game geändert: %gameName%"
Set Channel Game — Spezial¶
%gameSuccess% ist false wenn:
- Game-Name keiner Twitch-Category entspricht (Tippfehler)
- Game-Name komplett unbekannt ist
Bei Erfolg sind dann %gameName% (offizieller Name), %gameId%, %gameBoxArt% (URL zum Cover) gesetzt.
Command-Einstellungen¶
| Feld | Wert |
|---|---|
| Group | AzaCraft Standard (gleicher wie Read-only-Version) |
| Grant Type | Allow |
| Groups | (siehe Note) |
| Global Cooldown | 0 |
| User Cooldown | 30 |
Note zu Permissions: Wenn Read-only Anzeige für alle bleiben soll aber Set nur für Mods → entweder zwei separate Commands oder Runtime-Check in der Action (siehe Sub-Action 3 oben).
Einfacher: separate Actions/Commands:
- !title (alle dürfen → nur Read)
- !settitle <neuer Titel> (Mod-Only → Set)
Verwendungsbeispiele¶
| Chat | Wer | Resultat |
|---|---|---|
!title |
Alle | "📺 Aktueller Titel: Minecraft..." |
!title Neues Stream-Thema heute |
Mod | "📺 Titel geändert: Neues Stream-Thema heute" |
!title Neuer Titel |
Normaler User | (kommt nicht durch wenn Permission auf Mods) |
!game |
Alle | "🎮 Wir spielen gerade: Minecraft" |
!game Just Chatting |
Mod | "🎮 Game geändert: Just Chatting" |
!game UnbekanntesGameXYZ |
Mod | "Twitch kennt das Game nicht..." |
Erweiterung: Title + Game gleichzeitig¶
!setup <game> | <titel> mit Pipe als Trenner:
[Cmd] !setup
├── 1. If/Else: %rawInput% Not Contains "|"
│ ├── Send Message: "@%user% nutze: !setup <game> | <titel>"
│ └── Break
├── 2. Set Argument: gameInput = $regex(%rawInput%, ^([^|]+)\|.*$, $1)$
├── 3. Set Argument: titleInput = $regex(%rawInput%, ^[^|]+\|(.+)$, $1)$
├── 4. Set Channel Game: %gameInput%
├── 5. Set Channel Title: %titleInput%
└── 6. Send Message: "📺 Game: %gameName% · Titel: %titleInput%"
(Regex-Inline-Function-Syntax kann variieren — bei Bedarf Multi-Step mit Set Argument splitten.)
Häufige Fallen¶
- Titel zu lang — Twitch max 140 Zeichen.
titleSuccess = false - Game-Name case-sensitive? — Twitch Game-API ist meist tolerant, aber exact spelling hilft
- OAuth-Permissions — wenn Twitch-Token nicht Channel-Edit-Scope hat, schlägt's fehl. Im SB unter Twitch-Settings prüfen
- Bot setzt Titel — wenn du den Bot-Account aktiv hast und der hat keine Channel-Edit-Rechte, könnte's fehlschlagen. Broadcaster-Account fallback nutzen (Sub-Action-Setting)
Quellen¶
- Set Channel Title: https://docs.streamer.bot/api/sub-actions/twitch/channel/set-channel-title
- Set Channel Game: https://docs.streamer.bot/api/sub-actions/twitch/channel/set-channel-game