BitAspire Wiki
SIRSIR

Migration Guide

Detailed migration notes for moving from Legacy SIR or Essentials-style data into Modern SIR 2.0.0.

Supported migration sources in Modern SIR

The MainCommand implementation in Modern SIR supports these sources:

  • /sir migrate SIR
  • /sir migrate Essentials

The first one is for older SIR data folders. The second one is for Essentials / EssentialsX style data.

If you need CMI migration or addon-aware migration, that belongs to SIR+.


Legacy SIR -> Modern SIR

What the migration actually does

The modern MigrationService does much more than copy files.

It knows how to:

  • migrate user data from old command folders into users/
  • carry shared files such as bossbars.yml and webhooks.yml
  • translate Legacy module folders into the modern split structure
  • rebuild modules/states.yml
  • rebuild commands/states.yml
  • create backups under back-ups/

Data that gets translated

Legacy sourceModern destination
commands/ignore/data.ymlusers/ignore.yml
commands/mute/data.ymlusers/mute.yml
commands/chat_view/data.ymlusers/chat-view.yml
commands/chat_color/data.ymlusers/chat-color.yml
bossbars.ymlbossbars.yml
webhooks.ymlwebhooks.yml
modules/announcements/*modules/announcements/*
modules/join_quit/*modules/join-quit/*
modules/advancements/*modules/advancements/*
modules/motd/*modules/motd/*
modules/chat/*split across channels, cooldowns, emojis, mentions, moderation, tags
modules/hook/*split across discord, login, vanish
resources/modules/modules.ymlmodules/states.yml
resources/commands/commands.ymlcommands/states.yml

Special translations worth knowing

The migration service contains dedicated logic for:

  • legacy channel definitions -> modern channel structure
  • old Discord hook IDs and message blocks -> new discord/config.yml
  • login spawn-before style values -> new login-aware config
  • vanish chat key, regex, prefix placement, and deny messages -> new vanish config

That is exactly why the recommended workflow is the command-driven migration, not a manual folder merge.

Backup behavior

Backups are written under plugins/SIR/back-ups/.

Two scenarios matter:

  • if you migrate from a separate old SIR folder, the service snapshots that source folder
  • if you run the migration inside the same plugin data folder, the service moves old Legacy artifacts into backup targets instead of leaving the old structure mixed with the new one
  1. Back up the full server first.
  2. Start Modern SIR once so the new folder structure exists.
  3. Stop the server.
  4. Make sure the old SIR data is still available.
  5. Start the server and run /sir migrate SIR.
  6. Inspect users/, modules/, commands/, and back-ups/.
  7. Verify permissions before letting players back in.

What still needs human review

  • renamed permission nodes
  • split chat configuration behavior
  • split hook configuration behavior
  • PlaceholderAPI or Vault-dependent formatting
  • any custom message text that relied on old layout assumptions

EssentialsX -> Modern SIR

Modern SIR also supports /sir migrate Essentials.

What the service looks for

The migration routine inspects Essentials or EssentialsX data and can also react to companion plugins such as:

  • EssentialsChat
  • EssentialsSpawn
  • EssentialsDiscord

What gets migrated

From the implementation, the migration can move or derive:

  • shared config pieces
  • chat formatting and chat-related behavior
  • spawn or onboarding-related data
  • Discord-related integration data
  • language defaults
  • command state
  • user data such as ignore, mute, and nick information from userdata files

It also writes a backup snapshot of the original Essentials folder under back-ups/.

Why this migration still needs testing

Essentials servers tend to be heavily customized. Even when the data conversion succeeds, you should still validate:

  • nickname formatting
  • mute expiration and reason text
  • placeholders in imported text
  • spawn and first-join behavior
  • chat channel expectations if you also enable the modern channels module

Mapping cheatsheet

Use this as a fast audit list while migrating from Legacy:

Legacy conceptModern concept
resources/modules/modules.ymlmodules/states.yml
resources/commands/commands.ymlcommands/states.yml
resources/modules/chatseveral modern modules
resources/modules/hookdiscord, login, vanish
resources/commands/chat_color/data.ymlusers/chat-color.yml
resources/commands/chat_view/data.ymlusers/chat-view.yml
resources/commands/ignore/data.ymlusers/ignore.yml
resources/commands/mute/data.ymlusers/mute.yml

Post-migration validation checklist

After either migration path, check these in order:

  1. modules/states.yml
  2. commands/states.yml
  3. users/ignore.yml
  4. users/mute.yml
  5. users/chat-view.yml
  6. users/chat-color.yml
  7. module-specific folders such as channels, discord, moderation, and motd
  8. your permission plugin grants

If the migration target is not base SIR but the addon-capable branch, continue with SIR+ Migration Guide.

Last updated on

On this page