Privilegierte Gateway-Intents auf Discord sind drei Berechtigungen, die aktiv freigegeben werden müssen: Presence, Server Members und Message Content. Der Besitzer des Bots muss sie im Developer Portal einschalten, bevor Discord diese Daten über das Gateway sendet. Es gibt sie, weil Mitgliederlisten und Nachrichtentexte von Haus aus sensibel sind. Fehlt einer, meldet der Bot keinen lauten Fehler. Er sieht dann stillschweigend die Ereignisse nicht mehr, die er braucht. Deshalb lässt sich „mein Bot ist online, tut aber nichts“ so oft auf einen Intent-Schalter zurückführen.
Was ein Gateway-Intent eigentlich ist
Wenn sich ein Bot mit Discord verbindet, bekommt er nicht automatisch jedes Ereignis aus jedem Server, in dem er ist. Er abonniert Kategorien von Ereignissen, die Intents heißen: Nachrichtenereignisse, Sprachstatus-Ereignisse, Server-Updates und so weiter. Die meisten Intents kannst du im Code frei angeben, und Discord gewährt sie ohne Rückfrage. Drei sind anders. Discord nennt sie privilegierte Intents, weil die Daten dahinter, also genau wer auf einem Server ist und was Mitglieder schreiben, so mächtig sind, dass der Besitzer des Bots aktiv im Developer Portal zustimmen muss. Im Code allein reicht nicht.
Fordert der Code eines Bots einen privilegierten Intent an, den der Besitzer für diese Anwendung nicht eingeschaltet hat, verweigert Discord den Login komplett. Der Bot kommt nicht in einem eingeschränkten Zustand online. Er verbindet sich gar nicht, und das Gateway schließt mit dem Fehler „disallowed intents“.
Die drei privilegierten Intents
- Presence Intent. Online-, Abwesend- und Offline-Status sowie benutzerdefinierte Aktivitäten jedes Mitglieds. Wird von Bots genutzt, die Live-Präsenzdaten anzeigen. Die meisten Ticket-, Moderations- und Shop-Bots brauchen ihn nicht, auch Noxyr nicht.
- Server Members Intent. Die vollständige Mitgliederliste sowie Beitritts- und Austrittsereignisse, Rollenänderungen und Änderungen von Spitznamen. Dieser Intent steckt hinter Willkommensnachrichten, Mitgliederzahlen und Anti-Raid-Erkennung.
- Message Content Intent. Der eigentliche Text einer Nachricht und nicht nur die Tatsache, dass eine Nachricht gesendet wurde. Ohne ihn sieht ein Bot, dass jemand in einem Kanal gepostet hat. Was geschrieben wurde, sieht er nicht.
Der Code von Noxyr fordert zwei der drei an: Server Members Intent und Message Content Intent. Presence Intent gehört zu keiner Funktion von Noxyr. Er wird deshalb nie angefragt und muss nie eingeschaltet werden.
Was ohne Server Members Intent kaputtgeht
Mit Server Members Intent erhält ein Bot die Ereignisse GUILD_MEMBER_ADD und GUILD_MEMBER_REMOVE. Das sind die Beitritts- und Austrittsereignisse, von denen fast jede Funktion rund um Mitglieder abhängt.
- Willkommensnachrichten. Eine Willkommensnachricht wird beim Beitritt ausgelöst. Ohne den Intent bekommt der Bot das Beitrittsereignis nie. Dann wird nichts gepostet und keine automatische Rolle vergeben.
- Mitgliederzahlen. Ein Kanal oder Widget mit der Live-Mitgliederzahl wird über dieselben Beitritts- und Austrittsereignisse aktualisiert. Ohne den Intent friert der Wert bei der zuletzt gesehenen Zahl ein.
- Anti-Nuke- und Raid-Schutz. Das Erkennen einer Beitritts-Welle oder das Beobachten verdächtiger Rollen- und Spitznamenänderungen hängt beides von Mitgliederereignissen ab. Schaltest du den Intent aus, ist dieser ganze Erkennungsweg blind.
- Verifizierungsabläufe. Jede Prüfung, die Beitrittsdatum, Rollen oder Kontoalter eines Mitglieds kontrolliert, braucht das Mitglieds-Objekt, das der Intent liefert.
Was ohne Message Content Intent kaputtgeht
Der Message Content Intent schaltet den eigentlichen Text einer Nachricht frei. Ein Bot kann ohne diesen Intent immer noch sehen, dass in einem Kanal eine Nachricht eingegangen ist und wer sie geschickt hat. Lesen kann er sie aber nicht.
- Auto-Responder. Ein Auslöser-Wort wie „Rückerstattung“ oder „Wie kann ich bezahlen“ erkennt man nur, wenn man den Nachrichtentext liest. Ohne Inhalt keine Übereinstimmung und keine Antwort.
- KI-Chat-Antworten. Ein KI-Assistent, der Fragen in einem Kanal oder bei einer Erwähnung beantwortet, braucht die Frage selbst. Ohne den Intent weiß er, dass jemand etwas geschrieben hat, hat aber nichts, was er an das Modell schicken könnte.
- Ticket-Transkripte. Ein Transkript, das festhält, was Team und Mitglieder in einem Ticket tatsächlich geschrieben haben, braucht Nachrichteninhalte. Ohne sie bekommst du nur eine Liste aus Zeitstempeln und Benutzernamen ohne Inhalt.
- Präfix-basierte Moderation. Alles, was Nachrichten nach verbotenen Wörtern, Einladungslinks oder Spam-Mustern durchsucht, liest Inhalte genauso wie ein Auto-Responder.
Slash-Befehle sind in beiden Fällen nicht betroffen, weil Discord Befehlseingaben getrennt von normalen Nachrichten zustellt. Speziell Funktionen, die lesen, was Mitglieder in normalen Nachrichten schreiben, hängen von diesem Intent ab.
So aktivierst du Intents im Developer Portal
- Öffne das Discord Developer Portal und wähle die Anwendung des Bots aus.
- Klicke in der linken Seitenleiste auf Bot.
- Scrolle zu Privileged Gateway Intents.
- Schalte Server Members Intent und Message Content Intent ein. Presence Intent fügst du nur hinzu, wenn ein Bot wirklich Live-Statusdaten braucht.
- Speichere die Änderungen und starte den Bot neu oder verbinde ihn erneut, damit er beim nächsten Login die neuen Intents übernimmt.
Der Schalter wirkt bei der nächsten Gateway-Verbindung und nicht sofort bei einem Bot, der schon angemeldet ist. Ein Bot, der mitten in einer Sitzung war, als ein Intent ausgeschaltet wurde, wird meist von Discord getrennt. Er muss dann erneut verbunden werden, sobald der Intent wieder aktiv ist.
Die Verifizierungsregel für 100 Server
Bei weniger als 100 Servern reicht es, den Schalter im Portal umzulegen. Überschreitet die Anzahl der Installationen eines Bots 100 Server, verlangt Discord, dass die Anwendung die Bot-Verifizierung durchläuft. Das ist ein Prüfprozess, bei dem der Besitzer den Bot zur Freigabe einreicht. Erst danach darf er privilegierte Intents in diesem Umfang nutzen. Ein nicht verifizierter Bot, der diese Schwelle erreicht, läuft auf den Servern weiter, auf denen er schon ist. Neu beitreten darf er aber nicht, bis die Verifizierung gewährt wird oder die privilegierten Intents, die er nicht unbedingt braucht, entfernt werden.
Das ist eine Regel der Discord-Plattform und keine Stellschraube, die einzelne Bot-Hoster kontrollieren. Sie existiert, damit datensensible Intents wie Server Members und Message Content nicht im großen Stil vergeben werden, ohne dass Discord prüft, was der Bot damit macht.
Warum Noxyr beide Intents prüft, bevor ein Token angenommen wird
Die Funktion Custom Bot von Noxyr führt den vollen Funktionsumfang unter einem Bot-Token aus, den du bereitstellst. Willkommensnachrichten, Mitgliederzahlen, KI-Chat, Ticket-Transkripte und Auto-Responder hängen alle von den beiden oben genannten Intents ab. Deshalb prüft das Dashboard, ob Server Members Intent und Message Content Intent eingeschaltet sind, bevor es deinen Token überhaupt annimmt. Ein Token, bei dem einer der beiden Intents aus ist, wird gleich abgelehnt. Er wird nicht angenommen, um dann später mit einem verwirrenden Gateway-Fehler still zu scheitern.
Wird ein Intent ausgeschaltet, während der Bot schon läuft (etwa wenn jemand ihn Monate später im Portal abwählt), schließt das Gateway von Discord die Verbindung mit den Codes 4013 oder 4014. Die Hosting-Nodes von Noxyr erkennen genau diesen Close-Code, schalten den Bot aus und posten eine verständliche Statusmeldung, die genau sagt, welche Einstellung du beheben musst. So bleibt er nicht in einer stillen Wiederverbindungsschleife hängen. Die vollständige Aufschlüsselung dieses Fehlers und der anderen häufigen Offline-Ursachen steht im Fehlerleitfaden zu den Gateway-Fehlern 4004/4014.
Häufige Fragen
Brauche ich Presence Intent für den Custom Bot von Noxyr? Nein. Noxyr fordert nur Server Members Intent und Message Content Intent an. Presence Intent kann ausgeschaltet bleiben.
Warum zeigt mein Bot „disallowed intents“, obwohl ich die Schalter eingeschaltet habe? Das Gateway liest den aktuellen Status nur bei einem frischen Login. Starte den Bot nach dem Speichern der Portal-Einstellungen neu, damit er sich mit den neuen Intents verbindet.
Bekommt der Bot durch den Message Content Intent den Nachrichtenverlauf von Discord? Nein. Er betrifft nur Nachrichten, die während der Verbindung des Bots gesendet werden und in einem Kanal stehen, auf den er Zugriff hat. Frühere Nachrichten, bei denen der Bot nicht anwesend war, bekommt er nicht nachträglich.
Wird mein Bot gesperrt, wenn er privilegierte Intents anfordert? Nein. Sie anzufordern und für Funktionen zu nutzen, die sie brauchen, also Willkommensnachrichten, Auto-Responder und KI-Antworten, ist genau ihr Zweck. Die Verifizierung gibt es für Bots im großen Maßstab und nicht als Strafe.
Die vollständige Einrichtungsanleitung steht in der Custom-Bot-Dokumentation. Oder füge Noxyr kostenlos hinzu und lass die Intents ganz weg, indem du den Haupt-Bot statt eines Custom Bots mit eigenem Token nutzt.