Dedicated Servers & VPSJanuary 15, 2026 1145 views

How to install a Hytale server on Linux VPS

How to install a Hytale server on Linux VPS

How to Install a Hytale Server on Linux VPS

1. Introduction

What is Hytale?

Hytale is a sandbox game developed by Hypixel Studios, released in early access on January 13, 2026. It combines exploration, construction, combat, and content creation in a rich procedural universe. The dedicated server allows hosting persistent multiplayer games.

Main Features

  • Procedural worlds with diverse biomes
  • Mod system and advanced customization
  • Modern QUIC over UDP network protocol
  • Support for x64 and arm64 architectures
  • Management of permissions and multiple worlds
  • Integrated authentication system via Hytale account

Typical Use Cases

  • Private server among friends (5-10 players)
  • Public community server (20-50 players)
  • Custom mini-games server
  • Creative server with mods

Documented Version

  • Hytale Server: v1.0.0 (January 2026)
  • Required Java: OpenJDK 25 LTS (Temurin)

🚀 Prefer a turnkey solution?

With OuiHeberg, your Hytale server is pre-installed and ready to play in less than 60 seconds. No technical configuration, automatic updates, 24/7 support, and DDoS protection included.

➡️ Discover our Hytale Hosting offers


2. Prerequisites

Hardware Configuration

Resource Minimum Recommended Performance
RAM 4 GB 8 GB 16 GB
CPU 2 vCores 4 vCores 6+ vCores
Storage 10 GB SSD 20 GB SSD 50 GB NVMe
Bandwidth 100 Mbps 1 Gbps 1 Gbps
Supported Players 5-10 10-30 50+

💡 Tip: CPU speed (core frequency) is more important than the number of cores for Hytale.

Required Software

Software Version Required
Debian / Ubuntu 12+ / 22.04+
Java (OpenJDK) 25 LTS
unzip Latest
UFW (Firewall) Latest Recommended

Network Ports

Port Protocol Usage Required
5520 UDP Hytale Server (QUIC)
22 TCP SSH (administration)

⚠️ Important: Hytale exclusively uses UDP via the QUIC protocol. Do not open the port in TCP.

Required Server Files

File Size Description
HytaleServer.jar ~50 MB Server executable
Assets.zip ~3.2 GB Game resources (textures, sounds, models)

3. Step-by-Step Installation

Step 1: System Update

sudo apt update && sudo apt upgrade -y

ℹ️ This command updates the package list and installs the latest available versions.

Step 2: Install Java 25

Add the Adoptium repository and install OpenJDK 25:

# Install dependencies
sudo apt install -y wget apt-transport-https gnupg

# Add Adoptium GPG key
wget -qO - https://packages.adoptium.net/artifactory/api/gpg/key/public | sudo tee /usr/share/keyrings/adoptium.asc

# Add repository
echo "deb [signed-by=/usr/share/keyrings/adoptium.asc] https://packages.adoptium.net/artifactory/deb $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/adoptium.list

# Install Java 25
sudo apt update
sudo apt install -y temurin-25-jdk

Verification Point:

java --version

Expected result:

openjdk 25.0.1 2025-10-21 LTS
OpenJDK Runtime Environment Temurin-25.0.1+8 (build 25.0.1+8-LTS)
OpenJDK 64-Bit Server VM Temurin-25.0.1+8 (build 25.0.1+8-LTS, mixed mode, sharing)

Step 3: Create a Dedicated User

For security reasons, create a non-root system user:

sudo adduser --system --group --home /opt/hytale --shell /bin/bash hytale

💡 Best Practice: Never run a game server as root.

Step 4: Prepare Directory Structure

# Create directories
sudo mkdir -p /opt/hytale/server
sudo mkdir -p /opt/hytale/backups

# Set permissions
sudo chown -R hytale:hytale /opt/hytale

Step 5: Download Server Files

Use the official hytale-downloader tool to download server files directly to your VPS:

# Connect as hytale user
sudo su - hytale
cd /opt/hytale/server

# Download the tool
wget -q https://downloader.hytale.com/hytale-downloader.zip

# Extraction
unzip hytale-downloader.zip

# Set execution permissions
chmod +x bin/hytale-downloader

# Download server files (HytaleServer.jar + Assets.zip)
./bin/hytale-downloader --server

ℹ️ The tool will prompt you to authenticate with your Hytale account during the first download.

Verification Point:

ls -lh /opt/hytale/server/

Expected result:

-rw-r--r-- 1 hytale hytale  50M jan 15 10:00 HytaleServer.jar
-rw-r--r-- 1 hytale hytale 3.2G jan 15 10:05 Assets.zip
drwxr-xr-x 2 hytale hytale 4.0K jan 15 10:00 bin/

Step 6: Firewall Configuration

# Enable UFW if necessary
sudo ufw enable

# Open SSH port (if not already done)
sudo ufw allow 22/tcp

# Open Hytale port (UDP only)
sudo ufw allow 5520/udp

# Reload rules
sudo ufw reload

# Check status
sudo ufw status verbose

Expected result:

5520/udp                   ALLOW IN    Anywhere

4. Configuration

Startup Script

Create the file /opt/hytale/server/start.sh:

sudo -u hytale nano /opt/hytale/server/start.sh

Script content:

#!/bin/bash
#
# Hytale Server Startup Script
# OuiHeberg - Installation Guide
#

cd /opt/hytale/server

# JVM Configuration
JAVA_OPTS="-Xms4G -Xmx6G"
JAVA_OPTS="$JAVA_OPTS -XX:+UseG1GC"
JAVA_OPTS="$JAVA_OPTS -XX:MaxGCPauseMillis=200"
JAVA_OPTS="$JAVA_OPTS -XX:+ParallelRefProcEnabled"
JAVA_OPTS="$JAVA_OPTS -XX:+UnlockExperimentalVMOptions"
JAVA_OPTS="$JAVA_OPTS -XX:+DisableExplicitGC"

# Server Startup
java $JAVA_OPTS -jar HytaleServer.jar \
    --assets Assets.zip \
    --bind 0.0.0.0:5520

Make the script executable:

sudo chmod +x /opt/hytale/server/start.sh
sudo chown hytale:hytale /opt/hytale/server/start.sh

JVM Optimization based on number of players

Players VPS RAM JVM Parameters
5-10 6 GB -Xms3G -Xmx5G -XX:+UseG1GC
10-20 8 GB -Xms4G -Xmx6G -XX:+UseG1GC -XX:MaxGCPauseMillis=200
20-40 16 GB -Xms8G -Xmx12G -XX:+UseG1GC -XX:MaxGCPauseMillis=200
50+ 32 GB -Xms16G -Xmx24G -XX:+UseZGC

⚠️ Important: Always leave 1-2 GB of RAM available for the operating system.

Server Configuration (config.json)

After the first startup, edit /opt/hytale/server/config.json:

{
  "Version": 3,
  "ServerName": "My Hytale Server",
  "MOTD": "Welcome to our server!",
  "Password": "",
  "MaxPlayers": 20,
  "MaxViewRadius": 16,
  "LocalCompressionEnabled": false,
  "Defaults": {
    "World": "default",
    "GameMode": "Adventure"
  },
  "ConnectionTimeouts": {
    "JoinTimeouts": {}
  },
  "RateLimit": {},
  "Modules": {},
  "LogLevels": {},
  "Mods": {},
  "DisplayTmpTagsInStrings": false,
  "PlayerStorage": {
    "Type": "Hytale"
  }
}

Important Settings:

Parameter Recommended Value Description
ServerName Your Name Name displayed in server list
MaxPlayers 20 Maximum number of simultaneous players
MaxViewRadius 16 Render distance (32 = high, consumes a lot)
Password "" Blank = public server, otherwise password required
GameMode Adventure Default mode: Adventure, Creative, Survival

💡 Optimization: Reducing MaxViewRadius from 32 to 16 significantly reduces RAM and CPU consumption.

Systemd Service (Automatic Startup)

Create the file /etc/systemd/system/hytale.service:

sudo nano /etc/systemd/system/hytale.service

Content:

[Unit]
Description=Hytale Dedicated Server
Documentation=https://support.hytale.com
After=network.target

[Service]
Type=simple
User=hytale
Group=hytale
WorkingDirectory=/opt/hytale/server
ExecStart=/opt/hytale/server/start.sh
ExecStop=/bin/kill -SIGINT $MAINPID
Restart=on-failure
RestartSec=10
StandardOutput=journal
StandardError=journal
SyslogIdentifier=hytale

# Security
NoNewPrivileges=true
PrivateTmp=true

[Install]
WantedBy=multi-user.target

Enable and start the service:

sudo systemctl daemon-reload
sudo systemctl enable hytale
sudo systemctl start hytale

5. First Use

First Startup

sudo systemctl start hytale

Monitor real-time logs:

sudo journalctl -u hytale -f

Expected Output:

[INFO] Starting Hytale Server v1.0.0
[INFO] Loading Assets.zip... (1-2 minutes)
[INFO] World generation complete
[WARN] Server requires authentication
[INFO] Use command: /auth login device
[INFO] Server online on port 5520

Server Authentication

Access the server console:

sudo -u hytale screen -S hytale

Or via systemd:

sudo systemctl stop hytale
sudo -u hytale /opt/hytale/server/start.sh

In the console, type:

/auth login device

A code will appear:

===================================================================
DEVICE AUTHORIZATION
===================================================================
Visit: https://accounts.hytale.com/device
Enter code: ABCD-1234
===================================================================
  1. Go to https://accounts.hytale.com/device
  2. Enter the displayed code (e.g., ABCD-1234)
  3. Authenticate with your Hytale account

⚠️ Important: The code expires after 15 minutes. Authentication is mandatory for players to connect.

Player Connection

Players can connect via:

  • Direct IP: your-public-ip:5520
  • Domain: play.yourdomain.com:5520

6. Maintenance

Service Management Commands

Action Command
Start sudo systemctl start hytale
Stop sudo systemctl stop hytale
Restart sudo systemctl restart hytale
Status sudo systemctl status hytale
Real-time Logs sudo journalctl -u hytale -f
Full Logs sudo journalctl -u hytale --no-pager

Server Update

# Stop the server
sudo systemctl stop hytale

# Backup before update
sudo -u hytale cp -r /opt/hytale/server /opt/hytale/backups/server-$(date +%Y%m%d)

# Download new files
sudo su - hytale
cd /opt/hytale/server
./bin/hytale-downloader --server --update

# Restart
exit
sudo systemctl start hytale

Automatic Backup

Create a backup script /opt/hytale/backup.sh:

#!/bin/bash
#
# Hytale Backup Script
#

BACKUP_DIR="/opt/hytale/backups"
SERVER_DIR="/opt/hytale/server"
DATE=$(date +%Y%m%d-%H%M%S)
RETENTION_DAYS=7

# Create backup
tar -czf "$BACKUP_DIR/hytale-$DATE.tar.gz" \
    -C "$SERVER_DIR" \
    config.json \
    universe/ \
    mods/ \
    --exclude='*.log'

# Delete old backups
find "$BACKUP_DIR" -name "hytale-*.tar.gz" -mtime +$RETENTION_DAYS -delete

echo "Backup completed: hytale-$DATE.tar.gz"

Make it executable and schedule it:

sudo chmod +x /opt/hytale/backup.sh
sudo chown hytale:hytale /opt/hytale/backup.sh

# Add to cron (daily backup at 4am)
echo "0 4 * * * hytale /opt/hytale/backup.sh" | sudo tee /etc/cron.d/hytale-backup

Restoration

# Server shutdown
sudo systemctl stop hytale

# Restore from backup
cd /opt/hytale/server
sudo -u hytale tar -xzf /opt/hytale/backups/hytale-YYYYMMDD-HHMMSS.tar.gz

# Restart
sudo systemctl start hytale

Monitoring

Monitor server resources:

# Java process memory usage
ps aux | grep HytaleServer

# Real-time CPU and RAM usage
htop -p $(pgrep -f HytaleServer)

# Disk space
df -h /opt/hytale

7. Troubleshooting

Common Issues

Issue Cause Solution
Incorrect Java version Java < 25 Install Java 25 via Adoptium
Assets.zip not found Missing file Place Assets.zip in /opt/hytale/server/
Port 5520 already in use Another active instance sudo lsof -i :5520 then kill PID
OutOfMemoryError Insufficient RAM Increase -Xmx or reduce MaxViewRadius
Players unable to connect Firewall / authentication Check UFW + /auth login device

Diagnostic Commands

# Check if server is listening
sudo ss -ulnp | grep 5520

# Check error logs
sudo journalctl -u hytale --since "1 hour ago" | grep -i error

# Test UDP connectivity (from another server)
nc -vzu your-ip 5520

# Check Java version
java --version

# Check permissions
ls -la /opt/hytale/server/

Common Errors in Logs

Error: GC overhead limit exceeded

# Increase allocated RAM
-Xmx8G instead of -Xmx6G

Error: Unable to bind to address

# Check if no other process is using the port
sudo fuser -k 5520/udp

Error: Authentication required

# Restart authentication
/auth login device

8. Resources

Official Documentation

Resource URL
Official server manual https://support.hytale.com/hc/en-us/articles/45326769420827-Hytale-Server-Manual
Hytale official site https://hytale.com
Authentication https://accounts.hytale.com/device
Adoptium (Java 25) https://adoptium.net

Community

Platform Link
Official Discord https://discord.gg/hytale
Reddit https://reddit.com/r/hytale
Official Forums https://forums.hytale.com

💡 Find the installation complex?

Save time with a pre-installed Hytale server at OuiHeberg:

  • ✅ Server ready in 60 seconds
  • ✅ Simplified management panel
  • ✅ 1-click updates
  • ✅ Automatic backups
  • ✅ 24/7 technical support
  • ✅ Included DDoS protection

➡️ Order your Hytale server


Summary of Commands

# === COMPLETE INSTALLATION ===

# 1. System update
sudo apt update && sudo apt upgrade -y

# 2. Install Java 25
sudo apt install -y wget apt-transport-https gnupg unzip
wget -qO - https://packages.adoptium.net/artifactory/api/gpg/key/public | sudo tee /usr/share/keyrings/adoptium.asc
echo "deb [signed-by=/usr/share/keyrings/adoptium.asc] https://packages.adoptium.net/artifactory/deb $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/adoptium.list
sudo apt update && sudo apt install -y temurin-25-jdk

# 3. Create user
sudo adduser --system --group --home /opt/hytale --shell /bin/bash hytale

# 4. Prepare folders
sudo mkdir -p /opt/hytale/{server,backups}
sudo chown -R hytale:hytale /opt/hytale

# 5. Firewall
sudo ufw allow 5520/udp
sudo ufw reload

# 6. Download server files
sudo su - hytale
cd /opt/hytale/server
wget -q https://downloader.hytale.com/hytale-downloader.zip
unzip hytale-downloader.zip
chmod +x bin/hytale-downloader
./bin/hytale-downloader --server
exit

# 7. Create start.sh and hytale.service (see above sections)

# 8. Start
sudo systemctl daemon-reload
sudo systemctl enable hytale
sudo systemctl start hytale

# 9. Authentication
# In the console: /auth login device
# Then validate on https://accounts.hytale.com/device

Guide written by OuiHeberg — Last updated: January 15, 2026