Star ✨ on GitHub

Interfaces

Comprehensive list of TypeScript interfaces and types used throughout Moonlink.js.

Event Definitions

Interface

IManagerEvents

Events emitted by the Manager instance.

debug(message: string) => void

Emitted for general debugging logs.

Node Events

nodeCreate(node: Node) => void

Emitted when a node is created.

nodeReady(node: Node, payload: any) => void

Emitted when a node is ready to accept requests.

nodeConnected(node: Node) => void

Emitted when a node establishes a WebSocket connection.

nodeError(node: Node, error: Error) => void

Emitted when a node encounters an error.

nodeReconnect(node: Node) => void

Emitted when a node successfully reconnects.

nodeReconnecting(node: Node, attempt: number) => void

Emitted when a node attempts to reconnect.

nodeResume(node: Node) => void

Emitted when a node session is resumed.

nodeDisconnect(node: Node, code: number, reason: string) => void

Emitted when a node disconnects.

nodeDestroy(identifier: string) => void

Emitted when a node is destroyed.

nodeRaw(node: Node, payload: any) => void

Emitted when a raw packet is received from a node.

nodeStateChange(node: Node, oldState: NodeState, newState: NodeState) => void

Emitted when a node's connection state changes.

Player Events

playerCreate(player: Player) => void

Emitted when a player is created.

playerDestroy(player: Player, reason?: string) => void

Emitted when a player is destroyed.

playerUpdate(player: Player, track: Track, payload: any) => void

Emitted when player update data is received from Lavalink.

playerSwitchedNode(player: Player, oldNode: Node, newNode: Node) => void

Emitted when a player is transferred to a different node.

playerConnecting(player: Player) => void

Emitted when a player starts connecting to voice.

playerConnected(player: Player) => void

Emitted when a player successfully connects to voice.

playerReady(player: Player) => void

Emitted when a player is fully ready.

playerResuming(player: Player) => void

Emitted when a player starts resuming.

playerResumed(player: Player) => void

Emitted when a player has successfully resumed.

playerDisconnected(player: Player) => void

Emitted when a player disconnects from voice.

playerReconnect(player: Player, reason?: string) => void

Emitted when a player attempts to reconnect.

playerMoved(player: Player, oldChannel: string, newChannel: string) => void

Emitted when a player moves to a different voice channel.

playerMuteChange(player: Player, selfMute: boolean, serverMute: boolean) => void

Emitted when a player's mute state changes.

playerDeafChange(player: Player, selfDeaf: boolean, serverDeaf: boolean) => void

Emitted when a player's deaf state changes.

playerSuppressChange(player: Player, suppress: boolean) => void

Emitted when a player's suppression state changes.

playerAutoPlaySet(player: Player, autoPlay: boolean) => void

Emitted when autoPlay is toggled.

playerAutoLeaveSet(player: Player, autoLeave: boolean) => void

Emitted when autoLeave is toggled.

playerChangedVolume(player: Player, oldVolume: number, volume: number) => void

Emitted when the volume is changed.

playerChangedLoop(player: Player, oldLoop: PlayerLoop, loop: PlayerLoop, oldLoopCount?: number, newLoopCount?: number) => void

Emitted when the loop mode is changed.

playerTextChannelIdSet(player: Player, oldChannel: string, newChannel: string) => void

Emitted when the text channel is updated.

playerVoiceChannelIdSet(player: Player, oldChannel: string, newChannel: string) => void

Emitted when the voice channel ID is updated manually.

playerNodeSet(player: Player, oldNode: string, newNode: string) => void

Emitted when the player's node identifier is updated.

playerRecoveryStarted(player: Player) => void

Emitted when player recovery begins (e.g. after a crash).

playerRecoverySuccess(player: Player) => void

Emitted when player recovery succeeds.

playerRecoveryFailed(player: Player) => void

Emitted when player recovery fails.

Failover Events

playersMoved(players: Player[], oldNode: Node, newNode: Node) => void

Emitted when multiple players are moved due to node failure/ejection.

playersOrphaned(players: Player[], deadNode: Node) => void

Emitted when players cannot be moved and are left without a node.

Player Triggered Events

playerTriggeredPlay(player: Player, track: Track) => void

Emitted when player.play() is called.

playerTriggeredPause(player: Player) => void

Emitted when player.pause() is called.

playerTriggeredResume(player: Player) => void

Emitted when player.resume() is called.

playerTriggeredStop(player: Player) => void

Emitted when player.stop() is called.

playerTriggeredSkip(player: Player, oldTrack: object, currentTrack: Track, position: number) => void

Emitted when player.skip() is called.

playerTriggeredSeek(player: Player, position: number) => void

Emitted when player.seek() is called.

playerTriggeredShuffle(player: Player, oldQueue: object, currentQueue: Track[]) => void

Emitted when player.shuffle() is called.

playerTriggeredBack(player: Player, track: Track) => void

Emitted when player.back() is called.

Track Events

trackStart(player: Player, track: Track) => void

Emitted when a track starts playing.

trackEnd(player: Player, track: Track, reason: TrackEndReason, payload?: any) => void

Emitted when a track finishes playing.

trackStuck(player: Player, track: Track, threshold: number, payload?: any) => void

Emitted when a track gets stuck (buffers for too long).

trackException(player: Player, track: Track, exception: any, payload?: any) => void

Emitted when an error occurs during playback.

Queue Events

queueAdd(player: Player, tracks: Track | Track[]) => void

Emitted when tracks are added to the queue.

queueRemove(player: Player, tracks: Track | Track[]) => void

Emitted when tracks are removed from the queue.

queueMoveRange(player: Player, tracks: Track[], fromIndex: number, toIndex: number) => void

Emitted when a range of tracks is moved in the queue.

queueRemoveRange(player: Player, tracks: Track[], startIndex: number, endIndex: number) => void

Emitted when a range of tracks is removed from the queue.

queueDuplicate(player: Player, tracks: Track[], index: number) => void

Emitted when tracks are duplicated in the queue.

queueEnd(player: Player, lastTrack?: Track) => void

Emitted when the queue is empty.

Other Events

filtersUpdate(player: Player, filters: Filters) => void

Emitted when filters are updated.

socketClosed(player: Player, code: number, reason: string, byRemote: boolean, payload?: any) => void

Emitted when the Discord voice WebSocket closes.

voiceSessionChanged(player: Player, oldSessionId: string | boolean, sessionId: string) => void

Emitted when the voice session ID changes.

autoPlayed(player: Player, track: Track, previousTrack: Track) => void

Emitted when a track starts playing via AutoPlay.

autoLeaved(player: Player, lastTrack?: Track) => void

Emitted when the player auto-leaves the channel.

Configuration Interfaces

Interface

IManagerConfig

Main configuration object for the Manager.

nodesIManagerNodeConfig[] required

Array of nodes to connect to.

optionsIManagerOptionsConfig

Global options.

send(guildId: string, payload: any) => void

Function to send packets to Discord.

Interface

IManagerNodeConfig

Configuration for a single Lavalink node.

hoststring required

Node hostname.

portnumber required

Node port.

passwordstring required

Node password.

secureboolean required

Whether to use SSL/TLS.

identifierstring

Custom identifier for the node.

pathVersionstring

API version path (default: 'v4').

retryDelaynumber

Delay between reconnection attempts.

retryAmountnumber

Max number of reconnection attempts.

regionsstring[]

Regions this node is responsible for.

prioritynumber

Priority for load balancing.

Interface

IManagerOptionsConfig

Global manager options.

clientNamestring

Name of the client sent to Lavalink.

userAgentstring

Custom User-Agent for HTTP requests.

noReplaceboolean

Prevent replacing the playing track on play call.

resumeboolean

Whether to resume session after disconnect.

resumeTimeoutnumber

Timeout in ms for session resuming.

customFiltersRecord<string, string | IFilters>

Define custom filter presets.

defaultPlayerIDefaultPlayerOptions

Default settings for new players.

voiceConnectionIVoiceConnectionOptions

Voice connection settings.

nodeINodeOptions

Node selection and behavior.

queueIQueueOptions

Queue limits and behavior.

sourcesISourceOptions

Source configuration.

playerDestructionIPlayerDestructionOptions

Idle player cleanup settings.

trackHandlingITrackHandlingOptions

Track error and stuck handling.

trackPartialTPartialTrackProperties[]

Properties to load partially for tracks.

database{ type: 'memory' | 'local', options?: any }

Database configuration.

Interface

IDefaultPlayerOptions

Default settings for new players.

volumenumber

Default volume.

autoPlayboolean

Default autoPlay state.

autoLeaveboolean

Default autoLeave state.

selfDeafboolean

Default selfDeaf state.

selfMuteboolean

Default selfMute state.

loopPlayerLoop

Default loop mode ('off', 'track', 'queue').

historySizenumber

Size of the track history buffer.

Interface

IVoiceConnectionOptions

Voice connection retry and timeout settings.

timeoutnumber

Connection timeout in ms.

maxReconnectAttemptsnumber

Max reconnection attempts.

reconnectDelaynumber

Delay between reconnections.

autoReconnectboolean

Whether to auto-reconnect on close.

Interface

INodeOptions

Node selection strategies.

selectionStrategyNodeSortStrategy

Strategy to pick nodes ('leastLoad', etc).

retryDelaynumber

Retry delay for node connection.

retryAmountnumber

Retry amount for node connection.

avoidUnhealthyNodesboolean

Skip nodes with high CPU/Memory.

maxCpuLoadnumber

Max CPU load to consider healthy.

maxMemoryUsagenumber

Max Memory usage to consider healthy.

autoMovePlayersboolean

Move players if a node disconnects.

autoRebalanceboolean

Automatically rebalance players (not implemented).

Interface

ISearchOptions

Search behavior.

defaultPlatformstring

Default platform ('youtube', 'soundcloud', etc).

resultLimitnumber

Max results to return.

playlistLoadLimitnumber

Max tracks to load from a playlist.

Interface

IQueueOptions

Queue limits.

maxSizenumber | 'unlimited'

Max tracks in queue.

allowDuplicatesboolean

Allow duplicate tracks.

historyLimitnumber

Max tracks in history.

Interface

ISourceOptions

Source management.

disabledSourcesstring[]

List of sources to block.

Interface

IPlayerDestructionOptions

Idle player cleanup.

autoDestroyOnIdleboolean

Destroy player when idle.

idleTimeoutnumber

Time in ms before destruction.

Interface

ITrackHandlingOptions

Track error handling.

autoSkipOnErrorboolean

Skip track on exception.

skipStuckTracksboolean

Skip track if stuck.

trackStuckThresholdnumber

Threshold in ms to consider stuck.

retryFailedTracksboolean

Retry track load on failure.

maxRetryAttemptsnumber

Max retries.

Player Interfaces

Interface

IPlayerConfig

Options for creating a player.

guildIdstring required

The Guild ID.

voiceChannelIdstring required

The Voice Channel ID.

textChannelIdstring

The Text Channel ID.

nodestring

Specific node identifier to use.

volumenumber

Initial volume.

selfDeafboolean

Join deafened.

selfMuteboolean

Join muted.

autoPlayboolean

Enable autoPlay.

autoLeaveboolean

Enable autoLeave.

loopPlayerLoop

Initial loop mode.

loopCountnumber

Number of times to loop.

Interface

ITrack

Raw track object structure.

encodedstring required

Base64 string.

infoITrackInfo required

Metadata.

pluginInfoRecord<string, any>

Plugin-specific data.

userDataRecord<string, any>

Custom user data attached to the track.

Interface

ITrackInfo

Track metadata fields.

titlestring required

Track title.

authorstring required

Track author.

lengthnumber required

Length in milliseconds.

identifierstring required

Unique identifier.

isSeekableboolean required

Whether seeking is allowed.

isStreamboolean required

Whether it's a livestream.

uristring | null

Track URL.

artworkUrlstring | null

Track artwork.

isrcstring | null

ISRC code.

sourceNamestring

Source platform name.

positionnumber

Start position.

Interface

IPlayerState

Current player state from Lavalink.

timenumber

Current Unix timestamp.

positionnumber

Track position in ms.

connectedboolean

Voice connection status.

pingnumber

Voice latency.

Filter Interfaces

Interface

IFilters

Audio filter configuration.

volumenumber

Volume multiplier (0.0 - 5.0).

equalizerIEqualizerBand[]

Array of 15 bands.

karaokeIKaraoke

Karaoke settings.

timescaleITimescale

Speed/Pitch/Rate settings.

tremoloITremolo

Tremolo settings.

vibratoIVibrato

Vibrato settings.

rotationIRotation

8D audio settings.

distortionIDistortion

Distortion settings.

channelMixIChannelMix

Channel mixing settings.

lowPassILowPass

LowPass filter settings.

pluginFiltersRecord<string, any>

Custom plugin filters.

Interface

IEqualizerBand

bandnumber

Band index (0-14).

gainnumber

Gain (-0.25 to 1.0).

Interface

IKaraoke

levelnumber
monoLevelnumber
filterBandnumber
filterWidthnumber
Interface

ITimescale

speednumber
pitchnumber
ratenumber
Interface

ITremolo

frequencynumber
depthnumber
Interface

IVibrato

frequencynumber
depthnumber
Interface

IRotation

rotationHznumber
Interface

IDistortion

sinOffsetnumber
sinScalenumber
cosOffsetnumber
cosScalenumber
tanOffsetnumber
tanScalenumber
offsetnumber
scalenumber
Interface

IChannelMix

leftToLeftnumber
leftToRightnumber
rightToLeftnumber
rightToRightnumber
Interface

ILowPass

smoothingnumber

REST Interfaces

Interface

INodeStats

Node statistics payload.

playersnumber

Total players.

playingPlayersnumber

Active players.

uptimenumber

Uptime in seconds.

memoryobject

Memory usage stats.

cpuobject

CPU load stats.

Interface

IRESTLoadTracks

Response from loadTracks endpoint.

loadTypestring

Type of result ('track', 'playlist', etc).

dataany

The track(s) data or exception.

Interface

IRESTGetPlayers

Response from getPlayers endpoint.

guildIdstring
trackITrack
volumenumber
pausedboolean
stateIPlayerState
filtersany
voiceobject

Voice state.

Interface

IRESTGetLyrics

textstring
linesArray<{ timestamp: number; text: string }>
Interface

IRoutePlannerStatus

Route planner status.

classstring

The class name of the route planner.

detailsIRoutePlannerDetails

Detailed status info.

Interface

IRoutePlannerDetails

ipBlockIIpBlock
failingAddressesIFailingAddress[]
rotateIndexstring
ipIndexstring
currentAddressstring
currentAddressIndexstring
blockIndexstring
Interface

IIpBlock

typestring
sizestring
Interface

IFailingAddress

failingAddressstring
failingTimestampnumber
failingTimestring