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.
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
/links
Get the invite, support server and documentation links.
A compact embed with buttons for adding Fira to another server, joining the support server, reading the docs and voting.
Examples
$ ;links
/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.
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
/search
Search a source and pick from the results.
Returns the top ten matches in a numbered dropdown so you can choose the exact version — live, remix, sped up — instead of trusting the first result.
Arguments
queryrequired
Search terms.
Examples
$ ;search paranoid
$ ;search paranoid live
/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.