What this guide does
- ✅ Moves your singleplayer world onto your dedicated server so you can keep building with friends.
- ✅ Optionally moves your character/inventory progress too (player data file).
Important: Always take a backup of your server before changing anything. Your server's saved data lives in the
universe/folder — worlds underuniverse/worlds/and player data underuniverse/players/.
Part 1: Upload your singleplayer world to the server
Step 1: Find your singleplayer world folder
Hytale stores singleplayer worlds in the client's user-data folder, not in the same universe/ folder used by the dedicated server. The location depends on your operating system:
- Windows:
%appdata%\Hytale\UserData\Saves\ - Linux:
~/.local/share/Hytale/UserData/Saves/ - macOS:
~/Library/Application Support/Hytale/UserData/Saves/
Inside Saves/ you'll see one or more world folders, each named after the world. Pick the world you want to migrate and make a copy somewhere safe — you're about to upload it to the server.
If you had the in-game "Open Folder" button drop you somewhere different, just navigate back to
Saves/from there. On some builds the button opens the launcher install folder rather than the UserData folder.
Step 2: Back up your server (highly recommended)
- Stop the server.
- Download or copy the server's
universe/folder somewhere safe (and optionallyconfig.jsonandmods/).
On LOW.MS, Cloud Backup in the control panel will do this for you in one click.
Step 3: Upload the world folder to the server
- Make sure the server is stopped.
- In your server files, open:
universe/worlds/ - Upload the world folder you copied in Step 1 into
universe/worlds/.
✅ Correct structure should look like:
universe/worlds/<worldname>/config.json
Common mistake: uploading the
.zipitself, or ending up with an extra nested folder likeuniverse/worlds/<worldname>/<worldname>/.... If the server can't see the world, check this first.
Step 4: Point the server at the new world
How the server decides which world to load as the default varies a bit between Early Access builds. The reliable approach is to set the default world in the server's config.json rather than relying on runtime commands:
- Stop the server if it's running.
- Open
config.jsonin the server's root directory (or Configuration Files on LOW.MS). - Find the field that controls the default or starting world and set it to the folder name you uploaded. The exact key name can drift between builds — if you're not sure what it's called on your server, check whatever's already in the file, or look at the per-world config at
universe/worlds/<worldname>/config.jsonfor clues. - Save and start the server.
When the server boots, it should load your uploaded world. Join and confirm you can see the terrain you had in singleplayer.
If your build also exposes runtime world-management commands in the server console, you can use those as well — run /help in the console to see what your version supports.
Part 2 (optional): Transfer your character/inventory
If you want your character progress, inventory, and player state to carry over, you need to upload your singleplayer player data file as well.
Step 1: Find your player data file
Client player data is stored alongside your singleplayer worlds in the UserData folder:
- Windows:
%appdata%\Hytale\UserData\(look for aplayers/or similarly-named subfolder) - Linux:
~/.local/share/Hytale/UserData/ - macOS:
~/Library/Application Support/Hytale/UserData/
Player data files are typically named after your Hytale UUID — a long hexadecimal string. If you're not sure which one is yours, the easiest way to find your UUID is to join the server once (it'll get logged) and then look in Log Viewer for the connection entry.
Step 2: Upload your player file to the server
- Join the server once first so it generates a player file for your UUID under
universe/players/. - Stop the server.
- Navigate to
universe/players/on the server. - Delete the generated UUID file for your account.
- Upload your singleplayer player file in its place. Make sure the filename matches the UUID the server just used for you.
- Start the server and join. Your inventory and character state should come across.
Caveat: player data formats can change between Early Access builds. If you're bringing a file from a client that's significantly older than your current server build, you may get an error or a silently fresh character. Back up before you try it.
Troubleshooting
I joined but the server generated a brand-new world
- You probably didn't set the default world in
config.json, or the value doesn't match the folder name exactly (case-sensitive on Linux). - Double-check that the folder structure is
universe/worlds/<worldname>/config.jsonwith no extra nesting.
The world doesn't appear at all
- The folder might not be in
universe/worlds/. - The folder might be nested one level too deep — look for a stray extra
<worldname>in the path. - Filename casing can matter on Linux servers. If your singleplayer world folder was
MyWorldand you uploaded it asmyworld, fix the case.
My inventory and character didn't transfer
- You probably only uploaded the world, not your player UUID file. Repeat Part 2.
- Check that the UUID file you uploaded matches the UUID the server generated for your account. Wrong UUID = fresh character.
- It's safer to join first (so the server generates your UUID file), then stop the server and replace that file, rather than trying to guess the UUID ahead of time.
Commands don't work for me
- Run them from the server console (Web Console on LOW.MS), or make sure you have operator/admin rights for in-game commands.