We’ve made it simpler to manage permissions for commands in your server. These changes will be enabled for all servers on February 28, 2023. You can try them out early in Server Settings > Integrations.
What changed?
Command-level permissions changes now act as an “override” of app-level configurations. This makes them function more like server permissions and channel overwrites.
Command Overwrites
Previously, if you made changes to an individual command’s permissions, Discord would ignore all application-level settings and defaults set by the developer. Now, individual command changes only overwrite conflicting settings. Other application-level changes are still in effect.
Example
Here we have an app called StudyBot. By default, we only want the "Student Leads" role to be able to use its commands, and only in #study-zone.
However, we also want the "Study Buddies" role to be able to use a specific command, /notecards. We also want that command to be usable in #flashcard-help.
Previously, this setup would remove access from Student Leads, and in #study zone. /notecards could be used
- Only by Study Buddies
- Only in #flashcard-help
Now, /notecards can be used
- By Study Buddies and Student Leads
- In #flashcard-help and #study-zone
Default Member Permissions
Some apps have default restrictions on their commands when they’re added to a server, called “default member permissions”. We don’t want everyone to be able to ban each other before we get our app set up properly!
Previously, if you made any changes to command permissions–either for individual commands or for the application as a whole–Discord would ignore default member permissions. Giving an additional user or role access to a command could cause the rest of the server to gain access to a command they shouldn’t be able to use!
Now, default member permissions are still used when changes are made. You can safely override roles and users to additionally grant or remove access without affecting other server members.
Example
/study has a default restriction on it: only members with “Manage Channel” can use it. However, in the previous system, this would be ignored because changes are made at the application level to deny everyone, and allow Student Leads.
Previously, /study could only be used
- By Study Buddies
- In #flashcard-help
Now, /study can be used
- By Student Leads who also have Manage Channel
- By Study Buddies, regardless of whether they have Manage Channel
- In #flashcard-help and in #study-zone
If we wanted all Student Leads to have access to /study, we could add them as another override.