DJ mode
With DJ mode off, anyone in the voice channel can use the music commands. That is the default and it suits most servers.
With DJ mode on, every music action is blocked unless a rule allows it. You then hand out actions to roles and to individual members.
Turning it on
Go to the dashboard, Music, then DJ Mode, and flip the switch at the top of the page. That page is also where every permission is configured.
/djmode in Discord shows the current state: on or off, what @everyone is
allowed to do, how many roles and members have their own entry, and a button
that opens the dashboard page. It is read only, so anyone can run it, and it
changes nothing.
Careful. Turning DJ mode on with nothing allowed blocks every music command for everyone. The dashboard and
/djmodeboth warn you when the server is in that state. Allow at least the basics on the@everyonebase level.
How a decision is made
Permissions are a list of entries, each one attached to a member, a role, or the
@everyone base level. Each entry sets every action to Allow, Deny or
Inherit.
For a given action, FlaviBot walks the entries that apply to the member, in priority order:
- The member's own entry, if they have one.
- Their roles, in the order you arranged them.
- The
@everyonebase level.
The first Deny it meets refuses immediately. The first Allow it meets grants the action. Inherit means "no opinion", so it keeps looking. If it reaches the end with no explicit Allow, the action is denied.
That last rule is the one to remember: DJ mode is deny by default. Silence is not permission.
Roles are dragged into order on the dashboard, and the order is what sets priority. A Deny on a high-priority role beats an Allow further down.
All Permissions
Every entry has an All Permissions switch. Allowing it grants every music action, including ones added later. Denying it blocks everything for that entry, whatever the individual actions say.
The actions
| Permission | Covers |
|---|---|
| Connect Bot | /join, and starting playback |
| Add Songs | /play, /play-file, /tts |
| Remove Songs | /remove, /clearqueue |
| Disconnect | /disconnect |
| Pause/Resume | /pause, /resume |
| Stop | /stop |
| Skip | /skip, /previous, /jump |
| Volume | /volume |
| View Queue | /queue |
| Move Songs | /move, /shuffle |
| Toggle Loop | /loop |
| Toggle Autoplay | /autoplay |
| Seek | /seek, /fastforward, /rewind |
| Filter Effects | /filter |
| Fix Audio | /fix |
One special case: Connect Bot is treated as allowed when the bot is already connected to a voice channel, so someone who may add songs but not summon the bot can still queue tracks into a running session.
A worked example
A common setup: everyone may queue and vote, only the DJ role may control playback.
- On the
@everyonebase level, allow Connect Bot, Add Songs and View Queue. Leave the rest on Inherit. - Add your DJ role and allow All Permissions on it.
Members get music, the DJ role gets control, and nobody has to be an administrator.
To silence a specific troublemaker without touching roles, add them as a member entry and deny what they abused. Member entries are always checked first, so they win over any role they hold.
How many entries you get
Free servers get 2 permission entries, and the @everyone base level counts
as one of them. Premium removes the limit.
Where DJ mode applies
Everywhere: slash commands, prefix commands, the buttons on the now playing message, the controller panel and the web player. The web player greys out what you are not allowed to do instead of failing after the click.
Music actions run by an autoresponder are the one exception. They were configured by someone with Manage Server, and they have no member in a voice channel, so they are not subject to DJ mode.
