Skip to main content

Overview

Control queue progression with skip and stop commands. Skip moves to the next song, while stop ends playback entirely.

Skip Command

Skip to the next song in the queue or jump to a specific position.

Usage

r!skip [position]
position
number
Optional: Jump to specific song position in queue (2 or higher)

Basic Skip

Skip to the next song:
r!skip
# ⏭️ ¡Canción saltada!

Skip to Position

Jump to a specific song in the queue:
# Skip to song #3 in queue
r!skip 3
# ⏭️ Saltando a: `Song Name`

Implementation

From commands/music/skip.js:4-26:
async execute(message, args, client) {
    const queue = client.distube.getQueue(message);
    if (!queue) return message.reply('❌ ¡No hay nada reproduciéndose!');
    
    try {
        if (args.length > 0) {
            const position = parseInt(args[0]);
            if (!isNaN(position) && position > 1 && position <= queue.songs.length) {
                // Jump to specific position
                queue.jump(position - 1); // DisTube uses 0-based index
                return message.reply(`⏭️ Saltando a: \`${queue.songs[position - 1].name}\``);
            } else {
                return message.reply('❌ Posición inválida.');
            }
        }

        queue.skip();
        message.reply('⏭️ ¡Canción saltada!');
    } catch (e) {
        message.reply('❌ ¡No hay más canciones en la cola!');
    }
}

Skip Behavior

1

Validate Queue

Checks if music is playing
2

Parse Position

If position provided, validates it’s valid number within queue range
3

Execute Skip

  • Basic: Calls queue.skip() to move to next song
  • Position: Calls queue.jump(position - 1) to jump to specific song
4

Handle Errors

Catches error if no more songs in queue

Stop Command

Completely stop playback and clear the entire queue.

Usage

r!stop

Behavior

r!stop
# ⏹️ ¡Música detenida!
Stopping clears the entire queue - you cannot resume after stopping

Implementation

From commands/music/stop.js:4-11:
async execute(message, args, client) {
    const queue = client.distube.getQueue(message);
    if (!queue) return message.reply('¡No hay nada reproduciéndose!');
    
    queue.stop();
    message.reply('⏹️ ¡Música detenida!');
}

Stop vs Pause

FeatureStopPause
Clears queue✅ Yes❌ No
Can resume❌ No✅ Yes
Disconnects bot✅ Yes❌ No
Use caseEnd sessionTemporary break

Requirements

Music must be currently playing
An active queue must exist

Error Messages

No Music Playing

r!skip
# ❌ ¡No hay nada reproduciéndose!

No More Songs in Queue

r!skip
# ❌ ¡No hay más canciones en la cola!

Invalid Position

r!skip 999
# ❌ Posición inválida.

r!skip 1
# ❌ Posición inválida. (Position must be > 1)

Skip Position Examples

View your queue first:
r!queue
# 🎶 Ahora: Song A
# 1. Song B  
# 2. Song C
# 3. Song D
# 4. Song E
Then skip to specific position:
# Skip to Song C (position 3 in the list)
r!skip 3
# ⏭️ Saltando a: `Song C`
Position must be 2 or higher. Position 1 is the current song, so use r!skip without arguments to move to position 1.

Use Cases

Skip Unpopular Song

Quickly move past songs people don’t want to hear

Jump to Request

Jump directly to a specific requested song

End Session

Use stop to end the music session completely

Clear Queue

Stop command clears entire queue at once

DisTube Methods

The commands use DisTube’s queue methods:
  • queue.skip() - Skip to next song
  • queue.jump(index) - Jump to specific position (0-based)
  • queue.stop() - Stop playback and clear queue
  • queue.songs.length - Total songs in queue
  • r!queue - View all songs in queue before skipping
  • r!pause - Temporarily pause instead of skipping
  • r!play - Add more songs to queue

Tips

Use r!queue first to see song positions before using r!skip [position]
For temporary breaks, use r!pause instead of r!stop to preserve your queue
r!stop is destructive - it clears the entire queue and cannot be undone

Build docs developers (and LLMs) love