Hey there! ๐ Lavamusic is more than just a Discord music botโit's your gateway to endless music fun in your server. Built with passion by the BotxLab team, this powerful bot brings the party to your Discord channels with seamless playback, awesome filters, and a whole lot of vibes! Whether you're hosting game nights, study sessions, or just chilling with friends, Lavamusic has you covered.
๐ต Superior Audio Experience: Leveraging the latest Lavalink technology for crystal-clear, lag-free music playback.
๐๏ธ Magical Audio Filters: Transform any track with 12+ masterpiece filters like Bass Boost, Nightcore, Karaoke, and more!
๐ Personalized Playlists: Create, save, and share your favorite playlists for instant access anytime.
๐ Speak Your Language: Supports over 15 languagesโbecause music unites us all.
โฐ 24/7 Party Mode: Never stop the musicโyour bot keeps playing even when you're away.
๐ Lyric Lover?: Get real-time lyrics from Genius and other sources for singing along!
๐ Universal Search: Play from YouTube, Spotify, SoundCloud, and countless other platforms.
๐ช Rich Commands: Queue management, smart skipping, precise seeking, autoplay, and volume fine-tuning.
โ๏ธ Tailor-Made for You: Customize prefixes, DJ roles, language, and more to fit your server's vibe.
๐ณ Container Ready: Docker support for one-click deploymentโperfect for pros and beginners alike.
Before we dive in, make sure you have these ready:
- Node.js version 18 or higher (download here if needed)
- A Lavalink server (don't worry, we'll set it up!)
- Your Discord bot token from the Discord Developer Portal
Got them? Great! Let's get Lavamusic grooving in no time.
Open your terminal and run:
git clone https://github.com/botxlab/lavamusic.git
cd lavamusicPick your favorite package manager:
# If you use npm (classic choice):
npm install
# Or try pnpm (super fast):
pnpm install
# Yarn fan? No problem:
yarn installCreate your config file:
cp .env.example .envNow, edit .env in your favorite text editor:
TOKEN="your_bot_token_here"
CLIENT_ID="your_bot_client_id"
OWNER_IDS=["your_discord_user_id"]
DATABASE_URL="file:./lavamusic.db" # SQLite is fine for starters, or use PostgreSQL laterCopy the example config:
cp Lavalink/example.application.yml Lavalink/application.ymlNeed extra music sources like YouTube or Spotify? The config has instructions to add plugins!
Fire up Lavalink (we'll use a simple start command):
cd Lavalink
java -jar lavalink.jar # Assuming you have the JAR readyBy default, it runs at localhost:2333. Easy peasy!
For quick setup (using SQLite):
npm run generate
npm run pushSwitch to PostgreSQL anytime by updating your DATABASE_URL.
Build and run:
npm run build
npm startClick here to invite: ๐ Add to Server ๐
Or craft the link manually: https://discord.com/oauth2/authorize?client_id=1343814433134346241&permissions=279209954560&response_type=code&redirect_uri=https%3A%2F%2Fdiscord.gg%2Fkhfw8z6gg9&integration_type=0&scope=bot+guilds+applications.commands
In any server channel, type !deploy or /deploy to activate slash commands.
Prefer containers? We've got you!
-
Install Docker and Docker Compose if you haven't.
-
Copy configs as above.
-
Set up your
.envfile. -
Launch everything:
docker compose up -dBoom! Bot, Lavalink, and even a PostgreSQL databaseโall running automatically.
Want to update later?
docker compose pull
docker compose up -d --force-recreateReady to rock? Here are your essentials:
/play <song>- Start playing a tune (supports links and searches)/queue- Peek at what's coming up/skip- Jump to the next track/volume <1-100>- Crank it up or dial it down/lyrics- Sing along with lyrics
- Cool Effects: Try
/bassboost,/nightcore,/8d, and more! - Playlist Power: Use
/playlist createto build,/playlist loadto unleash - Server Setup: Customize with
/config prefix !or/config language en
Need a full command list? Hit /help in Discord!
Your bot's personality lives here:
TOKEN: Your bot's secret identityPREFIX: Default command starter (like/or!)DEFAULT_LANGUAGE: Start withenfor EnglishDATABASE_URL: Where data lives (SQLite or full DB)OWNER_IDS: Your admin IDs (array format)NODES: Lavalink connection details- Peek at
.env.examplefor all options!
Tweak Lavalink/application.yml for audio sources, plugins, and tweaks.
Built-in Gems: SoundCloud, Twitch, Bandcamp, Vimeo, NicoNico, and more.
Plugin Power-Ups (add these for ultimate variety):
- YouTube, Spotify, Deezer, Apple Music: Grab LavaSrc
- Endless more via community plugins.
- Crafted in TypeScript for reliability
- Powered by Discord.js and Lavalink-Client
- Data with Drizzle ORM: SQLite by default, PG/MySQL ready
- Open Source under GPL-3.0
Developer mode? Let's code:
npm run build # Compile everything
npm run start # Run the build
npm run dev # Hot-reload for developmentWe โค๏ธ contributors! Here's how to get involved:
- Fork this repo
- Create a branch for your amazing idea
- Code, test, and shine
- Send a pull requestโwe'll review it fast!
- Invite the Bot Now and try it out!
- Check our FAQ for quick fixes
- Report bugs or request features at Issues
- Chat with us on Discord
- Common Quick Fixes:
- "Bot not responding?" Check your token and Lavalink is running.
- Audio issues? Verify Lavalink config and plugins.
- Permissions problem? Ensure bot has proper server roles.
Loving Lavamusic? Give our repo a star โญโit keeps us motivated!
Built with โค๏ธ by the BotxLab team. We're a passionate crew dedicated to making Discord fun through code. Huge thanks to contributors worldwide!
Licensed under GPL-3.0. Fork, modify, and share responsibly. See LICENSE for the full scoop.