# Mewzik — Multi-Bot Discord Music System
A complete, production-ready Discord music bot built on discord.py and Lavalink v4. One codebase runs any number of bots — each with its own token, configuration, database, and emoji set — with automatic sharding and clustering as your bots grow. Whether you run a single community bot or a network of hundreds of servers, Mewzik scales without code changes.
This is not a single-server hobby script. It is a multi-tenant music engine designed to be sold, deployed, and operated at scale, with per-server customization, owner tooling, abuse protection, and a polished embed-driven interface throughout.
---
## What You Get
- Full source code — clean, organized, auto-discovering cogs architecture
- Multi-bot launcher — spawn unlimited bots from one repository
- Automatic sharding & clustering — no manual shard math
- Documented
.envand Lavalink config templates — every variable explained inline - PostgreSQL schemas created automatically — no manual migrations
- Owner / admin command suite — control your fleet at runtime
## Features
### Music Playback
Stream from YouTube, YouTube Music, Spotify, Deezer, Apple Music, JioSaavn, SoundCloud and more, powered by Lavalink + LavaSrc. High-quality audio, fast resolution, and broad source support out of the box.
### Lyrics
Synced and plain lyrics via lrclib with a Lavalyrics fallback, including romanization for non-Latin scripts.
### Autoplay
Built-in autoplay system with admin-curated playlists shared across all bots — keep the music going automatically when the queue runs dry.
### Per-Server Setup
- Exact channel binding (
/setup) - Category binding (
/temp-setup) - Customizable controls and hide options per guild
- DJ roles and per-command DJ locks
- Session locking to prevent hijacking
- Maintenance mode and engine controls
- Favorites, playlists, and profiles with rendered image cards
- Listening leaderboards
- Play history and replay
- Auto-blacklist for command spammers
- Manual owner-side blacklist controls
- Automatic shard/cluster topology (default: 1 shard per 1200 guilds, 3 shards per cluster — fully tunable via env)
## Quick Start
### 1. Install dependencies
Bash:
pip install -r requirements.txt
Create a database for your bot:
SQL:
CREATE DATABASE mybot;
### 3. Set up Lavalink
1. Download Lavalink v4 from the official releases.
2. Copy
application.yml.example to application.yml next to the Lavalink jar and fill in the YOUR_* placeholders.3. Run it:
java -jar Lavalink.jarThe bot connects using
NODE_1_URI / NODE_1_PASSWORD from the bot's .env — these must match server.port and lavalink.server.password in application.yml.### 4. Configure your bot
Bash:
cp bots/bot1/.env.example bots/bot1/.env
TOKEN, DATABASE_URL, NODE_1_URI, NODE_1_PASSWORD, BOT_OWNER_IDS. Also set your emoji IDs in bots/bot1/emojis.py.### 5. Run
Bash:
python launcher.py # start every bot in bots/
python launcher.py --bot=bot1 # start one bot
GUILDS_PER_SHARD / SHARDS_PER_CLUSTER.---
## Support
Full setup walkthrough — including Discord Developer Portal steps (intents, invite link) and obtaining emoji codes — is provided in the included documentation (
README.md and bots/README.md).