
Custom maps are one of the best reasons to run your own server. Adventure maps, survival islands, build competitions on custom terrain: they pull players in ways that vanilla generation cannot. Getting a 2 GB custom world from your hard drive onto your server without corruption or a timeout is where many admins get stuck. Here is a process that works.
Understanding the World Folder Structure
Where the dimensions live depends on the Minecraft version and the server software, and it changed in 2026.
Minecraft 26.1 and newer (vanilla, Paper and the rest). Everything sits inside one world folder. Per the Minecraft Wiki, the Overworld moved from the root of the world folder to dimensions/minecraft/overworld, the Nether from DIM-1 to dimensions/minecraft/the_nether and the End from DIM1 to dimensions/minecraft/the_end. Player data moved to players/. Paper follows the same layout from 26.1 (PaperMC announcement):
world/
level.dat
dimensions/minecraft/overworld/
dimensions/minecraft/the_nether/
dimensions/minecraft/the_end/
players/
Older versions on vanilla, Forge or Fabric. One world folder, with the Overworld's region/ in the root and the other dimensions in DIM-1/ (Nether) and DIM1/ (End).
Older versions on Spigot or Paper. Three folders next to each other:
world/ Overworld
world_nether/DIM-1/ Nether
world_the_end/DIM1/ End
The same folders matter when you want a fresh Nether or End on a server you already play on; our guide to resetting the Nether or the End covers that.
When you download a custom map, check before uploading:
- Where the
level.datfile is - Which Minecraft version the map was made for
- Whether the Nether and End are included, and in which layout
A level.dat in the root of the zip means that folder IS the world folder.
If you load a map made for an older version on a 26.1 or newer server, the server converts it to the new layout. Keep your original download: the PaperMC team warns that after upgrading a world to 26.1 "you cannot downgrade back to a lower version".
Method 1: SFTP Upload (Recommended for Files Under 5 GB)
Use a proper SFTP client such as FileZilla or WinSCP, not the browser file manager. SFTP clients handle large transfers much better and retry when a connection drops.
Configuration:
- Protocol: SFTP
- Host and port: the SFTP address and port shown in your Space-Node panel (it is not always port 22)
- Login: your panel's SFTP username and password
Stop the server first. Then upload your world folder into the server's root directory, replacing the existing world folder.
Method 2: Compressed Upload and Extract on the Server
For worlds over 2 GB, compress them locally first:
# On Linux/Mac
tar -czf myworld.tar.gz world/
# On Windows (PowerShell)
Compress-Archive -Path world -DestinationPath myworld.zip
Upload the single archive (much faster than thousands of separate files), then extract it on the server. In the panel's file manager, open the menu next to the archive and choose unarchive.
This avoids the timeouts you get when uploading thousands of region files (.mca) one at a time.
Common Upload Problems and Solutions
"Level.dat is corrupt": usually an incomplete upload. Delete everything and upload again with the server stopped. Never upload to a running server.
World loads but looks like void: the world folder name does not match level-name in server.properties. Set level-name=world, or whatever your folder is called.
Old world still loading after upload: the server still had the old world in memory. Do a full stop, not a restart, then start again.
Chunks missing after upload: the region folders are in the wrong place. Compare your upload with the layout above for your Minecraft version and server software.
Pre-Generation After Upload
A custom map is already built, so there is nothing to pre-generate inside it. Pre-generation only matters if players can walk beyond the edge of the map, into terrain the server would generate on the spot.
For adventure maps and islands, a world border around the built area is usually the better choice. For maps that continue into normal terrain, pre-generate a ring around them with Chunky:
/chunky radius 3000
/chunky start
Chunky prints an ETA and a rate in chunks per second while it runs, so you can see how long it will take on your server. Our Chunky pre-generation guide covers the radius and world border in more detail.