In this tutorial, we will show you how to easily set up a dedicated Hytale server on a Linux-based machine.

Linux is one of the best operating systems for self-hosting a Hytale server, thanks to its having much lower overhead compared to Windows. This lower overhead enables you to dedicate more resources to running the game server.
Hytale, if you haven’t heard of it, is a sandbox adventure game built from the ground up to be extremely moddable. This moddability enables creators to add a ton of extra content to the game without developers having to add it themselves.
On top of being super moddable, the game has been built from the get-go to be easily self-hostable as well. This lets you set up a Hytale server on Linux very easily, which is great if you want to play in a world with all your friends.
There are a few ways to set up a Hytale server. If you are using a Raspberry Pi, we have a guide specifically for that device. If you want a slightly simpler method, you can always use Docker to self-host your Hytale Server.
Before you begin setting up a server for Hytale, there are a couple of things you must know:
- First, you must own a copy of Hytale to self-host a server. This is enforced: you must authenticate your server for it to actually run.
- Secondly, you need at least 4GB of RAM for the Hytale server to operate. More is always going to give you a better experience, but 4GB is the minimum.
- Third, if you are self-hosting this from your home network, you will likely need to port forward port 5520 to enable others to play on your server.
Alternatively, you can use a service like Tailscale or Pangolin to avoid exposing your network directly.
Running a Hytale Server on Linux
Over the following sections, we will be walking you through the entire process of setting up a Hytale Server. This includes the download process, initial setup, and setting up a service so that the server boots when your Linux system does.
Please note that these steps have been written with Debian-like systems in mind, such as Ubuntu. If you are running a non-Debian-based operating system, you will have to make changes to the first two sections.
Preparing your Linux System
1. The first thing we will want to do before we begin to set up a Hytale Server on our Linux system is ensure we have an updated operating system.
Updating the package list cache and upgrading any out-of-date packages is as simple as running the following two commands within the terminal.
sudo apt update
sudo apt upgrade -yCopy
2. Once the package list has been completed, we will now want to install all the pieces of software we need to run the Hytale Server on Linux.
You can install all required packages using the command below in the terminal.
openjdk-25-jdk-headless: This package contains the Java runtime that is required to run the Hytale server. In particular, we are installing version 25, which, at the time of publishing, is the recommended release.wget: We will use wget to download the Hytale Downloader onto our Linux system. This downloader is what grabs the latest version of the server software.unzip: To extract the archives that the Downloader grabs, we will need to have the unzip utility available on the system.screen: The final package we need to complete the Hytale Server setup on Linux is the screen utility. This tool will enable us to keep the server running in an easily accessible interface, this is crucial when running the server under a systemd service.
sudo apt install openjdk-25-jdk-headless wget unzip screenCopy
If you do not have OpenJDK 25 available on your system, please follow our separate guide to installing Java on Debian-based systems. This method involves adding a third-party repository that will get the version you require.
Extra Step for ARM Systems
Thanks to the server software being written in Java, you can basically run it on almost any architecture, including ARM-based systems. However, if you are running an ARM system, you will need to follow the next couple of steps so we can use the Hytale Server downloader, which, unfortunately, is not compiled for ARM systems.
Do NOT follow these steps unless you are running an ARM system. They are not required for AMD64 (x64) systems.
a. Since the Hytale Server Downloader is only built for standard AMD64 we need some special tools on ARM to be able to run it.
These packages are “binfmt-support” and “qemu-user-static". QEMU, in particular, will enable us to run AMD64 software on our ARM system. It’s not fast at emulating the architecture, but it doesn’t need to be, since it’s just a tool that downloads the server files.
sudo apt install binfmt-support qemu-user-staticCopy
b. With these two packages installed, we now need to run the command below to update the available binary formats on our Linux system.
sudo update-binfmtsCopy
c. Next, we need to update the package manager to add the “amd64” architecture.
sudo dpkg --add-architecture amd64Copy
d. Finally, update the package list again so that it will now know it can grab AMD64 variants if they are required.
sudo apt updateCopy
Creating a User for your Hytale Server
3. Now that we have all the tools we need to run the Hytale Server on our Linux system, we can continue on with the setup process.
The next step in this process is to create a new user on our Linux system that we will use to operate the server later. It is typically good practice to run servers under their own user accounts to keep them separated from other parts of your system.
To start this process, create a user named “hytaleserver” by running the command below. The “-m” option tells the command to generate a home directory for this new user.
sudo useradd -m hytaleserverCopy
4. With our new user created, we will want to make it a bit easier to work within its home directory by adding your current user to the new “hytaleserver” group.
You can make this change by using the following command. The “$USER” text here will be automatically swapped out with your current user’s name.
sudo usermod -aG hytaleserver $USERCopy
5. Most modifications to groups require you to either log out or restart your system entirely.
Logging out of your Linux system is as straightforward as using the following command.
logoutCopy
Alternatively, if logging out doesn’t work, restarting your system is as simple as using the following command.
sudo rebootCopy
6. The final part of this process, before we can continue to set up the Hytale Server on our Linux system, is to modify the permissions of our new user’s home directory.
You can change this directory to have the permissions “770” by using the chmod command. These permissions basically mean both the owner and group can read, write, and execute files in this folder.
sudo chmod -R 770 /home/hytaleserverCopy
Setting up the Hytale Server Downloader
7. We can now finally move on to setting up the Hytale Server Download onto our Linux system. This is a crucial part of the process as the downloader ensures we get the latest version of the server software.
To begin this process, change into the “hytaleserver” user’s home directory using the cd command.
cd /home/hytaleserver/Copy
8. Now that we are in the right place, we can use the wget tool we installed earlier to get the latest version of the Hytale Downloader.
wget https://downloader.hytale.com/hytale-downloader.zipCopy
9. Once downloaded, unzip the archive by using the following command. This process shouldn’t take very long to complete.
unzip hytale-downloader.zipCopy
Using the Downloader to Get the Hytale Server on Linux
10. With the Hytale Downloader now extracted to our Linux system we can put it to use and use it to grab the latest version of the Hytale Server.
Luckily, this tool is fairly simple to use, and you can start the download process with the following command. Using this the tool will eventually save the server to a file named “server.zip” in the current directory.
./hytale-downloader-linux-amd64 -download-path server.zipCopy
11. The first time that you run the Hytale Downloader, you will be forced to authenticate yourself before the server files can actually be downloaded.
To authenticate yourself, go to the provided URL and follow the prompts. As mentioned earlier, the Hytale Server requires you to own a copy of the game to run it.
Please visit the following URL to authenticate:
https://oauth.accounts.hytale.com/oauth2/device/verify?user_code=XXXXXX
Or visit the following URL and enter the code:
https://oauth.accounts.hytale.com/oauth2/device/verify
Authorization code: XXXXXXX
You will see the following error if you do not own a copy of the game.
error fetching manifest: could not get signed URL for manifest: could not get signed URL: HTTP status: 403 Forbidden
12. Once the Hytale Server archive has been successfully downloaded onto your Linux system, you should see the following message appear.
After finding this message, you can continue on to the next step.
successfully downloaded "release" patchlineCopy
13. With the Hytale Server now downloaded, we will need to use the unzip command to extract the archive into the current folder.
unzip server.zipCopy
14. To make using the Hytale Server a little simpler when we create a Linux service, we should move the “Assets.zip” file that was just extracted into the “/Server/” directory.
You can move this file by utilizing the mv command.
mv Assets.zip ./Server/Copy
Starting up the Hytale Server on Linux for the First Time
15. We are finally at the point where we can start up the Hytale Server on our Linux system for the very first time.
Before we can start up the server, we must change into the “/Server/” directory.
cd ./Server/Copy
16. Now, to start up the Hytale Server, all you need to do is use the following command within the terminal.
This command starts the Java runtime environment and passes in the HytaleServer script and the “Assets.zip” file we moved in earlier.
java -jar HytaleServer.jar --assets Assets.zipCopy
17. The first time that you start up your server, you will get a message indicating that no server tokens have been configured and that you must authenticate your server.
The server will not be accessible until you authorize it.
[HytaleServer] No server tokens configured. Use /auth login to authenticate.
18. To begin authenticating your Linux Hytale Server with your account, you will need to type in the following command while the server is running.
This command basically tells the server to begin the authentication process.
/auth login deviceCopy
After running the command above, you will see a message indicating that the server is now waiting for authorization. Use the provided links and follow the prompts to authorize your server with your Hytale account.
===================================================================
DEVICE AUTHORIZATION
===================================================================
Visit: https://accounts.hytale.com/device
Enter code: XXXXXX
Or visit: https://accounts.hytale.com/device?user_code=XXXXXX
===================================================================
Waiting for authorization (expires in 900 seconds)...
19. If your server was successfully authenticated, you will see the following message as well as a warning.
This warning is telling you that the credentials used to authorize the server will be stored only in memory. Luckily we can change that with a simple command.
Authentication successful! Use '/auth status' to view details.
WARNING: Credentials stored in memory only - they will be lost on restart!
To persist credentials, run: /auth persistence <type>
Available types: Memory, Encrypted
20. To get the Hytale Server to remember its authentication, we will want to change its persistence mode to “Encrypted”.
Changing this mode to Encrypted causes the Hytale Server to store authentication data locally on your Linux system rather than just in memory. The next time the server starts, it can read from this encrypted file rather than making you authorize again.
/auth persistence EncryptedCopy
If everything was successful, you should see the following message appear.
Credential storage changed to: Encrypted
21. At this point, you now have a Hytale Server up and running on your Linux system. You can verify that everything is working properly by connecting to it using your IP address.
You can stop this server at any time by pressing CTRL + C while the terminal remains open.
Please note that if you are running this on your home network, you must port forward port 5520 to connect to it outside your home. Likewise, if you have a firewall configured on your Linux machine, you will want to allow port 5520.
Creating a Systemd Service for the Hytale Server on Linux
22. To make it simpler to run your Hytale Server on Linux, we can now move on to creating a Systemd service for it. This service will enable the game server to start up whenver your system starts, and it will also attempt to automatically restart the server if it ever crashes.
Before we begin writing this service file, you will need to stop the Hytale Server. If you still have the terminal open, you can stop it by pressing CTRL + C.
Writing a Start Script
23. For the first part of this process, we will be writing a new bash script that we will use to start up the Hytale Server on your Linux system.
You can begin to write this new script by running the following command.
sudo nano /home/hytaleserver/start_server.shCopy
24. Within this file, type out the following lines. These lines are fairly simple; they start up the Hytale Server within a “screen” with the name of “hytaleserver“.
We will be able to use this screen later to interact with the Hytale Server’s command-line interface.
#!/usr/bin/env bash
SERVER_PATH="/home/hytaleserver/Server"
/usr/bin/screen -dmS hytaleserver /bin/bash -c "
cd \"$SERVER_PATH\"
exec java -jar HytaleServer.jar --assets Assets.zip
"
/usr/bin/screen -rD hytaleserver -X multiuser on
/usr/bin/screen -rD hytaleserver -X acladd rootCopy
25. After filling out this bash script, save and quit by pressing CTRL + X, Y, and then ENTER.
26. With the file created, we need to make sure we use the chmod command to give it execute privileges. Doing this ensures that the script can actually be run.
sudo chmod +x /home/hytaleserver/start_server.shCopy
Writing a Stop Script
27. With the start script written, we can now move on to creating a script that will safely stop the Hytale Server on our Linux system.
This will be an even simpler script than our start one, as all it needs to do is send a safe shutdown command to the running server.
You can begin to write this script using Nano by using the following command in the terminal.
sudo nano /home/hytaleserver/stop_server.shCopy
28. Within this file, type out the following bash script. This script is super simple and basically uses the screen we set up earlier to send a command saying “shutdown”.
The Hytale Server will interpret the command we send and begin its stopping process on Linux. This should help keep your saves from being corrupted by a sudden shutdown.
#!/usr/bin/env bash
/usr/bin/screen -Rd hytaleserver -X stuff "shutdown \r"Copy
29. After filling out the stop script, save and quit by pressing CTRL + X, Y, and then ENTER.
30. Just like the start script, we will also need to make the stop script executable on our Linux system by using the following command.
sudo chmod +x /home/hytaleserver/stop_server.shCopy
Writing the Systemd Service File for the Hytale Server at Boot
31. Now that we have our start and stop scripts in place, we can begin to write the actual service file that will start up and manage our Hytale Server on our Linux system.
This service file is pretty simple and basically just a set of instructions your Linux system will interpret ot know how to start and stop the server.
We can begin writing this service file by running the command below within the terminal.
sudo nano /etc/systemd/system/hytaleserver.serviceCopy
32. Within this file, type out the following lines.
These lines define a service named Hytale Server. It is set to utilize the “hytaleserver” user that we created earlier on in this guide, and also will use the start and stop scripts we just wrote.
[Unit]
Description=Hytale Server
Wants=network-online.target
After=network-online.target
[Service]
Type=forking
User=hytaleserver
Group=hytaleserver
ExecStart=/usr/bin/bash /home/hytaleserver/start_server.sh
ExecStop=/usr/bin/bash /home/hytaleserver/stop_server.sh
WorkingDirectory=/home/hytaleserver/Server
Restart=always
TimeoutStartSec=600
[Install]
WantedBy=multi-user.targetCopy
33. Once you have made sure you have typed in all of these lines correctly, save and quit out of the new service file by pressing CTRL + X, Y and then ENTER.
Correcting Permissions
34. Now, to ensure there are no weird permissions issues when we start up the Hytale server on Linux using the new service, we should give ownership of the “/home/hytaleserver/” folder and its contents to the “hytaleserver” user.
To do this, run the command below in the terminal. By using the “-R” option, we ensure this permission change is performed on every file and folder within this directory.
sudo chown -R hytaleserver: /home/hytaleserver/Copy
Starting up the Hytale Server on Linux using the Service
35. We are finally at the point where we can start to bring up the Hytale Server on our Linux machine by utilizing the new service we just wrote.
The first part of this process is to enable our new “hytaleserver” service. Enabling the service ensures the system manager will automatically start it when your system powers on.
sudo systemctl enable hytaleserverCopy
36. With the service enabled, we can start the Hytale Server up immediately by using the command below.
After running this command, you should be able to access your server and begin playing on it.
sudo systemctl start hytaleserverCopy
Using the Screen to Control the Hytale Server
37. One of the key things we set up while creating this Hytale server on Linux is the screen utility. This is super important because it enables us to talk to the server’s command-line interface.
To bring up this command line interface we need to restore this screen to the current terminal session by using the command below.
sudo screen -r hytaleserver/hytaleserverCopy
38. Once you have finished using the Hytale Server command line interface, you MUST detach the screen again so that it continues to run in the background.
Failure to do this will cause issues, as our start and stop scripts are configured to communicate with the server via the screen.
To detach the screen and return it to its original state, press CTRL + A, and then CTRL + D. You should return to the normal terminal.
Keeping the Hytale Server Updated on Linux
Now that you have your Hytale Server up and running on Linux, you will probably want to know how to update it. This involves repeating some of the steps we took when setting up the server, but it shouldn’t take too long to complete.
Stopping the Server
1. The very first thing you will want to do is stop the currently running installation of the Hytale Server. Thanks to the service we set up earlier in this guide, you can stop your Hytale Server on Linux by simply running the command below.
If you chose not to set up the service, then stop the server and continue to the next step.
sudo systemctl stop hytaleserverCopy
Moving to the Right Directory
2. We now need to change into the home directory of the “hytaleserver” user that we created by using the cd command.
cd /home/hytaleserverCopy
Updating the Hytale Server Downloader
3. The Hytale Downloader also gets updates from time to time, so we should make sure that we have the latest version.
We can begin updating the downloader by grabbing the latest release using the command below.
wget -o https://downloader.hytale.com/hytale-downloader.zipCopy
4. Once downloaded, extract the contents into the current directory by using the unzip command. We use the “-o” option to make sure Unzip overwrites any existing files.
unzip -o hytale-downloader.zipCopy
Using the Downloader to Update the Hytale Server on Linux
5. With the Hytale Downloader now updated, we can use it on our Linux system to update the Hytale Server itself to the newest release.
To begin downloading the latest release, use the following command. You may be prompted to re-authenticate yourself before the latest release can be retrieved.
./hytale-downloader-linux-amd64 -download-path server.zipCopy
6. When the download process completes, we can the nextract the “server.zip” file to get the latest files. We have included the “-o” option again to ensure we replace the older release.
unzip -o server.zipCopy
7. With that done, we now need to move the new version of the “Assets.zip” file into our server directory using the command below. We use the “-f” option here to force the command to overwrite the old release.
mv -f Assets.zip ./Server/Copy
Fixing Permissions
8. Finally, before we start the server back up on our Linux system, we should ensure that all of the files are still owned by the “hytaleserver” user and group by utilizing the following command in the terminal.
sudo chown -R hytaleserver: /home/hytaleserver/Copy
Starting up the Hytale Server using our Service
9. Finally, you can bring the Hytale server back online on your Linux system by starting up the “hytaleserver” service that we created.
If everything has worked properly, you should have your game server back up and running in a few short minutes.
sudo systemctl start hytaleserverCopy
Conclusion
If you have reached this point in the tutorial, you will hopefully have managed to set up a Hytale dedicated server on your Linux system.
Linux is a perfect operating system for running game servers as it is relatively lightweight. Being lightweight helps ensure that game servers like Hytale’s can make the most of your machine’s hardware.
Please feel free to post a comment below if you have had any issues with getting a server running with these steps.
If you liked this Linux tutorial, we recommend checking out our many other guides. We also have a bunch more tutorials that explore setting up other game servers.