Moving a Minecraft server sounds simple until you actually try it. Copy a few folders, restart, done right? Not quite. I've watched server owners lose entire worlds because they forgot one config line, or had players show up to a fresh spawn with empty inventories because the wrong folder got uploaded. Painful stuff.

This guide walks you through how to migrate a Minecraft server the right way: full backup, exact file list, transfer to the new host or VPS, plugin and mod checks, IP cutover, and the troubleshooting steps that fix 90% of post-migration headaches. It covers vanilla, Paper, Spigot, Forge, Fabric, and Bedrock so you'll find what applies to your setup.

Horizontal Minecraft server migration workflow from old shared host to new VPS with five labelled stages.

Quick answer

To migrate a Minecraft server, back up the current server fully, then copy the world folders, server.properties, player data, and any plugins, mods, or config files to the new host. Match the same Minecraft and Java versions, start the server, test it with an admin account, and only update the IP or domain for players once everything works.

Before you start: prerequisites

  • Access to your current server files (panel, FTP, or SSH)
  • Access to the new host or VPS
  • SFTP, FTP, or SSH credentials for both
  • Enough disk space to hold a full backup archive
  • The same server software and version on the new host
  • The same Java version for Java Edition servers
  • A planned maintenance window (even a small one)
  • Optional: a domain or subdomain you can repoint instead of giving out a raw IP

What Minecraft server migration means and when to do it

Migration just means moving an existing server โ€” world, players, settings, plugins, mods โ€” to a new machine or hosting provider without starting from scratch. Your community keeps their progress. Your config keeps working. The address might change, but the server itself feels identical.

Common reasons people migrate

Most owners migrate for one of a few reasons. Lag during peak hours. Constant downtime on a cheap host. Running out of RAM the minute someone installs a modpack. Wanting more storage for backups. Moving to a region closer to the player base. Or just outgrowing entry-level shared game hosting and needing real Minecraft VPS hosting with room to scale.

Migration vs starting fresh

A fresh install means a brand-new world and zero player data. Migration preserves everything: builds, inventories, advancements, ops, bans, plugin economies, the lot. If your community has any history at all, you want migration.

Java and Bedrock โ€” same idea, different files

Both editions follow the same pattern (backup, transfer, restore, test), but the file layout differs. Java uses world, world_nether, world_the_end folders and a server.properties file. Bedrock Dedicated Server stores worlds inside a worlds/ directory and uses different permissions files. If you're not sure which you have, the Minecraft Java vs Bedrock servers guide breaks down the difference.

Before moving anything, make a complete backup and record your current setup. Skip this step and you've got nothing to roll back to.

Minecraft server backup checklist before migration

This part is non-negotiable. A migration without a clean backup is just hoping nothing breaks.

Stop the server, then back up

Never copy world files while the server is running. The game is actively writing chunk data, and a mid-flight copy can corrupt the region files. Stop the server cleanly with the stop command in the console, wait for it to flush, then archive the entire server directory.

On Linux, that looks like:

cd /opt
tar -czvf minecraft-backup-2025-01-15.tar.gz minecraft/

On a panel host without shell access, use the panel's built-in backup feature or download the whole server folder over SFTP with FileZilla or WinSCP.

Dark infographic with six-item Minecraft server pre-migration backup checklist and labeled icons.

Record everything about your current setup

Write this down somewhere before you touch the new host:

  • Exact Minecraft version (e.g., 1.20.4)
  • Server software (Vanilla, Paper, Spigot, Forge, Fabric, Bedrock)
  • Server JAR filename
  • Java version (java -version)
  • Startup flags and RAM allocation (-Xmx, -Xms, Aikar's flags, etc.)
  • Server port (default 25565 for Java, 19132 UDP for Bedrock)
  • Any custom level-name in server.properties

Honestly, the Java version mismatch is what trips up most people. A server running on Java 17 won't start on Java 8, and a 1.20.5+ server actively needs Java 21. Get this wrong and the new server just refuses to boot.

Freeze changes and warn players

Once you start the migration, lock the old server to read-only (or at least kick everyone and disable logins). Otherwise players will keep building on the old world, and that progress vanishes the moment you cut over. Post a notice in Discord, set a MOTD, do whatever it takes. For deeper backup strategy, the Minecraft server backup guide covers automation and retention.

Warning: keep your full pre-migration backup until the new server has been stable for at least 48 hours. That's your rollback insurance.

Minecraft server files to transfer to the new host

This is the section most guides botch. They tell you to "copy the world folder" and call it done. You'll lose ops, bans, player inventories on plugin servers, and probably your whitelist. Here's the actual list.

Core files for every Java server

File / Folder Required? What it does
world/ Yes Overworld data, chunks, player inventories (vanilla)
world_nether/ Yes Nether dimension
world_the_end/ Yes End dimension
server.properties Yes Port, gamemode, difficulty, level-name, MOTD
eula.txt Yes EULA acceptance flag
ops.json Yes Server operators
whitelist.json If used Whitelisted players
banned-players.json Recommended Player bans
banned-ips.json Recommended IP bans
usercache.json Optional UUID-to-username cache
logs/ Optional Historical logs (skip unless needed)

Extra files for Paper, Spigot, and Bukkit

If you're on a plugin server, also grab:

  • plugins/ โ€” the plugin JARs and their per-plugin data folders (this is where economies, land claims, permission groups, and player stats live)
  • spigot.yml, bukkit.yml, paper.yml (or the newer config/paper-global.yml and config/paper-world-defaults.yml on recent Paper builds)
  • commands.yml if you've customised aliases

The plugins folder is critical. Forget it and your LuckPerms ranks, EssentialsX kits, and Vault economy reset to zero.

Extra files for Forge and Fabric modded servers

  • mods/ โ€” the mod JARs themselves
  • config/ โ€” per-mod configuration (this is huge for modpacks)
  • The modpack's own loader JAR (Forge or Fabric installer output)
  • Any modpack-specific folders like defaultconfigs/, kubejs/, scripts/, openloader/

Files to move for a Bedrock server

  • worlds/ directory (contains the world folder named after your level)
  • server.properties
  • permissions.json
  • allowlist.json (older versions: whitelist.json)
Stylised Paper server folder tree showing key Minecraft world folders and config files.
Pro tip: if you use a custom level-name in server.properties, make sure the world folder on the new host matches that exact name. Mismatch = the server generates a fresh empty world and your community panics.

How to migrate a Minecraft server to a new host or VPS step by step

Now the actual move. I'll assume you're transferring a Minecraft server to a new host that's a Linux VPS, since that's where most people end up. The panel-to-panel flow is similar but simpler.

1. Prepare the new server environment

On the new VPS, install the matching Java version. For most current Java servers, that's OpenJDK 21:

sudo apt update
sudo apt install openjdk-21-jre-headless -y
java -version

Create a dedicated user and directory so you're not running the server as root:

sudo adduser minecraft
sudo mkdir -p /opt/minecraft
sudo chown minecraft:minecraft /opt/minecraft

If you're new to this part, the guides on setting up a Minecraft server on a VPS walk through the base install in detail.

2. Upload your backup

Three ways to get the archive across, depending on your comfort level.

SFTP (easiest, GUI): open FileZilla or WinSCP, connect to the new VPS, drag the tar.gz file into /opt/minecraft/.

SCP (one command):

scp minecraft-backup-2025-01-15.tar.gz minecraft@new-server-ip:/opt/minecraft/

rsync (best for big servers or repeat transfers):

rsync -avz --progress minecraft-backup-2025-01-15.tar.gz minecraft@new-server-ip:/opt/minecraft/

rsync is my go-to for anything over a few GB because it resumes if the connection drops.

3. Restore the files

SSH into the new VPS, then extract:

cd /opt/minecraft
tar -xzvf minecraft-backup-2025-01-15.tar.gz
sudo chown -R minecraft:minecraft /opt/minecraft

Double-check that eula.txt contains eula=true. If it's missing or set to false, the server will refuse to start.

4. Open the firewall

Java servers use TCP port 25565 by default. Bedrock uses UDP 19132. Open whichever applies:

sudo ufw allow 25565/tcp
sudo ufw reload

For deeper firewall tuning, see how to configure a firewall on your VPS.

5. Start the server and watch the logs

Run your startup command โ€” same flags you used on the old host. For example:

java -Xms4G -Xmx4G -jar paper-1.20.4.jar nogui

Watch the console. You're looking for the world loading correctly, plugins loading without red errors, and the line that says "Done (X.XXXs)! For help, type 'help'". If it hangs or errors, stop immediately and check the log.

6. Test with an admin account before announcing

Log in yourself first. Check your spawn point looks right. Open your inventory. Visit a base. Try a plugin command. Have one trusted player join and verify their inventory and homes. Only when this passes do you tell the rest of the community.

Key takeaway: match the Minecraft server version and Java version before the first launch on the new host. Wrong version is the #1 cause of failed migrations I've seen.

Transfer a Minecraft world to another server without losing progress

The world is more than just terrain. Player inventories, ender chests, advancements, statistics โ€” all of it lives inside the world folder. So a "world transfer" really means moving the whole tree, not just the chunks.

Where the world data actually lives

Inside world/ you'll find:

  • region/ โ€” the chunk files
  • playerdata/ โ€” per-player inventory, XP, position (one .dat file per UUID)
  • advancements/ โ€” advancement progress
  • stats/ โ€” playtime, blocks broken, etc.
  • level.dat โ€” world metadata, seed, game rules

Forget playerdata and your players spawn in with nothing. That's the single most common "we lost everything" complaint, and it's entirely preventable.

Make sure the right world loaded

After first launch, check three things:

  1. Spawn location matches your old server
  2. Your own inventory is intact
  3. A recent build is exactly where it should be

If any of those fail, stop the server, double-check level-name in server.properties, and verify the folder name matches.

Migrate Minecraft plugins, mods, and config files correctly

Most "broken migration" tickets aren't really broken migrations. They're version mismatches.

How to move plugins

Drop the entire plugins/ folder onto the new server. Each plugin's data folder (LuckPerms database, EssentialsX userdata, Vault settings) lives inside, so this carries player ranks, balances, and homes automatically.

Then check each plugin's compatibility with your Paper or Spigot build. A plugin compiled for 1.19 will often crash on 1.20.4. Visit each plugin's page and confirm it supports your version before going live.

How to move mods

For Forge or Fabric, copy mods/ and config/. But โ€” and this is the part people miss โ€” install the matching loader version on the new host first. A Forge 47.2.0 modpack won't load on a Forge 36.x server. Match exactly.

For modpack servers (FTB, ATM, Create-focused packs), the cleanest path is downloading the official server pack at the same version and overlaying your world/, config/, and any data folders on top of it. That guarantees mod parity.

Compatibility checks

Item Plugins (Paper/Spigot) Mods (Forge/Fabric)
Version sensitivity Sensitive to MC version Sensitive to MC + loader version
Where configs live plugins/PluginName/ config/
Common failure Missing dependency (Vault, ProtocolLib) Wrong loader version, missing required mod
First check after migration Read logs/latest.log Read logs/latest.log and crash-reports/

Logs are your friend. The Linux logs guide covers how to read them efficiently.

Warning: most "migration failures" are actually compatibility failures โ€” different Paper, Forge, Fabric, or Java versions between old and new. Match versions first, blame the migration second.

Need a better home for your Minecraft server?

If your current host is choking on RAM, capping plugins, or charging extra for backups, a proper Minecraft VPS gives you full control, NVMe storage, scalable RAM, and global locations so players connect with lower latency. Explore Minecraft VPS hosting if you want room to grow.

Change Minecraft server IP or domain with less downtime

New host means new IP. That part is unavoidable. What you can control is how disruptive the change is.

Use a domain or subdomain

If you've been giving out a raw IP, this migration is the perfect excuse to switch to play.yourserver.com. Then next time you move, you just update one DNS record instead of telling 200 Discord members the new address. The guide on creating a subdomain covers the setup.

Lower TTL before the cutover

If you already use a domain, drop the DNS TTL to 300 seconds (5 minutes) at least 24 hours before you migrate. That way, when you change the A record, players see the new IP almost immediately instead of waiting hours. See how to change DNS server for the mechanics.

Simple cutover plan

  1. Backup old server (already done)
  2. New server fully restored and tested with admin account
  3. Stop old server, put it in maintenance mode
  4. Update DNS A record to new IP
  5. Announce the new address in Discord
  6. Keep old server's files for at least 48 hours as rollback

For players to find the new address quickly, see how to find your Minecraft server IP.

Minecraft server migration problems and troubleshooting fixes

When things break โ€” and they sometimes do โ€” it's almost always one of these.

Symptom Likely Cause Fix
Server boots into a new empty world Wrong level-name or world folder name mismatch Open server.properties, set level-name to the actual folder name
Plugins don't load Version mismatch or missing dependency Check logs/latest.log, update plugins, install Vault/ProtocolLib if required
Mods don't load Wrong Forge/Fabric loader version Install the exact loader version the modpack expects
Players can't connect Firewall, wrong port, DNS not propagated Open port 25565, verify ufw status, run dig to check DNS
Server won't start โ€” "UnsupportedClassVersionError" Wrong Java version Install matching Java (17 or 21 for current versions)
"You need to agree to the EULA" eula.txt says false Edit to eula=true
Permission denied on Linux Wrong file ownership sudo chown -R minecraft:minecraft /opt/minecraft
Chunks or inventories missing Files copied while server was live Stop old server, redo backup, retransfer

If players still can't connect even though the server's running, double-check the port is actually open externally โ€” not just on the local firewall. The check Linux open ports guide shows how, and fix Minecraft server connection issues goes deeper on the client side.

Panel hosting vs VPS migration for Minecraft servers

If you're moving from a basic game panel host to a VPS, expect a different feel. More control, more responsibility.

Feature Panel Hosting VPS
Setup difficulty Click-to-deploy Manual install (or managed)
RAM scaling Fixed tiers Resize as needed
Mod / Java version control Limited Full control
File access Web file manager / SFTP Full SSH + SFTP
Custom plugins / startup flags Restricted Anything you want
Maintenance burden Minimal You handle updates, firewall
Cost at scale Climbs steeply Better value past ~6GB RAM

Panel hosting is fine when you're starting out or running a small SMP for friends. But growing communities especially modded ones tend to outgrow shared game hosting fast. That's where a Linux VPS or dedicated game VPS pays off. If you'd rather skip the sysadmin work, a managed VPS hands the OS-level stuff to someone else while you keep root-level control of the server itself.

Next steps after your Minecraft server migration

You're not done the moment the server boots. The first 48 hours matter.

  • Set up automated backups on the new host. Daily at minimum.
  • Monitor CPU, RAM, and disk for the first day or two โ€” see how to monitor and improve VPS speed.
  • Watch the logs for errors that only show up under real player load.
  • Keep the old backup until you're confident the new server is stable. Two days, minimum.
  • Announce the new IP or domain clearly. Pin it in Discord, update your server list entry.
  • Plan for growth โ€” if RAM is already at 80%, scale up before the next traffic spike forces your hand.

Ready to migrate your Minecraft server with more control?

Once your backup is ready, the hosting environment makes the difference. Whether you need a Minecraft VPS, a general Linux VPS, or a fully managed option, 1Gbits gives you NVMe storage, scalable resources, global locations, and 24/7 support to run worlds, plugins, and modpacks without compromise. View Minecraft hosting options to find the right fit.