Star ✨ on GitHub

🎉New Release v4.60.4

Imagine the Perfect Music Bot...

Moonlink.js (Reimagined Version) — A sonic adventure where your imagination is the only limit. Designed to be powerful, flexible, and intuitive, Moonlink.js is the ideal tool for creating unforgettable music bots on Discord.

Features

  • Queue Management: Queue is integrated with a local database, to retrieve data if necessary.
  • Audio Filters: Apply various audio filters.
  • Auto Resume: Automatically resumes playing after a disconnect.
  • Logging: Logging options with log file support.
  • Node Management: Management of different Lavalink nodes.
  • Filters Management: Various audio filters like Equalizer, Karaoke, Timescale, Tremolo, Vibrato, Rotation, Distortion, Channel Mix, and LowPass.
  • Player Management: Manage player configurations and states.
  • Plugin Management: Lavalink plugin support.
  • Structure: Allows you to extend classes by complementing with your own functionalities.

What's New ✨

From v4.6.18 to v4.44.04, Moonlink.js has evolved. We've added features, improvements, and refactors to supercharge your music bot development.

New Features 🚀

Lyrics Integration

Full-fledged lyrics management with plugins (LavaLyrics, JavaLyrics) and methods to fetch, display, and sync lyrics in real-time.

Advanced Audio Filters (LavaDSPX)

Explore new sound dimensions with DSP filters like HighPass, Normalization, and Echo, powered by the LavaDSPX plugin.

Powerful Search with LavaSearch

Take your bot's search to the next level. Find albums, artists, playlists, and tracks with precision using the LavaSearchPlugin.

SponsorBlock Integration

Automatically skip sponsored segments in YouTube videos, ensuring an uninterrupted listening experience for your users.

Text-to-Speech (TTS)

Give your bot a voice! Use the `Player.speak` method with various providers to convert text to audio for innovative interactions.

Track History

Allow users to navigate through previously played songs with the new `Player.back()` method, accessing the player's history.

Total Queue Control

New methods for flawless queue management, including duplicate removal, sorting, moving, and much more.

Node Health Checks

The `NodeManager` now performs periodic health checks and automatically migrates players from unstable nodes, ensuring stability.

Source Blacklisting

Gain full control over allowed music sources by blocking those you don't want with the `blacklistedSources` option.

Modular Plugin System

A flexible and extensible plugin architecture with `PluginManager` and `AbstractPlugin` for you to customize Moonlink as you wish.

Custom WebSocket Client

A new WebSocket client implementation for greater control and reliability in communication with Lavalink.

Track Chapters

Full support for chapters in long tracks, with the `player.skipChapter()` method for easy and intuitive navigation.

Improved Spotify & Deezer Sources

Enhanced native integration, authentication, and error handling for a more robust experience with Spotify and Deezer.

General Utilities

New functions like `makeRequest` with retry logic and `isSourceBlacklisted` for better control and debugging of your bot.

Refactors & Improvements 🛠️

Database Refactor

A complete rewrite of the database to use Write-Ahead Logging (WAL), resulting in greater data persistence and performance.

Deprecated Player Methods

Direct Manager methods have been deprecated in favor of `manager.players`, promoting a cleaner and more organized API.

UUID Generation

The `generateShortUUID` function has been renamed to `generateUUID` for greater clarity and consistency across the codebase.

Player State Management

More robust handling of the player state, with improved reconnection attempts and skipping of blacklisted tracks.

Node State Management

Introduction of the `NodeState` enum for clearer, more explicit, and reliable node status tracking.

Moonlink.js harnesses the power of the extensive Lavalink plugin ecosystem to offer advanced, cutting-edge features. These plugins allow for immense customization and extension of your music bot's capabilities. Many of the standout features in Moonlink.js are made possible by these powerful additions.

LavaSrc Plugin

Adds **Lavalink-side** support for Spotify, Apple Music, and Deezer, allowing your bot to play music from the most popular streaming services via your Lavalink server.

LavaSearch Plugin

Provides advanced search to find albums, artists, playlists, and tracks with precision, enhancing the user experience.

LavaDSPX Plugin

Unleash creative audio effects with a suite of additional filters like HighPass and Normalization, offering unique listening tools.

SponsorBlock Plugin

Automatically skips sponsored segments in YouTube videos, providing a seamless and uninterrupted listening experience.

Lyrics Plugins

Moonlink.js supports various lyrics plugins like LavaLyrics, Lyrics.kt, and others, allowing you to fetch and display synchronized lyrics in real-time.

Text-to-Speech (TTS) Plugins

Give your bot a voice! Through plugins like Google Cloud TTS, DuncteBot's free TTS, and Flowery TTS (via LavaSrc), your bot can convert text to audio.

Practical Example

Need Help?

Support

Questions or Problems?

Get in touch with us! The best way to get help is by joining our support server on Discord.

Found a Bug?

If you found a bug and want to report it, please create an "Issue" on our GitHub. We will look into it as soon as possible to fix the problem.


Want to contribute by fixing the problem or adding a new feature? Send a "Pull Request"! Your name will be forever registered in the project's code.


Used By

Discord Bots that Use and Trust Moonlink.js

A showcase for our amazing community

GalaxyBot
Used by over 48k guilds; Team: galaxybot.app
YADB (Yet Another Discord Bot)
by Xotak
ComicallyBot
ComicallyBot
by Comicallybad
stalker-discord
by khouwdevin

Meet the Team

Development Team & Collaborators

Lucas Morais (1Lucas1apk)
Lucas Morais (1Lucas1apk)
Project Maintainer
MotoG
Creator & Designer
Comicallybad
Comicallybad
Collaborator & Developer
UnschooledGamer
UnschooledGamer
Collaborator
xotakfr
Collaborator

Our Amazing Contributors

iamforster
Tester & Bug Hunter
PiscesXD
PiscesXD
Ideas, Features, Fixes & Sponsor

amidst the hive 🐝

i feel out of place
amidst the beehive…
they look at me
with disapproval in their eyes —
as if they could see
the secrets of my heart.

they say i am a rebel
for not serving —
with devotion —
the queen bee.

but if i serve,
what good will it do,
if it is not what my soul
has chosen to love?

i wish i could fly,
free among the garden flowers,
without worrying about returning —
to the place i no longer know how to inhabit.

but i believe that one day,
i will break this prison,
and i will finally be able to fly
wherever i want —
with my own wings and
my own direction.

Geo

With Love, 💕

The Ecliptia Team 😊