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

# Music Commands

> Commands for music playback, queue management, playlists, filters, and AI control

### /play

Search for a song on Spotify, SoundCloud, or YouTube and add it to the queue

Use `/play` followed by a search query to find and enqueue a track. By default, the bot searches Spotify. You can also paste a direct URL from SoundCloud, Spotify (including playlist links), or YouTube to play that specific content. YouTube is available only for [self-hosted](/hosting/self-hosted) instances.

As you type your query, the bot provides **live autocomplete suggestions** showing matching tracks with their title, artist, and duration. Select one of these suggestions or press Enter with a text query to search.

Once the track is added, the bot responds with a rich embed showing the track title, artist, duration, thumbnail, and its position in the queue. Below the embed, three interactive buttons appear:

* **Play now** (green) – immediately skips to this track, jumping the queue.
* **Play next** – moves the track to position 1 in the queue so it plays right after the current track.
* **Remove** (red) – removes the track from the queue entirely.

These buttons remain active for a calculated period based on the track's queue position and automatically disappear once the track starts playing, gets skipped, or the queue empties.

<ParamField path="query" type="string" required>
  Search query (Spotify by default, paste a SoundCloud or YouTube URL to play directly)
</ParamField>

***

### /pause

Pause the currently playing track

Use `/pause` to pause playback of the current track.

If the track is already paused, the bot will let you know and suggest using `/resume` instead. While paused, the queue embed (from `/queue`) will display a pause icon next to the current track to indicate the paused state.

***

### /resume

Resume playback of a paused track

Use `/resume` to continue playing a track that was previously paused with `/pause`.

***

### /skip

Skip the current track and move to the next one in the queue

Use `/skip` to immediately skip the currently playing track and advance to the next track in the queue.

After skipping, an **Undo** button appears for one minute. Clicking it restores the previous track and resumes playing it, effectively reversing the skip.

***

### /remove

Remove a specific track from the queue by selecting it from the track list

Use `/remove` to remove a track from the queue. The command provides an **autocomplete dropdown** listing all tracks in the queue (including the currently playing track) with their position number, title, and artist. You can scroll through the list or type to search by name.

<ParamField path="query" type="string" required>
  The track you want to remove
</ParamField>

***

### /move

Move a track to a different position in the queue

Use `/move` to reorder your queue by moving a track from one position to another. Select the track to move using the autocomplete dropdown, then provide the desired new position number.

Position 1 is the currently playing track, and upcoming tracks start at position 2. Moving a track to position 1 will skip the current track and play it immediately.

<ParamField path="query" type="string" required>
  The track that should be moved
</ParamField>

<ParamField path="to" type="integer" required>
  Desired position
</ParamField>

***

### /queue

View the full queue with the current track, upcoming songs, and estimated timing

Use `/queue` to see everything that's playing and what's coming up next. The bot responds with a rich embed containing:

* **Now playing** – the current track (position 1), with status icons for playing, paused, track repeat mode, and offline cache streaming.
* **Upcoming tracks** – a numbered list of all queued tracks with their title, artist, and duration.
* **Summary fields** – total track count, estimated total duration, and a projected ending time.
* **Album art** – a thumbnail of the current track's cover art.

For large queues, the track list is split into multiple pages. **Previous page** and **Next page** buttons appear below the embed, letting you navigate through the full queue. If queue repeat mode is active, the footer also displays a repeat icon.

***

### /shuffle

Randomly shuffle the order of all upcoming tracks in the queue

Use `/shuffle` to randomize the order of all tracks in the queue. The currently playing track is not affected – only the upcoming tracks are rearranged.

***

### /repeat

Set the repeat mode to loop the current track, the entire queue, or turn it off

Use `/repeat` to control how tracks loop. Choose one of three modes:

* **off** – disables repeat. Tracks play once and are removed from the queue.
* **track** – the current track repeats indefinitely until you change the mode or skip it.
* **queue** – the entire queue loops. When the last track finishes, playback starts again from the first track.

Repeat status is reflected in the `/queue` embed: a repeat icon appears next to the current track in track repeat mode, and "Repeat enabled" shows in the footer for queue repeat mode.

<ParamField path="repeat_mode" type="integer" required>
  The desired repeat mode

  Choices: `off`, `track`, `queue`
</ParamField>

***

### /volume

Adjust the playback volume from 10% to 1000%

Use `/volume` to change the playback volume. Provide a number between **10** and **1000**, where **100** is the default (normal) volume. Values below 100 make it quieter, and values above 100 amplify the audio.

The volume adjustment takes effect immediately on the currently playing track and persists for subsequent tracks in the queue.

<ParamField path="value" type="integer" required>
  Desired volume, base is 100

  Range: min: 10, max: 1000
</ParamField>

***

### /purge

Clear the entire queue and stop playback completely

Use `/purge` to completely wipe the queue and stop all music playback. This removes every track – both the currently playing track and all upcoming tracks – and disconnects the bot.

Before deleting the queue, the bot automatically **saves a snapshot** of the current queue so you can restore it later with `/recover`.

***

### /playlists

Load one or more saved playlists into the queue at once

The `/playlists` command lets you enqueue up to five saved playlists in a single action. Playlists are defined in a dedicated Discord channel and identified by their IDs, which appear as autocomplete suggestions when you type.

After you select your playlists and confirm, the bot fetches and resolves every song, then reports how many entries were added and how many were skipped. A **Shuffle** button appears below the result to randomize the newly loaded tracks.

<ParamField path="playlist1" type="string" required>
  First playlist to enqueue
</ParamField>

<ParamField path="playlist2" type="string" optional>
  Second playlist to enqueue (optional)
</ParamField>

<ParamField path="playlist3" type="string" optional>
  Third playlist to enqueue (optional)
</ParamField>

<ParamField path="playlist4" type="string" optional>
  Fourth playlist to enqueue (optional)
</ParamField>

<ParamField path="playlist5" type="string" optional>
  Fifth playlist to enqueue (optional)
</ParamField>

***

### /head

Enqueue only the first N songs from a saved playlist

The `/head` command loads a specific number of songs from the **beginning** of a saved playlist into the queue. You choose the playlist (with autocomplete) and specify how many songs to take, from 1 to 100.

A **Shuffle** button appears after loading to randomize the loaded tracks.

<ParamField path="playlist" type="string" required>
  The playlist to play from
</ParamField>

<ParamField path="count" type="integer" required>
  Number of songs to play

  Range: min: 1, max: 100
</ParamField>

***

### /tail

Enqueue only the last N songs from a saved playlist

The `/tail` command loads a specific number of songs from the **end** of a saved playlist into the queue. You choose the playlist (with autocomplete) and specify how many songs to take, from 1 to 100.

A **Shuffle** button appears after loading to randomize the loaded tracks.

<ParamField path="playlist" type="string" required>
  The playlist to play from
</ParamField>

<ParamField path="count" type="integer" required>
  Number of songs to play

  Range: min: 1, max: 100
</ParamField>

***

### /deduplicate

Find and remove duplicate tracks from the current queue

The `/deduplicate` command scans the entire queue (including the currently playing track) and removes any duplicate entries. You must choose one of two deduplication algorithms:

* **Bridged URL exactness** – Compares tracks using their bridged (resolved) URLs. This is the recommended algorithm because the bot bridges Spotify links to SoundCloud or YouTube for playback; two tracks that look different on the surface may resolve to the same audio source.
* **Source URL exactness (legacy)** – Compares tracks using their original source URLs only. This is simpler but may miss duplicates when the same song was added from different platforms.

The first occurrence of each track is always kept, and the currently playing track is never removed. After scanning, the bot reports how many duplicates were removed, or confirms that none were found.

<ParamField path="algorithm" type="string" required>
  The deduplication algorithm

  Choices: `Bridged URL exactness`, `Source URL exactness (legacy)`
</ParamField>

***

### /sort

Sort all queued tracks alphabetically by title

The `/sort` command rearranges every track in the queue into alphabetical order based on track titles. The sorting is case-insensitive. The currently playing track is **not** affected – only the upcoming tracks in the queue are reordered.

This command requires an active queue with at least one track.

***

### /stats

View playback statistics including most-played tracks, top requesters, and popular playlists

The `/stats` command aggregates all-time usage data and displays it in a rich embed with three sections:

* **Top 10 Most Frequently Played** – The ten tracks played more than once, ranked by play count.
* **Most Requested By** – Every user who has requested tracks, ranked by number of tracks queued.
* **Top 10 Most Enqueued Playlists** – The most frequently loaded saved playlists.

A **Total Played** counter is also shown, representing the sum of all tracks requested by users. Statistics exclude tracks played automatically by the bot itself.

***

### /filters

Toggle audio filters like bassboost, nightcore, lofi, and more on the current playback

The `/filters` command opens an interactive dropdown menu where you can select up to three audio filters to apply to the current playback. Available filters:

* **Bassboost** – enhances low-frequency bass
* **Earrape** – dramatically amplifies audio
* **Lofi** – applies a lo-fi aesthetic effect
* **Nightcore** – speeds up and pitch-shifts the audio
* **Vaporwave** – slows down and pitch-shifts for a vaporwave effect
* **Tremolo** – adds a wavering volume effect
* **Vibrato** – adds a wavering pitch effect
* **8D** – creates a rotating spatial audio effect

Filters that are currently active appear pre-selected in the dropdown. Selecting an active filter turns it off; selecting an inactive one turns it on. You can combine up to three filters at the same time. Toggling filters briefly interrupts playback while the audio stream is re-processed.

***

### /tempo

Change the playback speed of the currently playing audio

The `/tempo` command opens an interactive dropdown menu that lets you adjust the playback speed. Available speeds: **0.5x**, **0.75x**, **Normal** (1x), **1.25x**, **1.5x**, **1.75x**, and **2x**. The currently active speed is shown as pre-selected in the dropdown.

Selecting a new speed applies it immediately. The audio stream is briefly interrupted while the tempo filter is applied. Selecting **Normal** resets the speed back to the default.

***

### /recover

Restore a previously playing queue that was interrupted or lost

The `/recover` command attempts to restore a queue that was previously saved before the bot went offline, crashed, or was restarted. The bot periodically saves the current queue state, so recovery is usually possible after unexpected interruptions.

When a recoverable queue is found, the bot displays a detailed embed showing the track that was playing, how far into it playback had reached, the number of queued tracks, and when the queue was last saved. Two buttons appear: **Proceed** to restore the queue, or **Cancel** to dismiss.

If some tracks fail to load during recovery (due to being removed or region-locked), the bot reports partial recovery with counts of successful and failed tracks. You must purge any existing queue before recovery is possible.

***

### /relocate

Move the bot's queue update messages to the current text channel

The `/relocate` command changes which text channel the bot sends its queue-related messages to (such as "now playing" announcements). By default, the bot posts updates in whichever channel was used to start playback.

When relocated, the bot sends a notification in the **old** channel informing users that updates have moved, and confirms the change in the new channel.

***

### /prompt

Control the music bot using natural language powered by AI

The `/prompt` command lets you control the bot by describing what you want in plain English instead of using specific slash commands. It is powered by an AI model that interprets your request and executes the appropriate actions automatically.

You can make requests like:

* *"Remove all Bob Dylan songs"*
* *"Move Genesis tracks to the front and play now"*
* *"Play some Radiohead"*
* *"Skip this song"*
* *"Make it quieter"*
* *"Play the workout playlist"*
* *"Remove everything except Arctic Monkeys"*

The bot displays a **Prompt** embed that updates in real time as actions are completed. Each completed action is shown with a checkmark and a description of what was done. The AI can perform multiple actions in a single prompt.

The command has a daily rate limit of 100 calls across the entire server, which resets every 24 hours.

<ParamField path="prompt" type="string" required>
  e.g., "remove all bob dylan songs" or "move genesis tracks to the front and play now"
</ParamField>
