Permissions

Complete guide to Discord bot permissions and how they're used.

Required Permissions

Bot Permissions

These permissions are required for basic bot functionality:

Permission
Required
Use Case

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:

Intent
Required
Use Case

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:

Permission
Required
Use Case

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:

  1. Go to Applications → Your Bot

  2. Navigate to Bot section

  3. Scroll to Privileged Gateway Intents

  4. Enable:

    • SERVER MEMBERS INTENT

    • MESSAGE CONTENT INTENT

Step 2: Invite Bot with Permissions

When generating invite URL:

  1. Go to OAuth2URL Generator

  2. Select scopes:

    • bot

    • applications.commands

  3. Select bot permissions (see table above)

  4. Copy generated URL

  5. Open URL in browser and authorize

Step 3: Verify Permissions

After inviting bot:

  1. Go to Server SettingsMembers

  2. Find your bot in member list

  3. Verify bot role has correct permissions

  4. 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:

  1. Go to Server SettingsRoles

  2. Drag bot's role above roles it should manage

  3. 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:

  1. Go to channel settings

  2. Select Permissions tab

  3. Add bot with View Channel permission only

  4. Deny Send Messages if not needed

Tebex Integration Channels

For Tebex purchase processing:

  1. Ensure bot can View Channel

  2. Ensure bot can Read Message History

  3. Bot doesn't need to send messages here

Permission Troubleshooting

Command Not Responding

Issue: Slash commands don't work

Solutions:

  1. Verify bot has Send Messages permission in channel

  2. Check bot has Use Slash Commands permission

  3. Verify bot role position allows it to see channels

  4. Check channel-specific permissions

Can't Read Members

Issue: Role sync not working

Solutions:

  1. Verify Server Members Intent is enabled

  2. Check bot has permission to view member list

  3. Verify bot is in server

  4. Check bot has View Channels permission

Can't Read Messages

Issue: Tebex integration not working

Solutions:

  1. Verify Message Content Intent is enabled

  2. Check bot has Read Message History permission

  3. Verify bot can see channel

  4. Check channel-specific permissions

Can't Manage Roles

Issue: Bot can't assign/remove roles

Solutions:

  1. Verify bot has Manage Roles permission

  2. Check bot's role is above roles it manages

  3. Verify role isn't protected (managed by another bot)

  4. Check role permissions allow bot to manage it

Permission Checklist

Before going live, verify:

Security Considerations

  1. Least Privilege - Only grant necessary permissions

  2. Role Position - Keep bot role position appropriate

  3. Channel Permissions - Restrict bot to needed channels

  4. Monitor Activity - Check bot's actions in audit log

  5. Regular Review - Review permissions periodically

Last updated