Winter Development

Internet Explorer

Internet Explorer is not supported. Please upgrade to a more modern browser.

CoreMusic | Corebot Addonv3.0.0

Modern Lavalink v4 music addon for CoreBot: radio & filters.

Requires

CoreBotLavalink v4

A drop-in music addon for the CoreBot Discord bot, rebuilt on modern Lavalink v4 / NodeLink.

The music addon, done right. A ground-up rebuild on lavalink-client (Lavalink v4), replacing the erela.js v3 engine so it plays nicely with modern Lavalink and NodeLink servers.

🎡 Full playback, a real queue, vote-skip, autoplay, audio filters, lyrics, personal playlists, and 24/7 radio, all driven by your own Lavalink node, no third-party music API required.

✨ Features

  • 🎚️ Full playback control: play, stop, pause, resume, skip, seek, volume, now-playing.
  • πŸ“œ Queue management: view, shuffle, skip-to, remove, clear, restart, and repeat (off / song / queue).
  • πŸ—³οΈ Vote-skip: democratic skipping for busy servers.
  • ♾️ Autoplay: keeps related tracks flowing when the queue runs dry.
  • πŸŽ›οΈ Audio filters: bassboost, nightcore, vaporwave, karaoke (+ reset).
  • πŸ“ Lyrics: pull lyrics for the current track.
  • πŸ“Œ Grab & playlists: DM yourself a song or build personal playlists.
  • πŸ“» 24/7 Radio: a default station, named stations, or any custom stream URL.
  • 🟒 Spotify support: resolve Spotify tracks & searches (optional).
  • πŸ’Ύ Self-contained: ratings, playlists and saved sessions stored locally under data/music/.
πŸ“· Screenshot: "Now Playing" embed (add your photo)

πŸ“‹ Requirements

  • A working CoreBot installation, free from CoreMart.
  • A Lavalink v4 (or NodeLink) server, self-hosted or remote.

⚠️ Self-hosting your Lavalink node is strongly recommended. Public Lavalink servers are a known source of playback issues: the bot can fetch the wrong track and play a different song than the one it shows as queued or now-playing, even while reporting the correct title. Running your own Lavalink v4 node avoids this.

πŸš€ Installation

Dead simple: it's just the addon, with no config file to place. Drop music.js into your CoreBot addons/ folder and you're set. The addon auto-generates its config on first run.

  1. Place music.js in your CoreBot addons/ folder.
  2. Restart CoreBot. The addon creates configs/addons/music_config.yml automatically.
  3. Open that file, set your Lavalink node (host, port, password) plus optional Spotify + radio stations, and restart once more. You'll see [Music] connect to your node in the console.

βš™οΈ Configuration highlights

The addon writes configs/addons/music_config.yml on first run. These are the settings you'll want to review:

  • Lavalink node: Settings.Lavalink.Node (host / port / password / secure).
  • Spotify: Settings.Spotify (enable + Client ID/Secret from developer.spotify.com/dashboard).
  • Radio: a default stream plus named stations under Settings.Radio.Stations.
  • Permissions: per-command role access under Settings.Commands.Permissions.
  • Behaviour: DefaultVolume, SearchingType (first / reaction / response), NowPlayingMessage, StopDelay.

πŸ“„ The config file

The addon creates configs/addons/music_config.yml on first run. Here's the full default (values shown are examples; set your own Lavalink node).

β–Ά music_config.yml (click to expand)
##############################
#                            #
#            MUSIC           #
#                            #
##############################

Settings:
  Lavalink:
    Node:
      # Point this at your Lavalink v4 node (self-hosting strongly recommended - see note).
      host: localhost
      port: 2333
      password: youshallnotpass
      secure: false
  Spotify:
    Enabled: false
    ClientID: PUT-CLIENT-ID-HERE
    ClientSecret: PUT-CLIENT-SECRET-HERE
    # Create a Spotify application @ https://developer.spotify.com/dashboard to get the ID and secret
  StopDelay:
    Enabled: true
    # If the bot should wait x amount of seconds before checking
    # if the voice channel is still empty when someone leaves.
    # Primarly for accidently channel disconnecting/switching
    Delay: 10
  SearchingType: first
  # Types: response (respond with corresponding number), reaction (react with corresponding number), first (automatically choose first result)
  NowPlayingMessage: true
  DefaultVolume: 5
  Radio:
    # 24/7 radio: "-radio start" plays the default; "-radio start <name>" plays a named station; "-radio start <url>" plays a custom stream.
    Query: ""  # default station (blank = require an inline query/name)
    Stations:
      example: "https://your-stream-url/stream.mp3"
    VoiceChannel: ""   # channel name or id to play in (blank = use the command user's channel)
    TextChannel: ""    # channel name or id for announcements (blank = use the command channel)
  Commands:
    Permissions:
      play:
        - "@everyone"
      stop:
        - "@everyone"
      queue:
        - "@everyone"
      pause:
        - "@everyone"
      resume:
        - "@everyone"
      skip:
        - "@everyone"
      join:
        - "@everyone"
      musicemojis:
        - Admin
    Descriptions:
      play: Play music in a voice channel
      stop: Stop playing music
      queue: View the list of queued songs
      pause: Pause the currently playing song
      resume: Resume the currently paused song
      skip: Skip to the next song in the queue
      join: Make the bot join your voice channel
    Aliases:
      play:
        - p
      stop:
        - leave
        - disconnect
      queue:
        - q
      pause: []
      resume: []
      skip:
        - next
      join:
        - connect
Language:
  Errors:
    NotInVoiceChannel: You must be in a voice channel to run this command
    NotInSameVoiceChannel: You must be in the same voice channel as me to run this command
    VideoNotFound: A song could not be found with that link or search query. Try a
      different link or query
    LinkUnavailable: "I couldn't load that link β€” it may be **private**,
      age-restricted, region-locked, or deleted. Make sure it's public or unlisted,
      then try again."
    VideoCouldNotLoad: The song could not be loaded. Try again
    CanceledSearch: Canceled music search
    InvalidNumber: That is not a valid number. Please choose the number that
      corresponds with the video.
    BotNotInVoiceChannel: I am not in a voice channel
    NotPlayingMusic: Music is currently not being played
    AlreadyPaused: The music is already paused
    NotPaused: The music is not paused
    AlreadyInYourVoiceChannel: I am already in your voice channel
    AlreadyInAnotherVoiceChannel: I am already in another voice channel
  Words:
    None: None
    Livestream: livestream
    Nothing: Nothing
    Unknown: Unknown
    NotIncludingLives: Not including livestreams
    Nobody: Nobody
    Page: Page
    YouTube: YouTube
    SoundCloud: SoundCloud
    Spotify: Spotify
    Twitch: Twitch
    LoadingPlaylist: Loading playlist...
  NowPlaying:
    Author: "{platform-name}"
    AuthorIcon: "{platform-icon}"
    Title: 🎢 Now Playing
    Description: "[{song-title}]({song-link}) requested by {user-mention}"
    Thumbnail: "{song-thumbnail}"
    Timestamp: true
    Footer: "{bot-username}"
    FooterIcon: "{bot-pfp}"
  QueueEnded:
    Title: ⏹️ Queue Ended
    Description: The music queue has been ended
    Timestamp: true
    Footer: "{bot-username}"
    FooterIcon: "{bot-pfp}"
  Queue:
    Title: πŸ“ƒ Music Queue
    Description: |-
      **Currently Playing:** [{song-title}]({song-link})

      {queue}

      **Total Queue Duration:** {duration}
    Thumbnail: "{song-thumbnail}"
    FooterIcon: "{bot-pfp}"
  AddedPlaylistToQueue:
    Title: ‡️ Added Playlist To Queue
    Description: Added playlist [{playlist-name}]({playlist-link}) to the queue
      (**{playlist-length}** songs)
    Thumbnail: "{playlist-thumbnail}"
    Timestamp: true
    Footer: "{bot-username}"
    FooterIcon: "{bot-pfp}"
  AddedSongToQueue:
    Title: ‡️ Added To Queue
    Description: Added [{song-title}]({song-link}) to the queue
    Thumbnail: "{song-thumbnail}"
    Timestamp: true
    Footer: "{bot-username}"
    FooterIcon: "{bot-pfp}"
  SearchResults:
    Title: Search Results
    Description: |-
      Showing top 10 search results for `{search}`:
      {results}
    ResultsFormat: |-
      **{position}.** [{song-title}]({song-link})
      > By `{song-author}`
    Timestamp: true
    Footer: "{bot-username}"
    FooterIcon: "{bot-pfp}"
  Connected:
    Title: \πŸ“ž Connected
    Description: Connected to the voice channel
    Color: "#43fc32"
    Timestamp: true
    Footer: "{bot-username}"
    FooterIcon: "{bot-pfp}"
  Disconnected:
    Title: ⏹️ Disconnected
    Description: Disconnected from the voice channel
    Color: "#f52c2c"
    Timestamp: true
    Footer: "{bot-username}"
    FooterIcon: "{bot-pfp}"
  Paused:
    Title: ⏸️ Music Paused
    Description: The song has been paused
    Color: "#fca232"
    Timestamp: true
    Footer: "{bot-username}"
    FooterIcon: "{bot-pfp}"
  Resumed:
    Title: ▢️ Music Resumed
    Description: The song has been resumed
    Color: "#43fc32"
    Timestamp: true
    Footer: "{bot-username}"
    FooterIcon: "{bot-pfp}"
  Skipped:
    Title: ⏭️ Song Skipped
    Description: The song has been skipped
    Timestamp: true
    Footer: "{bot-username}"
    FooterIcon: "{bot-pfp}"
  Error:
    Author: Uh oh!
    Title: "{error-message}"
    Color: "#f52c2c"
    Timestamp: true
  ErrorWithUsage:
    Author: Uh oh!
    Title: "{error-message}"
    Description: "**Usage:** `{usage}`"
    Color: "#f52c2c"
    Timestamp: true

πŸŽ›οΈ Commands

Uses your bot's configured prefix.

  • play, stop, pause, resume, skip, voteskip
  • queue, nowplaying (np), volume, seek, shuffle, skipto, removesong, clearqueue
  • repeat <song/queue/off>, autoplay, filter <bassboost/nightcore/vaporwave/karaoke/reset>
  • lyrics, grab, radio start [name | url]
β–Ά Changelog (click to expand)
v3.0.0
  - Rebuilt on lavalink-client (Lavalink v4 / NodeLink)
  - Replaces the legacy erela.js v3 engine
  - Queue, vote-skip, autoplay, audio filters, lyrics, grab, playlists
  - 24/7 radio with named + custom stations
  - Optional Spotify resolving
  - Per-command role permissions via music_config.yml

A CoreBot addon by CruelWinter. Free to use.

Recent updates

See all updates

Reviews

No reviews

Are you sure?