Skip to main content

Commands

In order of likelihood:
  1. Wrong prefix. @mira ping always works — mentioning is a prefix no matter what’s configured.
  2. The channel is ignored. !ignore list
  3. The command or its category is disabled. !command disable list and !module disable list
  4. mira can’t see or speak in the channel. It needs View Channel, Send Messages and Embed Links. Check the channel’s overwrites, not just the role.
  5. You’re ignored. Also !ignore list.
Check what the command needs:
If you should have it, a channel-level deny is probably overriding your role. If you shouldn’t have it but need it, fake permissions grant bot-only access without the real Discord permission.
Role hierarchy. Discord won’t let anyone manage a member whose highest role is at or above their own — this applies to mira and to you.Fix: drag mira’s role near the top of your role list, above your staff roles.The server owner can never be punished by anyone.
Mentioning the bot always works.
Change yours, or set a personal prefix that only affects you:

Roles

  • mira’s role must be above the role being given
  • It needs Manage Roles
  • For reaction roles specifically, it needs Add Reactions and Read Message History
If people have a reaction but no role, Discord dropped the event:
If a message lost its buttons after being edited:
If your server has membership screening (“Complete the rules screening”), members are pending until they accept. Autoroles apply after they accept, not on the initial join. This is correct behaviour but catches people out when testing.
  • The member has to actually be boosting, or hold a role added via !boosterrole include
  • mira needs Manage Roles
  • Set a base position so they don’t scatter: !boosterrole base @Booster
  • Discord caps a server at 250 roles
The mute role’s overwrites weren’t applied to channels created after setup:

Scripts

A script with no recognised node names is treated as plain content. Check for typos — {tilte:} won’t be recognised, so the whole thing falls back to text.Test with !embed <script> before committing it to a config.
Button and section parts are separated by whitespace, not & or &&:
Wrong
Right
An & gets absorbed into the preceding value, so the key before it is lost entirely — which Discord reports as a missing label or a section with 0 components.&& is only for multi-part embed nodes: {author:}, {footer:}, {field:}.
That variable isn’t available in that context. A welcome message knows about {user}; a counter channel uses a completely different, flatter set.Most modules have a variables subcommand listing what they support:
Discord only sends notifications from message content, not embeds. Put the mention in {content:}:
You’re probably over a Discord limit: 40 components, 10 buttons across 5 rows, or 4000 characters of text. Trim it down.

Feeds and reposting

  • The account may have gone private — feeds stop silently
  • The account may have been renamed
  • Check it’s still configured: !tiktok list
  • mira needs Send Messages and Embed Links in the target channel
Feeds poll, so there’s always a delay of a minute or more.
Also check whether reposting is restricted to roles you don’t have. Private, deleted, age-restricted and geo-blocked content can’t be fetched.
Discord’s upload limit — mira will automatically host the content on our own server to bypass Discord’s limit.

Music and voice

It needs Speak in the voice channel, not just Connect. Check the channel’s overwrites.
Spotify remote control needs an active device — play something in the Spotify app first, then !spotify device to confirm the target. Playback control also requires Premium; that’s Spotify’s restriction.
mira needs Manage Channels and Move Members, and the category needs room — Discord caps a category at 50 channels. If the join-to-create channel was deleted, re-run !voicemaster setup.

Configuration

Discord rate-limits channel renames to twice per 10 minutes, per channel. Counters update roughly every 10 minutes as a result. !counter refresh #channel forces one immediately.Running many counters spreads that budget thin — three or four is usually plenty.
A bot can only log what it can see. Messages from before mira joined, or in channels it can’t view, aren’t recoverable — that’s a Discord limitation, not a missing feature.Make sure it has View Channel and Read Message History everywhere.
  • Re-publish the panel after any option change: !tickets resend Support
  • Check the member isn’t blocked by required roles, a blacklist, or the per-panel ticket limit
  • Check the category isn’t full — set an overflow category
!nuke gives the channel a new ID. Anything referencing the old one breaks: sticky messages, counters, ticket panels, webhooks, pinned links. Re-point them.
Whitelist people who legitimately do bulk work, then undo it:
The alert message has a restore button for deleted roles and channels, valid for one hour. After that, backups.

Recovering from an attack

1

Stop the bleeding

2

Remove the attackers

3

Undo the damage

Use the restore button on the antinuke alert if it’s within the hour. Otherwise !backup.
4

Reopen

5

Work out how it happened

Then tighten the thresholds and trim the whitelist.

Still stuck?