Black Friday: eerste maand gratis per kwartaal · t/m 30 nov Bekijk de pakketten Voorwaarden
Nieuw hier? Probeer een Minecraft-server of Discord-bot 24 uur gratis. Gratis proberen
ServerSparkServerSpark

Kennisbank

Slash commands van je Discord-bot niet zichtbaar? 7 oplossingen

Niet geregistreerd, applications.commands ontbreekt, een oude lijst, rechten, naamregels en 'The application did not respond', voor discord.js en discord.py.

NVMe-nodesNachtelijke back-upsBinnen minuten online

Bijgewerkt op 4 november 2026

Staat je bot online maar zie je zijn slash commands niet, dan is er bijna altijd een van deze vier dingen aan de hand: de commands zijn nooit geregistreerd (je code moet ze naar Discord sturen), de bot is toegevoegd zonder de scope applications.commands, je Discord-app toont nog een oude lijst (herlaad met Ctrl+R), of je mist het recht dat het command vraagt. Loop de controles hieronder op volgorde langs; de meeste oplossingen kosten een minuut.

Gecontroleerd op 29 oktober 2026 aan de hand van de ontwikkelaarsdocumentatie van Discord (Application Commands en Receiving and Responding).

1. Heeft je code de commands geregistreerd?

Een slash command bestaat pas als je bot hem naar Discord stuurt. Alleen de code die het command afhandelt, is niet genoeg.

  • discord.py: roep await tree.sync() aan (of await bot.tree.sync()), bijvoorbeeld in on_ready of setup_hook. Het geeft de lijst met gesynchroniseerde commands terug; print die voor de zekerheid: print(await tree.sync()).
  • discord.js: registreer ze met client.application.commands.set(commands) in het ready-event, of met een apart deployscript dat de REST API gebruikt. Zo'n script draait alleen als jij het draait: na een nieuw command voer je het opnieuw uit.

Kijk in de console: een fout tijdens het registreren (vaak een ongeldige naam, zie stap 5) betekent dat geen enkel command uit dat verzoek is opgeslagen.

2. Globale of servercommands?

Discord kent twee soorten slash commands:

  • Servercommands (guild commands) horen bij één server en zijn meteen beschikbaar. Gebruik die tijdens het testen.
  • Globale commands werken in elke server waar je bot in zit, en in DM's met de bot. Na een update krijgt een app die nog de oude versie heeft de opdracht dat command opnieuw te laden zodra iemand het gebruikt.

Testen in discord.py op één server, met MY_GUILD = discord.Object(id=123456789012345678) (het ID van je server):

tree.copy_global_to(guild=MY_GUILD)
await tree.sync(guild=MY_GUILD)

In discord.js: await client.guilds.cache.get('123456789012345678').commands.set(commands).

Heb je dezelfde commands zowel globaal als voor je testserver geregistreerd? Dan zie je ze daar dubbel. Haal de serverkopieën weg als je klaar bent met testen: tree.clear_commands(guild=MY_GUILD) gevolgd door await tree.sync(guild=MY_GUILD), of commands.set([]) op de server in discord.js.

3. Herstart je Discord-app

De desktopapp onthoudt de lijst met commands. Druk op Ctrl+R (Cmd+R op een Mac) om hem te herladen, of sluit de app op je telefoon en open hem opnieuw. Typ daarna weer /.

4. Is de bot uitgenodigd met applications.commands?

Om commands in een server te maken, moet je app daar toestemming hebben met de scope applications.commands. Discord voegt die tegenwoordig automatisch toe bij de scope bot, maar bots die lang geleden met alleen bot zijn uitgenodigd, kunnen hem missen. Oplossing: ga in het Developer Portal naar OAuth2 → URL Generator, vink bot en applications.commands aan, open de link en voeg de bot opnieuw aan dezelfde server toe. Je raakt niets kwijt door hem opnieuw uit te nodigen.

5. Controleer de naam en de limieten

  • Namen van slash commands en opties zijn 1 tot 32 tekens, in kleine letters en zonder spaties. /Ping of /mijn command wordt geweigerd.
  • Een slash command moet een omschrijving hebben.
  • Een app heeft maximaal 100 globale slash commands, en 100 per server.
  • Je kunt maximaal 200 commands per dag per server aanmaken. Code die bij elke start alle commands verwijdert en opnieuw aanmaakt, kan daartegenaan lopen. Overschrijf ze in één keer (tree.sync() of commands.set()) in plaats van ze een voor een aan te maken.

6. Mag jij het command zien?

Heeft een command default_member_permissions (discord.py: @app_commands.default_permissions(...), discord.js: .setDefaultMemberPermissions(...)), dan zien leden zonder dat recht hem niet in de lijst. Met de waarde "0" zien alleen beheerders hem. Serverbeheerders kunnen ook aanpassen wie een command mag gebruiken onder Serverinstellingen → Integraties. Test met een beheerdersaccount om dit uit te sluiten.

7. Het command staat er, maar Discord meldt "The application did not respond"

Het command bestaat nu, maar je bot antwoordde niet op tijd. Discord wil een eerste reactie binnen 3 seconden. Bij traag werk (een databasequery, een API-aanroep, een afbeelding) bevestig je eerst en antwoord je later; dan heb je 15 minuten:

# discord.py
await interaction.response.defer()
# ... traag werk ...
await interaction.followup.send("Klaar!")

// discord.js
await interaction.deferReply();
// ... traag werk ...
await interaction.editReply('Klaar!');

Deze melding zie je ook als de bot offline is of gecrasht; kijk in zijn console. Zie Discord-bot offline? 8 oorzaken.

24/7 laten draaien

Nieuwe botservers bij ServerSpark krijgen een werkende /ping-bot die zijn command al registreert: zet je token in .env, druk op Start en bouw erop verder. Bothosting kost €0,69 per maand bij betaling per kwartaal (€0,79 maandelijks, 512 MB RAM). Zie Discord-bot hosting, of begin vanaf nul met Python of JavaScript.

Veelgestelde vragen

Waarom zie ik de slash commands van mijn Discord-bot niet? Meestal zijn de commands nooit geregistreerd (tree.sync() in discord.py, commands.set() of een deployscript in discord.js), mist de bot de scope applications.commands in die server, toont je Discord-app een oude lijst (druk op Ctrl+R), of heb je het recht niet dat het command vraagt.

Hoe lang duurt het voordat nieuwe slash commands verschijnen? Servercommands zijn meteen beschikbaar. Globale commands zijn na het registreren in alle servers beschikbaar; zie je ze niet, herlaad Discord dan met Ctrl+R. Registreer commands tijdens het testen voor één server.

Waarom staan mijn slash commands er dubbel? Ze zijn zowel globaal als als servercommand voor die server geregistreerd. Wis de servercommands en synchroniseer opnieuw.

Wat betekent "The application did not respond"? De bot antwoordde niet binnen 3 seconden. Stel het antwoord eerst uit (interaction.response.defer() of deferReply()) en stuur het antwoord daarna, of controleer of de bot online is.

Mogen namen van slash commands hoofdletters of spaties hebben? Nee. Namen van slash commands zijn 1 tot 32 tekens, in kleine letters, zonder spaties. Streepjes en underscores mogen wel.