Commands Export / Import
Wenn du nur 5-10 Custom-Commands migrierst, schreibst du die direkt manuell in SB ab. Bei 20+ Commands lohnt sich ein Batch-Workflow. Diese Seite erklärt beide Wege.
Entscheidungsbaum
Abschnitt betitelt „Entscheidungsbaum“| Anzahl Commands | Ansatz |
|---|---|
| < 10 | Manuell: je 1-2 Minuten pro Command |
| 10-30 | Halb-automatisch. Notion/Spreadsheet als Tabelle, dann manuell anlegen |
| 30+ | Voll-automatisch. JSON/CSV in SB importieren via Skript |
| 100+ | C#-Skript das die Export-Datei parst und SB-Actions direkt erstellt |
Streamer.bot hat kein natives CSV/JSON-Import-Tool für Custom-Commands: die SB-Import-Strings sind ein eigenes Format (siehe Import-Strings) und nicht direkt aus Fremd-Bot-Exporten erzeugbar.
Export aus den drei Bots
Abschnitt betitelt „Export aus den drei Bots“| Bot | Export-Möglichkeit | Format |
|---|---|---|
| StreamElements | Dashboard → Chat Commands → manuell kopieren | manuell |
| Streamlabs Cloudbot | Kein nativer Export | manuell |
| Streamlabs Chatbot (Desktop) | Commands → Edit → Export to CSV | CSV |
| Nightbot | API GET /1/commands (Bearer-Token) | JSON |
Details zum Export pro Quelle stehen in den jeweiligen Migrations-Pages: StreamElements, Streamlabs, Nightbot.
Variablen-Mapping (Quick-Reference)
Abschnitt betitelt „Variablen-Mapping (Quick-Reference)“| Bedeutung | StreamElements | Streamlabs | Nightbot | Streamer.bot |
|---|---|---|---|---|
| Chat-User | {user} | $(user) | $(user) | %user% |
| Kanal-Name | {channel.name} | $(channel) | $(channel) | %broadcastUser% |
| Ganzer Input | {message} | $(message) | $(query) | %rawInput% |
| Erstes Wort | {1} | $(1) | $(1) | %input0% |
| Target-User | {touser} | $(touser) | $(touser) | %targetUser% |
| Viewer-Count | {channel.viewers} | $(viewers) | $(viewers) | %viewerCount% |
| Game | {channel.game} | $(game) | $(game) | %gameName% |
| Title | {channel.title} | $(title) | $(title) | %title% |
| Followage | {user.followage} | $(followage) | – | %followAge% (aus Get User Info) |
| Random Zahl | {random.number} | $(random ...) | $(eval ...) | Get Random Number Sub-Action |
| URL Fetch | – | $(readapi ...) | $(urlfetch ...) | Fetch URL Sub-Action |
| Eval-Math | – | – | $(eval ...) | C#-Sub-Action |
Komplette Liste in der Variablen-Referenz.
Manueller Workflow (für < 10 Commands)
Abschnitt betitelt „Manueller Workflow (für < 10 Commands)“- Liste anlegen: Spreadsheet oder Notion mit Spalten:
Command-Name,Message,Cooldown,UserLevel - In SB:
CommandsPane →+ Add→ Command-Name eintragen (z.B.!discord) - Action anlegen (oder auf bestehende verweisen) → Trigger:
Command Triggered → !discord - Sub-Action:
Twitch → Send Message to Channel→ Message-Text mit umgeschriebenen Variablen - Command-Settings: Cooldown setzen, Permission setzen (Command-Settings)
Pro-Tipp: Dupliziere eine bestehende Action via Rechtsklick → Duplicate → umbenennen → Trigger ändern. Spart 80% der Klicks.
Halb-automatischer Workflow (für 10-30 Commands)
Abschnitt betitelt „Halb-automatischer Workflow (für 10-30 Commands)“-
Spreadsheet anlegen mit Spalten:
name message cooldown userLevel sb_message_translated !discord Discord: $(channel) 30 everyone Discord: %broadcastUser% !uptime Stream läuft seit $(uptime) 30 everyone Stream läuft seit %uptime% -
Variablen-Translation in der
sb_message_translated-Spalte via Find-and-Replace in der Tabelle -
In SB: Commands der Reihe nach anlegen: copy-paste aus der Spalte direkt in das SB-Message-Feld
-
Cooldowns in der Tabelle bereits dokumentiert → 1:1 ins Command-Settings übertragen
Bei 20 Commands dauert das etwa 45 Minuten: der Spreadsheet-Aufbau lohnt sich.
Voll-automatischer Workflow (für 30+ Commands)
Abschnitt betitelt „Voll-automatischer Workflow (für 30+ Commands)“SB hat keine offizielle Bulk-Import-API für Custom-Commands. Es gibt zwei Wege:
Variante A: SB-Import-String generieren (umständlich)
Abschnitt betitelt „Variante A: SB-Import-String generieren (umständlich)“SB-Import-Strings sind ein internes Format (Base64-encoded Action-Definitions). Es gibt Community-Tools die JSON in SB-Import-Strings konvertieren, aber das ist fragil und SB ändert das Format zwischen Versionen.
Wann sinnvoll: Wenn du 50+ identisch strukturierte Commands hast (alle haben nur ein Send Message Sub-Action mit anderem Text). Tool: streamerbot-importgen auf GitHub (Community-Projekte, Stand prüfen).
Variante B: C#-Sub-Action mit Loop
Abschnitt betitelt „Variante B: C#-Sub-Action mit Loop“Praktischer und stabiler: Du baust eine einmalige “Bulk-Importer”-Action in SB, die eine JSON/CSV liest und die Commands programmatisch erstellt.
Setup:
- JSON-Export (z.B. aus Nightbot) lokal speichern:
C:\sb-import\nightbot-commands.json - In SB → neue Action
[Tool] Import Custom Commands - Sub-Action:
Core → C# → Execute Code - C#-Code (vereinfacht):
using System.IO;using Newtonsoft.Json.Linq;
public void Execute() { var json = File.ReadAllText(@"C:\sb-import\nightbot-commands.json"); var data = JObject.Parse(json);
foreach (var cmd in data["commands"]) { string name = cmd["name"]?.ToString(); string msg = cmd["message"]?.ToString();
// Variablen-Translation msg = msg.Replace("$(user)", "%user%") .Replace("$(channel)", "%broadcastUser%") .Replace("$(query)", "%rawInput%");
// SB-API: Command + Action programmatisch anlegen // (nutzt die SB.Methods-Bridge: siehe SB-Doku) CPH.LogInfo($"Imported: {name} → {msg}"); }}Wichtig: Diese Action legt nicht direkt Commands an: das geht über die SB-API nur eingeschränkt. Sie loggt aber alle umgewandelten Nachrichten ins Action-Log, von wo aus du sie schneller manuell ins SB-UI kopierst.
Für echte Auto-Anlage: Nutze die Streamer.bot WebSocket-API extern (Node.js, Python) und schick DoAction-Befehle: komplex, aber für sehr große Migrationen (100+) der einzige saubere Weg.
Häufige Stolpersteine
Abschnitt betitelt „Häufige Stolpersteine“- Variablen vergessen zu translaten: Command läuft, aber
$(user)taucht wörtlich im Output auf → Find-and-Replace - Indizes verschoben:
$(1)→%input1%statt%input0%→ leerer Output - Cooldown verloren: Beim manuellen Anlegen vergessen → Spam-Gefahr. Cooldown-Spalte im Spreadsheet pflicht.
- UserLevel/Permission verloren: Subscriber-only-Commands werden everyone: siehe Permissions-Setup
- Doppelte Bot-Antworten im Test: Alter Bot ist noch aktiv: vor Test deaktivieren oder ausloggen
- Smart-Quotes in Messages: Wenn Excel/Word smart-quotes (
„") erzeugt, kann das in SB unschön aussehen: vor Copy-Paste in Notepad reinwerfen
Test-Plan nach Import
Abschnitt betitelt „Test-Plan nach Import“Bevor du in den Live-Stream gehst:
- Alle migrierten Commands einmal testen: Chat öffnen, jeden Command tippen, Output prüfen
- Variablen-Output prüfen: sind alle
%user%,%input0%etc. ersetzt? - Cooldown testen: Command zweimal hintereinander → zweite Ausführung blockiert?
- Permission testen: Subscriber-Only-Commands mit Nicht-Sub-Account testen
- Alten Bot aus dem Kanal entfernen oder seine Mod-Rolle revoken
- Im Live-Stream beobachten: mindestens 1h, dann ist klar ob was fehlt
- Variablen-Referenz: alle SB-Variablen mit Beispielen
- Migration von Nightbot: Nightbot-API-Export im Detail
- Migration von StreamElements: SE-Loyalty-Migration
- Migration von Streamlabs: SL CSV-Export