A single-player save and a server world are the same format, so this works — but the folder layout differs, and getting it wrong produces a fresh empty world instead of an error.
What to do
- Find your save folder
On Windows it is in
%appdata%\.minecraft\saves, on macOS in~/Library/Application Support/minecraft/saves. Each world is one folder in there. - Zip the world folder itself
Not the folder containing it. When you open the archive you should see
level.datandregion, not another folder name. - Stop the server and delete the old world folders
The server will not merge two worlds. Remove or rename
world,world_netherandworld_the_endbefore uploading. - Upload and unarchive into the server root
Then rename the extracted folder to exactly
world, or setlevel-nameinserver.propertiesto whatever the folder is called. - Split the dimensions if your server needs it
A single-player save keeps the Nether and End inside the world folder as
DIM-1andDIM1. On Paper or Spigot, moveDIM-1into aworld_netherfolder andDIM1intoworld_the_end.
If level-name does not match a folder that exists, the server does not complain — it generates a brand new world with that name. Your upload is still there, just not the one being loaded.
Single-player player data is inside level.dat rather than playerdata, so your inventory usually does not carry over to your multiplayer account. Expect to re-give yourself things.
You join and spawn in the world you built, and walking to a known landmark finds it where it should be.