Skip to main content
An action must pass Pup access checks and the relevant Discord checks. A Pup permission does not override Discord’s native permissions, role hierarchy, channel visibility, or a missing bot permission. Pup uses permission sets bound to individual users or Discord roles. The server owner has every Pup permission, including review and private support access, without assigning a role. Owner submissions bypass member role requirements, cooldowns and quotas. Discord limits and bot permissions still apply. Being a Discord administrator does not automatically grant every custom Pup capability. Moderation operations require access to the moderation module plus the relevant action capability. The command reference lists the native actor and bot permissions. Member actions also apply actor/bot/target hierarchy checks. Recording a warning does not require Pup’s role to be above the member or grant Pup Timeout Members: it creates a Pup case without changing Discord membership. The moderator still needs the warning permission, Discord Moderate Members, and a higher role than the target (the server owner bypasses the actor role check). Protected members remain excluded. If a warning triggers a timeout, kick or ban, that separate action still checks Pup’s Discord permissions and hierarchy. Protected subjects, disabled interactions, missing resources and stale access can prevent an action even when a role appears high enough. When access is denied, check the specific diagnostic before retrying. Refresh stale state, correct the narrow missing permission or binding, and retry only the intended operation. Do not repeatedly submit a destructive command to work around a denial. Configuration changes are revision-checked and successful policy changes are audited.

Give someone access

  1. Open your server’s Staff access page as the owner.
  2. Choose a built-in permission set, or open Permission sets → New permission set to create a narrow custom set. Built-in sets cannot be edited.
  3. For a moderator who records warnings, keep Operate moderation and Record warnings selected. Add only the other actions they need. To use the dashboard, also select Open dashboard and the relevant module’s View permission.
  4. In Bindings, choose a current Discord role or enter a current person’s Discord user ID, choose the set, and select Add binding. Bot users cannot receive direct grants. Repeating an active grant is rejected.
Custom sets are reusable: editing one changes the permissions of every active binding that uses it. A person can receive permissions through several direct and role bindings. Pup checks their current Discord permissions and role hierarchy when they act; adding a Pup grant does not raise either.

Choose permissions

Use the category sidebar to focus on one part of Pup, or search by a readable name or technical ID. Review selected shows the permissions already in the set. Filtering the list does not remove selections. Each permission shows both its name and its technical ID. There are two layers:
  • Module access, such as Operate moderation (module.moderation.operate), permits a kind of operation within that module.
  • Action permissions, such as Record warnings (moderation.warn), permit a specific task. The picker shows the additional module permission it needs.
Both must be present when an action requires them. Module access alone does not grant every action in that module. Some advanced module permissions describe operations that are not yet available; granting them does not add new features.

Remove or recover access

Select Revoke beside an active or faulted binding. Revocation removes that grant; other active direct or role grants still apply. To remove all access, revoke every applicable grant or remove the person from the granted Discord roles. The server owner’s recovery access remains available. Losing a granted role stops that person’s role-based access without removing the role grant for other members. Deleted roles and departed members fault their bindings. Reconcile checks current Discord subjects and records missing ones; it does not silently restore faulted or revoked grants. To deliberately restore access, verify the current member or role and create a new binding. If another session changed access, refresh before retrying. If Discord cannot verify current membership or permissions, Pup refuses the operation until those checks are available again.