Lavamusic is a Discord music bot that uses Discord.js, Shoukaku, Prisma Client (ORM) database (MongoDB), and TypeScript.
Invite Lavamusic
Β·
Report Bug & Request Feature
- Developed using Typescript and Discord.js v14
- Advanced Music System
- Customizable Prefix
- Powerful Search Engine
- 12 + Music Filters
- Hybrid Command Handling (Slash and Normal Commands)
- Highly Configurable
- User-friendly and Easy to Use
- 24/7 Music Playback
- Playlist commands
- Setup music channel
π Default Sources:
π Plugin Sources: (Require: LavaLink v4.0.x)
Note: You need to install the plugins to use these sources
- (Required Plugin)
- (Required Plugin)
- (Required Plugin)
- (Required Plugin)
- (Required Plugin)
- (Required Plugin)
- (Required Plugin)
- (Required Plugin)
- (Required Plugin)
- (Required Plugin)
- (Required Plugin)
- (Required Plugin)
Need Help with plugins? Join our Discord Server and ask for help in the #support
channel.
Click to View Commands
Name | Description | Options |
---|---|---|
prefix |
Shows the bot's prefix | |
help |
Shows the help menu | command : The command you want to get info |
on | ||
info |
Shows information about the bot | |
invite |
Sends the bot's invite link | |
ping |
Shows the bot's ping | |
clearqueue |
Clears the queue | |
join |
Joins the voice channel | |
leave |
Leaves the voice channel | |
nowplaying |
Shows the currently playing song | |
play |
Plays a song from YouTube or Spotify | song : The song you want to play |
pause |
Pauses the current song | |
queue |
Shows the current queue | |
remove |
Removes a song from the queue | song : The song number |
resume |
Resumes the current song | |
seek |
Seeks to a certain time in the song | |
shuffle |
Shuffles the queue | |
skip |
Skips the current song | |
skipto |
Skips to a specific song in the queue | |
stop |
Stops the music and clears the queue | |
volume |
Sets the volume of the player | number : The volume you want to set |
Before starting with the installation, you need to have the following:
- Clone the Lavamusic repository:
git clone https://github.com/brblacky/lavamusic.git
- change the directory to Lavamusic
cd lavamusic
- Install the required packages:
npm i
- Set up your environment variables:
Create a .env
file in the root directory of your project with the following variables:
or you can use the .env.example file
TOKEN="." # Your bot token
PREFIX= "!" # Your prefix
OWNER_IDS=["859640640640640640","859640640640640640"] # Your discord id, you can add multiple ids
CLIENT_ID= "960072976412340254" # Your bot client id
GUILD_ID= "859640640640640640" # Your server Id if you want to use the for single server
PRODUCTION="true" # true for production
SEARCH_ENGINE= "ytsearch" # ytsearch, scsearch or ytmsearch
MAX_PLAYLIST_SIZE= "100" # Max playlist size
MAX_QUEUE_SIZE= "100" # Max queue size
BOT_STATUS= "online" # Your bot status
BOT_ACTIVITY= "Wavemusic" # Your bot activity
DATABASE_URL="mongodb+srv://xxyydd:[email protected]/Bot" ## Your MongoDB URL (add database name at the end) example: mongodb+srv://xxyydd:[email protected]/Bot
LAVALINK_URL="localhost:2333" # Your lavalink url
LAVALINK_AUTH="youshallnotpass" # Your lavalink password
LAVALINK_NAME="Blacky" # Your lavalink name
LAVALINK_SECURE= "true" # true for secure lavalink
KEEP_ALIVE= "false" # true for keep alive in https://replit.com
BOT_ACTIVITY_TYPE=0 # Activity type is a number from 0 to 5 see more here https://discord.com/developers/docs/topics/gateway-events#activity-object-activity-types
- Generate the Prisma client:
If you using replit than read this:
go to prisma/schema.prisma and add engine type like this or remove //
behind the engineType
generator client {
provider = "prisma-client-js"
engineType = "binary"
}
and then run this command
npx prisma generate
- Run the bot:
npm run start or npm start
- Invite the bot to your server:
Generate an invite link for your bot and invite it to your server using the Discord Developer Portal or using permissions calculator: https://discordapi.com/permissions.html
This section assumes you have Docker and Docker Compose installed and running correctly.
Download the docker-compose.yml file in a seperate folder like lavamusic.
Edit docker-compose.yml and make sure to set the following variables:
your .env file should look like this or you can use the .env.example file
TOKEN="." # Your bot token and remember, don't show everyone your bot token
PREFIX="!" # Your prefix
OWNER_IDS=["859640640640640640","859640640640640640"] # Your discord id, you can add multiple ids
CLIENT_ID="960072976412340254" # Your bot client ID
GUILD_ID="859640640640640640" # Your server ID (if you want to use it for a single server)
PRODUCTION="true" # "true" for production
For more information how to fill all the variables go to this page. You do not need to edit anything like the LAVA_LINK_URL, LAVA_LINK_AUTH, LAVA_LINK_NAME, LAVA_LINK_SECURE, DATABASE_URL, and the ports unless you know what you're doing.
After saving your changes you can open a terminal and go to the same location as the docker-compose.yml file. Then run the following:
docker-compose up -d
The above command will start all your services and your bot should be up and running!
To update, you only have to type the following:
docker-compose up --force-recreate --build -d
image prune -f
You can automate this by using Watchtower. The following should be sufficient:
docker run --detach \
--name watchtower \
--volume /var/run/docker.sock:/var/run/docker.sock \
--restart on-failure \
containrrr/watchtower --cleanup
Do note that the bot will restart itself to update to the latest!
- Fix this error to add database name in end of the
DATABASE_URL
like thismongodb+srv://xxyydd:[email protected]/Bot
A Tutorial has been uploaded on YouTube, Watch it by clicking here
Thank you for your interest in contributing to Lavamusic! Here are some guidelines to follow when contributing:
- Fork the repository and create a new branch for your feature or bug fix.
- Write clean and concise code that follows the established coding style.
- Create detailed and thorough documentation for any new features or changes.
- Write and run tests for your code.
- Submit a pull request with your changes.
Your contribution will be reviewed by the project maintainers, and any necessary feedback or changes will be discussed with you. We appreciate your help in making Lavamusic better!
Distributed under the Apache-2.0 license License. See for more information.
Do you like this project? Support it by donating
Thanks goes to these wonderful people :