Skip to content

Concepts

Discord gateway intents explained: which ones your bot needs

What gateway intents are, which three are privileged (Presence, Server Members, Message Content), how to switch them on and what changes at 100 servers.

· Updated · 6 min read
Cover image: Discord gateway intents explained: which ones your bot needs

Intents are the way a bot tells Discord which events it wants to receive. A bot that does not ask for the member events never hears about joins, and a bot that does not ask for message content sees empty messages. Most "my bot does nothing" problems come from intents.

How intents work

In the code, the bot creates its client with a list of intents. Discord only sends the events that belong to those intents. For example the Guilds intent covers server and channel events, GuildMessages covers messages being sent, and GuildMembers covers members joining and leaving.

The three privileged intents

Three intents are privileged because they expose more data. You must switch each one on in the Developer Portal, on the Bot tab, in addition to listing it in the code.

  • Server Members Intent: members joining, leaving and updates. Needed for welcome messages and for fetching the full member list.
  • Message Content Intent: the text of messages. Needed for prefix commands, leveling by messages, automod on message text and similar.
  • Presence Intent: whether members are online and what they play. Rarely needed, avoid it.

Slash commands need none of them

A bot that only answers slash commands and buttons does not need any privileged intent. The interaction contains what the bot needs. This is one reason BotsMaker builds slash-command bots by default, and it names the privileged intents in the summary only when a feature requires them.

What changes at 100 servers

Your own bot in a small number of servers can use the privileged intents after you switch them on. Once a bot is in 100 servers, Discord requires verification and the privileged intents need approval with a reason. If you plan a public bot, design it to need as few of them as possible.

How to choose

  1. List the features of the bot.
  2. For each feature, check which events it needs.
  3. Ask only for the intents that cover those events.
  4. Switch on the privileged ones in the portal.

Common symptoms

  • "Used disallowed intents" when logging in: the code asks for a privileged intent that is not switched on.
  • Message events arrive but the content is empty: Message Content is missing.
  • The welcome message never fires: Server Members is missing.

Written by

BotsMaker Team

We build BotsMaker, the AI Discord bot creator. The guides come from what we see when bots are generated, tested and set up in the Discord Developer Portal and on real hosts.

More guides

RSS feed · All guides