TwitchBOT Handbuch HANSEN TV Dashboard ↗

Der HANSEN-TV-Bot, von A bis Z

TwitchBOT ersetzt StreamElements und Nightbot für den Kanal HANSEN_de — Chat-Befehle, Moderation, ein Punkte-System, Chat-Games, Timer, Automationen, öffentliche Statistik-Seiten und ein paar Integrationen, alles über bot.hansen-tv.de.

Dieses Handbuch listet jeden Chat-Befehl, jede Einstellung und die Fragen, die erfahrungsgemäß aufkommen. Nutz die Suche oben — sie filtert die ganze Seite.

Deckt Bot-Version 0.66 ab · Sept. 2026 Läuft auf Contabo / Pterodactyl Sprache der Bot-Antworten: Deutsch oder Englisch

Wie das Dashboard aufgebaut ist

  • Übersicht — Live-Status, Kennzahlen, Event-Feed, öffentliche Profil-Seite.
  • Chatbot — Commands, Timers, Automationen, Counters, Module, Import.
  • Moderation — Spam-Filter, verbotene Wörter, Whitelist, Rechte-Ausnahmen, Nutzer-Verwaltung.
  • Loyalty — Punkte-Leaderboard & Einstellungen, Quotes, Stream-Store.
  • Integrationen — Discord.
  • Analyse — Aktivität, Audit-Log, Chat-Statistik.

01 Einrichten

Vom Login bis der Bot im Chat schreibt.

  • Auf bot.hansen-tv.de mit dem Twitch-Kanal-Account einloggen (OAuth).
  • Übersicht → Bot-Einstellungen → „Zum Chat hinzufügen“. Der Bot joint sofort — ein manueller Neustart ist nicht nötig.
  • Optional „Stummschalten“ — der Bot bleibt im Chat, schreibt aber nichts (nützlich beim Einrichten).
  • Unter Sprache der Bot-Antworten Deutsch oder Englisch wählen. Betrifft alle eingebauten Antworten (Games, Moderation, !points …), nicht deine eigenen Command-Texte.
Dashboard-Zugriff hat der Kanal-Account selbst. Mods moderieren über Twitch; im Dashboard vergibst du unter Moderation → Nutzer die interne Rolle ADMIN für erweiterte Bot-Rechte.

02 Commands

Eingebaute Standard-Befehle sind sofort da und lassen sich pro Kanal abschalten. Eigene Commands legst du unter Chatbot → Commands an (mit Aliassen, Cooldowns und Rechte-Level).

Standard-Befehle

!commandsAlle
Listet alle verfügbaren Befehle (eigene + Standard + aktive Games).
!uptimeAlle
Wie lange der Stream schon läuft — oder „offline“.
!followageAlle
Seit wann der:die Aufrufende dem Kanal folgt.
!gameAlle
Aktuelle Kategorie.
!titleAlle
Aktueller Stream-Titel.
!timeAlle
Aktuelle Uhrzeit (im gewählten Sprach-Format).
!botAlle
Kurz-Info zum Bot.
!points !punkteAlle
Eigener Punktestand — oder !points <user> für jemand anderen. Heißt die Währung z. B. „Kekse“, funktioniert automatisch auch !kekse.
!rank !rangAlle
Eigener Platz im Leaderboard, inkl. Rangname wenn Ränge gesetzt sind.
!so <user>Mods
Shoutout: Twitch-Shoutout + Chat-Hinweis mit Link.
!permit <user> [sek]Mods
Erlaubt einem Nutzer kurz (Standard 60 s) einen Link zu posten, ohne dass der Link-Filter greift.
!storeAlle
Zeigt die einlösbaren Store-Artikel mit Preis.
!redeem <artikel>Alle
Löst einen Store-Artikel gegen Punkte ein — geht in die Genehmigungs-Queue.
!predictionMods
Startet eine native Twitch-Prediction. Details unter Integrationen.

Eigene Commands

  • Name, Antwort-Text, Rechte-Level (Alle / Follower / Sub / VIP / Mod / Broadcaster), Cooldowns (global / pro Nutzer / pro Kanal).
  • Aliase pro Command über den „Aliase“-Button.
  • Der Antwort-Text darf Text-Variablen enthalten.
  • Ein eigener Command mit gleichem Namen hat immer Vorrang vor dem Standard-Befehl.

Counters

Ein Zähler wie !deaths: !deaths zeigt den Wert, !deaths +1 / -2 ändert ihn, !deaths 0 setzt ihn, !deaths reset nullt ihn. In Texten über {count:deaths}. Name per Klick direkt in der Tabelle umbenennbar; „Ändern durch“ legt fest, wer +/- darf.

03 Text-Variablen

In eigenen Commands und Timern verfügbar. In geschweiften Klammern.

{user} {user.login}
Anzeigename bzw. Login der:des Aufrufenden.
{channel}
Kanalname.
{args} {target} {touser}
Alles nach dem Befehl / erstes Wort (ohne @) / Zielnutzer, sonst Aufrufende:r.
{count} {count:name}
Wert des zugehörigen bzw. eines benannten Counters.
{uptime} {viewers} {game} {title}
Live-Werte des Streams.
{followage} {rank} {time}
Follow-Dauer / Rangname / Uhrzeit.
{urlfetch <url>} {customapi <url>}
Holt Text von einer URL und setzt ihn ein (SSRF-gefiltert — nur öffentliche HTTPS-Ziele).

04 Module & Chat-Games

Unter Chatbot → Module. Jedes Modul einzeln an/aus, mit eigenen Parametern. Einsätze und Gewinne laufen über das Punkte-System und landen im Audit-Log.

8ball

Zufällige Ja/Nein-Antwort. Antwortliste anpassbar.
!8ball <frage>

Roulette

Einsatz auf Rot/Schwarz. Gewinnchance & Einsatzgrenzen einstellbar.
!roulette <einsatz|all|50%>

Slots

Drei Emote-Walzen, Multiplikator 2× / 10× / 15× / 25×.
!slots <einsatz>

Duel

1-gegen-1 um einen Einsatz, Münzwurf, Pot an den Gewinner.
!duel <user> <einsatz> · !accept · !deny

Verlosung

Mods öffnen, Zuschauer treten mit !join bei, Mods ziehen.
!raffle · !join · !raffle draw

Giveaway

Wie die Verlosung, aber mit Punkte-Kosten und Sub-Luck (mehr Lose für Subs). Ziehungs-Historie im Modul.
!giveaway [kosten] <titel> · !join · !giveaway draw

Wetten / Contests

Bot-interne Wette auf zwei Seiten, Pari-mutuel-Auszahlung.
!bet open <titel> · !bet win|lose <einsatz> · !bet close · !bet payout win|lose

Votekick

Community-Abstimmung → Timeout ab Netto-Ja-Schwelle. Mods/VIPs mit Rolle sind geschützt.
!votekick <user> · !yea · !nay

Emote-Pyramide

Erkennt eine fertige Pyramide automatisch, reagiert im Chat, optional Punkte für den Erbauer.
automatisch

Viewer-Queue

Warteschlange für Coop/Viewer-Games. Eintritt: Alle / Follower / Sub / VIP. Mods ziehen der Reihe nach.
!queue join [notiz] · !queue leave · Mods: open · close · next [n] · list · remove
Punkte-Contest vs. Prediction: !bet ist bot-intern (nutzt die Bot-Punkte, sofort auszahlbar). !prediction ist die native Twitch-Prediction mit Kanalpunkten — siehe Integrationen.

05 Moderation

Unter Moderation → Moderation. Ein Preset-Umschalter (Aus / Minimal / Mittel / Streng) setzt sinnvolle Werte für alle Filter; einzelne Filter lassen sich aufklappen und feinjustieren. Mods und Broadcaster sind von allen Filtern ausgenommen.

SPAM
Emote-Flut (max. Emotes pro Nachricht) und unsichtbare Zeichen (Zero-Width).
FLOOD
Zu viele Nachrichten in kurzer Zeit.
REPEATED
Dieselbe Nachricht mehrfach.
CAPS
Zu hoher Großbuchstaben-Anteil (ab einer Mindestlänge).
SYMBOLS
Zu viele Sonderzeichen.
LENGTH
Wall-of-Text ab einer Maximallänge.
ZALGO
Übermäßig viele kombinierende Zeichen (verzerrter Text).
LINKS
Links unterbinden. Ausnahme-Rollen (Sub / VIP) per Häkchen, kurzfristige Freigabe per !permit, erlaubte Domains über die Whitelist.
BANNED_WORDS
Verbotene Wörter als Gruppen (Name, Sanktion, Regex-Flag, an/aus, Phrasenliste). Aufklappbarer Editor.

Sanktionsstufen & Eskalation

Pro Filter: INFO · WARNING (Hinweis im Chat) · TIMEOUT (mit Dauer) · BAN. Optional eskaliert der Bot Wiederholungstäter innerhalb eines Zeitfensters automatisch Richtung Timeout/Ban.

Whitelist

Vier Typen: Domain (erlaubter Link), Wort (Ausnahme vom Wortfilter), Nutzer (komplett ausgenommen), Rolle (Rolle komplett ausgenommen).

Nutzer-Verwaltung

Unter Moderation → Nutzer: Suche → Profil mit Status, Punkten, Watch-Time und letzten Buchungen. Interne Rollen ADMIN / MODERATOR / VIP vergeben, Nutzer per Opt-out aus Punkten/Statistik nehmen.

06 Punkte & Ränge

Unter Loyalty → Punkte. Der Tab „Einstellungen“ steuert, wie Punkte vergeben werden.

Währungsname
Frei wählbar (z. B. „Kekse“). Der Chat-Befehl !<name> funktioniert dann automatisch.
Chat-Aktivität
Punkte pro Intervall für aktive Chatter.
Watch-Time
Punkte pro Zeit im Stream — nur wenn der Stream online ist.
Sub-Multiplikator
Abonnenten bekommen ein Vielfaches.
Follow / Sub / Raid-Bonus
Einmalige Punkte für diese Events.
Nur online zählen
Schaltet die gesamte Vergabe auf „nur bei Live-Stream“.
Ausgeschlossene Accounts
Liste von Logins, die keine Punkte bekommen (z. B. andere Bots).
Ränge
Benannte Stufen ab einer Punkte-Schwelle. Erscheinen bei !rank, in {rank} und im Leaderboard.

Leaderboard

Drei Tabs: Aktuell (Guthaben), Gesamt verdient (Summe aller positiven Buchungen — importierte Guthaben zählen hier nicht mit) und Watch-Time. Punkte lassen sich pro Nutzer manuell vergeben / setzen / zurücksetzen (mit Begründung, landet im Audit-Log).

Quotes

Zitatsammlung: !quote (zufällig), !quote <nr>, !quote add <text> (Mods). Verwaltung unter Loyalty → Quotes.

07 Store & Giveaways

Der Stream-Store (Loyalty → Stream-Store) lässt Zuschauer Punkte gegen Belohnungen eintauschen.

  • Artikel: Name, Kosten, Bestand (oder unbegrenzt), Typ (Text / Sound / Zugang / eigen), an/aus.
  • Zuschauer lösen mit !redeem <name> ein — die Punkte werden sofort abgebucht, die Einlösung landet als „ausstehend“ in der Queue.
  • Im Dashboard Genehmigen oder Ablehnen. Ablehnen erstattet Punkte und Bestand zurück.

Die Giveaway-Historie (Titel, Gewinner, Teilnehmerzahl) steht im Modul Giveaway unter Chatbot → Module.

08 Timer & Automationen

Timers

Chatbot → Timers. Wiederkehrende Nachrichten mit Intervall und Mindest-Chatzeilen (postet nur, wenn genug los ist). Optional als Twitch-Announcement mit Farbwahl statt normaler Nachricht.

Automationen

Chatbot → Automationen. Aufbau Trigger → Bedingungen → Aktionen. Aktionen u. a.: Chat-Nachricht, Timeout/Ban, Punkte geben/abziehen, Titel/Kategorie ändern, Shoutout, Umfrage starten, Prediction starten/beenden, anderen Command ausführen.

09 Statistik, Feed & Audit

Live-KachelnÜbersicht
Status, Zuschauer, Uptime und Chat pro Minute, alle 15 s aktualisiert.
Chat-StatistikAnalyse
Top-Chatter, Top-Commands, Top-Emotes (Twitch + BTTV / FFZ / 7TV) und Nachrichten pro Stunde. 3rd-Party-Emotes werden alle 6 h aktualisiert.
AktivitätAnalyse
Feed aus Follows, Subs, Resubs, Gift-Subs, Bits, Raids und Kanalpunkt-Einlösungen, mit Typ-Filter.
Audit-LogAnalyse
Jede Dashboard- und Bot-Aktion: Wer (echter Name), was, wann — inklusive Details.

10 Öffentliche Seiten

Ohne Login erreichbar, gepflegt unter Übersicht → Öffentliche Seite.

/c/<kanal>
Profil-Seite: Header-Bild, Avatar, Bio, Social-Links.
/c/<kanal>/leaderboard
Top 25 nach Punkten, mit Rangnamen.
/c/<kanal>/stats
Öffentliche Chat-Statistik — nur wenn im Dashboard aktiviert (Häkchen „Öffentliche Chat-Statistik“).

11 Integrationen

Discord

Integrationen → Discord. Der Bot postet über einen Discord-Webhook, sobald der Stream online geht — Embed mit Titel, Kategorie, Vorschaubild und Link.

  • Webhook in Discord anlegen (Kanal → Bearbeiten → Integrationen → Webhooks) und die URL einfügen. Nur echte discord.com/api/webhooks/…-URLs werden akzeptiert.
  • Erwähnung wählbar: keine / @everyone / @here / Rollen-ID.
  • Nachricht per Template: {mention} {title} {game} {url}. „Test senden“ schickt einen Beispiel-Post.

Import aus StreamElements / Nightbot

Chatbot → Import. Rohes JSON aus der jeweiligen API einfügen — die Quelle wird erkannt.

  • Nightbot (im Browser eingeloggt öffnen): api.nightbot.tv/1/commands, /1/timers.
  • StreamElements: api.streamelements.com/kappa/v2/bot/commands/<id>; Punkte über …/kappa/v2/points/<kanal>/top.
  • Übernimmt Commands, Timer, Quotes, verbotene Wörter und Loyalty-Punkte. „Vorschau“ zeigt die Fundzahlen, ohne zu schreiben.
  • Vorhandene Einträge werden nicht überschrieben, sondern übersprungen. Für Punkte werden die Logins bei Twitch aufgelöst; unbekannte werden übersprungen.

Twitch-Predictions

Native Kanalpunkte-Predictions, von Mods aus dem Chat gesteuert:

!prediction <titel> | <a> | <b>Mods
Startet mit den Optionen a/b (Fenster 120 s). Nur ein Titel → Optionen „Ja“ / „Nein“. Führende Zahl = Fenster in Sekunden.
!prediction lockMods
Sperrt weitere Einsätze.
!prediction resolve <nr>Mods
Löst mit Option Nr. auf (1-basiert).
!prediction cancelMods
Bricht ab, Kanalpunkte zurück.
Einmalig nötig: Der Broadcaster-Account muss im Dashboard neu verbunden werden, damit Twitch die Berechtigung channel:manage:predictions erteilt. Ohne das antwortet !prediction mit „Prediction fehlgeschlagen“.

12 FAQ

Die Fragen, die erfahrungsgemäß aufkommen.

Der Bot ist im Chat, antwortet aber auf nichts.

Der Reihe nach prüfen: Ist er stummgeschaltet (Übersicht → Bot-Einstellungen)? Ist der betreffende Standard-Befehl im Kanal abgeschaltet? Läuft noch ein Cooldown? Hat der:die Nutzende das nötige Rechte-Level (z. B. Mod-only)? Bei !points/!rank: Punkte-Modul überhaupt aktiv?

Ich habe einen neuen Kanal verbunden — muss ich den Bot neu starten, damit er joint?

Nein. Das war früher so, ist behoben: sobald ein Kanal aktiviert wird, joint der Bot automatisch.

Warum zählt die Watch-Time nicht?

Watch-Time (und je nach Einstellung auch Chat-Punkte) werden nur gezählt, während der Stream online ist. Außerdem prüfen: Steht der Account auf der Liste ausgeschlossener Accounts oder hat er Opt-out?

Wie ändere ich den Namen der Währung?

Loyalty → Punkte → Einstellungen → Währungsname. Der Chat-Befehl passt sich automatisch an: heißt sie „Kekse“, funktioniert !kekse genau wie !points.

Wie lege ich einen eigenen Command an?

Chatbot → Commands → neuer Command. Name ohne !, Antwort-Text (darf Variablen enthalten), Rechte-Level und Cooldowns. Aliase danach über den „Aliase“-Button.

Was bedeuten die Schutzstufen bei der Moderation?

Aus / Minimal / Mittel / Streng sind Presets: ein Klick setzt für alle Filter zusammenpassende Werte und Sanktionen. Danach kannst du einzelne Filter aufklappen und nachjustieren — die Stufe bleibt als Ausgangspunkt.

Wie funktioniert !permit?

!permit <user> (Mods) gibt einem Nutzer für 60 Sekunden frei, einen Link zu posten, ohne dass der Link-Filter zuschlägt. !permit <user> 120 für 120 Sekunden. Dauerhaft erlaubte Domains gehören in die Whitelist, ganze Rollen (Sub/VIP) über das Häkchen am Link-Filter.

!prediction sagt „Prediction fehlgeschlagen“.

Dem Bot fehlt die Twitch-Berechtigung channel:manage:predictions. Im Dashboard den Broadcaster-Account einmal neu verbinden — beim erneuten OAuth wird der Scope erteilt.

Unterschied zwischen !bet und !prediction?

!bet ist eine bot-interne Wette auf die Bot-Punkte — läuft komplett im Bot, sofort auszahlbar, auch wenn du keine Kanalpunkte-Predictions nutzen willst. !prediction startet die native Twitch-Prediction mit Kanalpunkten.

Wie importiere ich meine Commands von StreamElements oder Nightbot?

Chatbot → Import. Bei Nightbot api.nightbot.tv/1/commands im eingeloggten Browser öffnen, das JSON kopieren und einfügen. „Vorschau“ zeigt, was erkannt wurde; „Importieren“ übernimmt es. Vorhandene Commands bleiben unangetastet.

Der Discord-Post kommt nicht, wenn ich live gehe.

Prüfen: Integration aktiv, gültige Webhook-URL gespeichert (Test-Button nutzen), Häkchen „Bei Stream online“ gesetzt. Der Post kommt pro Stream nur einmal (Schutz gegen Doppel-Posts). Erkennt Twitch den Stream-Start verzögert, kann der Post ein paar Minuten brauchen.

Beim Laden ist die Seite kurz weiß / flackert.

Der Effekt (FOUC) ist behoben — das Dashboard tauscht sein Stylesheet erst, wenn das neue geladen ist. Falls es doch auftritt: einmal hart neu laden (Strg + F5).

Können Mods ins Dashboard?

Der Login läuft über den Kanal-Account. Innerhalb des Bots kannst du unter Moderation → Nutzer die Rolle ADMIN vergeben — die wirkt bot-intern (z. B. für geschützte Commands). Twitch-Mod/VIP werden bei Aktivität automatisch von Twitch übernommen.

Punkte eines Zuschauers sind falsch — was tun?

Loyalty → Punkte → Punkte vergeben. Nutzer suchen, dann vergeben (addieren), setzen (auf einen Wert) oder zurücksetzen. Jede Änderung steht mit Begründung im Audit-Log. Die letzten Buchungen eines Nutzers siehst du in seinem Profil.

Wie oft aktualisieren sich die Statistiken?

Live-Kacheln alle 15 s. Chat-/Emote-Statistik wird laufend gezählt (rückwirkend erst ab Einführung). Die Namen der 3rd-Party-Emotes (BTTV/FFZ/7TV) holt der Bot alle 6 Stunden.

Ist der Bot down?

bot.hansen-tv.de/health zeigt Version und Status. Nach einem Update dauert ein Deploy rund 10 Minuten, in denen der Bot kurz neu startet.

Bekommen andere meine Chat-Statistik zu sehen?

Nur wenn du es willst. /c/<kanal>/stats ist standardmäßig aus und wird erst mit dem Häkchen „Öffentliche Chat-Statistik“ (Übersicht → Öffentliche Seite) freigegeben.