serenity

Music

Play music in your server — queue, player panel, effects and DJ roles.

Replace [prefix] with your server's prefix.

Serenity plays music straight into your voice channels — from a search, a Spotify link, a Deezer or SoundCloud track, a whole playlist or an attachment you dropped into Discord. There's a queue, a button panel, audio effects and a DJ role for the servers that need one.

Music works especially well as slash commands — /play suggests tracks while you type.

Playing something

Join a voice channel and run [prefix]play with whatever you have: a song name, or a link. Serenity joins you, starts playing and adds everything after that to the queue.

// Syntax
[prefix]play [query]

// Example
;play never gonna give you up
;play https://open.spotify.com/track/4PTG3Z6ehGkBFwjybzWkR8
The first track starts right away
Slash command autocomplete suggests tracks from three characters on
SourceWhat you get
SpotifyTracks, albums and playlists
DeezerTracks and playlists
SoundCloudTracks and playlists
BandcampTracks and albums
YouTubeVideos and playlists
Apple MusicTracks and playlists
Discord attachmentsAudio files you uploaded to Discord

Any other link is refused. Serenity only accepts streaming service links and Discord attachments — arbitrary URLs never reach the audio node.

Spotify and Apple Music don't hand out audio, only information about a track. Serenity looks the same recording up on a source that does stream — matched by its ISRC, not by its title, so you get the actual song instead of a sped-up edit or a live version with the same name. The title, artist and artwork you see stay the ones you asked for.

Playlists

Paste a playlist link and the whole thing goes into the queue at once, up to your server's queue limit.

// Syntax
[prefix]play [playlist url]

// Example
;play https://open.spotify.com/playlist/37i9dQZF1DXcBWIGoYBM5M

Controlling playback

CommandWhat it does
[prefix]pausePause the current track
[prefix]resumeCarry on where you paused
[prefix]skipSkip to the next track in the queue
[prefix]seek [position]Jump to a position, like 1:30 or 90
[prefix]volume [amount]Set the volume between 0 and 150
[prefix]nowplayingShow what's playing and how far in it is
[prefix]disconnectStop, clear the queue and leave the channel
// Syntax
[prefix]seek [position]

// Example
;seek 1:30
The nowplaying command

[prefix]volume without a number tells you the current volume instead of changing it. [prefix]disconnect also answers to stop and dc.

Skipping the last track in the queue disconnects serenity for you — there's nothing left to play, so it doesn't sit in the channel doing nothing.

The Player Panel

If you'd rather click than type, [prefix]player posts a panel with the artwork, a progress bar and buttons for everything above.

// Syntax
[prefix]player

// Example
;player
The player panel
  1. Previous, play/pause, skip

    The transport buttons. The play button flips to pause and back with the state.
  2. Loop

    Cycles through off, track and queue — it lights up green while looping.
  3. Shuffle

    Shuffles everything still in the queue.
  4. Volume

    The dropdown jumps between 0% and 150%.
  5. Stop

    Clears the queue and leaves the channel.

There's one panel per server. Posting a new one greys the old one out, so you never end up with two panels disagreeing about what's playing. The panel also greys out when playback stops.

The buttons follow the same rules as the commands — you have to be in the voice channel, and the DJ role applies to the panel just like it applies to [prefix]skip.

The Queue

[prefix]queue lists everything waiting, ten per page, with who added it.

// Syntax
[prefix]queue

// Example
;queue

Managing the Queue

// Syntax
[prefix]queue shuffle
[prefix]queue remove [position]
[prefix]queue clear

// Example
;queue shuffle
;queue remove 3
;queue clear

queue clear empties the queue but leaves the current track playing. To stop everything, use [prefix]disconnect.

Looping

// Syntax
[prefix]loop [track|queue|off]

// Example
;loop track
The current track repeats until you turn it off.

Audio Effects

Change how the music sounds without restarting the track.

// Syntax
[prefix]effects [nightcore|vaporwave|bassboost|8d|off]

// Example
;effects nightcore

The effect applies to the track that's already playing — no restart, no jump back to the beginning.

Most Played Tracks

Serenity keeps a play history per server, so you can see what your members actually listen to.

// Syntax
[prefix]toptracks

// Example
;toptracks

Server Settings

Everything under [prefix]musicsettings needs Manage Server. Run it without a subcommand to see the whole configuration.

// Syntax
[prefix]musicsettings

// Example
;musicsettings
The music settings overview

The DJ Role

Without a DJ role, everyone can control playback. Set one and the commands that affect everybody else — skip, pause, volume, loop, effects, the queue commands, disconnect — are limited to members who have it.

// Syntax
[prefix]musicsettings djrole [role]

// Example
;musicsettings djrole @DJ

Anyone with Manage Server always passes, so you can't lock yourself out of your own settings. And someone alone in the channel with serenity can always control it — asking for a role when nobody else is listening is just friction.

Run the command without a role to clear it and let everyone control the music again.

[prefix]play is deliberately not DJ-only. Anyone can add to the queue — only the commands that affect what everyone else is hearing are gated.

Starting Volume

New players start at 100%. Change what they start at with:

// Syntax
[prefix]musicsettings volume [amount]

// Example
;musicsettings volume 80

Anything from 0 to 150. This is the volume a fresh player starts at — [prefix]volume still changes the session that's running.

Queue Limit

How many tracks the queue may hold. The default is 500.

// Syntax
[prefix]musicsettings maxqueue [amount]

// Example
;musicsettings maxqueue 200

Between 1 and 5000. Playlists are cut off at the limit rather than rejected.

Now Playing Announcements

By default serenity posts a short now playing message in the channel you started playback from, every time the track changes. On a busy queue that's a lot of messages.

// Syntax
[prefix]musicsettings announce [on|off]

// Example
;musicsettings announce off

24/7 Mode

Normally serenity leaves once the channel has been empty for a while. With 24/7 on, it stays.

// Syntax
[prefix]musicsettings 24/7 [on|off]

// Example
;musicsettings 24/7 on

24/7 keeps serenity in the channel through idle time, but it doesn't keep playing on its own — once the queue is empty, there's nothing left to play.

Good to know

Serenity puts the current track into the voice channel's status, so you can see what's playing from the channel list without opening it. This needs Manage Channels — without it, everything else still works.

The track as the channel status