Find your world and check what is inside
Singleplayer worlds live in the saves folder inside the game directory, each in its own subfolder. The quickest way to reach yours is from the game: select the world, click Edit, then Open World Folder. That opens the exact folder you are going to upload.
The folder name is what counts on the server. The name you see in the world list can be changed without renaming the folder, so go by the folder you opened and not by the title in the list.
Inside, level.dat is the file to look for. It is how you, and the server, recognise a world. The rest depends on the version that last saved it, because Minecraft 26.1 reorganised the layout. Both are normal, and you upload the whole folder either way.
- Windows: %APPDATA%\.minecraft\saves
- macOS: ~/Library/Application Support/minecraft/saves
- Linux: ~/.minecraft/saves
- Saved by 26.1 or later: level.dat, players/data, data/minecraft, datapacks and dimensions/minecraft with overworld, the_nether and the_end
- Saved by an older version: level.dat, region, playerdata, and DIM-1 for the Nether and DIM1 for the End
Match the version and take a backup
Run the server on the same version as the world, or a later one. The world list shows the version a world was last played on. Minecraft warns that a world newer than the game opening it may become corrupted, so never point an older server at a newer world.
Going forward is fine with one condition: it is a one-way step. PaperMC's 26.1 announcement calls backups absolutely mandatory for that upgrade and says you cannot go back to a lower version afterwards. If you take a 1.21 world onto a 26.3 server, the copy on the server moves to the current layout and stays there. Your original in the saves folder is untouched as long as you do not open it in a later game.
Before you copy anything, close the world so the game has written everything to disk. Then make a backup. The Make Backup button on the Edit World screen creates a zip in .minecraft/backups, named with the date, the time and the world folder.
- Same version as the world, or newer: both work
- Older than the world: do not do it
- Quit to the title screen before copying
- Keep the backup until you have played on the server and checked everything
Upload the world, step by step
If the server has already run, it has generated a world of its own, and that world is what you are replacing. Stop the server first. A running server holds its world open and keeps writing to it, so anything you copy in while it runs can be overwritten or left half written.
Worlds hold thousands of small files, so a zip is far quicker to move than a loose folder. Upload the zip over SFTP with a client such as FileZilla, or through your panel's file manager, and unpack it on the server. How game server hosting works explains SFTP and file access if you have not used them. If you host at home, copy the folder across directly.
This is the step where most uploads go wrong. Zip tools often add an extra layer, leaving you with world/world/level.dat. The server looks for a valid world at the level-name path, does not find one, and generates a fresh world there. Your save is still sitting one level down, and the game looks as if the upload was ignored. Open the folder on the server and confirm that level.dat is directly inside it.
- Stop the server
- Rename the old world folder to world-old, so you can return to it
- On Paper before 26.1, also rename world_nether and world_the_end, so no generated Nether or End stays in place
- Upload your zip to the server's main folder and unpack it
- Rename the unpacked folder to world, or set level-name to its name
- Check the path reads world/level.dat, with no extra folder between
- Start the server
level-name and the settings that stay behind
level-name in server.properties sets the world's name and folder path, and it defaults to world. If a valid world exists at that path the server loads it. If not, it generates one there. Keeping your folder named world means you never need to touch the setting. If you would rather keep a descriptive name, set level-name to that exact folder name, and restart, because the server only reads the file when it starts.
The world brings a lot with it: terrain, builds, player files and any data packs in its datapacks folder. Some things belong to the server rather than the world, and those are worth a look before your players arrive.
level-seed and level-type describe a generated world, so with an existing world you can ignore them. Your world's generation settings travel in its own files. difficulty also has a line in server.properties, so set it there, then run difficulty in the console to confirm the value. If you like, the server.properties generator builds a clean file for the other options.
- resource-pack: a world's own resources.zip does not cover this. The setting takes a download URL, and if it is empty the server provides no pack
- gamemode: the default for players, with force-gamemode deciding whether everyone is switched to it on join
- white-list: on by default from 26.3, so add your players
- Operator rights: separate from singleplayer cheats, and held in the server's own ops list
Paper, Fabric and Forge
Vanilla, Fabric and Forge share one world layout, so a singleplayer world goes straight in. Paper handles it for you too. Its documentation says that when you move from vanilla to Paper, the way worlds are stored changes automatically, so you put the world in place and start the server, with no folders to move by hand.
The layout you see afterwards depends on the version. From 26.1, Paper keeps each dimension under world/dimensions/minecraft. Before 26.1 it splits them out, with the Nether in world_nether/DIM-1 and the End in world_the_end/DIM1, which is why stale copies of those two folders matter in the steps above.
A world built with mods needs those same mods on the server. Run the same loader and the same mod list as your singleplayer game, or the world's modded content has nothing to load it. Paper is not a way around this: it does not support Fabric or Forge mods, and its documentation warns that blocks, items and other data added by mods will not load. Moving such a world to Paper means losing that content, so make that decision on purpose and work from a backup. Our guide to Paper, Forge and Fabric goes through how to choose, and a large modded world may also need more memory, as how much RAM a Minecraft server needs explains.
Check the world, your character and your players
Once the server is up, confirm it loaded your world before anyone starts building. Run seed from the console and compare it with your singleplayer seed, then join and look at your builds. Then visit the Nether and the End, because those are the dimensions that a stray folder leaves behind. If everything looks freshly generated, go back and check for the nested folder.
Characters are stored per account. A server keeps one file per player, named by UUID, and from 26.1 even singleplayer does the same: level.dat holds a singleplayer_uuid that points at your player file in players/data. With online-mode=true, the default, you sign in with the same account and the same UUID, so your character is matched to that file. Worlds last saved before 26.1 kept the singleplayer character in a Player tag inside level.dat, separate from the per-player files that servers use, so check your inventory as soon as you join.
The simple insurance works on every version: before your final copy, put anything you care about into a chest near your base. Blocks and chests are part of the world, so they arrive whatever happens to the player file.
Do not turn online-mode off to make an upload work. It changes every player's UUID, so characters no longer match their files. If a player is turned away, add them with whitelist add followed by their username, and see the fixes by error message for anything else.
- seed in the console matches your singleplayer world
- Your builds are where you left them
- The Nether and End hold your portals and progress
- Your inventory, position and advancements are intact
- Every player is on the whitelist, and you are an operator
Worlds from Bedrock Edition
A Bedrock world does not upload to a Java server. Bedrock stores worlds in a modified version of LevelDB, a different format from Java's region files, so Paper or vanilla will not read it. You need Bedrock Dedicated Server, where the wiki's server.properties page says you can copy a saved game folder into the worlds directory and set level-name to match that folder's name.
The character is the catch there. An open bug in Mojang's tracker, BDS-5121, reports that singleplayer progress appears to be saved under a local_player entry while a server creates a separate entry for the same person, so items, pets and XP appear to be missing after the move. Players in that report use the chest approach above, which covers items but not pets or XP.
If what you want is simply to play together, Bedrock friends can join a Java server through Geyser, which leaves the world on Java.