Skip to main content
Version: v2.10.1 (current)

🔥 Upgrading to MagmaStream v2.10.0 — Migration Guide

warning

This release contains breaking changes. Review everything below before upgrading.
Lables:
🔴 - Breaking
🟡 - Changes
🟢 - New


🔴 Renamed Options

PlayerOptions:

  • guildguildId
  • voiceChannelvoiceChannelId
  • textChanneltextChannelId
  • nodenodeIdentifier

NodeOptions:

  • secureuseSSL
  • resumeStatusenableSessionResumeOption
  • resumeTimeoutsessionTimeoutSeconds
  • retryAmountmaxRetryAttempts
  • retryDelayretryDelayMs
  • prioritynodePriority

ManagerOptions:

  • autoPlayplayNextOnEnd
  • usePriorityenablePriorityMode
  • replaceYouTubeCredentialsnormalizeYouTubeTitles
  • pluginsenabledPlugins

🔴 Queue Overhaul

The old Queue class has been removed. You must now pick a storage backend explicitly:

  • MemoryQueue — in-memory, synchronous methods (closest to old behaviour)
  • JsonQueue — persists to disk, async methods
  • RedisQueue — persists to Redis, async methods
warning

If you use JsonQueue or RedisQueue, all queue calls need await.


🔴 Filter API

Filters now take an explicit boolean instead of being toggle calls:

Before

player.filters.nightcore()

After

player.filters.nightcore(true)
player.filters.nightcore(false)

bassBoost now takes a stage from -3 to 3 instead of being a toggle: player.filters.bassBoost(3) = max boost, player.filters.bassBoost(0) = disabled


🟡 Error Handling

All errors are now MagmaStreamError instances with structured codes and context. Replace any TypeError / RangeError catches with MagmaStreamError.


🟢 What's been added

  • Library wrappers: DiscordJSManager, DiscordenoManager, ErisManager, OceanicManager, SeyfertManager
  • Abstract Plugin base class with load() / unload() methods
  • Redis-backed session and queue storage
  • New filters: demon, earrape, doubletime, chipmunk, daycore, darthvader, electronic, radio, tremolo, pop, party

Questions?

  • 📄 Full docs here
  • ❔ Join our Discord — we're happy to help.