If you’ve been a Minecraft server admin for a while, you might’ve heard people talk about using the --forceUpgrade
flag when updating a Minecraft server to a newer version of Minecraft. If you have, you’ve likely heard some people strongly recommend it, and others strongly against it. What is this option, and why does it cause such division? What are the pros and cons? And ultimately, should you use it?
What does --forceUpgrade do?
To understand what the option does, you need to understand part of how Minecraft actually updates the world to newer versions of the game. Every chunk in Minecraft is versioned, letting the game know what version of game data it’s intended for. When you update Minecraft and load a chunk, it sees that the version is outdated and runs a series of upgraders, or “Data Fixer Upper (DFU)” tasks to update all of the stored data in the chunk to the version of Minecraft you’re using. This process intelligently applies all necessary upgrades to your data version-by-version, which is why you can load even years old Minecraft saves on a modern game version. This is also part of the reason you can’t load a world made on a newer version of the game, as these DFU tasks cannot run backwards, and even if they could older versions of the game are not aware of the new game’s features and changes.
Normally, Minecraft performs these upgrades while you play the game. As you explore more chunks that have previously been generated, the game will upgrade each of these chunks. So, if you’ve got a server that’s been through many version updates, it’s possible you’ll have different chunks saved under many different versions. If you supply the force upgrade option however, Minecraft will forcibly load every single chunk and make sure that it gets upgraded to the current version. This means there will be no chunks that need to be upgraded as players explore the world.
What are the benefits?
There are two possible benefits to doing this. The first is that it reduces performance impact during regular gameplay. Rather than having to run those calculations as players explore and load chunks, you can run all of them at once after updating your server. This can result in smoother gameplay performance, especially for servers with many players who explore in different areas.
The other benefit relates to external tooling, such as tools that load world files. Not all of these are written in a way that can understand multiple versions of chunks at the same time and may therefore be necessary for compatibility with these tools. As time progresses, however, this is becoming less and less common. It’s unlikely you’ll come across a tool like this now, and even if you do it’s likely there might be more modern alternatives without this issue.
What are the downsides?
The main downside with forcibly updating every chunk, is that you’re potentially opening yourself up to more serious impact from bugs. While the Data Fixer Upper code is considered relatively stable, there have been numerous cases of very serious bugs in the system. For example, Minecraft 1.20.6 patched a serious bug found in Minecraft 1.20.5 where a DFU task would corrupt llama entities. Any chunk with the affected llama data in it that had been updated to 1.20.5’s data therefore lost their llamas. If a server ran force upgrade, this is guaranteed to affect every single chunk in the world.
This doesn’t just affect newly released versions too. If your server has been around for a while, running this command on a large variety of different chunk versions could run into bugs that only affect upgrades from that older version to the current one. Mojang patch DFU bugs in almost all of their releases, and if you forcibly upgrade your world you run the risk of causing more damage than you would have otherwise.
So should you use it?
In most cases, you generally shouldn’t. While in the past the system was slower, the performance impact is now negligible in modern Minecraft versions. As this system is only necessary for data that has actively changed, rather than new blocks, items, or entities, there are very few changes that need to go through this system in newer Minecraft versions. While the 1.13 update is massive and takes some time to update even on modern fast versions of the DFU system, most newer updates have very few changes. If you’re using Paper, it uses an alternate system that provides even faster performance as well. Due to this, you’re trading theoretical microseconds for significantly higher risks of data damage by using this option. The only reason to use it is generally compatibility with other tools as mentioned above, but these cases are dwindling as time goes on. It’s therefore in almost all cases at best a waste of time, and at worst actively damages your Minecraft worlds.
About the Author
Hi, I'm Maddy Miller, a Senior Software Engineer at Clipchamp at Microsoft. In my spare time I love writing articles, and I also develop the Minecraft mods WorldEdit, WorldGuard, and CraftBook. My opinions are my own and do not represent those of my employer in any capacity. Find out more.