When a role on your Discord server cannot use a slash command, the command appears grayed out or returns a permission error. This happens because the command’s default permissions, the role’s permission settings, or the command’s integration settings are blocking access. This article explains the three root causes of missing slash command permissions and provides step-by-step fixes for each scenario.
You will learn how to check command default permissions, adjust role-specific settings, and verify command integration configurations. By the end, you can restore slash command access for any role in your server.
Key Takeaways: Fixing Slash Command Permission for a Role
- Server Settings > Integrations > Commands > Edit: Adjust default member permissions for a specific slash command.
- Server Settings > Roles > Permissions > Use Slash Commands: Toggle this permission on for the role that lacks access.
- Server Settings > Integrations > Commands > Roles: Restrict command access to specific roles or add roles to the allowed list.
Why Slash Command Permissions Fail for a Role
Discord slash commands have three layers of permission control. The first layer is the command’s default permission, set by the bot developer. The second layer is the server-level permission for the role, specifically the Use Slash Commands permission. The third layer is the command’s integration settings, where server administrators can restrict which roles can use a command.
If any of these layers blocks the role, the command will not work. The most common scenario is that the command’s default permission requires a permission the role does not have, such as Manage Messages or Kick Members. Another common cause is that the role itself does not have the Use Slash Commands permission enabled. Finally, the command’s integration settings may have disabled it for that role or enabled it only for specific roles.
Default Command Permissions
When a bot developer creates a slash command, they set a default permission level. For example, a moderation bot’s /kick command may require the Kick Members permission by default. If the role does not have that permission, the command appears unavailable. This is the first thing to check because it is often overlooked.
Role Permission: Use Slash Commands
Discord added a specific permission called Use Slash Commands in the role settings. If this permission is turned off for a role, no slash command will work for members with that role. This permission is separate from the general Use Application Commands permission and must be enabled explicitly.
Command Integration Settings
Server administrators can override a command’s default permissions by editing its integration settings. In Server Settings > Integrations, each command has an option to restrict access to specific roles. If the command is set to be usable by only certain roles, the excluded roles cannot use it.
Steps to Fix Slash Command Permission Missing for a Role
Follow these steps in order. After each step, test the slash command with the affected role. If the command still does not work, proceed to the next step.
- Check the command’s default member permissions
Open Server Settings > Integrations. Find the bot that owns the slash command. Click Manage or the gear icon next to the bot. Under Commands, locate the specific slash command. Click Edit. Look at the Default Member Permissions section. If the command requires a permission the role does not have, you have two options: either grant that permission to the role, or disable the default permission requirement by toggling off all permissions in this section. Click Save Changes. - Enable Use Slash Commands permission for the role
Go to Server Settings > Roles. Click on the role that cannot use the command. Scroll to the General Permissions section. Find the Use Slash Commands permission and toggle it on. Click Save Changes. This permission is near the bottom of the list, below Use External Emojis and above Use External Stickers. - Adjust command integration role restrictions
Return to Server Settings > Integrations. Click Manage or the gear icon for the bot. Under Commands, click Edit for the slash command. Look for the Roles section. If the command is set to Disabled for all roles, change it to Enabled for specific roles. Then add the affected role to the allowed list. Alternatively, if the command is set to Enabled for all roles, but you see a Disabled for specific roles list, ensure the affected role is not on that list. Click Save Changes. - Test the command with the role
Assign the role to a test account or use the role in a channel where you can see the slash command menu. Type / followed by the command name. If the command appears in the autocomplete list and can be sent, the fix is complete. If the command still does not appear, double-check each of the previous steps. Sometimes changes take a few seconds to propagate.
If Discord Still Has Issues After the Main Fix
Command Does Not Appear in Autocomplete at All
If the slash command does not show up in the autocomplete list for any role, the bot may be offline or the command may have been deleted. Check if the bot is online by looking at its status in the member list. If the bot is offline, the command will not work for anyone. Also verify that the bot has not removed the command in a recent update. You can check the bot’s support server or documentation for changes.
Command Appears but Returns a Permission Error
If the command appears in autocomplete but when you press Enter you see a permission error, the issue is likely with the command’s default member permissions or the role’s Use Slash Commands permission. Double-check step 1 and step 2 above. Also verify that the bot has the necessary permissions to perform the command action. For example, if the /kick command requires the bot to have the Kick Members permission, ensure the bot’s role has that permission.
Role Can Use Command in Some Channels but Not Others
Discord allows server administrators to override role permissions at the channel level. If a role can use a slash command in one channel but not another, check the channel-specific permissions. Right-click the channel, select Edit Channel, go to Permissions, and select the role. Ensure the Use Slash Commands permission is set to Allow. If it is set to Inherit or Deny, change it to Allow.
Comparison of Permission Layers for Slash Commands
| Permission Layer | Location | Effect on Role |
|---|---|---|
| Default Member Permissions | Server Settings > Integrations > [Bot] > Commands > Edit | Requires the role to have a specific permission (e.g., Kick Members) or disables the requirement entirely |
| Role Permission: Use Slash Commands | Server Settings > Roles > [Role] > General Permissions | If disabled, the role cannot use any slash command; if enabled, the role can use commands that are not otherwise restricted |
| Command Integration Role Restrictions | Server Settings > Integrations > [Bot] > Commands > Edit > Roles | Limits command usage to specific roles or excludes specific roles |
After checking and adjusting these three layers, the slash command should work for the intended role. If you still encounter issues, verify that the bot has the necessary permissions to perform the command’s action and that no channel-specific overrides are blocking the role.