Direkt zum Hauptinhalt

Moderator-Aktionen

Korrektur nach Code-Gegenprüfung (Live-Code auf dem Anwendungsknoten): Die ursprüngliche Annahme dieser Seite — ein Team-Mitglied brauche nur „Twitch-Mod-Status + Workspace-Rolle editor", um im Dashboard zu moderieren — ist so nicht im Code zu finden. Der tatsächliche Zugriffsweg ist enger und anders aufgebaut:

Wie der Zugriff wirklich geprüft wird

Der Dashboard-Endpunkt hinter dem Quick-Mod-Panel (POST/GET /v1/mod-actions, aufgerufen von ) prüft in public/index.php ausschließlich: $owner = $svc['plan']->ownerOfChannel($channelId); if ($owner !== $p['user_id']) → 403 channel_not_owned. Das ist ein exakter Abgleich auf den Chatlix-Account, der den Bot/Kanal verbunden hat (bot_instances.user_id) — keine Rollenprüfung. Die Team-Rollen aus Team / Co-Streamer kennen gar keine Capability für Moderation; dort geht es nur um Overlays, Szenen, Integrationen, Team- und Token-Verwaltung.

Die Beschreibung der Moderationsaktionen sagt wörtlich: „Streamer (oder spätere Mod-Rolle) sieht Live-Chat-Tail mit Action-Buttons" — eine Mod-Rolle für Team-Mitglieder gibt es derzeit noch nicht. Aktuell kann ausschließlich der Owner-Account des Kanals die Dashboard-Buttons nutzen.

Auch die Rolle von „Twitch-Mod-Status" ist anders als ursprünglich beschrieben: Es wird nicht geprüft, ob die klickende Person persönlich auf Twitch Mod ist. Geprüft wird nur, ob der verbundene Account (der über OAuth autorisierte Broadcaster-Account) die nötigen Scopes besitzt (ModerationActionService::resolveContext, Kommentar „V1: Streamer-Token → moderator_id = broadcaster_id"). Der ModPanel-Hinweistext im Dashboard trifft es genauer: „der Bot muss Mod sein und im Channel aktiv" — gemeint ist der verbundene Account, nicht die einzelne Person am Dashboard.

Verfügbare Aktionen

Wichtige Unterscheidung, die die Vorversion dieser Seite verwischt hat: Es gibt zwei getrennte Ausführungswege, und nicht jede Aktion ist im Dashboard verfügbar.

Im Dashboard (Quick-Mod-Panel, nur für den Kanal-Owner-Account, siehe oben): Timeout, Ban, Unban/Untimeout, Nachricht löschen. Diese laufen technisch nicht direkt über die Twitch-Schnittstelle, sondern über den Chat-Bot/timeout, /ban vom Bot-Account aus).

Nur als in Twitch-Chat getippte Commands (nicht im Dashboard, ausgeführt vom Worker über HelixModerationClient gegen die echte Helix-API):

  • !timeout / !ban / !unban / !untimeout / !delete / !warn — dieselben Aktionen wie oben, hier per Helix banUser/unbanUser/deleteChatMessage.
  • Chat leeren (!clear) — eigener Helix-Call (clearChat), unabhängig vom Einzel-Löschen. Keine Dashboard-Oberfläche — kein Treffer für „chat_settings"/„clearChat" in den Dashboard-Svelte-Quellen.
  • Chat-Settings (!slow/!followers/!emoteonly/!subscribers) — Slow-Mode, Follower-Only, Emote-Only per updateChatSettings. Ebenfalls keine Dashboard-Buttons, nur Chat-Commands.
  • VIP/Mod-Status setzen (!vip/!unvip, !mod/!unmod) — addVip/removeVip, addModerator/removeModerator, laut Code broadcaster-only (Twitch verlangt den Broadcaster-Token, kein Moderator-Token). Es gibt keine Dashboard-UI dafür — die frühere Aussage „im Dashboard ab Rolle admin sichtbar" war falsch, es existiert schlicht kein Dashboard-Button.

Was ohne die richtigen Scopes passiert

Diese Aktionen brauchen serverseitig konkrete Twitch-Scopes auf dem verbundenen Account (moderator:manage:banned_users, moderator:manage:chat_messages, moderator:manage:chat_settings, channel:manage:vips, channel:manage:moderators — Details in Twitch-Scopes verstehen). Fehlt einer davon, siehst du die Buttons zwar, der Call schlägt aber mit einem klaren Fehler fehl statt stillschweigend nichts zu tun. Typische Codes, die im Dashboard als Klartext-Hinweis auftauchen:

  • missing_moderator_permission — der Bot-Account bzw. verbundene Account ist auf Twitch kein Mod (mehr) im Ziel-Channel.
  • rate_limited — zu viele Mod-Aktionen in kurzer Zeit, Twitch-eigenes Rate-Limit.
  • timeout_failed, ban_failed, delete_failed — der konkrete Helix-Call kam mit einem Fehler zurück (meist User bereits gebannt/Nachricht bereits gelöscht).

Logging

Jede Mod-Aktion landet mit Zeitstempel und Zielaccount in der mod_actions-Tabelle und ist über /v1/moderation/audit abrufbar. Korrektur: Dieser Endpunkt ist nicht rollenbasiert (kein viewer-Zugriff) — er nutzt denselben exakten Owner-Check wie das Mod-Panel selbst (bot_instances.user_id muss dem eingeloggten Account entsprechen). Aktuell kann also nur der Owner-Account dieses Audit-Log einsehen, nicht „ab Rolle viewer" wie zuvor behauptet. Die allgemeine Team-Aktivitäts-/Audit-Ansicht unter /dashboard/team/audit (siehe Team / Co-Streamer) ist ein separates, rollenbasiertes System (activity.view/logs.view, ab viewer) — ob dort auch Mod-Aktionen einlaufen, konnte im Rahmen dieser Prüfung nicht bestätigt werden.