Gateway Intents
Intents are a bitfield you send on op:2 Identify that
tells the gateway which event categories to dispatch to your bot.
Identical bits and semantics to Discord — your existing intent
configuration works without changes.
Intent bits
All non-deprecated Discord intent bits are supported on GameVox. Where a feature doesn't exist on GameVox yet (e.g. Stage Channels, Scheduled Events), the bit is accepted but no events fire — your library won't error.
| Intent | Bit | Privileged | Events |
|---|---|---|---|
| GUILDS | 1 << 0 | — | GUILD_CREATE/UPDATE/DELETE, CHANNEL_CREATE/UPDATE/DELETE, GUILD_ROLE_* |
| GUILD_MEMBERS | 1 << 1 | ✓ | GUILD_MEMBER_ADD/UPDATE/REMOVE, member chunking |
| GUILD_MODERATION | 1 << 2 | — | GUILD_AUDIT_LOG_ENTRY_CREATE, GUILD_BAN_* |
| GUILD_EMOJIS_AND_STICKERS | 1 << 3 | — | GUILD_EMOJIS_UPDATE, GUILD_STICKERS_UPDATE |
| GUILD_INTEGRATIONS | 1 << 4 | — | INTEGRATION_CREATE/UPDATE/DELETE |
| GUILD_WEBHOOKS | 1 << 5 | — | WEBHOOKS_UPDATE |
| GUILD_INVITES | 1 << 6 | — | INVITE_CREATE, INVITE_DELETE |
| GUILD_VOICE_STATES | 1 << 7 | — | VOICE_STATE_UPDATE |
| GUILD_PRESENCES | 1 << 8 | ✓ | PRESENCE_UPDATE |
| GUILD_MESSAGES | 1 << 9 | — | MESSAGE_CREATE/UPDATE/DELETE in guilds |
| GUILD_MESSAGE_REACTIONS | 1 << 10 | — | MESSAGE_REACTION_ADD/REMOVE/* |
| GUILD_MESSAGE_TYPING | 1 << 11 | — | TYPING_START in guilds |
| DIRECT_MESSAGES | 1 << 12 | — | MESSAGE_* in DMs |
| DIRECT_MESSAGE_REACTIONS | 1 << 13 | — | MESSAGE_REACTION_* in DMs |
| DIRECT_MESSAGE_TYPING | 1 << 14 | — | TYPING_START in DMs |
| MESSAGE_CONTENT | 1 << 15 | ✓ | Adds content, embeds, attachments, components to MESSAGE_* |
| GUILD_SCHEDULED_EVENTS | 1 << 16 | — | Accepted, no events yet |
| AUTO_MODERATION_CONFIGURATION | 1 << 20 | — | Accepted, no events yet |
| AUTO_MODERATION_EXECUTION | 1 << 21 | — | Accepted, no events yet |
Privileged intents
Three intents are privileged on Discord and require manual approval once your bot is in 100+ servers: GUILD_MEMBERS, GUILD_PRESENCES, and MESSAGE_CONTENT.
On GameVox, all three are auto-approved when
toggled on the application's Bot tab. The toggle exists so
libraries that gate on portal-side approval don't close with
4014 Disallowed intents. There's no 100-server
verification process to grant access — flip the toggle, set the
bit, done.
MESSAGE_CONTENT carve-outs
Matches Discord exactly. Even without MESSAGE_CONTENT, message
content / embeds / attachments
/ components are included when:
- The message is from your own bot (own messages always include content).
- The message mentions your bot (by ID).
- The message is in a DM with your bot.
- The message is an interaction response your bot is the recipient of.
Close codes you may see
4013 Invalid intent(s)— bit set above the valid mask (recheck your library's bit math).4014 Disallowed intents— privileged intent bit set without the corresponding toggle in the developer portal.
Example: setting intents
discord.js
const { GatewayIntentBits } = require('discord.js');
const intents =
GatewayIntentBits.Guilds
| GatewayIntentBits.GuildMessages
| GatewayIntentBits.MessageContent; // privileged, toggle in portal first
const client = new Client({ intents }); discord.py
intents = discord.Intents.default()
intents.members = True # privileged
intents.message_content = True # privileged
client = discord.Client(intents=intents)