To migrate a Minecraft server, make a complete stopped backup, restore it on the destination using the same Minecraft version and server software, and verify the restored world before changing the public address. Keep the old instance stopped and intact until the new one is accepted. Copying only a world folder can miss dimensions, inventories, permissions or plugin databases.
Keep a host move separate from a software conversion
This procedure moves an existing Java server between hosts. It does not convert Bedrock worlds or translate modded content into plugins. Record the precise server build, Java runtime, loader, extensions and startup settings. Match those first; schedule upgrades after the migration has a verified baseline.
| Data | What to include |
|---|---|
| Worlds | Every configured world and dimension, including custom world directories |
| Player and access data | Player inventories, advancements, whitelist, operators and bans |
| Extensions | Plugins/mods, their configuration and local persistent data |
| External services | SQL databases, permissions stores, proxy settings and scheduled tasks |
| Runtime | Game/build/loader versions, Java version, startup arguments and environment requirements |
| Connection details | Game allocation, DNS/SRV records and private backend/proxy relationships |
Store the inventory with the backup but protect credentials and tokens. A host-bound address or path may need changing at the destination; that does not justify replacing the rest of the configuration with fresh defaults.
1. Create a consistent migration backup
- Announce a maintenance window and prevent new joins.
- Stop the server normally and wait for the process to exit. Suspend automatic restarts and writers that can still modify shared data.
- Export any external database using its documented backup procedure. Record the common maintenance interval for the files and database.
- Archive the complete server tree and retain an independent copy. Check that the archive can be listed and opened; record its byte size and a SHA-256 checksum.
- Transfer the archive using the destination’s supported secure file method. Verify its checksum again before extraction.
# Windows PowerShell: check the same archive before and after transfer
Get-FileHash -Algorithm SHA256 -LiteralPath ./minecraft-migration.zipMatching archive hashes verify transfer integrity, not that the server saved good data. Only a restore and application checks establish whether the copy is useful. Never overwrite your only backup with a test result.
2. Restore privately and check the world
- Keep the destination stopped. Restore into the intended server directory with enough free space and the correct file ownership or panel account.
- Restore external data to an isolated database and point the test instance there. Disable outbound automation, payments and other integrations that should not run twice.
- Apply only the destination-specific port, paths and network settings. Restrict access to testers before starting.
- Read the startup log and confirm the expected world name, seed and dimensions. Join with an existing player account and check inventory, location, builds, permissions and plugin data.
- Test travel between dimensions, a save and a clean restart. Confirm that changes persist and that the backup job now protects the destination.
Why world directory advice depends on the version
Paper’s migration documentation changed for 26.1, including conversion paths from Spigot/CraftBukkit and back to Vanilla. Old instructions that rearrange DIM-1 and DIM1 folders are not a universal procedure for current versions. A same-software move should preserve the complete layout; use the official version-specific migration instructions only when deliberately changing software.
3. Cut over without creating two active worlds
A rehearsal copy becomes stale if players return to the old server. At the final maintenance window, stop the source again and repeat the consistent file/database capture and restore. Recheck essential player data on the final copy, then change the address or DNS record. DNS caches can retain the old destination, so leave the old game service stopped during the transition.
4. Define what rollback means before reopening
If validation fails before public access, stop the destination and restart the preserved source with its matching database state. Restore the old address if changed. After players have written new data on the destination, returning to the old snapshot would discard that progress; capture the new state and decide whether to repair or move it back before taking action. Do not try to merge world region files blindly.
Keep the migration record until recovery has been demonstrated. For routine protection afterward, use creating and restoring backups. When moving to EnderHost Minecraft hosting, confirm supported runtime, import size and external database access before scheduling the cutover.
Sources and references
Hosting documentation. Publication and update dates reflect this edition.
Related articles
- How to Install Minecraft Plugins and Mods SafelyMatch the server software, game version and dependencies, then test one change at a time with a complete rollback copy.4 min read
- Minecraft Java Server Requirements: Java, CPU, RAM and StorageMatch the runtime to the server version, then size resources around world activity and recovery needs instead of a fixed player-per-gigabyte rule.4 min read
- How to Back Up and Restore a Minecraft ServerCapture complete server state, keep independent generations and verify a private restore before replacing live data.3 min read
