Audit + Warning-Counter
Audit-Log einsehen
Im Dashboard: Community aktivieren → Moderation → Audit.
Jede Moderation-Aktion landet als Zeile in der Tabelle mod_actions. Die tatsächlich gespeicherten Felder sind:
action— einer vontimeout,ban,unban,untimeout,delete,warnmoderator_login/moderator_twitch_id— wer hat ausgelösttarget_username/target_twitch_id— gegen wenreason— der eingegebene Grund (kann leer sein)duration_sec— bei Timeout die Dauer in Sekundensource—dashboard(über UI ausgelöst),shield_auto(automatisch vom Smart-Shield) odercommand(Chat-Command wie in dieser Doku beschrieben)succeeded— ob die Twitch-API die Aktion angenommen hattwitch_status— der von Twitch zurückgegebene HTTP-Status (z. B. 204 = ok)error_code/failure_reason— bei Fehlschlag der interne Fehlercode, siehe Moderation Commands Troubleshootingmessage_id— bei!deletedie gelöschte Nachrichtcreated_at
Retention : 90 Tage — deutlich länger als Twitchs eigenes Mod-Log, das nur 14 Tage zurückblickt. Die letzten 500 Einträge zeigt dir das Dashboard direkt an, Älteres ist im Backend gespeichert und im Zweifel über den Support abrufbar.
Warning-Counter
!warn @username Grund ist eine rein interne Verwarnung — Twitch bekommt davon nichts mit, der User merkt selbst nichts. Jede !warn-Aktion schreibt zwei Dinge:
- einen Eintrag in
mod_actions(action=warn) fürs Audit-Log - einen Eintrag in
moderation_warnings(Felder u. a.target_login,moderator_login,reason,source,created_at)
Der angezeigte Zähler ("3× verwarnt") ist eine simple Zählung aller bisherigen Zeilen in moderation_warnings für diesen User in deinem Channel — ohne zeitliches Reset und ohne Schwellwert-Logik. Es gibt aktuell keine automatische Eskalation (z. B. "bei 3 Warnungen automatisch Timeout/Ban") — das musst du als Mod-Team weiterhin selbst entscheiden und manuell mit !timeout/!ban umsetzen.
Mod: !warn @trollchild Spam in Subs-Mode
Bot: @trollchild Verwarnung: Spam in Subs-Mode (Gesamt: 3)
Die Warning-Historie pro User findest du im Mod-Audit unter dem User-Profil.
Wie reagiert der Bot, wenn ein Command fehlschlägt?
Die im Code tatsächlich verwendeten Fehlercodes:
| Fehlercode | Bedeutung |
|---|---|
target_not_found | Username existiert nicht auf Twitch. Tippfehler? |
channel_not_bound | Bot nicht in diesem Channel aktiv — Twitch-Connect prüfen. |
channel_no_twitch_account | Channel hat kein verknüpftes Twitch-Konto. |
token_unavailable / helix_token_invalid | Twitch-Token fehlt oder ist ungültig — neu verbinden. |
scope_missing / helix_scope_missing | Twitch-Token hat den nötigen Mod-Scope nicht — Re-Connect mit erweitertem Scope. |
helix_forbidden | Twitch lehnt mit 403 ab (Rechteproblem). |
helix_rate_limited | Twitch-Rate-Limit (429), sehr selten. Kurz warten. |
helix_not_found / helix_conflict / helix_unprocessable | Twitch lehnt die Anfrage aus fachlichen Gründen ab (z. B. Ziel bereits gebannt). |
helix_unreachable | Twitch-API war kurzzeitig nicht erreichbar. |
invalid_duration | Timeout-Dauer ungültig (Twitch erlaubt 1s–14 Tage). |
invalid_target / message_id_required | Username-Format ungültig bzw. es fehlt die Nachrichten-ID für !delete. |
Hinweis: Ältere Doku-Versionen nannten hier helix_403/helix_429/internal_error — diese Strings gibt es im Code nicht. Die echten Codes heißen helix_forbidden bzw. helix_rate_limited. Der Bot postet bei Fehler eine kurze, auf Deutsch übersetzte Nachricht direkt im Chat.