Find your world folder
A Minecraft world is just a folder. What you're looking for is the one containing level.dat: that file is how the server recognises a world at all.
From singleplayer
| System | Where saves live |
|---|---|
| Windows | %appdata%\.minecraft\saves |
| macOS | ~/Library/Application Support/minecraft/saves |
| Linux | ~/.minecraft/saves |
On Windows, paste that path straight into the address bar of File Explorer. Each subfolder there is one world, named the same as it is in your saves list.
From another host
Download the world folder from their file manager or over SFTP. If they only give you a full-server backup, unzip it locally and pull out the world folders, you don't want their jar or their config files.
Open the folder and confirm you can see level.dat and a region folder. If instead you see another folder with the same name, you've grabbed one level too high, go one deeper.
Understand the nether and end split
This is the part that catches nearly everyone. Singleplayer and multiplayer store the other dimensions in different places, and if you ignore that you'll arrive with a fresh nether and wonder where your base went.
My World/ ├── level.dat ├── region/ ← overworld ├── DIM-1/ ← nether └── DIM1/ ← end
world/ └── region/ ← overworld world_nether/ └── DIM-1/ ← nether world_the_end/ └── DIM1/ ← end
So before uploading, restructure a singleplayer save like this:
- Rename the world folder to world.
- Create world_nether and move DIM-1 inside it, keeping the folder name.
- Create world_the_end and move DIM1 inside it, keeping the folder name.
- Copy level.dat into both new folders as well, the server expects one in each.
If there's no DIM-1 or DIM1 in your save, you never went to the nether or end. Skip this entirely, the server will generate fresh ones on first boot.
Zip it up
Uploading one archive is dramatically faster than uploading forty thousand small region files, and far less likely to fail halfway.
Select your world, world_nether and world_the_end folders, right-click, and create a .zip. On Windows that's Send to → Compressed (zipped) folder.
The panel's file manager can only unpack .zip and .tar.gz. A .rar will upload perfectly happily and then refuse to extract.
Worth doing while you're here: delete session.lock if you spot one. It's a leftover from your own client having the world open and it occasionally causes a complaint on first boot.
Stop the server first
Not restart, stop. Press Stop on the console tab and wait until the status dot goes grey.
A running server holds its world in memory and writes it back on shutdown. Upload while it's running and your files get flattened by whatever the server had in memory the moment it stopped, you'll lose exactly the work you were trying to move.
While you're stopped, take a backup of what's already there (Backups → Create Backup). It costs nothing and gives you a way back if the upload turns out to be the wrong folder.
Upload and extract
Open Files and make sure you're in the server root, the folder with server.properties and plugins/ in it, not inside any world folder.
- Delete the existing world, world_nether and world_the_end folders, if you're replacing them.
- Click Upload and pick your zip. Large worlds take a while, leave the tab open.
- Click the zip's row menu and choose Unarchive.
- Delete the zip afterwards so it isn't eating your disk quota.
You should end up with exactly this in the server root:
plugins/ world/ world_nether/ world_the_end/ server.properties eula.txt server.jar
Over about 1 GB, the browser upload gets unreliable. Connect with FileZilla or WinSCP using the details in Settings → SFTP Details and push the folders up directly, it resumes if the connection drops.
Point the server at it
The server loads whichever folder level-name names. Open
Files → server.properties and check it matches:
level-name=world level-type=minecraft:normal level-seed=
If you kept the original folder name instead of renaming to world, put that exact name here, spelling and capitalisation included. The nether and end folders then have to be named after it too, as <level-name>_nether and <level-name>_the_end.
level-seed only affects newly generated terrain. Your uploaded chunks keep their own shape regardless, and setting it won't fix a mismatched world.
Start up and check it landed
Hit Start and watch the console:
[09:15:02 INFO]: Preparing level "world" [09:15:06 INFO]: Preparing spawn area: 92% [09:15:09 INFO]: Done (7.884s)! For help, type "help"
Then join and check, in this order:
- Are you standing somewhere you recognise? If it's a random beach, the wrong folder loaded.
- Walk to a build you know. Chunks load as you go.
- Go through a nether portal and confirm your old nether is there, not a fresh one.
- If you had an end base, check that too.
Player data lives in world/playerdata/ keyed by UUID. Uploading the world does bring it, but only for accounts that also join this server. Anyone who played on your singleplayer save under a different account starts fresh.
Troubleshooting
I spawned in a brand new world
The server didn't find your world where it looked, so it made one. Check:
- Does
level-nameexactly match the folder name? - Is level.dat directly inside that folder, or is there an extra nested folder in the way? Zipping a folder often adds one.
- Did you upload into the server root, or accidentally into plugins/?
Delete the freshly generated world, fix the structure, and restart.
The overworld is right but the nether is new
Step 2 got skipped or half-done. The nether must sit at
world_nether/DIM-1/: both folder levels, with the
DIM-1 name intact. A very common mistake is moving the
contents of DIM-1 rather than the folder itself. Copy
level.dat into world_nether/ too.
"Failed to load world" or the server stops during startup
- The world was saved in a newer Minecraft version than your server runs. Raise
MINECRAFT_VERSIONto match and reinstall. - The upload was cut short and region files are truncated. Re-upload, ideally over SFTP.
- A leftover session.lock is blocking it, delete the file and start again.
Everything is there but spawn is in the wrong place
World spawn comes from level.dat and may not match where
your character used to stand. Stand where you want it and run
setworldspawn, or set exact coordinates with
setworldspawn 120 68 -340.
Can I upload a world while keeping the current one?
Yes, upload it under a different folder name and use a multi-world plugin like
Multiverse-Core to import it: mv import myoldworld normal.
Players then travel between them with /mv tp. Bear in mind each
loaded world costs memory, so watch your plan's usage after adding one.