Skip to content

Audio Commands

The audio_commands plugin provides playback control for the audio engine. It reads and modifies playback state through ctx.audio but never acquires DNI (Do-Not-Interrupt) itself. Volume, loop, and ducking commands work even when idle; other commands check DNI status before operating.

Command Description Roles Aliases
audiostatus Show the audio interface status admin —
queue Display the audio queue user q
pause Pause the current track dj —
resume Resume the paused track dj —
playing Show the currently playing track dj now
replay Replay the current track dj rp
shuffle Shuffle the audio queue dj —
skip [n] Skip to the nth track moderator next
stop Stop playback and clear the queue dj —
clear Clear the audio queue dj clr
loop Toggle track looping dj l
remove <n> Remove a track by queue index dj —
seek <time> Seek to position (seconds, mm:ss, or hh:mm:ss) dj —
volume [0..1] Get or set volume dj v
duckaudio Toggle audio ducking admin —
duckvolume [0..1] Get or set ducking volume admin —
duckthreshold [value] Get or set ducking threshold admin —
duckstartdelay [0..5] Get or set ducking start delay (seconds) admin —
duckenddelay [0..5] Get or set ducking end delay (seconds) admin —
  • DNI awareness: Playback commands (pause, resume, skip, stop, etc.) respect the Do-Not-Interrupt state. If DNI is active and the caller lacks override privileges, these commands will be blocked.
  • Volume accepts a float between 0.0 and 1.0. With no argument it returns the current level.
  • Seek accepts raw seconds (90), mm:ss (1:30), or hh:mm:ss (0:01:30).
  • Audio ducking lowers playback volume when a user speaks. The threshold, start delay, and end delay control sensitivity and timing.
  • Roles: Commands gated to dj require the caller to have the dj role or higher. admin commands require the admin role.