// 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.

Updated  ·  CurseForge and Modrinth packs  ·  Forge, NeoForge, Fabric

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:

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:

3. What to keep, what to replace

Keep (yours)Replace (the pack’s)
world/, with player data, stats and advancementsmods/: delete the old folder and use the new one whole
server.propertiesconfig/, then re-apply your own changes
ops.json, whitelist.json, banned-players.json, banned-ips.jsondefaultconfigs/, and kubejs/ or scripts/ if the pack has them
eula.txt, and your RAM line from user_jvm_args.txtA datapacks/ folder in the server root, if the pack has one
Mods you added yourself, if they have a build for the new versionThe loader, if the version changed

4. Do the update

From a CurseForge server pack

  1. 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.

  2. 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.properties if it’s missing (All the Mods 10’s does), so your copy stays as it is.

  3. 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 --installServer in the new folder, or download the new Fabric launcher jar. Check the Java version too, if Minecraft’s version changed.

  4. 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)

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.

Building from scratch?Our guide to making a modded Minecraft server covers server files, Java, RAM, the EULA and letting friends in.

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.

Join the launch list