Discord Intents Calculator
Choose which gateway events your bot should receive. You get the intents value, the events each intent unlocks, and ready-made code for discord.js and discord.py.
Pick intents
Servers, roles, channels and threads. Almost every bot needs it – without it the cache is empty.
21 events
GUILD_CREATEGUILD_UPDATEGUILD_DELETEGUILD_ROLE_CREATEGUILD_ROLE_UPDATEGUILD_ROLE_DELETECHANNEL_CREATECHANNEL_UPDATECHANNEL_DELETECHANNEL_PINS_UPDATETHREAD_CREATETHREAD_UPDATETHREAD_DELETETHREAD_LIST_SYNCTHREAD_MEMBER_UPDATETHREAD_MEMBERS_UPDATESTAGE_INSTANCE_CREATESTAGE_INSTANCE_UPDATESTAGE_INSTANCE_DELETEVOICE_CHANNEL_STATUS_UPDATEVOICE_CHANNEL_START_TIME_UPDATE
Joins, leaves and member updates, plus the full member list. For welcome messages and auto roles.
4 events
GUILD_MEMBER_ADDGUILD_MEMBER_UPDATEGUILD_MEMBER_REMOVETHREAD_MEMBERS_UPDATE
Bans, unbans and new audit log entries (formerly GUILD_BANS).
3 events
GUILD_AUDIT_LOG_ENTRY_CREATEGUILD_BAN_ADDGUILD_BAN_REMOVE
Changes to emojis, stickers and soundboard sounds (formerly GUILD_EMOJIS_AND_STICKERS).
6 events
GUILD_EMOJIS_UPDATEGUILD_STICKERS_UPDATEGUILD_SOUNDBOARD_SOUND_CREATEGUILD_SOUNDBOARD_SOUND_UPDATEGUILD_SOUNDBOARD_SOUND_DELETEGUILD_SOUNDBOARD_SOUNDS_UPDATE
When bots, Twitch or YouTube integrations are added or changed.
4 events
GUILD_INTEGRATIONS_UPDATEINTEGRATION_CREATEINTEGRATION_UPDATEINTEGRATION_DELETE
Fires when a channel's webhooks change.
1 event
WEBHOOKS_UPDATE
Created and deleted invites – for invite trackers.
2 events
INVITE_CREATEINVITE_DELETE
Who is in which voice channel. Required for music bots, otherwise the bot can't join.
2 events
VOICE_CHANNEL_EFFECT_SENDVOICE_STATE_UPDATE
Online status, activities (“Playing …”) and devices of all members. Creates a lot of traffic.
1 event
PRESENCE_UPDATE
Messages in servers. Without MESSAGE_CONTENT the text, embeds and attachments are empty.
4 events
MESSAGE_CREATEMESSAGE_UPDATEMESSAGE_DELETEMESSAGE_DELETE_BULK
Reactions in servers – for reaction roles.
4 events
MESSAGE_REACTION_ADDMESSAGE_REACTION_REMOVEMESSAGE_REACTION_REMOVE_ALLMESSAGE_REACTION_REMOVE_EMOJI
“… is typing” in server channels.
1 event
TYPING_START
Messages in DMs with the bot. Content arrives here even without MESSAGE_CONTENT.
4 events
MESSAGE_CREATEMESSAGE_UPDATEMESSAGE_DELETECHANNEL_PINS_UPDATE
Reactions in DMs with the bot.
4 events
MESSAGE_REACTION_ADDMESSAGE_REACTION_REMOVEMESSAGE_REACTION_REMOVE_ALLMESSAGE_REACTION_REMOVE_EMOJI
“… is typing” in DMs with the bot.
1 event
TYPING_START
No events of its own: fills content, embeds, attachments, components and poll in messages. Needed for prefix commands like !help – slash commands don't need it.
No events of its ownServer events and who is interested in them.
5 events
GUILD_SCHEDULED_EVENT_CREATEGUILD_SCHEDULED_EVENT_UPDATEGUILD_SCHEDULED_EVENT_DELETEGUILD_SCHEDULED_EVENT_USER_ADDGUILD_SCHEDULED_EVENT_USER_REMOVE
When AutoMod rules are created, updated or deleted.
3 events
AUTO_MODERATION_RULE_CREATEAUTO_MODERATION_RULE_UPDATEAUTO_MODERATION_RULE_DELETE
When AutoMod takes action, e.g. blocks a message.
1 event
AUTO_MODERATION_ACTION_EXECUTION
Poll votes in servers.
2 events
MESSAGE_POLL_VOTE_ADDMESSAGE_POLL_VOTE_REMOVE
Poll votes in DMs.
2 events
MESSAGE_POLL_VOTE_ADDMESSAGE_POLL_VOTE_REMOVE
Result
0x8201Privileged intents must be switched on in the Developer Portal under “Bot → Privileged Gateway Intents”, otherwise Discord closes the connection with code 4014. Up to 10,000 users the toggle is enough. Above that you have to apply for access and reapply every year – this applies since June 10, 2026; before, the limit was 100 servers.
Code
import { Client, GatewayIntentBits } from "discord.js";
const client = new Client({
intents: [
GatewayIntentBits.Guilds,
GatewayIntentBits.GuildMessages,
GatewayIntentBits.MessageContent,
],
});
// = 33281How it works
- Start with a preset, e.g. “Slash commands only” or “Prefix commands”.
- Tick more intents. Search also finds event names like MESSAGE_CREATE or GUILD_MEMBER_ADD.
- Check the notes: privileged intents must be enabled in the Developer Portal.
- Copy the code for your library or the number for the IDENTIFY payload.
FAQ
Which intents are privileged?
Three: GUILD_MEMBERS (bit 1), GUILD_PRESENCES (bit 8) and MESSAGE_CONTENT (bit 15). Enable them in the Developer Portal under “Bot → Privileged Gateway Intents”, otherwise Discord closes the connection with code 4014.
When do I have to apply for privileged intents?
Since June 10, 2026 the number of users your app reaches across all servers counts: under 10,000 the toggle in the portal is enough. Above that you have to apply for access and reapply every year. The old 100-server limit no longer applies.
Why is message.content empty for my bot?
Without the MESSAGE_CONTENT intent, content, embeds, attachments, components and poll are empty – except in DMs, when the bot is mentioned, and for its own messages. Slash commands don't need the intent.
Do I need intents for slash commands?
Barely. INTERACTION_CREATE is always sent. Usually GUILDS is enough so the bot has servers and channels in its cache. Bots that only use HTTP interactions need no gateway connection at all.
What does error 4013 mean?
“Invalid intents”: the value contains bits that belong to no intent. The calculator shows such bits as “unknown”.