How do I update my Minecraft world without it recreating unexplored chunks to the new version?

I run a Minecraft server with an Earth map on 1.12.2. However, I downloaded the map and did not create it myself. I believe most of it was created with world painter, and because of this, many chunks have not been actually loaded by players.

I have tested updating the version it runs on in a singleplayer game, only to realize that the chunks that players had not loaded were regenerated according to the map's seed on that version. For example, if I loaded in, flew around a little and generated some chunks, and then I updated it to 1.13 from 1.12, it would regenerate everything I did not load in, erasing the rest of the Earth map.

Keep in mind, this quite a large map (around 40k blocks long and 16k blocks wide), so it would bring great pains to fly around and preload the entirety of the map before updating the version. Is there any way to keep the map the way it is and update it? Perhaps there is a way to protect the chunks I don't want to be regenerated?


Solution 1:

This has nothing to do with versions, unexplored chunks are always generated when you first load them. You have a few options against this:

  • If everyone is always in Spectator mode, running /gamerule spectatorsGenerateChunks false will prevent generating new chunks entirely.
  • If everyone is always in one of the other three gamemodes, you can keep them inside the generated area using the world border.
  • You could change the world type to "superflat" with the preset "void" (added in 1.13, but possible to create manually in 1.12). The easiest way to do that would be creating a new world of that type and copying the "level.dat" file from it to your destination world (overwriting the one that is there already). This won't change anything about the already generated chunks, but leave any new ones empty.