Discord command visibility

Keep Discord's slash-command picker aligned with Aethor's role rules

Aethor and Discord each answer a different question:

  • Aethor’s capability rules decide whether an action is allowed when someone tries to run it.
  • Discord’s command permissions decide whether a slash command is visible or selectable in Discord.

Changing an Aethor role rule does not, by itself, rewrite Discord’s command picker. This can produce two confusing situations:

  • Aethor would allow @Suggestion Team, but Discord hides the command before the member can select it.
  • Discord shows a command to someone, but Aethor denies the protected action when it runs.

The optional command visibility sync keeps the role part of Discord’s command permissions aligned with Aethor’s rules. Its controls are at Settings → Permissions in the dashboard.

The Aethor dashboard command visibility sync status and controls

When to enable it

Enable sync when you use Only selected roles for actions that have slash commands. Without it, members may need a broad Discord permission just to make Discord show the command, even though Aethor no longer requires that permission at runtime.

You do not need sync merely to use the dashboard. Buttons, menus and modal submissions are also checked by Aethor but have no separate Discord command-visibility list to mirror.

Enabling sync

Open Settings → Permissions and select Enable Discord sync. Discord asks the signed-in administrator to authorize the additional access used to update application-command permissions for this one server.

Use an administrator account that:

  • can manage the server and its roles;
  • can run the commands being updated;
  • is above every role that will be mirrored in Discord’s role hierarchy.

The authorization belongs to the person who enabled sync. Future background updates use that stored authorization, even when a different administrator changes an Aethor rule. If the authorizing person’s role changes or moves below a selected role, later syncs can fail until an eligible administrator re-authorizes.

What Aethor writes

For a command controlled by selected roles, Aethor tells Discord to hide it from @everyone and allow the selected roles. For a command returned to Use Discord permissions, Aethor removes the role-specific mirror for that command.

Aethor only owns the role part of the mirrored command permissions. A sync reads Discord’s current list first and preserves:

  • channel allow or deny entries;
  • individual-user entries;
  • Discord’s special “all channels” entry.

This means an existing channel restriction is not silently erased when Aethor updates roles. If you need “this command can be used in #staff but not #general”, configure that channel rule in Discord. Aethor’s grants answer who. Discord’s channel entries answer where.

Aethor remains the authority

The Discord mirror only controls visibility. Aethor does not use it as proof that an action is allowed. Every command, dashboard request and component interaction still passes through the capability evaluator at runtime.

If Discord is temporarily out of sync, a valid Aethor permission rule can still save when Discord rejects the background mirror. The dashboard reports the sync problem separately, and the Aethor rule remains saved.

One top-level command, several paths

Discord applies command permissions to a whole top-level command. It cannot show /suggestion list to one role while hiding /suggestion edit from that role as two independent command-picker rules.

The dashboard’s Access → Commands view therefore shows:

  • each full path and the capability Aethor enforces for that path;
  • one visibility status for the top-level command that contains those paths.

Treat the capability result as the security decision. Treat the top-level visibility result as what Discord is expected to show.

Statuses in the dashboard

StatusMeaningWhat to do
Synced / Visible as expectedDiscord’s role entries match Aethor.Nothing.
Syncing…A background update is running or queued.Wait, then refresh status.
Not enabled / Sync disabledAethor is not writing Discord command visibility.Enable it if selected-role rules affect commands.
Discord entries missingA role rule exists but Discord has no matching role entries.Select Sync now; re-authorize if it fails.
Discord entries differSomeone changed Discord’s role entries or the last update only partly succeeded.Review intentional Discord edits, then select Sync now if Aethor should win.
Unexpected Discord entriesAethor uses the default rule but Discord still has role-specific entries.Sync to remove the stale role mirror.
Not registeredThe expected top-level command is not registered in this Aethor environment.Refresh first; contact support if it remains missing.
Not managed by syncThe command deliberately has no capability mirror.Nothing; this is neutral, not a failure.
Entry limit exceededDiscord’s 100-entry limit cannot fit the selected roles plus preserved user/channel entries.Reduce selected roles or simplify Discord’s existing command entries. Aethor never truncates the list.
Partially syncedSome commands updated and others did not.Open the command list to find the affected commands and their reasons.
Sync failedDiscord rejected the update or the authorization could not be used.Re-authorize with an eligible administrator, then sync again.

Drift is normal when two people edit

The sync is one-way: Aethor → Discord. It does not import role edits made in Discord. If someone changes a command’s role permissions directly in Discord, the dashboard reports drift. Select Sync now only when you intend Aethor’s selected roles to replace Discord’s role entries.

Channel and individual-user entries remain preserved either way.

Re-authorize or disable

Use Re-authorize sync when the original administrator lost access, the authorization was revoked, or hierarchy changes caused updates to fail.

Use Disable sync when you want to manage command visibility manually in Discord. Disabling removes Aethor’s stored authorization and stops future writes. It deliberately does not remove command overrides already written to Discord. Removing them automatically could unexpectedly make commands visible to everyone.

After disabling, review Discord’s command permissions yourself and remove or change any role entries you no longer want.