AEONHOST / WISSEN

Discord-Slash-Commands fehlen: Registrierung prüfen

Wenn ein Slash-Command nicht im Discord-Auswahlmenü erscheint, prüfe zuerst, ob die bestehende Anwendung den Befehl über die HTTP-API registriert hat und ob er für den richtigen Server oder Installationskontext angelegt wurde. Ein verbundener Bot-Prozess beweist diese Registrierung nicht. Fehlt der Befehl nur einzelnen Personen, sind häufig Befehlsrechte oder der Kontext entscheidend.

Aktualisiert am 07.10.2026

Wenn ein Slash-Command nicht im Discord-Auswahlmenü erscheint, prüfe zuerst, ob die bestehende Anwendung den Befehl über die HTTP-API registriert hat und ob er für den richtigen Server oder Installationskontext angelegt wurde. Ein verbundener Bot-Prozess beweist diese Registrierung nicht. Fehlt der Befehl nur einzelnen Personen, sind häufig Befehlsrechte oder der Kontext entscheidend.

1. Registrierung und Ziel prüfen

Discord registriert Application Commands über HTTP-Endpunkte. Nutze im vorhandenen Projekt den dokumentierten Deploy- oder Sync-Ablauf deiner Bibliothek und prüfe dessen tatsächliche HTTP-Antwort. Vergleiche dabei die verwendete Anwendung und den registrierten Befehlsnamen mit dem, was du im Client suchst. Starte nicht blind einen zweiten Registrierungsweg: Ein vorhandener Ablauf kann Befehle aktualisieren oder die bestehende Befehlsliste überschreiben. Discord dokumentiert HTTP-Registrierung und die Befehlsendpunkte.

Prüfe danach den Befehlsbereich:

  • Ein Guild-Command ist nur im Server sichtbar, für den er registriert wurde. Discord sagt, dass neue Guild-Commands sofort verfügbar sind.
  • Bei GUILD_INSTALL gilt ein globaler Command für die Server, in denen die App installiert ist. Bei USER_INSTALL kann die App für die autorisierende Person auch in deren Servern, DMs und Gruppen-DMs verfügbar sein. Ob der globale Command dort erscheint, hängt zusätzlich von integration_types, contexts und den Command-Berechtigungen ab. Eine User-Installation gibt der App keine serverweiten Bot-Rechte. Ein globaler und ein Guild-Command dürfen denselben Namen haben; kontrolliere deshalb auch den richtigen Bereich.

Die aktuelle Discord-Dokumentation nennt für globale Änderungen keine feste Anzahl Stunden. Sie beschreibt eine interne Versionsprüfung mit anschliessendem Neuladen, wenn ein globaler Command beim Aufruf veraltet ist. Verlass dich daher nicht auf alte pauschale Wartezeiten. Prüfe zuerst, ob der vorhandene Deploy-Ablauf den richtigen Bereich verwendet und der Befehl in der API-Antwort erscheint. Die Abschnitte zu globalen und Guild-Commands beschreiben diese Unterschiede.

2. Installations- und Interaktionskontext abgleichen

Prüfe auch die Scopes der Installation: Für Application Commands muss applications.commands autorisiert sein. Discord schliesst diesen Scope automatisch ein, wenn bot angefordert wird; eine App kann Commands auch ohne Bot-Konto mit applications.commands anbieten. Die Anleitung zu OAuth2-Guild- und User-Installationen ordnet Scopes und Installationsarten ein.

Eine App kann für GUILD_INSTALL, USER_INSTALL oder beide Kontexte eingerichtet sein. Bei globalen Commands schränkt integration_types ein, bei welcher Installationsart der Command verfügbar ist. contexts bestimmt, wo im Client die Person ihn ausführen kann: etwa in einem Server, in einer Bot-DM oder in einem privaten Kanal. Guild-Commands sind an den bei der Registrierung gewählten Server gebunden und verwenden diese globalen Kontextfelder nicht. Ein privater Kanal-Kontext ist nur für Commands mit USER_INSTALL sinnvoll. User-installierte Apps sind nur für die autorisierende Person sichtbar und können – abhängig von den Command-Einstellungen – in deren Servern, DMs und Gruppen-DMs auftauchen; sie erhalten dadurch keine serverweiten Bot-Rechte. Prüfe deshalb bei globalen Commands sowohl die unterstützten Anwendungskontexte als auch die Command-Einstellungen. Diese Felder sind von den Command-Berechtigungen getrennt. Discord erklärt Installations- und Interaktionskontexte und die Reichweite von Guild- und User-Installationen.

3. Prüfen, ob Berechtigungen den Befehl verbergen

Discord zeigt einen Command im Auswahlmenü nicht an, wenn die Person keine Berechtigung hat, ihn auszuführen. Prüfe im Server unter Servereinstellungen → Integrationen die App und die Berechtigungen für Rollen, Personen und Kanäle. Vergleiche diese Einstellungen mit default_member_permissions in der registrierten Befehlsdefinition. Der Wert "0" sperrt einen Guild-Command standardmässig für alle ausser Administratoren und ausdrücklich erlaubten Ausnahmen. Eine Kanal- oder Rollenregel kann deshalb erklären, warum der Befehl bei einer Person erscheint und bei einer anderen fehlt. Discord beschreibt Command-Rechte und deren Verwaltung im Client.

Erweitere die Bot-Rechte nicht vorsorglich auf Administrator. Ein Slash-Command kann vorhanden sein, obwohl dem Bot für eine spätere Aktion ein einzelnes Serverrecht fehlt; das ist eine Ausführungsberechtigung und kein Beleg, dass die Registrierung fehlgeschlagen ist.

4. Sichtbarkeit von der Ausführung trennen

Wenn der Command sichtbar ist, aber keine Antwort liefert, ist die Registrierung wahrscheinlich nicht mehr der erste Prüfpunkt. Discord kann Interactions entweder als INTERACTION_CREATE-Gateway-Ereignis oder über einen ausgehenden HTTP-Webhook zustellen. Diese Wege sind gegenseitig ausschliessend. Bei Gateway-Zustellung prüfst du den laufenden Prozess und den vorhandenen Interaction-Handler. Bei HTTP-Zustellung prüfst du den eingerichteten Interactions-Endpoint. Eine Gateway-Interaction wird mit einer HTTP-Antwort quittiert; die Antwort wird nicht als Gateway-Command gesendet. Discord verlangt eine erste Antwort innerhalb von drei Sekunden. Die offizielle Anleitung zum Empfangen und Beantworten von Interactions beschreibt beide Zustellwege und die Antwortfrist.

MESSAGE_CONTENT behebt keine fehlende Slash-Command-Registrierung. Dieser privilegierte Gateway-Intent steuert, ob deine App bestimmte Inhalte normaler Nachrichten erhält. Slash-Commands werden als Application Commands registriert und als Interactions zugestellt. Schalte den Nachrichteninhalt-Intent nur für eine vorhandene Funktion frei, die diese Nachrichtendaten tatsächlich benötigt. Discord grenzt den Message Content Intent in der Gateway-Dokumentation ein.

Wenn der Bot-Prozess oder die Bibliothekskonfiguration selbst unklar ist, nutze den Beitrag zum Starten eines vorhandenen Discord-Bots. Für den Umgang mit einem offengelegten Geheimnis gibt es die Anleitung zum Bot-Token.

Prüfe Logs und API-Antworten ohne Bot-Token, OAuth-Geheimnisse oder private Zugangsdaten zu teilen. Diese Anleitung beschreibt den dokumentierten Discord-Ablauf; sie bestätigt weder eine konkrete Bibliotheksversion noch eine Live-Installation.