8 April 2026

Migrate Your Hytale Singleplayer World to a Dedicated Server (World + Character)

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 under universe/worlds/ and player data under universe/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)

  1. Stop the server.
  2. Download or copy the server's universe/ folder somewhere safe (and optionally config.json and mods/).

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

  1. Make sure the server is stopped.
  2. In your server files, open: universe/worlds/
  3. 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 .zip itself, or ending up with an extra nested folder like universe/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:

  1. Stop the server if it's running.
  2. Open config.json in the server's root directory (or Configuration Files on LOW.MS).
  3. 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.json for clues.
  4. 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 a players/ 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

  1. Join the server once first so it generates a player file for your UUID under universe/players/.
  2. Stop the server.
  3. Navigate to universe/players/ on the server.
  4. Delete the generated UUID file for your account.
  5. Upload your singleplayer player file in its place. Make sure the filename matches the UUID the server just used for you.
  6. 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.json with 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 MyWorld and you uploaded it as myworld, 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.
Join our Discord to chat with our staff and community!
Join Discord