Permission Issues

Fix permission problems with Nevi. Covers "you don't have permission" errors, bot missing permissions, role hierarchy, channel overrides, modrole/adminrole, reaction roles, and common fixes.

"You don't have permission"

If Nevi tells you that you don't have permission to run a command, it means your Nevi permission level is lower than what the command requires. This is Nevi's own permission system, separate from Discord's built-in permissions.

Nevi uses a four-tier hierarchy: User (Level 1) < Mod (Level 2) < Admin (Level 3) < Owner (Level 4).

How to check what level a command needs

Run /help <command> to see the required permission level for any command. If it says "Mod" and you're at "User" level, you won't be able to use it.

How to get the right permission level

  • Automatic detection: If your Discord role has Ban Members, Kick Members, or Manage Messages permissions, Nevi automatically treats you as a Mod. If your role has Administrator, you're treated as an Admin.
  • Custom roles: Ask the server owner to set you as a mod or admin using /config set modrole @YourRole or /config set adminrole @YourRole. This overrides automatic detection.

For a full explanation of how permission levels work, see Understanding Permissions.

Bot missing permissions

If Nevi says it's missing permissions to perform an action (like banning a user, deleting messages, or assigning a role), the issue is with Nevi's Discord role - not with your own permissions.

This means Nevi's role in your server doesn't have the necessary Discord permissions to do what you asked it to do.

How to fix

  1. Go to Server Settings > Roles
  2. Find the Nevi role (it's created automatically when the bot joins)
  3. Click on it and go to the "Permissions" tab
  4. Enable the permission that Nevi says it's missing. Common ones include:
    • Ban Members - for ban/unban commands
    • Kick Members - for kick command
    • Manage Messages - for purge and message cleanup
    • Manage Roles - for reaction roles, autoroles, and muting
    • Manage Channels - for channel lock/unlock
    • Manage Nicknames - for nickname commands
    • Connect & Speak - for music playback

Tip: If you want Nevi to have full functionality without worrying about individual permissions, you can grant it the Administrator permission. This is the easiest approach, but only do this if you trust the bot (which you should - Nevi never takes actions on its own without being told to).

Role hierarchy

Discord enforces a strict role hierarchy. Bots can only moderate users whose highest role is below the bot's own highest role. This is a Discord limitation that applies to all bots, not just Nevi.

What this means in practice

  • If a user has a role above Nevi's role, Nevi cannot ban, kick, mute, or change their nickname - even if Nevi has the right permissions.
  • If a user has a role at the same level as Nevi's role, Nevi still cannot moderate them. The bot's role must be strictly above the target.
  • The server owner is always immune to moderation actions from any bot or user, regardless of role positions.

How to fix

  1. Go to Server Settings > Roles
  2. Find the Nevi role in the list
  3. Drag it above the roles of users you want Nevi to be able to moderate
  4. For best results, place Nevi's role near the top of your role list, just below your admin roles

Visual example

Server Owner

Admin Role

Nevi ← bot role goes here

Moderator Role

Member Role

@everyone

In this setup, Nevi can moderate anyone with the Moderator or Member role, but cannot moderate Admins or the Server Owner.

Channel permission overrides

Discord lets you set per-channel permission overrides that can override the permissions granted by a role at the server level. This is one of the most common sources of "why isn't the bot working in this channel?" issues.

How overrides work

  • A deny (red X) on a channel override always beats an allow from a role. If Nevi's role has "Send Messages" at the server level but the channel has an explicit deny, Nevi cannot send messages in that channel.
  • Overrides can be set for specific roles or for @everyone. If @everyone is denied a permission and Nevi's role doesn't have an explicit allow, the deny applies to Nevi too.
  • Some permissions like Manage Roles and Administrator cannot be overridden per-channel. They only work at the server level.

How to check

  1. Right-click the channel where Nevi isn't working
  2. Select "Edit Channel"
  3. Go to the "Permissions" tab
  4. Look at the overrides for Nevi's role and @everyone
  5. Remove any explicit denies (red X) that are blocking the permission Nevi needs

Common override issues

  • Send Messages denied → Nevi can't respond to commands in this channel
  • Embed Links denied → Nevi's responses fail silently (most responses use embeds)
  • View Channel denied → Nevi can't see the channel at all - it won't respond, log, or react
  • Add Reactions denied → Reaction roles won't work in this channel
  • Connect / Speak denied on a voice channel → Nevi can't join or play music

Modrole & adminrole misconfiguration

If the wrong people have access to moderation or admin commands (or the right people don't), the issue may be with your /config set modrole or /config set adminrole settings.

Check current settings

/config view

This shows all your current server configuration, including which roles are set as modrole and adminrole. Verify that the correct roles are assigned.

Common issues

  • Modrole set to the wrong role: If modrole is set to a role that regular members have, those members will gain Mod-level access to Nevi commands. Double-check that modrole points to your actual moderator role.
  • Modrole not set at all: If no modrole is configured, Nevi falls back to automatic detection (checking for Ban Members, Kick Members, or Manage Messages permissions). If your moderators don't have those Discord permissions, they won't be detected as mods.
  • Deleted role: If the role that was set as modrole/adminrole was deleted from the server, the setting becomes invalid. Re-set it with a new role.

How to fix

/config set modrole @Moderators - set the mod role

/config set adminrole @Admins - set the admin role

Only the server owner can change these settings.

Bot role position for actions

Many of Nevi's features require its role to be positioned above the roles it needs to interact with. This applies to any action that modifies a user or their roles.

ActionRequirement
Banning a userNevi’s role must be above the user’s highest role
Kicking a userNevi’s role must be above the user’s highest role
Muting a userNevi’s role must be above the user’s highest role AND the mute role
Changing a nicknameNevi’s role must be above the user’s highest role
Assigning a role (autoroles, reaction roles)Nevi’s role must be above the role being assigned
Removing a roleNevi’s role must be above the role being removed

If any of these actions are failing, the first thing to check is whether Nevi's role is high enough in the role list. See the Role Hierarchy section above for instructions on repositioning it.

Reaction roles not working

Reaction roles are one of the most permission-sensitive features. If users click a reaction but don't receive the role, check these things in order:

1. Nevi's role must be above the roles it assigns

Discord prevents bots from assigning roles that are at or above their own position. If you're trying to assign a "Member" role via reaction roles, Nevi's role must be above the Member role in Server Settings > Roles.

2. Nevi needs "Manage Roles" permission

Without the Manage Roles permission at the server level, Nevi cannot assign or remove any roles. This permission cannot be granted per-channel - it must be on Nevi's role itself.

3. Nevi needs "Add Reactions" and "Read Message History"

In the channel where the reaction role message is, Nevi needs Add Reactions (to add the initial reactions) and Read Message History (to detect when users react). Check channel-level overrides if these are denied.

4. The reaction role message still exists

If the original message was deleted, the reaction role setup is lost. You'll need to create a new reaction role message with /reactionrole.

Common fixes (step by step)

If you're not sure what's wrong, follow this checklist to fix the most common permission issues. These steps resolve the vast majority of problems:

Step 1: Check Nevi's role position

  1. Go to Server Settings > Roles
  2. Find the Nevi role
  3. Drag it above all the roles it needs to manage (moderator roles, member roles, mute roles, reaction roles)
  4. Ideally, place it just below your Admin/Owner roles and above everything else

Step 2: Verify Nevi's role permissions

  1. Click on the Nevi role in Server Settings > Roles
  2. Go to the "Permissions" tab
  3. Ensure these are enabled: Send Messages, Embed Links, Read Message History, Use Application Commands
  4. For moderation, also enable: Ban Members, Kick Members, Manage Messages, Manage Roles
  5. For music, also enable: Connect, Speak

Step 3: Check channel-level overrides

  1. Right-click the channel where the issue occurs and select "Edit Channel"
  2. Go to the "Permissions" tab
  3. Look at overrides for Nevi's role and @everyone
  4. Remove any explicit denies (red X) on permissions Nevi needs (Send Messages, Embed Links, View Channel, etc.)

Step 4: Verify modrole and adminrole

  1. Run /config view to see current settings
  2. Verify that modrole points to your actual moderator role
  3. Verify that adminrole points to your actual admin role
  4. If either is set to a deleted role or the wrong role, update it with /config set modrole @CorrectRole

Quick fix: Grant Administrator

If you want to skip the detailed troubleshooting and just make everything work, you can grant Nevi's role the Administrator permission. This gives it full access to everything and bypasses all permission checks. This is safe - Nevi only takes actions when explicitly told to via commands. It will never ban, kick, or modify anything on its own.

If you've followed all four steps and things still aren't working, join the Nevi Support Server for hands-on help. Include your server name, the exact error message, and what command you're trying to run.