fira

Documentation

43 commands · 5 categories

Getting started

Fira is a music-first Discord bot with a request panel, personal libraries, real-time audio filters and per-server configuration. You can be playing music in under a minute.

1. Invite Fira

Use the Authorize button on the home page and pick your server. Keep the default permissions — Connect, Speak, Embed Links, Manage Messages and Read Message History are all used by the player panel.

2. Play your first song

Join a voice channel and run /play followed by a song name or any Spotify, YouTube, SoundCloud, Apple Music or Deezer link. Fira joins automatically and starts streaming.

3. Create a request panel

Run ;setup to create a dedicated channel with a persistent player. Members simply type a song name in that channel and it plays — no commands needed.

4. Tune the server

Run ;settings to set the default volume, DJ role, autoplay and fairplay behaviour, then ;prefix if you want a shorter text prefix.

The request panel

The setup panel is the easiest way to run music in a busy server. One channel, one persistent embed, zero commands for your members.

How it works

Fira posts a permanent player embed with artwork, a progress bar and control buttons. Every message sent in the channel is treated as a search query, queued, then deleted so the channel stays clean.

Controls

Pause, skip, previous, loop, shuffle, volume up/down and stop are all available as buttons. DJ-restricted actions respect the DJ role configured in ;settings.

Resetting

Run ;setup reset to remove the panel and return the channel to normal. Running ;setup again recreates it anywhere.

Permissions & DJ role

Fira uses a simple three-tier permission model so moderation stays predictable in large servers.

Everyone

Playing, queueing, searching, lyrics, nowplaying, grab and personal library commands are open to all members by default.

DJ role

Skip, stop, clearqueue, leave, fairplay and filter commands can be restricted to a DJ role. Set it with ;settings. Without a DJ role, anyone alone in the channel with the bot is treated as DJ.

Manage Server

Configuration commands — prefix, setup, ignore, 247, settings — always require Manage Server or Administrator.

Server setup

Config commands

Everything that shapes how Fira behaves inside your server: the prefix it listens to, the channels it ignores, the panel your members use, and the profile customisation your community shows off.

/247

Keep Fira permanently connected to a voice channel.

With 24/7 enabled Fira never leaves the voice channel, even when the queue finishes or the last listener disconnects. This is ideal for lounge, radio or study servers where music should always be one /play away. Fira reconnects automatically after a Discord voice outage or a node restart and restores the last player state.

Arguments

toggleoptional

on or off. Omit it to see the current state.

Examples

$ ;247 on

$ ;247 off

$ ;247

  • Fira still pauses playback when nobody is listening, so it never wastes audio bandwidth.
  • Requires the bot to have Connect and Speak in the target channel.

Requires Manage Server

/custom

Build a custom Discord profile: banner, name and bio.

The custom command opens Fira's profile editor. From there you can set a personal banner image, a display name and a bio that appear on your Fira profile card, on the now-playing embed and on the server leaderboard. Banners accept a direct image link or an attachment and are rendered at 1200x400 with a rounded frame. Names support up to 32 characters, bios up to 190 characters with emoji support.

Arguments

settingrequired

banner, name or bio.

valueoptional

The image URL or text. Leave empty to clear the field.

Examples

$ ;custom banner https://cdn.example.com/banner.png

$ ;custom name Night Owl

$ ;custom bio 24/7 lofi enjoyer ☕

$ ;custom bio

  • Uploading an attachment with the command works the same as passing a URL.
  • Profiles are per-user and follow you across every server that has Fira.

/ignore

Stop Fira from responding in a channel, to a role or to a member.

Ignoring a target makes Fira silently drop every command coming from it. Use it to keep general chat clean while allowing commands in a dedicated bot channel, or to mute a member who abuses the queue. Running the command again on the same target removes the ignore.

Arguments

targetrequired

A channel, role or member mention or ID.

Examples

$ ;ignore #general

$ ;ignore @Muted

$ ;ignore @user

$ ;ignore list

  • Administrators always bypass ignore rules.

Requires Manage Server

/prefix

Change the text prefix Fira listens to.

Fira responds to slash commands everywhere, but many servers prefer a short text prefix. This command sets the per-server prefix, up to 5 characters. Mentioning the bot always works as a fallback prefix, so you can never lock yourself out.

Arguments

prefixoptional

The new prefix. Omit to view the current one.

Examples

$ ;prefix !

$ ;prefix f.

$ ;prefix

Requires Manage Server

/settings

Open the full settings dashboard for this server.

A paginated embed with dropdowns that exposes every server-level option in one place: default volume, autoplay behaviour, DJ role, announce channel, fairplay, filter permissions, and ignore rules. Changes apply instantly and are stored per-server.

Examples

$ ;settings

$ ;settings music

$ ;settings reset

Requires Manage Server

/setup

Create a song request panel where members just type a song name.

Setup creates a dedicated request channel with a persistent player panel. The panel shows the current track, artwork, progress bar and control buttons (pause, skip, loop, shuffle, volume, stop). Any message a member sends in that channel is treated as a search query, played instantly and then deleted so the channel always stays clean. No commands, no prefix — just type the song name or paste a link.

Arguments

channeloptional

Existing channel to convert. Omit to let Fira create one.

Examples

$ ;setup

$ ;setup #song-requests

$ ;setup reset

  • Fira needs Manage Messages in the panel channel to clean up requests.
  • Run ;setup reset to delete the panel and restore normal command usage.

Requires Manage Server

Audio effects

Filters commands

Real-time DSP effects applied to the live audio stream. Filters stack on top of each other, apply within a second and survive track changes until you clear them with reset.

/8d

Rotate the audio around the listener for a spatial 8D effect.

Applies a slow stereo rotation so the track appears to circle the listener. Best experienced with headphones. The default rotation speed is 0.2 Hz which suits most songs; higher values become dizzying quickly.

Arguments

toggleoptional

on or off. Omit to flip the current state.

Examples

$ ;8d

$ ;8d on

$ ;8d off

/bassboost

Raise the low frequency bands of the current track.

A multi-band equaliser preset that lifts the 25-100 Hz range. Levels run from low to extreme; extreme can clip loud masters, so medium is the safest default for mixed queues.

Arguments

leveloptional

low, medium, high or extreme. Default: medium.

Examples

$ ;bassboost

$ ;bassboost high

$ ;bassboost off

/karaoke

Duck the vocal band for a sing-along mix.

Uses a band-pass rejection filter centred on 220 Hz to attenuate centre-panned vocals. Results depend heavily on the mix: modern pop usually works well, dense or mono tracks less so.

Arguments

leveloptional

Strength from 0.1 to 2.0. Default: 1.0.

Examples

$ ;karaoke

$ ;karaoke 1.4

$ ;karaoke off

/lowpass

Soften the high frequencies for a muffled, underwater feel.

Cuts everything above the cutoff point. Popular for lofi and 'song playing in another room' edits. Higher strength means a darker sound.

Arguments

strengthoptional

1 to 100. Default: 20.

Examples

$ ;lowpass

$ ;lowpass 40

$ ;lowpass off

/nightcore

Speed up and pitch up the track.

Sets rate and pitch to roughly 1.25x at once for the classic nightcore sound. Toggling it off restores both values, even if you changed them manually afterwards.

Arguments

toggleoptional

on or off.

Examples

$ ;nightcore

$ ;nightcore off

/pitch

Shift pitch up or down without changing tempo.

Independent pitch control from 0.5 (an octave down) to 2.0 (an octave up). Combine with rate for custom slowed-and-reverb or chipmunk edits.

Arguments

valuerequired

0.5 to 2.0.

Examples

$ ;pitch 1.2

$ ;pitch 0.8

/rate

Change playback rate while keeping pitch intact.

Speeds the track up or slows it down without the chipmunk effect. The queue timings and progress bar update to match the new rate.

Arguments

valuerequired

0.5 to 2.0.

Examples

$ ;rate 1.1

$ ;rate 0.85

/reset

Clear every active audio filter at once.

Removes all effects and returns the player to a clean, unprocessed stream. Volume and loop settings are not affected.

Examples

$ ;reset

/rotation

Manually control the stereo rotation speed.

The raw control behind 8D. Values are rotations per second; 0.1 is a gentle sweep, 1.0 is aggressive. Set to 0 to stop rotating.

Arguments

speedoptional

0 to 1. Default: 0.2.

Examples

$ ;rotation 0.3

$ ;rotation 0

/speed

Play the queue faster or slower, pitch included.

Unlike rate, speed shifts pitch along with tempo, which is what most people expect from a simple speed control.

Arguments

valuerequired

0.5 to 2.0.

Examples

$ ;speed 1.25

$ ;speed 0.9

Status & help

Info commands

Utility commands for checking Fira's health, finding documentation and troubleshooting playback issues before you open a support ticket.

/debug

Dump diagnostic information about the current player.

Shows the connected audio node, region, shard ID, player state, active filters, packet loss and the last five internal events. Support staff will usually ask for this output first when investigating stutter or silent playback.

Examples

$ ;debug

$ ;debug node

/help

Browse every command and category.

Without arguments help opens a category selector. With a command name it prints the full syntax, arguments, permissions and examples for that single command — the same content you are reading here.

Arguments

commandoptional

A command name to get detailed help for.

Examples

$ ;help

$ ;help play

$ ;help filters

/ping

Check gateway, REST and audio node latency.

Reports three numbers: WebSocket heartbeat to Discord, REST round trip, and the round trip to the audio node serving your player. Anything under 150 ms on all three is healthy.

Examples

$ ;ping

/stats

See uptime, server count, users, memory and shard health.

A live snapshot of the whole bot: process uptime, total guilds and users, memory usage, active players, tracks played today and per-shard status.

Examples

$ ;stats

$ ;stats shards

Saved music

Library commands

Your personal music library. Favourites and playlists are tied to your Discord account, so they follow you into every server that has Fira.

/favourites

Save, list and play the tracks you love.

Favourites is a single always-available list per user. Add the track that is currently playing with no arguments, add a specific song by name or link, then play the whole list back later. The list is paginated, searchable and can be shuffled on load.

Arguments

actionoptional

add, remove, list, play or clear. Default: list.

queryoptional

A song name, link or index depending on the action.

Examples

$ ;favourites add

$ ;favourites add midnight city

$ ;favourites list

$ ;favourites play

$ ;favourites remove 4

  • Reacting with ⭐ on a now-playing embed adds that track too.

/playlist

Create and manage named playlists you can queue any time.

Playlists are named collections you build once and reuse. Create as many as you need, add the current track or a search result, import an existing Spotify, YouTube or SoundCloud playlist link, and load one into the queue with a single command. Playlists can be private or shared with the server.

Arguments

actionoptional

create, add, remove, play, list, view, import, rename, share or delete.

nameoptional

The playlist name.

queryoptional

Song, link or index, depending on the action.

Examples

$ ;playlist create latenight

$ ;playlist add latenight

$ ;playlist import latenight <spotify link>

$ ;playlist play latenight

$ ;playlist view latenight

$ ;playlist delete latenight

  • Each playlist holds up to 500 tracks.
  • Shared playlists can be played by anyone in the server but only edited by the owner.

Playback & queue

Music commands

The core playback engine. Fira streams from YouTube, Spotify, SoundCloud, Apple Music, Deezer and direct links, with gapless queueing, autoplay and a fairplay rotation for busy servers.

/autoplay

Keep music going with related tracks when the queue empties.

When the last track finishes, Fira seeds a recommendation engine with the recent history and keeps playing similar songs instead of disconnecting. It avoids repeating anything from the last 50 tracks.

Arguments

toggleoptional

on or off.

Examples

$ ;autoplay on

$ ;autoplay off

/clearqueue

Remove every upcoming track from the queue.

Wipes the queue while leaving the current track playing. Use stop instead if you also want playback to end.

Examples

$ ;clearqueue

Requires DJ role or Manage Server

/fairplay

Rotate the queue so every requester gets a turn.

In large servers one person can flood the queue. Fairplay reorders upcoming tracks round-robin by requester, so everyone hears one of their songs before anyone hears their second.

Arguments

toggleoptional

on or off.

Examples

$ ;fairplay on

$ ;fairplay off

Requires DJ role or Manage Server

/grab

Send the currently playing track to your DMs.

Grab captures the current song with its title, artist, artwork, duration, source link and the exact timestamp you grabbed it at, then delivers it to your direct messages so you can find it again later.

Examples

$ ;grab

  • Your DMs must be open to receive the message.

/join

Make Fira join a voice channel.

Connects to your current voice channel, or to a channel you name. Playing a song already connects automatically, so join is mostly used to pre-connect before an event.

Arguments

channeloptional

A voice channel name or ID.

Examples

$ ;join

$ ;join Lounge

/leave

Disconnect Fira and clear the session.

Stops playback, empties the queue and leaves the voice channel. Filters reset too.

Examples

$ ;leave

Requires DJ role or Manage Server

/loop

Repeat the current track or the whole queue.

Three modes: track repeats the current song forever, queue cycles the whole queue endlessly, and off disables looping. Calling loop with no argument cycles between the modes.

Arguments

modeoptional

track, queue or off.

Examples

$ ;loop

$ ;loop track

$ ;loop queue

$ ;loop off

/lyrics

Show synced lyrics for the current track.

Fetches time-synced lyrics when available and highlights the current line as the song plays; otherwise it falls back to plain lyrics with pagination. You can also search lyrics for any song without playing it.

Arguments

queryoptional

A song name. Defaults to the current track.

Examples

$ ;lyrics

$ ;lyrics bohemian rhapsody

/nowplaying

Show a live player card for the current track.

Displays artwork, title, artist, requester, source, active filters, volume and a progress bar that updates in place, plus buttons for pause, skip, loop and favourite.

Examples

$ ;nowplaying

$ ;np

/pause

Pause playback at the current position.

Freezes the stream without losing the queue or position. Resume continues exactly where you left off.

Examples

$ ;pause

/play

Play a song from a name or a link.

The main entry point. Accepts plain search terms, YouTube, Spotify, SoundCloud, Apple Music and Deezer track, album or playlist links, and direct audio file URLs. If nothing is playing, the track starts immediately; otherwise it is appended to the queue. Playlist links are added in bulk with a summary embed.

Arguments

queryrequired

Search terms or a supported link.

Examples

$ ;play blinding lights

$ ;play <youtube link>

$ ;play <spotify album link>

  • Use playnext-style ordering by moving tracks with the queue controls.

/queue

View the upcoming tracks.

A paginated list showing position, title, duration and requester, along with the total queue length and estimated time until the end.

Arguments

pageoptional

Page number to jump to.

Examples

$ ;queue

$ ;queue 3

/replay

Restart the current track from the beginning.

Seeks back to 0:00 without re-fetching the stream, so it is instant.

Examples

$ ;replay

/resume

Resume a paused track.

Continues playback from the exact position where pause was called.

Examples

$ ;resume

/seek

Jump to a specific position in the track.

Accepts absolute timestamps or relative offsets. Seeking is not supported on live streams.

Arguments

positionrequired

mm:ss, seconds, or +/-30.

Examples

$ ;seek 1:45

$ ;seek 90

$ ;seek +30

$ ;seek -15

/shuffle

Randomise the order of the queue.

Shuffles every upcoming track once using a Fisher-Yates pass. The currently playing song is untouched.

Examples

$ ;shuffle

/skip

Skip to the next track.

Skips one track, or several at once with an amount. When vote-skip is enabled in settings, non-DJ members start a vote that needs half of the listeners.

Arguments

amountoptional

How many tracks to skip. Default: 1.

Examples

$ ;skip

$ ;skip 3

/stop

Stop playback and clear the queue.

Ends the session: the current track stops, the queue is emptied and filters reset. Fira stays connected if 24/7 is enabled.

Examples

$ ;stop

Requires DJ role or Manage Server

/volume

Set the player volume.

Volume ranges from 0 to 200 percent, where 100 is the untouched source level. Anything above 150 may distort loud masters. The value is remembered per server.

Arguments

leveloptional

0 to 200. Omit to see the current volume.

Examples

$ ;volume

$ ;volume 60

$ ;volume 120