Logo

How to Install a Hytale Server on Linux VPS

How to Install a Hytale Server on Linux VPS

Complete guide to install and configure a dedicated Hytale server on Linux VPS (Ubuntu/Debian). Java 25 installation, optimized configuration, firewall, systemd and authentication. Step-by-step tutorial for VeryCloud.

How to Install a Hytale Server on Linux VPS

Introduction

What is Hytale?

Hytale is a sandbox-type game developed by Hypixel Studios, released in early access on January 13, 2026. It combines exploration, building, combat, and content creation in a rich and immersive procedural universe. The dedicated server allows hosting persistent multiplayer sessions with advanced configuration.

Main Features

  • Procedural worlds with varied biomes and dynamic generation
  • Mod system and advanced gameplay customization
  • Modern network protocol QUIC over UDP for optimal performance
  • Multi-architecture support: x64 and arm64
  • Advanced management of permissions and multiple worlds
  • Integrated authentication via official Hytale account

Typical Use Cases

Server TypePlayersVeryCloud Configuration
Private server among friends5-10VPS KVM SSD 6GB
Public community server20-50VPS KVM NVMe 16GB
Custom mini-games server30-80VPS KVM Ryzen 32GB
Creative server with mods10-30VPS KVM NVMe 12GB

Documented Version

  • Hytale Server: v1.0.0 (January 2026)
  • Required Java: OpenJDK 25 LTS (Temurin)
  • Supported OS: Ubuntu 22.04+, Debian 12+

Prerequisites

ResourceMinimumRecommendedPerformanceVeryCloud
RAM4 GB8 GB16 GBVPS NVMe 16GB
CPU2 vCores4 vCores6+ vCoresVPS Ryzen
Storage10 GB SSD20 GB SSD50 GB NVMeVPS NVMe
Bandwidth100 Mbps1 Gbps1 GbpsAS198825 Network
Supported players5-1010-3050+-

šŸ’” VeryCloud Note: CPU speed (frequency per core) is more important than the number of cores for Hytale. Our Ryzen VPS offer exceptional performance thanks to their high-frequency architecture.

Required Software

SoftwareVersionRequired
Ubuntu / Debian22.04+ / 12+āœ…
Java (OpenJDK)25 LTSāœ…
unzipLatestāœ…
UFW (firewall)LatestRecommended
screen / tmuxLatestOptional

Network Ports

PortProtocolUsageRequired
5520UDPHytale Server (QUIC)āœ…
22TCPSSH (administration)āœ…

āš ļø IMPORTANT: Hytale exclusively uses UDP via the QUIC protocol. Do NOT configure the port as TCP. Our Netrix Anti-DDoS protection is optimized for the UDP protocol.

Required Server Files

FileApproximate SizeDescription
HytaleServer.jar~50 MBMain server executable
Assets.zip~3.2 GBComplete resources (textures, sounds, 3D models)
hytale-downloader~5 MBOfficial download tool

Step-by-Step Installation

Step 1: Connect to VeryCloud VPS

Connect to your VPS via SSH from your terminal:

ssh root@your-vps-ip

šŸ’” VeryCloud Tip: You can find your IP in the client area > My Services > VPS Details

Step 2: System Update

sudo apt update && sudo apt upgrade -y

Expected result:

Reading package lists... Done
Building dependency tree... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

ā„¹ļø This command updates the package list and installs the latest available security updates.

Step 3: Installing Java 25 LTS

Hytale absolutely requires Java 25. We use the Temurin distribution from Adoptium:

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

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

# Add Adoptium 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

# Update and 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 4: Creating a Dedicated User

For security reasons, create a system user without root privileges:

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

Expected result:

Adding system user `hytale' (UID XXX) ...
Adding new group `hytale' (GID XXX) ...
Adding new user `hytale' (UID XXX) with group `hytale' ...
Creating home directory `/opt/hytale' ...

šŸ’” Best Practice: Never run a game server with root privileges. This limits risks in case of server compromise.

Step 5: Directory Structure Preparation

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

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

# Verification
ls -la /opt/hytale/

Expected result:

drwxr-xr-x 5 hytale hytale 4096 Jan 29 10:00 .
drwxr-xr-x 3 root   root   4096 Jan 29 10:00 ..
drwxr-xr-x 2 hytale hytale 4096 Jan 29 10:00 backups
drwxr-xr-x 2 hytale hytale 4096 Jan 29 10:00 logs
drwxr-xr-x 2 hytale hytale 4096 Jan 29 10:00 server

Step 6: Downloading Server Files

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

# Login as hytale user
sudo su - hytale

# Navigate to server directory
cd /opt/hytale/server

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

# Extract
unzip hytale-downloader.zip

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

# Download server files
./bin/hytale-downloader --server

ā„¹ļø Authentication: The tool will ask you to authenticate with your Hytale account during the first download. Follow the on-screen instructions.

Verification point:

ls -lh /opt/hytale/server/

Expected result:

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

Return to root user:

exit

Step 7: Configuring UFW Firewall

VeryCloud includes Netrix Anti-DDoS protection, but you must configure your local firewall:

# Install UFW if necessary
sudo apt install -y ufw

# Allow SSH (IMPORTANT: do this BEFORE enabling UFW)
sudo ufw allow 22/tcp

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

# Enable firewall
sudo ufw enable

# Verification
sudo ufw status verbose

Expected result:

Status: active

To                         Action      From
--                         ------      ----
22/tcp                     ALLOW IN    Anywhere
5520/udp                   ALLOW IN    Anywhere

āš ļø CRITICAL: Don't forget to allow SSH port (22) BEFORE enabling UFW, or you'll lose access to your VPS!


Server Configuration

Creating the Startup Script

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

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

Copy and paste the following content:

#!/bin/bash
#
# Hytale Server Startup Script
# VeryCloud - Optimized Configuration
#

cd /opt/hytale/server

# JVM configuration optimized for VeryCloud VPS
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:G1NewSizePercent=30"
JAVA_OPTS="$JAVA_OPTS -XX:G1MaxNewSizePercent=40"
JAVA_OPTS="$JAVA_OPTS -XX:G1HeapRegionSize=8M"
JAVA_OPTS="$JAVA_OPTS -XX:G1ReservePercent=20"
JAVA_OPTS="$JAVA_OPTS -XX:G1HeapWastePercent=5"
JAVA_OPTS="$JAVA_OPTS -XX:G1MixedGCCountTarget=4"
JAVA_OPTS="$JAVA_OPTS -XX:InitiatingHeapOccupancyPercent=15"
JAVA_OPTS="$JAVA_OPTS -XX:G1MixedGCLiveThresholdPercent=90"
JAVA_OPTS="$JAVA_OPTS -XX:G1RSetUpdatingPauseTimePercent=5"
JAVA_OPTS="$JAVA_OPTS -XX:SurvivorRatio=32"
JAVA_OPTS="$JAVA_OPTS -XX:MaxTenuringThreshold=1"

# Launch server
exec java $JAVA_OPTS -jar HytaleServer.jar

Set execution permissions:

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

Basic Server Configuration

Create the file /opt/hytale/server/config.json:

sudo -u hytale nano /opt/hytale/server/config.json

Basic configuration for VeryCloud VPS:

{
  "server": {
    "name": "My VeryCloud Hytale Server",
    "description": "Powered by VeryCloud Infrastructure",
    "motd": "Welcome to our Hytale server!",
    "port": 5520,
    "ip": "0.0.0.0",
    "maxPlayers": 30,
    "maxViewRadius": 16,
    "difficulty": "normal",
    "pvp": true,
    "flightEnabled": false,
    "whitelist": false,
    "offlineMode": false
  },
  "world": {
    "name": "world",
    "seed": "",
    "generateStructures": true,
    "hardcore": false,
    "gamemode": "survival"
  },
  "performance": {
    "autoSaveInterval": 300,
    "networkCompression": true,
    "maxTickTime": 60000
  },
  "authentication": {
    "enabled": true,
    "enforceSecureChat": true
  }
}

šŸ’” Performance: maxViewRadius: 16 is optimal for 30 players on a VPS NVMe 16GB. Increase to 20-24 on VPS Ryzen 32GB+.

Creating systemd Service

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

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

Copy this content:

[Unit]
Description=Hytale Server - VeryCloud
After=network.target

[Service]
Type=simple
User=hytale
Group=hytale
WorkingDirectory=/opt/hytale/server

ExecStart=/opt/hytale/server/start.sh

# Auto-restart configuration
Restart=on-failure
RestartSec=10
StartLimitInterval=60
StartLimitBurst=3

# Security
PrivateTmp=true
NoNewPrivileges=true

# Logging
StandardOutput=journal
StandardError=journal
SyslogIdentifier=hytale

[Install]
WantedBy=multi-user.target

Enable and start the service:

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

Initial Authentication

Device Authentication

On first launch, the server requires authentication:

# Stop systemd service
sudo systemctl stop hytale

# Launch manually to see authentication prompt
sudo -u hytale /opt/hytale/server/start.sh

The console will display:

[INFO] Server requires authentication
[INFO] Please visit: https://accounts.hytale.com/device
[INFO] Enter code: ABC-DEF-123

Steps:

  1. Open https://accounts.hytale.com/device in your browser
  2. Log in with your Hytale account
  3. Enter the code displayed in the console
  4. Validate

Once authenticated, press Ctrl+C to stop, then restart as service:

sudo systemctl start hytale

āœ… Note: Authentication is only needed once. The server stores credentials in /opt/hytale/server/.hytale/auth.json


Server Management

Essential Commands

# View real-time logs
sudo journalctl -u hytale -f

# Restart server
sudo systemctl restart hytale

# Stop server
sudo systemctl stop hytale

# Check service status
sudo systemctl status hytale

# View last 100 log lines
sudo journalctl -u hytale -n 100

# Search for errors in logs
sudo journalctl -u hytale | grep -i error

In-Game Console Commands

Connect via SSH and attach to the server console:

# Attach to console (if using screen)
sudo screen -r hytale

# Or directly send commands
sudo -u hytale /opt/hytale/server/console.sh "command"

Main commands:

CommandDescription
/helpDisplay all commands
/listList connected players
/kick <player>Kick a player
/ban <player>Ban a player
/pardon <player>Unban a player
/op <player>Grant admin permissions
/deop <player>Remove admin permissions
/whitelist add <player>Add to whitelist
/whitelist remove <player>Remove from whitelist
/save-allForce world save
/stopStop server cleanly

Backup and Restoration

Automatic Backup Script

Create the file /opt/hytale/backup.sh:

sudo nano /opt/hytale/backup.sh
#!/bin/bash
#
# Hytale Server Backup Script - VeryCloud
#

BACKUP_DIR="/opt/hytale/backups"
SERVER_DIR="/opt/hytale/server"
DATE=$(date +%Y%m%d_%H%M%S)
BACKUP_NAME="hytale_backup_$DATE.tar.gz"

# Stop server
systemctl stop hytale

# Create backup
tar -czf "$BACKUP_DIR/$BACKUP_NAME" \
  -C "$SERVER_DIR" \
  world/ config.json .hytale/

# Restart server
systemctl start hytale

# Keep only last 7 backups
cd "$BACKUP_DIR"
ls -t hytale_backup_*.tar.gz | tail -n +8 | xargs -r rm

echo "Backup completed: $BACKUP_NAME"

Set permissions:

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

Schedule Automatic Backups

Edit crontab:

sudo crontab -e

Add this line (daily backup at 4 AM):

0 4 * * * /opt/hytale/backup.sh >> /opt/hytale/logs/backup.log 2>&1

Restore a Backup

# Stop server
sudo systemctl stop hytale

# Backup current state (safety)
sudo mv /opt/hytale/server/world /opt/hytale/server/world.old

# Extract backup
sudo tar -xzf /opt/hytale/backups/hytale_backup_YYYYMMDD_HHMMSS.tar.gz \
  -C /opt/hytale/server

# Fix permissions
sudo chown -R hytale:hytale /opt/hytale/server

# Restart
sudo systemctl start hytale

Troubleshooting

Server Won't Start

Problem: Service fails to start

Diagnosis:

# Check service status
sudo systemctl status hytale

# View detailed logs
sudo journalctl -u hytale -n 50

Common causes:

  1. Port already in use
    sudo lsof -i :5520
    sudo fuser -k 5520/udp
    
  2. Insufficient RAM
    free -h
    # Reduce -Xmx in start.sh if needed
    
  3. File permissions
    sudo chown -R hytale:hytale /opt/hytale
    
  4. Java not found
    java --version
    # Reinstall Java 25 if necessary
    

Players Cannot Connect

Problem: Server appears offline

Checklist:

# 1. Verify server is running
sudo systemctl status hytale

# 2. Check if port is listening
sudo ss -ulnp | grep 5520

# 3. Verify firewall rules
sudo ufw status

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

VeryCloud specific:

  • āœ… Verify your VPS IP in client area
  • āœ… Check Anti-DDoS Netrix isn't blocking (rare, but possible during attacks)
  • āœ… Contact support if persistent issues

Performance Issues

Problem: Server lag or low TPS

Diagnostic commands:

# Check CPU usage
top -u hytale

# Check RAM usage
free -h

# Check disk I/O
iostat -x 1

# View Java process details
ps aux | grep HytaleServer

Solutions:

  1. Increase allocated RAM
    sudo -u hytale nano /opt/hytale/server/start.sh
    # Change -Xmx6G to -Xmx8G or more
    
  2. Reduce view distance
    sudo -u hytale nano /opt/hytale/server/config.json
    # Reduce maxViewRadius to 12 or 14
    
  3. Upgrade VPS
    • Consider VPS Ryzen for better single-thread performance
    • VeryCloud support can help you migrate

Diagnostic Commands

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

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

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

# Check Java version
java --version

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

# Check RAM usage
free -h

# Check disk space
df -h

# Check service status
sudo systemctl status hytale

Common Log Errors

Error: GC overhead limit exceeded

Cause: Insufficient memory allocated

Solution:

# Increase RAM in start.sh
-Xmx8G instead of -Xmx6G

Error: Unable to bind to address 0.0.0.0:5520

Cause: Port already used by another process

Solution:

# Identify the process
sudo lsof -i :5520

# Kill the process
sudo kill -9 PID

# Or free the port
sudo fuser -k 5520/udp

Error: Authentication required

Cause: Server not authenticated

Solution:

# Stop service
sudo systemctl stop hytale

# Launch manually and authenticate
sudo -u hytale /opt/hytale/server/start.sh
# In console: /auth login device

Error: Failed to load Assets.zip

Cause: Corrupted or missing file

Solution:

# Re-download assets
sudo su - hytale
cd /opt/hytale/server
./bin/hytale-downloader --server --force
exit

Advanced Optimization

VeryCloud Network Configuration

Your VeryCloud VPS already benefits from:

  • āœ… Netrix Anti-DDoS Protection optimized for UDP
  • āœ… AS198825 Network multi-homing redundant
  • āœ… <1ms Latency within Telehouse 3 datacenter
  • āœ… Bandwidth 1 Gbps guaranteed

To maximize performance:

# Kernel optimization for Hytale (UDP/QUIC)
sudo tee -a /etc/sysctl.conf << EOF

# Hytale Server Optimizations - VeryCloud
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.ipv4.udp_rmem_min = 8192
net.ipv4.udp_wmem_min = 8192
EOF

# Apply settings
sudo sysctl -p

JVM Performance Improvements

For high-performance Ryzen VPS:

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

Add these options for Ryzen VPS 32GB+:

JAVA_OPTS="-Xms16G -Xmx24G"
JAVA_OPTS="$JAVA_OPTS -XX:+UseZGC"
JAVA_OPTS="$JAVA_OPTS -XX:+ZGenerational"
JAVA_OPTS="$JAVA_OPTS -XX:+UnlockExperimentalVMOptions"
JAVA_OPTS="$JAVA_OPTS -XX:+DisableExplicitGC"
JAVA_OPTS="$JAVA_OPTS -XX:+AlwaysPreTouch"

Resources and Support

Official Documentation

ResourceURL
Hytale server manualhttps://support.hytale.com/hc/en-us/articles/45326769420827
Official Hytale sitehttps://hytale.com
Device authenticationhttps://accounts.hytale.com/device
Adoptium (Java 25)https://adoptium.net

VeryCloud Support

ChannelAvailabilityURL
Support tickets24/7manager.verycloud.fr
Community Discord24/7600+ active members
Documentation-docs.verycloud.fr
Service statusReal-timestatus.verycloud.fr

Hytale Community

PlatformLink
Official Discordhttps://discord.gg/hytale
Reddithttps://reddit.com/r/hytale
Official forumshttps://forums.hytale.com

Command Summary

# === COMPLETE HYTALE INSTALLATION ON VERYCLOUD ===

# 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 directories
sudo mkdir -p /opt/hytale/{server,backups,logs}
sudo chown -R hytale:hytale /opt/hytale

# 5. Firewall
sudo apt install -y ufw
sudo ufw allow 22/tcp
sudo ufw allow 5520/udp
sudo ufw enable

# 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 script (see Configuration section)

# 8. Create systemd service (see Configuration section)

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

# 10. Authentication
# Stop service and launch manually:
sudo systemctl stop hytale
sudo -u hytale /opt/hytale/server/start.sh
# In console: /auth login device
# Then validate at https://accounts.hytale.com/device

# 11. Restart as service
# Ctrl+C to stop, then:
sudo systemctl start hytale

Verification Checklist

Before putting your server into production, verify:

Installation

  • Java 25 installed and verified (java --version)
  • User hytale created
  • Directories /opt/hytale/{server,backups,logs} created
  • Files HytaleServer.jar and Assets.zip downloaded
  • Script start.sh created and executable

Security

  • UFW enabled and configured
  • SSH port 22/tcp allowed
  • Hytale port 5520/udp allowed
  • Server launched with non-root user
  • Device authentication completed

Performance

  • RAM allocated appropriate for player count
  • MaxViewRadius configured (16 recommended)
  • Systemd service enabled for automatic startup
  • Logs accessible via journalctl

Maintenance

  • Backup script created
  • Backup cron configured (daily at 4 AM)
  • Test a backup restoration
  • Management commands mastered

Conclusion

Congratulations! Your Hytale server is now operational on your VeryCloud VPS. You benefit from:

āœ… Premium infrastructure: Telehouse Tier 3+ datacenter, France
āœ… Anti-DDoS protection: Netrix included, UDP optimized
āœ… Proprietary network: AS198825, <1ms latency
āœ… 24/7 support: Expert technical team available
āœ… NVMe storage: Up to 7x faster than SATA SSD

To go further:

  • Explore Hytale mods
  • Configure a custom domain name
  • Set up Discord for your community
  • Optimize your config.json according to your gameplay

Need Help?

VeryCloud team is available 24/7 to assist you:

Join our Discord community server

For any questions, suggestions, or just to chat with the community, join us on Discord!

900+Members