Overview
Gateway Intents allow you to specify which events your bot wants to receive from Discord. This reduces bandwidth and improves performance by only receiving events you actually need.Why Intents Matter
Intents were introduced by Discord to help bots scale more efficiently. Instead of receiving all events from all guilds, you specify exactly which event categories you need.
- Reduced bandwidth - Only receive events you need
- Better performance - Less processing overhead
- Privacy - Don’t receive sensitive data you don’t use
Privileged Intents
Three intents are marked as privileged and require special approval:GUILD_MEMBERS
Provides:- Member join/leave events
- Member update events (nickname, roles, etc.)
- Ability to chunk (load all members) in large guilds
GUILD_PRESENCES
Provides:- Online status updates (online, idle, dnd, offline)
- User activities (“Playing…”, “Streaming…”, etc.)
- Client type information (mobile, desktop, web)
MESSAGE_CONTENT
Provides:- Message content (the actual text)
- Message embeds
- Message attachments
- Message components (buttons, select menus)
Standard Intents
These intents don’t require special approval:| Intent | Purpose |
|---|---|
GUILDS | Guild create/update/delete events (always enabled) |
GUILD_MODERATION | Ban/unban events, audit log entries |
GUILD_EXPRESSIONS | Emoji, sticker, soundboard changes |
GUILD_WEBHOOKS | Webhook create/update/delete |
GUILD_INVITES | Invite create/delete |
GUILD_VOICE_STATES | Voice state changes (required for voice!) |
GUILD_MESSAGES | Message events in guilds |
GUILD_MESSAGE_REACTIONS | Reaction add/remove in guilds |
GUILD_MESSAGE_TYPING | Typing indicators in guilds |
DIRECT_MESSAGES | Message events in DMs |
DIRECT_MESSAGE_REACTIONS | Reaction events in DMs |
DIRECT_MESSAGE_TYPING | Typing indicators in DMs |
SCHEDULED_EVENTS | Guild scheduled event changes |
AUTO_MODERATION_CONFIGURATION | AutoMod rule changes |
AUTO_MODERATION_EXECUTION | AutoMod action executions |
Common Configurations
Slash Command Bot
Message Logger Bot
Moderation Bot
Music Bot
Voice Activity Tracker
Intent and Cache Relationship
| Cache Flag | Required Intent |
|---|---|
MEMBER_OVERRIDES | GUILD_MEMBERS |
VOICE_STATE | GUILD_VOICE_STATES |
EMOJI | GUILD_EXPRESSIONS |
STICKER | GUILD_EXPRESSIONS |
ACTIVITY | GUILD_PRESENCES |
CLIENT_STATUS | GUILD_PRESENCES |
ONLINE_STATUS | GUILD_PRESENCES |
Default Intent Set
TheGatewayIntent.DEFAULT constant includes:
GUILD_MEMBERS(privileged)GUILD_PRESENCES(privileged)MESSAGE_CONTENT(privileged)
Enabling Privileged Intents
Open Discord Developer Portal
Go to https://discord.com/developers/applications and select your application.
Enable Privileged Intents
Scroll down to Privileged Gateway Intents and toggle on:
- Presence Intent (for
GUILD_PRESENCES) - Server Members Intent (for
GUILD_MEMBERS) - Message Content Intent (for
MESSAGE_CONTENT)
Bots in 100+ guilds require verification and approval from Discord before privileged intents can be enabled.