> ## Documentation Index
> Fetch the complete documentation index at: https://docs.celestia.rest/llms.txt
> Use this file to discover all available pages before exploring further.

# Music System

> Full-featured music playback system with queue management, filters, playlists, and interactive controls

## Overview

The Music system provides a complete audio playback experience. It supports playback from YouTube, Spotify, and SoundCloud, with a fully interactive now-playing panel, queue management, audio filters, personal playlists, lyrics fetching, and vote-skip for shared listening sessions.

***

## Access Control

All music commands are available to everyone in the server by default. The only exception is the 24/7 mode toggle which requires the **Manage Server** permission.

***

## Commands

<AccordionGroup>
  <Accordion title="play" icon="play">
    Play a song or playlist from YouTube, Spotify, or SoundCloud. If something is already playing, the track is added to the queue.

    <CodeGroup>
      ```bash Syntax theme={null}
      ,play <name or url>
      ```

      ```bash Example theme={null}
      ,play lofi hip hop
      ,play https://open.spotify.com/track/...
      ,p never gonna give you up
      ```
    </CodeGroup>

    **Aliases:** `p`
    **Permissions:** Everyone
  </Accordion>

  <Accordion title="nowplaying" icon="circle-info">
    Display the currently playing song with full controls — pause, skip, loop, volume, queue, and lyrics buttons all in one interactive panel.

    <CodeGroup>
      ```bash Syntax theme={null}
      ,nowplaying
      ```

      ```bash Example theme={null}
      ,nowplaying
      ,np
      ```
    </CodeGroup>

    **Aliases:** `np, current`
    **Permissions:** Everyone
  </Accordion>

  <Accordion title="find" icon="magnifying-glass">
    Search for a song and pick from the top 5 results using a dropdown selector instead of auto-playing the first result.

    <CodeGroup>
      ```bash Syntax theme={null}
      ,find <query>
      ```

      ```bash Example theme={null}
      ,find never gonna give you up
      ,find drake one dance
      ```
    </CodeGroup>

    **Aliases:** —
    **Permissions:** Everyone
  </Accordion>

  <Accordion title="pause" icon="pause">
    Pause the currently playing song.

    <CodeGroup>
      ```bash Syntax theme={null}
      ,pause
      ```
    </CodeGroup>

    **Aliases:** —
    **Permissions:** Everyone
  </Accordion>

  <Accordion title="resume" icon="circle-play">
    Resume a paused song.

    <CodeGroup>
      ```bash Syntax theme={null}
      ,resume
      ```
    </CodeGroup>

    **Aliases:** `unpause`
    **Permissions:** Everyone
  </Accordion>

  <Accordion title="skip" icon="forward-step">
    Skip the current song. If there are 3 or more people in the voice channel, a vote is required — the majority must agree before the song is skipped.

    <CodeGroup>
      ```bash Syntax theme={null}
      ,skip
      ```
    </CodeGroup>

    **Aliases:** `s`
    **Permissions:** Everyone

    <Note>
      With 3 people in VC, 2 votes are needed. With 5 people, 3 votes are needed. The vote expires after 30 seconds.
    </Note>
  </Accordion>

  <Accordion title="skipto" icon="forward">
    Skip directly to a specific position in the queue, discarding all tracks before it.

    <CodeGroup>
      ```bash Syntax theme={null}
      ,skipto <position>
      ```

      ```bash Example theme={null}
      ,skipto 3
      ,st 5
      ```
    </CodeGroup>

    **Aliases:** `st`
    **Permissions:** Everyone
  </Accordion>

  <Accordion title="replay" icon="rotate-left">
    Restart the current song from the beginning.

    <CodeGroup>
      ```bash Syntax theme={null}
      ,replay
      ```
    </CodeGroup>

    **Aliases:** `restart`
    **Permissions:** Everyone
  </Accordion>

  <Accordion title="stop" icon="stop">
    Stop playback, clear the queue, and disconnect the bot from the voice channel.

    <CodeGroup>
      ```bash Syntax theme={null}
      ,stop
      ```
    </CodeGroup>

    **Aliases:** `disconnect, dc`
    **Permissions:** Everyone
  </Accordion>

  <Accordion title="seek" icon="sliders">
    Jump to a specific position in the current song.

    <CodeGroup>
      ```bash Syntax theme={null}
      ,seek <position>
      ```

      ```bash Example theme={null}
      ,seek 1m30s
      ,seek 1:30
      ,seek 90
      ```
    </CodeGroup>

    **Aliases:** —
    **Permissions:** Everyone
  </Accordion>

  <Accordion title="volume" icon="volume-high">
    Set the playback volume between 1 and 100.

    <CodeGroup>
      ```bash Syntax theme={null}
      ,volume <1-100>
      ```

      ```bash Example theme={null}
      ,volume 80
      ,vol 50
      ```
    </CodeGroup>

    **Aliases:** `vol`
    **Permissions:** Everyone
  </Accordion>

  <Accordion title="loop" icon="repeat">
    Toggle loop mode between off, track, and queue.

    <CodeGroup>
      ```bash Syntax theme={null}
      ,loop [off|track|queue]
      ```

      ```bash Example theme={null}
      ,loop track
      ,loop queue
      ,loop off
      ```
    </CodeGroup>

    **Aliases:** `repeat`
    **Permissions:** Everyone
  </Accordion>

  <Accordion title="shuffle" icon="shuffle">
    Randomly shuffle the current queue.

    <CodeGroup>
      ```bash Syntax theme={null}
      ,shuffle
      ```
    </CodeGroup>

    **Aliases:** —
    **Permissions:** Everyone
  </Accordion>

  <Accordion title="autoplay" icon="wand-magic-sparkles">
    Toggle autoplay mode. When the queue ends, the bot will automatically queue related songs to keep the music going.

    <CodeGroup>
      ```bash Syntax theme={null}
      ,autoplay
      ```
    </CodeGroup>

    **Aliases:** `ap`
    **Permissions:** Everyone
  </Accordion>

  <Accordion title="247" icon="clock">
    Toggle 24/7 mode to keep the bot connected to your voice channel even when it's empty, so it's always ready to play.

    <CodeGroup>
      ```bash Syntax theme={null}
      ,247
      ```
    </CodeGroup>

    **Aliases:** `stay`
    **Permissions:** Manage Server
  </Accordion>

  <Accordion title="lyrics" icon="microphone-lines">
    Display the lyrics for the currently playing song with paginated navigation.

    <CodeGroup>
      ```bash Syntax theme={null}
      ,lyrics
      ```
    </CodeGroup>

    **Aliases:** `ly`
    **Permissions:** Everyone
  </Accordion>

  <Accordion title="history" icon="clock-rotate-left">
    Show the last 20 recently played songs in the current session with pagination.

    <CodeGroup>
      ```bash Syntax theme={null}
      ,history
      ```
    </CodeGroup>

    **Aliases:** `recent`
    **Permissions:** Everyone
  </Accordion>

  <Accordion title="save" icon="bookmark">
    DM yourself the currently playing song's link, title, artist, and artwork so you don't lose it.

    <CodeGroup>
      ```bash Syntax theme={null}
      ,save
      ```
    </CodeGroup>

    **Aliases:** `dm`
    **Permissions:** Everyone

    <Warning>
      Your DMs must be open for this command to work.
    </Warning>
  </Accordion>
</AccordionGroup>

***

## Queue Management

<AccordionGroup>
  <Accordion title="queue" icon="list">
    Display the current queue with pagination showing track titles, durations, and requesters.

    <CodeGroup>
      ```bash Syntax theme={null}
      ,queue
      ```
    </CodeGroup>

    **Aliases:** `q`
    **Permissions:** Everyone
  </Accordion>

  <Accordion title="remove" icon="trash">
    Remove a specific track from the queue by its position number.

    <CodeGroup>
      ```bash Syntax theme={null}
      ,remove <position>
      ```

      ```bash Example theme={null}
      ,remove 3
      ,rm 5
      ```
    </CodeGroup>

    **Aliases:** `rm`
    **Permissions:** Everyone
  </Accordion>

  <Accordion title="move" icon="arrows-up-down">
    Move a track from one queue position to another.

    <CodeGroup>
      ```bash Syntax theme={null}
      ,move <from> <to>
      ```

      ```bash Example theme={null}
      ,move 5 1
      ,mv 3 2
      ```
    </CodeGroup>

    **Aliases:** `mv`
    **Permissions:** Everyone
  </Accordion>

  <Accordion title="clearqueue" icon="trash-can">
    Remove all tracks from the queue while keeping the current song playing.

    <CodeGroup>
      ```bash Syntax theme={null}
      ,clearqueue
      ```
    </CodeGroup>

    **Aliases:** `cq, clear`
    **Permissions:** Everyone
  </Accordion>

  <Accordion title="distinct" icon="filter">
    Scan the queue and remove any duplicate tracks, keeping only the first occurrence of each song.

    <CodeGroup>
      ```bash Syntax theme={null}
      ,distinct
      ```
    </CodeGroup>

    **Aliases:** `dedupe, unique`
    **Permissions:** Everyone
  </Accordion>
</AccordionGroup>

***

## Audio Filters

<AccordionGroup>
  <Accordion title="bassboost" icon="wave-square">
    Toggle a bass boost EQ preset that boosts the low frequency bands for a heavier sound.

    <CodeGroup>
      ```bash Syntax theme={null}
      ,bassboost
      ```
    </CodeGroup>

    **Aliases:** `bb`
    **Permissions:** Everyone
  </Accordion>

  <Accordion title="nightcore" icon="moon">
    Toggle the nightcore filter which increases speed and raises pitch for a classic nightcore effect.

    <CodeGroup>
      ```bash Syntax theme={null}
      ,nightcore
      ```
    </CodeGroup>

    **Aliases:** `nc`
    **Permissions:** Everyone
  </Accordion>

  <Accordion title="8d" icon="headphones">
    Toggle the 8D audio rotation effect which pans audio in a circular motion. Best experienced with headphones.

    <CodeGroup>
      ```bash Syntax theme={null}
      ,8d
      ```
    </CodeGroup>

    **Aliases:** `8daudio`
    **Permissions:** Everyone

    <Note>
      Nightcore and 8D are mutually exclusive — enabling one will automatically disable the other.
    </Note>
  </Accordion>

  <Accordion title="filters" icon="sliders">
    Open an interactive filter panel showing the current state of all audio filters with toggle buttons. Also includes a Reset All option to clear every active filter at once.

    <CodeGroup>
      ```bash Syntax theme={null}
      ,filters
      ```
    </CodeGroup>

    **Aliases:** `fx`
    **Permissions:** Everyone
  </Accordion>
</AccordionGroup>

***

## Playlists

<AccordionGroup>
  <Accordion title="playlist list" icon="list-music">
    View all of your saved playlists.

    <CodeGroup>
      ```bash Syntax theme={null}
      ,playlist list
      ```
    </CodeGroup>

    **Aliases:** `pl list`
    **Permissions:** Everyone
  </Accordion>

  <Accordion title="playlist create" icon="plus">
    Create a new named playlist.

    <CodeGroup>
      ```bash Syntax theme={null}
      ,playlist create <name>
      ```

      ```bash Example theme={null}
      ,playlist create chill vibes
      ,pl create study mix
      ```
    </CodeGroup>

    **Aliases:** `pl create`
    **Permissions:** Everyone
  </Accordion>

  <Accordion title="playlist view" icon="eye">
    Browse the tracks inside a playlist. Defaults to your Liked Songs if no name is provided.

    <CodeGroup>
      ```bash Syntax theme={null}
      ,playlist view [name]
      ```

      ```bash Example theme={null}
      ,playlist view chill vibes
      ,pl view
      ```
    </CodeGroup>

    **Aliases:** `pl view`
    **Permissions:** Everyone
  </Accordion>

  <Accordion title="playlist play" icon="circle-play">
    Queue an entire playlist into the voice channel.

    <CodeGroup>
      ```bash Syntax theme={null}
      ,playlist play [name]
      ```

      ```bash Example theme={null}
      ,playlist play chill vibes
      ,pl play liked
      ```
    </CodeGroup>

    **Aliases:** `pl play`
    **Permissions:** Everyone
  </Accordion>

  <Accordion title="playlist add" icon="plus">
    Add the currently playing song to one of your playlists.

    <CodeGroup>
      ```bash Syntax theme={null}
      ,playlist add <name>
      ```

      ```bash Example theme={null}
      ,playlist add chill vibes
      ,pl add study mix
      ```
    </CodeGroup>

    **Aliases:** `pl add`
    **Permissions:** Everyone
  </Accordion>

  <Accordion title="playlist remove" icon="minus">
    Remove a track from a playlist by its number.

    <CodeGroup>
      ```bash Syntax theme={null}
      ,playlist remove <name> <number>
      ```

      ```bash Example theme={null}
      ,playlist remove chill vibes 3
      ,pl remove study mix 1
      ```
    </CodeGroup>

    **Aliases:** `pl remove`
    **Permissions:** Everyone
  </Accordion>

  <Accordion title="playlist clear" icon="trash">
    Remove all tracks from a playlist without deleting the playlist itself.

    <CodeGroup>
      ```bash Syntax theme={null}
      ,playlist clear <name>
      ```

      ```bash Example theme={null}
      ,playlist clear chill vibes
      ```
    </CodeGroup>

    **Aliases:** `pl clear`
    **Permissions:** Everyone
  </Accordion>

  <Accordion title="playlist delete" icon="trash-can">
    Permanently delete a playlist and all its tracks.

    <CodeGroup>
      ```bash Syntax theme={null}
      ,playlist delete <name>
      ```

      ```bash Example theme={null}
      ,playlist delete chill vibes
      ```
    </CodeGroup>

    **Aliases:** `pl delete`
    **Permissions:** Everyone
  </Accordion>
</AccordionGroup>

***

## Now Playing Panel

The `nowplaying` command sends a fully interactive panel built with Discord Components V2. The panel includes:

* **Album artwork** fetched from iTunes
* **Song title** with a direct link to the source
* **Artist name** and album name
* **Current position** and total duration
* **Volume level** and active loop mode
* **Requester** mention

### Control Buttons

<CardGroup cols={2}>
  <Card title="Previous" icon="backward-step">
    Go back to the previous track
  </Card>

  <Card title="Pause / Resume" icon="pause">
    Toggle playback — button switches between pause and play icons automatically
  </Card>

  <Card title="Stop" icon="stop">
    Stop playback and disconnect
  </Card>

  <Card title="Skip" icon="forward-step">
    Skip to the next track (triggers vote-skip if 3+ people are in VC)
  </Card>

  <Card title="Loop" icon="repeat">
    Cycle loop mode — button turns green when loop is active
  </Card>

  <Card title="Queue" icon="list">
    Open the queue viewer
  </Card>

  <Card title="Volume Down" icon="volume-low">
    Decrease volume by 10%
  </Card>

  <Card title="Volume Up" icon="volume-high">
    Increase volume by 10%
  </Card>

  <Card title="Like" icon="heart">
    Save the current song to your Liked Songs playlist
  </Card>

  <Card title="Lyrics" icon="microphone-lines">
    Fetch and display lyrics for the current song
  </Card>
</CardGroup>

***

## Vote Skip System

When there are 3 or more people in a voice channel, skipping requires a majority vote.

| People in VC | Votes Required |
| ------------ | -------------- |
| 1–2          | Instant skip   |
| 3            | 2 votes        |
| 4            | 2 votes        |
| 5            | 3 votes        |
| 6            | 3 votes        |

* The vote expires after **30 seconds** if not enough votes are collected
* Each person can only vote once per session
* Running `,skip` counts as casting your vote

<Note>
  The vote skip panel shows the voice channel mention, current vote count, and required votes in real time.
</Note>

***

## Supported Sources

* **YouTube** — search by name or direct URL
* **Spotify** — track, album, and playlist URLs
* **SoundCloud** — track and playlist URLs

<Info>
  The default search platform is YouTube. Paste a Spotify or SoundCloud URL directly to play from those platforms.
</Info>

***

## Best Practices

* Use `,find` instead of `,play` when you're not sure of the exact song name to avoid playing the wrong track.
* Use `,save` to DM yourself a song you want to remember before it ends.
* Use `,distinct` after queueing large playlists to remove any accidental duplicates.
* Use `,filters` as a central panel to manage all audio effects rather than toggling them individually.
* Assign the 24/7 role only in servers where the bot has a dedicated music channel to avoid unnecessary resource usage.
