For the complete documentation index, see llms.txt. This page is also available as Markdown.

Bot Permissions Checklist

If the bot isn't working right in your server, 90% of the time it's a permissions issue. This page walks through every permission the bot needs, why, and how to verify everything's set up.

Quick check: /guild-permissions

The fastest way to diagnose: run /guild-permissions in any channel.

The bot checks every permission it needs against what it actually has, and reports back:

  • ✅ All good — the bot has everything it needs.

  • ⚠️ Missing: [specific permissions] — you'll need to grant these.

  • ❌ Cannot send messages — the bot can't even respond; you'll need to grant Send Messages first.

Re-run the command after fixing anything to confirm the fix worked.

Required permissions (must have)

These permissions are required for core functionality. If any are missing, the bot can't do its job.

Permission
Why it's needed

View Channel

To see slash commands when users invoke them.

Send Messages

To respond to commands.

Embed Links

To send rich-formatted responses (profile cards, leaderboards, Contest announcements).

Attach Files

To send generated images (completion cards, profile visuals).

Use External Emojis

For platform icons (Steam, PSN, Xbox logos in responses).

Read Message History

To resolve replies, threads, and command context.

Use Application Commands

For slash commands to work at all.

If any of these are missing, the bot can't function. Grant them in:

Server Settings → Integrations → RivalRyze Bot → Manage

Or per-channel under each channel's permission overrides.

Optional permissions (nice to have)

These unlock additional features. The bot still works without them but won't be as useful.

Permission
What it enables

Add Reactions

Interactive responses (e.g., reacting with ✅ to confirm a Contest join).

Manage Messages

Letting the bot clean up its own responses on request.

Manage Threads

Creating dedicated threads for active Contests.

Manage Roles

Auto-assigning roles based on rank or Contest wins. Required for Role Automation.

Mention Everyone

Pinging @everyone for Contest starts (use sparingly — most servers don't enable this for bots).

Channel-specific permissions

The bot may have permissions at the server level but be blocked in specific channels. This is the most common source of "bot works in #general but not #battles" issues.

How to check

In Discord:

  1. Right-click the channel → Edit Channel.

  2. Go to Permissions.

  3. Find the RivalRyze Bot role (or the bot itself if it doesn't have a role).

  4. Verify the permissions match the table above.

If you don't see the bot or its role in the permission list:

  • The channel uses the default server permissions (which should be fine if you granted them at the server level).

  • Or there's a @everyone override that blocks the bot from this channel.

Activity Feed channel

The bot must have permissions in the Activity Feed channel specifically. If you change the activity channel to one where the bot can't post, automatic announcements stop.

Run /guild-permissions after changing the activity channel to verify.

Role hierarchy

Discord respects role hierarchy. If the bot's role is below the role of a member you want it to manage, the bot can't act on that member.

Specifically:

  • For role automation (auto-assigning roles), the bot's role must be above the roles it's assigning.

  • For everything else, hierarchy doesn't matter.

To fix: Server Settings → Roles → drag the RivalRyze Bot role above the roles it needs to manage.

Privacy implications

Now that you know what permissions the bot has, here's what it actually reads or stores:

  • Channel and message content: the bot reads only the content of slash commands directed at it (slash commands are filtered to the bot at the Discord layer). It does NOT read other messages in the channel.

  • Member list: the bot reads your server's member list to sync members. It does NOT track who joins / leaves at the individual level beyond updating member sync.

  • Roles: the bot reads members' roles for role-based Contest access checks.

  • Direct messages: the bot can DM members only if their privacy settings allow DMs from server members. It will never DM a member who has DMs blocked.

The bot does not:

  • Read your members' private DMs.

  • Track or log non-command messages.

  • Share your server's data with other RivalRyze guilds.

"I tried to use a command but the bot didn't respond."

  • Run /guild-permissions in the same channel. If the bot can't even respond to that, it's missing Send Messages or Use Application Commands.

  • If the bot responds to /guild-permissions but not other commands, those specific commands may need additional permissions (see the breakdown above).

"The bot posts in #general but not in our activity channel."

  • The activity channel has channel-specific permission overrides that block the bot.

  • Fix: Edit Channel → Permissions → grant the bot View Channel, Send Messages, Embed Links, Attach Files.

"The bot can't assign roles."

  • The bot's role is below the role it's trying to assign in the hierarchy. Drag the bot's role higher in Server Settings → Roles.

  • Or the bot is missing Manage Roles. Grant it at the server level.

"Member sync doesn't show all our members."

  • Privileged intents may not be fully enabled. This is a server-size threshold thing. Below 100 servers, the bot uses standard intents; above 100, it requires Discord's approval for privileged intents.

  • Contact support if you suspect this — we can verify what's enabled at our end.

Re-running setup vs. fixing permissions

If permissions are wrong but the bot has otherwise registered the guild correctly, you don't need to re-run /setup. Just fix the permissions and the bot picks up the new state immediately.

Re-run /setup only if:

  • You changed Discord servers (rare).

  • You want to change the activity channel and don't want to use /guild-settings.

  • The setup itself failed and you need a clean retry.

Last updated