Internal DocsPermissions


Architus implements a permission schema that naturally extends discord’s native functionality. A set of permissions can be applied to each role or member of a server.

Below is a table of all current permissions and their hexidecimal values:

Bitwise Permission Flags
ADMINISTRATOR0x0001Grants all permissons
VIEW_PUBLIC_LOGS0x0002Allows viewing any action logged in a public channel
VIEW_PRIVATE_LOGS0x0004Allows viewing any action logged in the guild
REVERT_LOG_ACTIONS0x0008Allows reverting any reversible action logged
ADD_AUTO_RESPONSE0x0010Allows adding auto responses to the guild
IGNORE_AUTO_RESPONSE_QUOTA0x0020Allows adding auto responses, even if the quota has been reached
EDIT_ANY_AUTO_RESPONSE0x0040Allows editing any user’s auto responeses
DELETE_ANY_AUTO_RESPONSE0x0080Allows deleting any user’s auto responses
VIEW_SETTINGS0x0100Allows viewing architus settings for the guild
MANAGE_SETTINGS0x0200Allows modifying architus settings for the guild
EXEC_PURGE_CMD0x0400Allows executing the purge command

The default permission value for a new guild is 0x112.

Permission Hierarchy

The default role, @everyone, always holds the default base permissions for every member of the guild. Each role and user can optionally have additional permissions associated with it.

Calculating a User’s Permissions

Architus permissions are only additive. Therefore a user’s permissions are always exactly the union of their personal permissions and the permissions of every role that they have:

Psuedo Code
permissions = member.permissions
for role in member.roles:
    permissions |= role.permissions