Command: !so (Shoutout)¶
Sendet einen offiziellen Twitch-Shoutout an einen User. Twitch zeigt ihn als Channel-Empfehlung an. Funktioniert nur während du LIVE bist und hat strikte Cooldowns von Twitch selbst.
Patterns: Set Argument (Target-Strip) + Send Shoutout + If/Else (Success-Check) Sub-Actions: 5 Cooldown: User 5s / Global 0s (Twitch hat eigene Cooldowns) Permissions: Mod-Only (sonst missbrauchbar)
Action: [Cmd] !so¶
Sub-Action 1: Set Argument — Target-Login säubern¶
Pfad: Core → Arguments → Set Argument
| Feld | Wert |
|---|---|
| Variable Name | targetLogin |
| Value | $replace(%input0%, @, )$ |
Sub-Action 2: If/Else — Kein Target angegeben¶
Pfad: Core → Logic → If/Else
| Feld | Wert |
|---|---|
| Input | %targetLogin% |
| Operation | Is Null or Empty |
Then-Branch:
Sub-Action 3 (im Then von 2): Send Message + Break¶
| Feld | Wert |
|---|---|
| Message | @%user% nutze !so @username |
Plus Core → Logic → Break.
Sub-Action 4: Send Shoutout¶
Pfad: Twitch → Moderation → Send Shoutout
| Feld | Wert |
|---|---|
| User Login | %targetLogin% |
Setzt %shoutoutSuccess% (bool).
Sub-Action 5: If/Else — Shoutout fehlgeschlagen¶
| Feld | Wert |
|---|---|
| Input | %shoutoutSuccess% |
| Operation | Equals |
| Value | false |
Then-Branch:
Sub-Action 6 (im Then von 5): Send Message + Break¶
| Feld | Wert |
|---|---|
| Message | @%user% Shoutout hat nicht geklappt. Stream offline, Cooldown läuft noch (2 Min) oder @%targetLogin% bereits in letzten 60 Min geshoutet. |
Plus Core → Logic → Break.
Sub-Action 7: Send Message (Erfolg + manuelle Empfehlung)¶
| Feld | Wert |
|---|---|
| Message | 🎉 Check out @%targetLogin% — twitch.tv/%targetLogin% |
| Send using bot account | aktiv |
Der Send Shoutout macht die Twitch-eigene Shoutout-API-Aktion. Diese Send Message ist zusätzlich für die Sichtbarkeit im Chat.
Action-Tree¶
[Cmd] !so
├── 1. Set Argument: targetLogin = $replace(%input0%, @, )$
├── 2. If/Else: %targetLogin% Is Null or Empty
│ ├── 3a. Send Message: "@%user% nutze !so @username"
│ └── 3b. Break
├── 4. Send Shoutout (User Login = %targetLogin%)
├── 5. If/Else: %shoutoutSuccess% Equals false
│ ├── 6a. Send Message: "@%user% Shoutout hat nicht geklappt..."
│ └── 6b. Break
└── 7. Send Message: "🎉 Check out @%targetLogin% — twitch.tv/%targetLogin%"
Command-Einstellungen¶
| Feld | Wert |
|---|---|
| Name | !so — Shoutout |
| Group | AzaCraft Mod |
| Commands | !so!shoutout |
| Location | Start |
| Sources | Twitch Message |
| Global Cooldown | 0 |
| User Cooldown | 5 |
| Grant Type | Allow |
| Groups | Moderators (plus Custom Group falls vorhanden) |
Permissions auf Allow + Moderators stellt sicher dass nur Mods das auslösen können. Broadcaster bleibt immer erlaubt.
Twitch-Limits (NICHT umgehbar)¶
- 2 Minuten Global Cooldown zwischen ZWEI Shoutouts (egal welcher Target)
- 60 Minuten Per-User Cooldown für denselben Target
- Broadcaster muss LIVE sein
- Bei Verletzung →
%shoutoutSuccess% = false
Verwendungsbeispiele¶
| Chat | Wer | Resultat |
|---|---|---|
!so @bob |
Mod oder Broadcaster | Shoutout-Karte + Send Message |
!so bob |
Mod | Funktioniert (kein @ nötig) |
!so @bob |
Normaler User | Permissions blocken, nichts passiert |
!so |
Mod | Hilfe-Message wegen leerem Target |
!so @bob (60 Min nach letztem für bob) |
Mod | Fehler-Message |
Erweiterung: Game-Info im Shoutout¶
Vor Sub-Action 7 ein Get User Info for Target einfügen:
4b. Get User Info for Target (User Login = %targetLogin%)
...
7. Send Message: "🎉 Check out @%targetUser% — twitch.tv/%targetLogin% — zuletzt gestreamt: %game%"
Import-Code¶
Streamer.bot Export-String
Hier kommt der Export-String rein sobald exportiert.
Quellen¶
- Send Shoutout: https://docs.streamer.bot/api/sub-actions/twitch/moderation/send-shoutout
- Get User Info for Target: https://docs.streamer.bot/api/sub-actions/twitch/user/get-user-info-for-target