// guide
How to update a modpack on your server without losing your world
Updating a pack means replacing the pack’s files and keeping yours. Your world, player data, server settings and the configs you changed stay. The mods, the pack’s own configs and scripts, and sometimes the loader get replaced. Back up first, read the changelog, and know how you’d roll back before you change anything.
1. Back up, and check the backup
Type stop in the console and wait until the server has finished saving. Then copy the whole server folder, not just the world. If the update goes wrong you’ll want the old mods and configs back too, and they only fit the old world together.
A backup you haven’t opened is a hope, not a backup. Check that it has:
world/level.datand the dimensions. Up to Minecraft 1.21.11 that’sworld/region/(the Overworld),world/DIM-1/(the Nether) andworld/DIM1/(the End), with modded dimensions usually underworld/dimensions/. From 26.1 on, every dimension lives underworld/dimensions/, includingdimensions/minecraft/overworld/,the_nether/andthe_end/. If you renamed the world withlevel-name, look for that folder instead.- The player data, which holds every player’s inventory and position:
world/playerdata/, orworld/players/data/from 26.1 on. mods/,config/and your start script.
The real test is a restore: unzip it into a scratch folder and start it once (on another port if the main server is running). If it loads, you have a way back.
On DSN, take one of your 5 on-demand backups from the panel before you start. The nightly off-site backups keep running too, with restores checked monthly.
2. Read the changelog first
Find the changelog for every version between yours and the new one: on the CurseForge file page, the Modrinth version page, or the pack’s GitHub. Look for:
- “New world required” or “not compatible with existing worlds”. Believe it. Updating an old world anyway can break it in ways you won’t notice until later.
- A Minecraft version change, say 1.20.1 to 1.21.1. That’s effectively a new pack: new Java (see the Java version chart), different mods, and content that may not carry over. Minecraft upgrades worlds forward, but mods don’t always upgrade their own data, and nothing goes back the other way.
- A loader change, like Forge to NeoForge. Treat it like a version change.
- Removed mods. Everything a removed mod added (blocks, machines, items in chests and inventories) is lost from the world when it loads without that mod. Empty the important ones first, or skip the update.
- Config or quest resets the authors ask you to do.
3. What to keep, what to replace
| Keep (yours) | Replace (the pack’s) |
|---|---|
world/, with player data, stats and advancements | mods/: delete the old folder and use the new one whole |
server.properties | config/, then re-apply your own changes |
ops.json, whitelist.json, banned-players.json, banned-ips.json | defaultconfigs/, and kubejs/ or scripts/ if the pack has them |
eula.txt, and your RAM line from user_jvm_args.txt | A datapacks/ folder in the server root, if the pack has one |
| Mods you added yourself, if they have a build for the new version | The loader, if the version changed |
- Never merge
mods/. Copying new jars over old ones leaves the old versions of renamed files behind, and two versions of one mod is a crash (duplicate mods). - Re-apply config changes; don’t copy old files over new ones. The new pack may have changed the same file for a reason. Before you update, list which settings you changed, then set them again in the new files.
- Server configs on Forge 1.16.5 to 1.20.1 live inside the world, in
world/serverconfig/, so they survive the update with it. The flip side: Forge only copies a pack’s default fromdefaultconfigs/when that file is missing. If the changelog says a server config changed and you never edited it, delete that file fromworld/serverconfig/and the new default is copied in on the next start. On NeoForge 1.21.1, server configs load fromconfig/, andworld/serverconfig/only holds per-world overrides. - Anything you don’t recognise in the server folder: keep it until you know what it is. Some mods keep data outside
world/.
4. Do the update
From a CurseForge server pack
- Get the new server pack.
Download it for the exact new version (on CurseForge, often under Additional Files for that release) and extract it into a new, empty folder.
- Bring your files over.
Copy the “keep” column into the new folder, then re-apply your config changes. Some packs’ start scripts only write
server.propertiesif it’s missing (All the Mods 10’s does), so your copy stays as it is. - Install the loader.
Run the pack’s start script if it has one; it usually installs the loader itself. Otherwise run the new Forge or NeoForge installer with
--installServerin the new folder, or download the new Fabric launcher jar. Check the Java version too, if Minecraft’s version changed. - Keep the old folder, but don’t run it.
Leave it untouched until the new one has run for a while. Two servers started from two folders on one machine fight over the port (failed to bind to port).
From a Modrinth pack (.mrpack)
- Deployed with mrpack-install? In the stable release (v0.16.10),
mrpack-install update cobbleverse 1.7.42 --server-dir server(with your pack, version and folder) compares the new version with what it installed last time. It downloads new and changed files, keeps the old copy of each file it replaces in anupdateBack/folder, and deletes files the pack dropped (moving them toupdateBack/instead if you edited them). It stops without updating anything when the new version changes the Minecraft or loader version, so do those updates by hand. The newer beta builds have the update command switched off. - Built by hand? Compare the
fileslist in the old and newmodrinth.index.json. Add new mods, remove the ones that are gone, and replace the ones whose file changed. Copy the newoverrides/over, except the configs you changed. Then repeat your client-only check, since new mods may need it (how we do that for Cobbleverse).
On DSN
Take a backup, then install the new version from the panel’s modpack installer. Afterwards, check that your world and the files you edited are as you left them. If anything’s missing, copy it back from the backup with the file manager or SFTP.
5. First start: missing registry entries
Start the server and watch the console until Done (…)! For help, type "help". Then read logs/latest.log for one thing in particular. When an update removes or renames a mod’s blocks, the world still contains them. On Minecraft 1.18 and newer, each chunk section with an unknown block logs a line like this when it loads:
Recoverable errors when loading section [3, 3, -9]: (Unknown registry key in ResourceKey[minecraft:root / minecraft:block]: examplemod:example_block -> using default)
“Using default” means the block is replaced with air. The server keeps running, but once a chunk has been loaded and saved like that, those blocks are gone for good. A few lines for a mod you meant to drop is expected. Lots of lines for a mod you still want means the update renamed or removed it: stop the server, restore your backup and read the changelog again.
Forge 1.12.2 servers, like RLCraft, stop and ask before they remove anything:
Forge Mod Loader detected missing registry entries.
There are 3 missing entries in this save.
If you continue the missing entries will get removed.
Type /fml confirm to continue and drop them, or /fml cancel to stop. Starting the server with -Dfml.queryResult=confirm answers it in advance. Only confirm if you know which mod those entries came from and you’re fine losing it.
If the server crashes instead, paste the log into the free crash log analyzer. Chunk errors after an update are covered in corrupt chunk.
6. Update the players
Every player needs the same pack version as the server, so update everyone at the same time. In the CurseForge app, the Modrinth App or Prism Launcher, update the instance to the exact version the server runs and check the number matches. A player still on the old version usually can’t join until they update (why players can’t join lists the messages they’ll see). Players who added their own client mods (minimaps, shaders) should check those are still there and still fit the new version.
7. Roll back if it breaks
Stop the server, move the new folder aside, and restore the backup in full: old mods, old configs and the old world together. Don’t point the old pack at the updated world. Once the new version has opened it, chunks and player data may already be in the new format, and Minecraft doesn’t convert worlds back to older versions. Mods rarely do either.
Anything players built since the update is lost in a rollback, so decide quickly. If you’re not sure the update works, let a small group test it for an hour before you announce it.
Backups that we test.
DSN backs up every server nightly to off-site storage and test-restores a real backup every month, with 5 on-demand backups for moments like a pack update. We're moving DSN Servers to new hardware, and ordering is closed until then. Join the launch list and we'll email you when servers open.