๐Ÿ”’

Channel Permission Overwrites

Manage channel-specific permission overwrites for roles and users. Set granular permissions with Allow, Deny, or Default states for complete control.

Channel Permission Overwrites - Set specific permissions for roles or users in a channel. Permission states: Allow (grant), Deny (block), or Default (inherit from role).

Quick Presets

Permissions

VIEW_CHANNEL

View channels and read messages

MANAGE_CHANNELS

Manage channel settings

MANAGE_PERMISSIONS

Manage permission overwrites

MANAGE_WEBHOOKS

Create, edit, and delete webhooks

CREATE_INSTANT_INVITE

Create instant invites

SEND_MESSAGES

Send messages in text channels

SEND_TTS_MESSAGES

Send text-to-speech messages

MANAGE_MESSAGES

Delete and pin messages

EMBED_LINKS

Links embed automatically

ATTACH_FILES

Upload files and media

READ_MESSAGE_HISTORY

Read message history

MENTION_EVERYONE

Mention @everyone and @here

USE_EXTERNAL_EMOJIS

Use external emojis

ADD_REACTIONS

Add reactions to messages

USE_APPLICATION_COMMANDS

Use slash commands

CONNECT

Connect to voice channels

SPEAK

Speak in voice channels

STREAM

Video and screen share

USE_VAD

Use voice activity detection

PRIORITY_SPEAKER

Priority speaker (quiets others)

MUTE_MEMBERS

Mute members in voice

DEAFEN_MEMBERS

Deafen members in voice

MOVE_MEMBERS

Move members between channels

MANAGE_THREADS

Manage threads

CREATE_PUBLIC_THREADS

Create public threads

CREATE_PRIVATE_THREADS

Create private threads

SEND_MESSAGES_IN_THREADS

Send messages in threads

Calculated Bitfields

0
0
// Select permissions to generate code

Understanding Permission Overwrites

What are Permission Overwrites?

Permission overwrites allow you to set channel-specific permissions for roles or users that override their server-wide role permissions. This enables granular control over who can do what in each channel.

Key Concepts:

  • โ€ข Override Hierarchy: Channel overwrites take priority over role permissions
  • โ€ข Three States: Allow (grant), Deny (block), Default (inherit from role)
  • โ€ข Per-Target: Set different permissions for different roles/users in the same channel
  • โ€ข Bitfield System: Stored as two integers (allow and deny bitfields)

Permission States

Allow

Explicitly grants the permission in this channel, even if the role doesn't have it.

permission: true

Deny

Explicitly denies the permission in this channel, even if the role has it.

permission: false

Default

No override - the permission is inherited from the role's server permissions.

(not set)

Permission Hierarchy

Discord calculates final permissions using a specific hierarchy. Understanding this order is crucial for setting up permissions correctly.

1

Server Owner

Has all permissions in all channels, cannot be overridden

2

Administrator Permission

If a role has Administrator, they have all permissions (cannot be denied)

3

User-Specific Deny Overwrites

Deny overwrites applied directly to a user

4

User-Specific Allow Overwrites

Allow overwrites applied directly to a user

5

Role-Specific Deny Overwrites

Deny overwrites from any of the user's roles

6

Role-Specific Allow Overwrites

Allow overwrites from any of the user's roles

7

Server-Level Role Permissions

Default permissions from the user's highest role

8

@everyone Role

Base permissions from the @everyone role

Common Use Cases

๐Ÿ”‡ Read-Only Channels

Create announcement or rules channels where only moderators can post.

VIEW_CHANNEL: Allow
READ_MESSAGE_HISTORY: Allow
SEND_MESSAGES: Deny
ADD_REACTIONS: Deny

๐Ÿ‘๏ธ Hidden Channels

Create staff-only or private channels invisible to regular members.

@everyone VIEW_CHANNEL: Deny
Staff Role VIEW_CHANNEL: Allow

๐ŸŽค Muted Members

Temporarily restrict a user from sending messages or speaking.

SEND_MESSAGES: Deny
ADD_REACTIONS: Deny
SPEAK: Deny
STREAM: Deny

๐Ÿ›ก๏ธ Moderator Channels

Give moderators full channel management in specific channels.

MANAGE_MESSAGES: Allow
MANAGE_THREADS: Allow
MUTE_MEMBERS: Allow
MOVE_MEMBERS: Allow

Best Practices

โœ“

Use Deny Sparingly

Deny overwrites take priority over Allow. Only use Deny when you need to block a specific permission.

โœ“

Prefer Role Overwrites

Use role-based overwrites instead of user-specific ones for easier management and scalability.

โœ“

Sync Category Permissions

Use category-level permissions and sync channels to them for consistent permission structures.

โœ“

Test Permission Changes

Always test permission changes with a test account to ensure they work as expected.

โœ“

Document Your Permission Structure

Keep notes on your permission setup to avoid confusion when making changes later.

โœ“

Use VIEW_CHANNEL Carefully

Denying VIEW_CHANNEL hides the channel entirely. This is the most common permission for creating private channels.

Important Notes

  • โš  Server owners and users with Administrator permission bypass all channel overwrites
  • โš  User-specific overwrites take priority over role-specific overwrites
  • โš  Deny always wins over Allow when calculating final permissions
  • โš  Setting both Allow and Deny for the same permission in one overwrite makes Deny take effect
  • โš  Permission changes may take a few seconds to propagate across Discord's servers
  • โš  Too many permission overwrites can make server management complex - aim for simplicity