Permissions in NadekoBot

NadekoBot's permission commands set who can use which commands, and where: turn a module or a single command on or off for the whole server, a channel, a role or one member. All commands and modules are on by default.

NadekoBot permissions and Discord permissions

Some commands also need a Discord permission - members can only use .kick and .voicemute if they have the Kick Members and Mute Members server permissions. The permission commands add restrictions on top of that, based on who runs a command and where.

To change permissions you need the Administrator server permission. To let someone else change them, give them the role you set with .permrole - there is no permission role by default.

  • .permrole Set the role that may change NadekoBot's permissions on this server.

How the permission chain works

NadekoBot's permissions work as a chain of rules. Every time someone uses a command, NadekoBot checks the chain from the top: if a rule allows or blocks the command, that decides it, and if not, it goes on to the next rule, down to the last rule, which allows all commands.

See the chain with .lp. A rule higher in the chain wins over every rule below it. Remove rule number X with .rp X, and move rule X to place Y with .mp X Y (it moves the rule, it does not swap the two).

Turn on .verbose true and NadekoBot tells members which rule stops them from using a command or module.

  • .lp Show the permission chain of this server.
  • .rp Remove a rule from the chain by its number.
  • .mp Move a rule to another place in the chain.
  • .verbose Tell members which rule blocked their command.
  • .resetperms Reset this server's permission chain to the default.

Turn modules and commands on or off

Each rule turns a module or a single command on or off, for the whole server, one channel, one role or one member. The short names say which: s for server, c for channel, r for role, u for user, followed by m for a module or c for a command - .sm Gambling disable turns off the gambling module on the server, and .sc .nowplaying enable turns on one command.

The "all modules" versions change every module at once: .asm for the server, .acm for a channel, .arm for a role and .aum for a member.

Only the Gambling module works in #gamblers-den.
  • .sm Turn a module on or off on the whole server.
  • .sc Turn a command on or off on the whole server.
  • .cm Turn a module on or off in one channel.
  • .rm Turn a module on or off for one role.
  • .asm Turn all modules on or off on the whole server.
  • .acm Turn all modules on or off in one channel.
  • .arm Turn all modules on or off for one role.
  • .aum Turn all modules on or off for one member.

Filter words, links and invites

The Permissions module also deletes messages with words you filter, links or server invites, on the whole server or in single channels, and sets a cooldown on a command.

Set it up in 3 steps

  1. Invite NadekoBot. All commands work everywhere until you add a rule.
  2. Turn off all modules on the server: .asm disable
  3. Turn them on in your bot channel only: .acm enable #bot-commands

Questions about NadekoBot permissions

How do I restrict all commands to a single channel?

Use .asm (all server modules) together with .acm (all channel modules): .asm disable turns off all modules on the server, then .acm enable #bot-spammerino turns them on in #bot-spammerino.

How do I allow only one module in a channel?

Turn off all modules in that channel, then turn the one you want back on - for gambling in #gamblers-den: .acm disable #gamblers-den, then .cm Gambling enable #gamblers-den.

How do I make a music DJ role?

Turn off music for everyone with .sm Music disable, let everyone see the current song and the queue with .sc .nowplaying enable and .sc .listqueue enable, then turn all music commands on for the DJ role with .rm Music enable DJ. On the public NadekoBot, music needs a Patreon tier.

How do I stop Expressions from triggering?

Turn off the module that runs them: .sm ActualExpressions disable. ActualExpressions controls whether Expressions trigger, and the Expressions module holds the commands that manage them (.exa, .exl and the others).

I broke my permissions. Can I reset them?

Yes - .resetperms resets the permission chain to the default, where every command works everywhere.

More in NadekoBot