Permissions
Complete guide to Discord bot permissions and how they're used.
Required Permissions
Bot Permissions
These permissions are required for basic bot functionality:
View Channels
✅ Yes
Read messages and channel information
Send Messages
✅ Yes
Respond to slash commands
Use Slash Commands
✅ Yes
Execute slash commands
Embed Links
✅ Yes
Send rich embeds in responses
Attach Files
✅ Yes
Upload badge images
Read Message History
✅ Yes
Read previous messages (for Tebex integration)
Privileged Gateway Intents
These intents must be enabled in Discord Developer Portal:
Server Members Intent
✅ Yes
Read guild members for role syncing
Message Content Intent
✅ Yes
Read message content for commands
Optional Permissions
These permissions are optional but enable additional features:
Manage Roles
❌ Optional
Automatically manage roles (if configured)
Manage Messages
❌ Optional
Delete messages, manage reactions
Add Reactions
❌ Optional
Add reactions to messages
Use External Emojis
❌ Optional
Use custom emojis in messages
Permission Setup
Step 1: Enable Intents
In Discord Developer Portal:
Go to Applications → Your Bot
Navigate to Bot section
Scroll to Privileged Gateway Intents
Enable:
✅ SERVER MEMBERS INTENT
✅ MESSAGE CONTENT INTENT
Step 2: Invite Bot with Permissions
When generating invite URL:
Go to OAuth2 → URL Generator
Select scopes:
✅
bot✅
applications.commands
Select bot permissions (see table above)
Copy generated URL
Open URL in browser and authorize
Step 3: Verify Permissions
After inviting bot:
Go to Server Settings → Members
Find your bot in member list
Verify bot role has correct permissions
Check role position (must be above roles it manages)
Permission by Command
User Commands
All user commands require:
View Channels
Send Messages
Use Slash Commands
Department Commands
Department commands require:
All user command permissions
Plus department leadership or RBAC permissions (checked via API)
Admin Commands
Admin commands require:
All user command permissions
Plus admin status (checked via
ADMIN_DISCORD_IDS)
Role Position Requirements
Managing Roles
If bot manages roles, its role must be above roles it manages:
Go to Server Settings → Roles
Drag bot's role above roles it should manage
Save changes
Note: Bot can only manage roles below its own role position.
Channel-Specific Permissions
Read-Only Channels
If bot only needs to read in certain channels:
Go to channel settings
Select Permissions tab
Add bot with View Channel permission only
Deny Send Messages if not needed
Tebex Integration Channels
For Tebex purchase processing:
Ensure bot can View Channel
Ensure bot can Read Message History
Bot doesn't need to send messages here
Permission Troubleshooting
Command Not Responding
Issue: Slash commands don't work
Solutions:
Verify bot has Send Messages permission in channel
Check bot has Use Slash Commands permission
Verify bot role position allows it to see channels
Check channel-specific permissions
Can't Read Members
Issue: Role sync not working
Solutions:
Verify Server Members Intent is enabled
Check bot has permission to view member list
Verify bot is in server
Check bot has View Channels permission
Can't Read Messages
Issue: Tebex integration not working
Solutions:
Verify Message Content Intent is enabled
Check bot has Read Message History permission
Verify bot can see channel
Check channel-specific permissions
Can't Manage Roles
Issue: Bot can't assign/remove roles
Solutions:
Verify bot has Manage Roles permission
Check bot's role is above roles it manages
Verify role isn't protected (managed by another bot)
Check role permissions allow bot to manage it
Permission Checklist
Before going live, verify:
Security Considerations
Least Privilege - Only grant necessary permissions
Role Position - Keep bot role position appropriate
Channel Permissions - Restrict bot to needed channels
Monitor Activity - Check bot's actions in audit log
Regular Review - Review permissions periodically
Related Documentation
Bot Setup - Installing and configuring the bot
Bot Commands - Available commands
Bot Events - Event handlers
Last updated
