Skip to main content
Three separate things have to line up for a command to work:
  1. You need the permission the command requires
  2. mira needs the Discord permission to perform the action
  3. Role hierarchy has to allow it — for both of you
Most “the bot isn’t working” problems are the third one.

Role hierarchy

Discord will not let anyone — bot or human — manage a member or role that sits at or above their own highest role.
Drag mira’s role near the top of your role list. A bot positioned below your staff roles will silently fail to ban moderators, assign senior roles, or revert an antinuke incident involving an admin.This is the number one setup problem, and it produces confusing symptoms because most things still work.
The same rule applies to you: a moderator can’t ban someone whose top role is above their own, regardless of permissions or fake permissions. The server owner can never be punished by anyone.

What mira needs

Administrator covers everything, and is what the invite link asks for. If you’d rather be precise:

Channel overwrites beat role permissions

A role-level allow does not override a channel-level deny. If a command works in one channel and not another, check that channel’s permission overwrites first — it’s almost always the answer.

What you need

Every command’s help page states its requirement:
Common ones:

Special cases

A few things ignore Discord permissions entirely: Antinuke is deliberately stricter than Administrator — an attacker who gains Administrator would otherwise just turn it off.

Granting access without Discord permissions

Fake permissions let a role use mira’s commands without holding the real permission:
They can now run !ban through mira, and nothing else — not Discord’s UI, not other bots. Revoking is one command. Note that mira still performs the action with its permissions, and hierarchy still applies to both of you.

Restricting access further

See Command access.

Diagnosing a failure

1

Does the command respond at all?

No response usually means the wrong prefix, an ignored member or channel, or a disabled command. Try @mira ping to rule out the prefix.
2

Does it say you lack permission?

Check !help <command> for what it needs. If you should have it, check the channel’s overwrites — a deny there beats your role.
3

Does it say the bot lacks permission?

Check the same overwrites for mira’s role, not just its server-level permissions.
4

Does it fail on one person but work on others?

Hierarchy. Their top role is at or above mira’s, or above yours. Move mira’s role up.
5

Did it work yesterday and not today?

Something moved. A role got repositioned, an overwrite was added, or mira’s role was dragged down during a reorganisation.
More in the FAQ.