Wispdock’s control panel isn’t built yet. Where a step says “in your control panel”, use whatever your host gives you for files, the console and start/stop. The Minecraft side works the same everywhere.

The DIM-1, DIM1 and separate Nether/End examples in this guide cover Minecraft 1.21.x and earlier. World storage changed in 26.1+. Back up the entire server and use the migration steps for your exact release instead of moving modern world files with the older folder recipe.
Know which folder you’re moving
A Java world is a folder with level.dat at its top level. For a singleplayer world, open the game, go to Singleplayer, select the world, then Edit and Open World Folder. The default locations are:
Windows %APPDATA%\.minecraft\saves\<world name>
macOS ~/Library/Application Support/minecraft/saves/<world name>
Linux ~/.minecraft/saves/<world name>
Close the world in your game before you copy it, so everything has been written to disk. Singleplayer, vanilla, Fabric, Forge and NeoForge keep all three dimensions in one folder:
My World/
├── level.dat
├── region/
├── entities/
├── playerdata/
├── DIM-1/ the Nether
└── DIM1/ the End
Paper, Spigot and Purpur split them into three folders that sit next to each other and take their names from level-name:
world/
├── level.dat
├── region/
└── playerdata/
world_nether/
└── DIM-1/
world_the_end/
└── DIM1/
Coming from another Paper server, upload all three folders. Coming from singleplayer onto Paper, upload the single folder. On its first start, Paper or Spigot moves world/DIM-1 to world_nether/DIM-1 and world/DIM1 to world_the_end/DIM1, and logs a “Migration of old nether folder required” notice. It only does this when world_nether and world_the_end don’t exist yet, which is why the server’s own worlds have to be moved out of the way first. Going the other way, from Paper to vanilla or singleplayer, you move DIM-1 and DIM1 back into world yourself.
Run the server on the version the world was last played on, or a newer one. Worlds upgrade in one direction only, and opening one on an older version can damage it. A modded world needs the same mods on the server. Otherwise blocks and items from the missing mods are removed as chunks load.
Point level-name at it
The server loads the folder named in server.properties:
level-name=world
Rename your folder to world, or set level-name to the folder’s name. A short name with no spaces is easier to handle in file managers and scripts. level-seed and level-type only matter when the server generates a new world, so they do nothing to an uploaded one. The seed, spawn point and game rules come from level.dat. difficulty in server.properties does apply, and gamemode sets the mode for players joining for the first time. The server.properties guide covers the rest.
Stop the server and set the old world aside
Type stop in the console and wait until the log shows the world saved and the server stopped. A running server writes its own copy of the world from memory on the next save and again on shutdown, right over the files you uploaded.
Then rename the world the server generated on its first start: world to world-old, and on Paper also world_nether and world_the_end. Renaming keeps a way back. If world_nether is still there on Paper, the migration above doesn’t run and you get your Overworld with a brand new Nether.
Upload the zip without nesting it
Zip the world folder itself, not the files inside it, so the archive has one folder at the top. On Windows, right-click the folder and choose Send to, then Compressed (zipped) folder. On macOS, right-click and choose Compress. One zip uploads much more reliably through a browser than thousands of region files.
Upload it to the server’s root folder, the one with server.properties in it, and extract it there. With shell access:
unzip my-world.zip
mv "My World" world
ls world/level.dat
Then check where level.dat ended up. This is right:
server.properties
world/level.dat
world/region/
This is the usual mistake:
world/My World/level.dat
It happens when the archive is extracted inside world instead of next to it. The server finds no level.dat where it expects one, generates a new world around your files and doesn’t warn you. Move the inner folder up one level and rename it. The opposite mistake, a zip made from the files inside the folder, spills level.dat and region straight into the server root. Zips made in macOS Finder also contain a __MACOSX folder, which you can delete.
Wispdock’s Minecraft Java hosting isn’t taking orders yet. These steps work the same on any host with file access, and on your own PC.
Player inventories and UUIDs
Each player’s inventory, ender chest and position are stored in world/playerdata/<uuid>.dat. Advancements are in world/advancements/<uuid>.json and statistics in world/stats/<uuid>.json. The server matches these files by UUID, not by name.
With online-mode=true, the server uses each player’s account UUID, the same one singleplayer uses, so files from a singleplayer world or another online-mode server line up. With online-mode=false the server derives a UUID from the player name instead, and it is a different one. Move a world between the two and every player arrives with an empty inventory while their old files sit untouched in playerdata.
Keep online-mode=true unless the server sits behind a proxy that handles login. If the world came from an offline-mode server, rename the files. Have one player join, then stop the server: the newest file in playerdata carries their new UUID. Copy their old file over it, and do the same in advancements and stats:
cd world/playerdata
cp <old-uuid>.dat <new-uuid>.dat
usercache.json in the server root lists the names and UUIDs the server has seen, which helps when several players are involved.
Singleplayer worlds also keep the host’s player data in level.dat, and a dedicated server never reads it from there. If the host arrives empty-handed and playerdata has no file with their UUID, their items exist only in level.dat. Getting them out means editing that file with an NBT editor, so work on a copy.
Check the Nether, the End and inventories
Start the server and read the log. It should show Preparing level "world" with your level-name, and on a Paper server converting a singleplayer world, the migration notice. Then join and check:
- You spawn in your own world, not a fresh landscape. New terrain means
level.datis one folder too deep orlevel-namepoints at the wrong folder. - The Nether and the End have your builds in them. Use a portal you know, or as an op:
/gamemode spectator
/execute in minecraft:the_nether run tp @s 0 100 0
/execute in minecraft:the_end run tp @s 0 100 0
/execute in minecraft:overworld run tp @s 0 100 0These commands are for inspection. Stay in spectator, move to a known safe solid surface, then return to survival. Do not assume the example coordinates have ground underneath them.
- A living ender dragon in a world where you already killed it means the End didn’t come across. On Paper, look inside
world_nether/DIM-1/regionandworld_the_end/DIM1/region. - Every player checks their inventory and ender chest on their first join. Anyone with empty pockets goes back to the UUID section.
If the server won’t start at all, the reason is in the log. Reading server logs shows how to find the line that matters.
Roll back if it went wrong
Nothing is lost while you still have the renamed folders and the original zip. Stop the server, rename the uploaded world to something like world-upload, rename world-old back to world (and the Paper dimension folders with it) and start again. Don’t let people play while you decide. Whatever they build on the copy you abandon is gone.
Keep the zip until the new world has run for a few days. For a proper backup routine, and for restoring a single player or area, see backing up and restoring a server.
Frequently asked questions
Can I upload a Bedrock world to a Java server?
Not directly. Bedrock worlds are stored in a different format, with a db folder instead of region files. They have to go through a world converter first, and some blocks and data don’t convert cleanly.
Why did the server create a new world instead of loading mine?
level.dat isn’t directly inside the folder named by level-name. Usually the zip was extracted one level too deep, so the file ended up at world/My World/level.dat, or level-name doesn’t match the folder name.
Why is everyone’s inventory empty after moving the world?
Player files are named by UUID, and the UUIDs changed. That usually means one server ran with online-mode=false and the other with online-mode=true. With the server stopped, copy each old file to the player’s new UUID.
Where is the Nether on a Paper server?
In world_nether/DIM-1, next to the main world folder. The End is in world_the_end/DIM1. On vanilla, Fabric and Forge both sit inside world as DIM-1 and DIM1.
Wispdock’s draft plans are 4 GB for vanilla and plugins and 8 GB for modpacks. The pricing page has the details; prices are drafts and ordering isn’t open yet.
Still stuck? Send us the details and your latest.log.