Skip to main content
You now start the bot from bot.py, but the runtime behavior is split across small, focused modules in cogs/, core/, and ui/. This structure makes it easier for you to extend one feature without touching unrelated playback logic.

What loads at startup

The bootstrap in bot.py now performs three simple jobs:
  1. Creates the Nextcord bot instance and loads the environment variables.
  2. Connects to the Lavalink node during on_ready.
  3. Loads the extension modules from cogs/.
The current extension set is:
  • cogs.music_commands for slash commands, queue management, and playback controls
  • cogs.events for voice-state cleanup, track lifecycle updates, and presence sync

What each module owns

Why this layout helps you

You can now update a single command group or a single event listener without rebuilding the whole bot. If you add a new feature, place it in its own cog, wire it into bot.py, and keep the rest of the architecture untouched.
The modular layout is the foundation for future additions such as Moderation, Utility, or Admin cogs. Keep each feature isolated so the command set stays easy to maintain.

How the Music Bot Works

See how Nextcord, Wavelink, and Lavalink work together at runtime.

Queue View

Learn how the paginated queue browser is built and protected from other users.

Playback Commands

Review the slash commands that start, pause, skip, and stop playback.

Configuration

Map the settings in .env and application.yml to the runtime behavior you just read about.