Starting from zero? The step-by-step basics (Java 25, first launch, authentication, port) are in how to make a Hytale server - this page covers the Linux-specific setup and tuning on top of that.
Ultimate Linux Guide for Hytale Servers: Setup and Optimization
When it comes to hosting high-performance game servers, the operating system matters. While Windows Server is an option, professional system administrators overwhelmingly prefer Linux. A Hytale dedicated server running on a streamlined Linux distribution like Ubuntu 22.04 or Debian 12 will always outperform its Windows counterpart due to lower overhead, superior network stacks, and uncompromised command-line efficiency.
If you are serious about hosting a massive Hytale community, this guide will walk you through setting up and optimizing the Linux environment, from dependency installation to custom startup scripts. Keep in mind that running a Linux server requires some technical know-how. If you prefer a simpler 1-click solution, premium hosts like Supercraft offer fully managed Linux environments right out of the box.
Choosing the Right Distribution
Hytale's server is a Java program, so it runs on any Linux distribution that has Java 25. Ubuntu 22.04 LTS (Long Term Support) and Debian 12 are the gold standards. We strongly recommend Ubuntu 22.04 due to its massive community support, up-to-date package repositories, and stability.
Step 1: System Preparation and User Accounts
Never run your Hytale server as the `root` user. Running game services as root introduces severe security vulnerabilities. First, we will create a dedicated user for the game server.
# Create a new user named 'hytale'
sudo adduser hytale
# Switch to the new user
su - hytale
Step 2: Installing Java 25
The Hytale server is a single Java program, HytaleServer.jar, and it needs Java 25. It does not need .NET or any other runtime. The default Java package on Ubuntu 22.04 and Debian 12 is older than 25, so install a Java 25 build such as Eclipse Temurin (Adoptium) and check it:
# Update the package list and install the tools used below
sudo apt update && sudo apt upgrade -y
sudo apt install -y wget curl unzip screen
# After installing a Java 25 JDK or JRE, confirm the version
java -version
Step 3: Downloading the Server Files
As the hytale user, create a directory for the server. You need HytaleServer.jar and Assets.zip. There are two official ways to get them:
- The Hytale Downloader CLI, covered in the Downloader CLI guide.
- The server's own bootstrap mode: start it with
--bootstrap, sign in with/auth login device, then run/update download, which fills the current directory withAssets.zip, the start scripts and theServer/layout.
mkdir hytale-server && cd hytale-server
Step 4: Configuring the Server
The server writes its settings file, config.json, in its working directory on first start. The keys you will change most are:
{
"ServerName": "My Epic Linux Hytale Server",
"MOTD": "",
"Password": "",
"MaxPlayers": 100,
"MaxViewRadius": 32
}
There is no token to paste into the file. The server is authorized by signing in: after the first start, run /auth login device in the server console and follow the steps. The tick rate is not a setting in this file; /world tps sets it for a world.
Step 5: Opening Port 5520 (Firewall Setup)
Hytale communicates over UDP port 5520 using the QUIC protocol. If you are using Uncomplicated Firewall (UFW) on Ubuntu, you must explicitly open this port, otherwise, attempting to join the server will result in a connection timeout error.
# Open the required port
sudo ufw allow 5520/udp
# Reload the firewall
sudo ufw reload
Step 6: Creating a Startup Script (Screen)
If you launch the server directly in your SSH session, it will close the moment you disconnect. To keep the server running in the background, we use `screen`. Let's create a startup script named `start.sh`.
nano start.sh
Paste the following script into the file. This script allocates RAM (adjust the `-Xmx` flag based on your hardware) and utilizes optimal garbage collection settings.
#!/bin/bash
screen -S hytale_server -d -m java \
-Xms4G -Xmx16G \
-XX:+UseG1GC \
-XX:MaxGCPauseMillis=50 \
-jar HytaleServer.jar --assets Assets.zip
echo "Hytale server is starting in a detached screen session. Type 'screen -r hytale_server' to view the console."
Make the script executable and run it:
chmod +x start.sh
./start.sh
Linux Optimization Secrets
Swappiness Adjustment
Linux systems use "swap" space on the SSD when physical RAM is full. However, swapping memory during active gameplay causes immense lag. You should minimize the system's tendency to swap.
# Open sysctl.conf
sudo nano /etc/sysctl.conf
# Add or modify this line at the bottom
vm.swappiness=10
CPU Governor Setup
By default, many Linux distributions set the CPU scaling governor to "powersave". For a game server, you want maximum clock speeds at all times. Change this to "performance".
sudo apt install cpufrequtils
echo 'GOVERNOR="performance"' | sudo tee /etc/default/cpufrequtils
sudo systemctl restart cpufrequtils
Conclusion: The Easier Route
Setting up a Hytale server on Linux provides maximum performance and flexibility, but it demands constant maintenance. You must manually handle kernel updates, firewall rules, and backup bash scripts.
If you want the uncompromised performance of Linux without the command-line headaches, Supercraft provides premium Hytale hosting. All Supercraft servers are built on specialized, hyper-optimized Linux containers running on NVMe storage and Ryzen processors, managed through a beautiful, intuitive web interface. Let us handle the Linux backend while you focus on building your Hytale community.