Migrating a Minecraft world between versions safely

Jan 23, 20265 min read

Migrating a Minecraft world between versions safely

A new Minecraft version drops. Your players want it. Your world is two years deep with established bases, custom datapacks, and a working economy plugin. The upgrade is not "click update and go."

This article is what we've learned migrating real worlds across version boundaries, with the specific failure modes that catch people.

The first rule: don't do this in production

Take a backup. Restore the backup to a separate test server. Upgrade the test server. Confirm the world loads and plays correctly. Then, only then, do the upgrade on the live server.

The cost of testing is hours. The cost of "I upgraded and the chunks at our base became visual chaos" can be your community.

You can do this for free with any cheap second host, or with a local install.

Why version upgrades break things

Minecraft changes block formats, biome formats, and entity formats across major versions. The game converts old data to the new format when it loads a chunk. The conversion is mostly automatic and mostly correct. The "mostly" is where problems live.

Common breakage areas:

  • New biomes. When a new biome is added (e.g., 1.18's terrain rewrite, 1.20's cherry grove), the boundary between pre-upgrade chunks and post-upgrade chunks shows as a visible seam.
  • Removed or renamed blocks. Datapacks or command-block builds that reference old block names break.
  • Changed worldgen. New chunks generate with the new algorithm. Old chunks keep their old generation. Walking from old to new shows a wall.
  • Entity changes. Some entities get reclassified, renamed, or split. Plugins that target specific entity types may need updates.
  • Plugin / mod compatibility. Plugins built for the old version may simply not load on the new version.

The terrain seam, visualized

upgrade

After upgrade, player walks east

Pre-1.18 terrain
unchanged, old worldgen

The seam:
cliff wall, broken biomes,
inherent to the chunk data.
No tool blends them.

Post-1.18 terrain
extended Y range, new biomes

Before upgrade

Pre-1.18 terrain
chunks the player has explored

There is no "merge old and new worldgen smoothly" tool. The seams are a property of the data, not a bug to fix.

A pre-upgrade audit

Before upgrading, list:

  1. Plugin versions. Are all plugins available for the target version?
  2. Mod versions. Same question. For modded servers this is often the blocker.
  3. Datapacks. Will they break? Reference removed blocks?
  4. Custom commands or command blocks. Same.
  5. Custom resource packs. Will their conventions still apply?
  6. Active world borders. Will new world gen extend outside them?
  7. Player exploration boundaries. Where have players actually been? New chunks beyond that boundary will generate with new worldgen.

This list takes 30 minutes and saves hours.

Mitigations for the seam

  • Pre-generate the world before the upgrade so post-upgrade exploration is rare. (See the Chunky article.)
  • Set a world border that contains current explored area, preventing seam discovery.
  • Run a "new frontier" world alongside the old one for the new content. Old world remains untouched. New worldgen lives in a separate dimension or world.
  • Accept the seams. Many communities treat upgrade seams as "the time we updated." Lore-friendly.

Specific version concerns

Pre-1.13 to 1.13+ ("the flattening").

The block ID system changed entirely. Almost all worlds survive but plugins / datapacks / command-blocks referencing old IDs need rewriting. If you're still on pre-1.13, the upgrade is non-trivial and you should budget significant time.

1.17 to 1.18 ("caves and cliffs part 2").

The biggest worldgen rewrite in years. Old chunks keep old terrain. Y-axis extended (depth and height). Plan for seams and for adjusting builds at the new lower/upper limits.

1.20 to 1.21+.

Generally smoother. Watch for changes to redstone components (some had behavior tweaks).

Major Forge / NeoForge mod ecosystem upgrades.

For modded servers, "Minecraft version upgrade" often means "modpack rewrite." Mods don't usually skip versions, and many won't be available for the new version for months. Modded upgrades require way more patience than vanilla.

A safe upgrade workflow

No

Yes

No

Yes

Snapshot live world

Restore to test environment

Note all current versions:
MC, server software, plugins, mods

Update server software on test

Swap each plugin / mod to
new-MC-compatible version

Try to boot

Boots cleanly?

Diagnose. Drop broken plugins,
find replacements

Walk world. Trigger redstone.
Open chests. Exercise each plugin

All working?

Schedule downtime for live

Take fresh snapshot of live

Repeat exact same steps on live
now mechanical, you know it works

Announce. Keep snapshot 30+ days

Vanilla DataFixerUpper

Minecraft includes a system called DataFixerUpper (DFU) that automatically converts old world data to the new format on load. Most of the time it works silently.

When it doesn't:

  • Very old worlds (pre-1.8) may take hours to convert.
  • Some custom blocks added by mods don't have DFU rules; they may become air after upgrade.
  • DFU can occasionally truncate data; rare but it happens.

If you're upgrading from a very old version (1.7, 1.10), consider an intermediate upgrade: bring the world up to 1.16 or 1.18 first, confirm health, then bring it to current.

Plugins to be careful about

The most plugin-fragile across upgrades:

  • NMS-dependent plugins (mob disguises, custom monsters, low-level packet manipulators).
  • Anti-cheat plugins that hook deep into movement physics.
  • WorldEdit and WorldGuard can usually be updated but config formats sometimes shift.
  • Economy plugins with custom database schemas.

For each, check the plugin's changelog before upgrading. The author often lists "what changed across MC versions" notes.

Mods are different

For modded servers, "version upgrade" is essentially "build a new modpack and migrate the world." The world may or may not be portable, depending on the mods involved.

Critical points:

  • Many content mods (those adding blocks / items) lose data if the mod is removed. If a removed mod's blocks were in the world, they become air or "missing block" placeholders.
  • Some packs ship a "world migration" tool or have notes from the pack author.
  • For major version jumps (1.16 → 1.20), expect to either keep the old pack on a frozen server or start fresh.

When not to upgrade

Honestly, you don't have to. Some long-running communities have stayed on 1.16 or 1.19 for years because:

  • The plugins they love aren't on newer versions.
  • Their players don't care about new features.
  • Stability is worth more than novelty.

The pressure to upgrade is mostly social, not technical. If your server is healthy and players are happy, "we're on the latest version" is not a goal in itself.

Conclusion

Upgrades are routine if you test first and brutal if you don't. The recipe: snapshot, test on a clone, fix problems there, then mechanically repeat on production. Don't combine an upgrade with any other change. Don't upgrade during peak play hours. And accept that some worldgen seams are inherent and not something you can fix.


Hosting your game server with AndroHost means we handle most of what's in this post for you automatically: tier sizing, SRV records, off-site backups, DDoS protection.

Browse plans·More posts·Discord