-
Notifications
You must be signed in to change notification settings - Fork 0
FAQ
The bot doesn't respond to any commands.
- The bot must have Read Messages / Send Messages and
applications.commandspermission in the server, and you must re-invite it with the new scope if it was added without slash permissions. - It may still be starting: check
logs/bot.log. Slash commands register after the first successful connection. - Verify
DISCORD_TOKENin.envand that the app didn't fail on a missing/optional API key.
Slash commands are missing entirely.
Re-invite the bot with the applications.commands OAuth scope alongside bot (see Getting Started).
Commands from a disabled module still show.
Register happens at boot β restart the bot after flipping a feature flag (LAVA_ENABLED, GIFS_ENABLED, TWITCH_ENABLED, NEWS_ENABLED, IGDB_ENABLED).
Where are the logs? logs/ at the workspace root β bot.log, dashboard.log, lavalink.log, and combined.log.
βNo available audio playersβ / nothing plays.
Lavalink isn't running or isn't reachable. Start it with java -jar Lavalink.jar, via the docker-compose lavalink container, or connect to your external self-hosted Lavalink server. Verify that LAVA_HOST, LAVA_PORT, LAVA_PASS, and LAVA_SECURE all match your setup. On an external instance also set LAVA_EXTERNAL=true.
Spotify links do nothing. Add SPOTIFY_CLIENT_ID + SPOTIFY_CLIENT_SECRET.
YouTube throttles or blocks playback. Complete YouTube OAuth device authorization when the embedded Lavalink server prompts on startup, or supply YOUTUBE_REFRESH_TOKEN in .env (see Music & Lavalink).
Playback works but there's no visual progress / embed. The now-playing embed needs Embed Links permission in the channel.
Where do settings, playlists, and reminders live? In SQLite (/data/db.sqlite) or PostgreSQL (DB_URI) β created automatically. Settings take effect after the bot hydrates at boot; save them and restart if something looks stale.
I want a clean slate. Stop the bot, delete /data/db.sqlite, run pnpm db:push, and restart. (The file is recreated on next boot.)
SQLite errors like βdatabase is lockedβ appear. This usually means the bot/dashboard processes are pointing at different copies of the file, or a long-running transaction. Ensure both processes share the same directory/volume and aren't duplicated.
How do I back up? Copy /data/db.sqlite (ideally via sqlite3 .backup). See Deployment.
Dashboard shows βAuthorization failedβ. Confirm DISCORD_CLIENT_ID / DISCORD_CLIENT_SECRET and that NEXTAUTH_URL matches the URL you're visiting (localhost vs. domain β and HTTP vs. HTTPS).
Dashboard shows no servers. The bot must be a member of the server and have completed at least one boot there; also check the invite wasn't restricted by server settings.
Users can't sign in. The Discord OAuth Redirect URI must be <NEXTAUTH_URL>/api/auth/callback/discord in the Developer Portal.
Where do dashboard settings go? The same SQLite DB the bot uses β both processes must share one db.sqlite.
pnpm install fails. You need Node >=20 and pnpm 8.x. If you're behind a proxy, adjust the pnpm registry.
βCannot find module @master-bot/...β The workspace wasn't installed/built β run pnpm install then pnpm build from the repo root.
Port 3000 already in use. Change PORT and set NEXTAUTH_URL to the new port, or stop whatever is occupying it.
Open an issue at https://github.com/galnir/Master-Bot/issues with the relevant logs/ output and your .env values masked β never post secrets.
π Home β’ ποΈ Architecture β’ βοΈ Configuration β’ π΅ Music β’ π» Dashboard β’ βοΈ Deployment β’ β FAQ
Master-Bot Documentation β’ Licensed under MIT β’ Maintained by galnir and the Master-Bot community
Master-Bot β Unified Discord music, moderation & utility bot with embedded Next.js 15 Web Dashboard, dual PostgreSQL/SQLite fallbacks, and embedded Lavalink v4 Audio.
- π Home β Project overview & quick start
- β‘οΈ Getting Started β Prerequisites, installation & startup
-
βοΈ Configuration β Complete
.envreference & fallbacks
- ποΈ Architecture β Unified single-process runtime & storage
- ποΈ Database & Fallbacks β Dual PostgreSQL & SQLite
-
β‘οΈ Cache & State β External Redis &
ioredis-mock -
π Commands Reference β Complete catalog of slash commands &
/setoptions
- π΅ Music & Audio β Embedded Lavalink v4, filters & playlists
- π‘οΈ Moderation β Ban, timeout, slowmode & audit logging
-
π« Support Tickets β Thread tickets &
.txttranscripts - π Welcome & Temp Channels β Greetings & dynamic voice hubs
- β° Reminders & Stream Alerts β Scheduled reminders, YouTube & Twitch alerts
- π» Web Dashboard β Next.js 15 App Router, tRPC v11 & 9 Studios
- π Deployment Guide β Docker, Low-Cost VPS & Self-Hosting
- π οΈ Developer Guide β Creating commands, listeners & features
-
π§ͺ Testing Suite β
@helix-origin/vitest-suitetesting toolkit - π‘οΈ Privacy Policy β Data collection, retention & deletion rights
- π Terms of Service β Service terms, permitted use & liability
- π Security Policy β Vulnerability reporting, advisories & hardening
- β FAQ & Troubleshooting β Common questions & solutions
- π€ Contributing β Contributor guide & commit standards
- π¦ Standalone Audio: HELIX-Origin/Lavalink-Server
- π§ͺ Vitest Suite: HELIX-Origin/vitest-suite
- π€ GitHub Repository: galnir/Master-Bot