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 Type | Players | VeryCloud Configuration |
|---|---|---|
| Private server among friends | 5-10 | VPS KVM SSD 6GB |
| Public community server | 20-50 | VPS KVM NVMe 16GB |
| Custom mini-games server | 30-80 | VPS KVM Ryzen 32GB |
| Creative server with mods | 10-30 | VPS 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
Recommended Hardware Configuration
| Resource | Minimum | Recommended | Performance | VeryCloud |
|---|---|---|---|---|
| RAM | 4 GB | 8 GB | 16 GB | VPS NVMe 16GB |
| CPU | 2 vCores | 4 vCores | 6+ vCores | VPS Ryzen |
| Storage | 10 GB SSD | 20 GB SSD | 50 GB NVMe | VPS NVMe |
| Bandwidth | 100 Mbps | 1 Gbps | 1 Gbps | AS198825 Network |
| Supported players | 5-10 | 10-30 | 50+ | - |
š” 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
| Software | Version | Required |
|---|---|---|
| Ubuntu / Debian | 22.04+ / 12+ | ā |
| Java (OpenJDK) | 25 LTS | ā |
| unzip | Latest | ā |
| UFW (firewall) | Latest | Recommended |
| screen / tmux | Latest | Optional |
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 configure the port as TCP. Our Netrix Anti-DDoS protection is optimized for the UDP protocol.
Required Server Files
| File | Approximate Size | Description |
|---|---|---|
HytaleServer.jar | ~50 MB | Main server executable |
Assets.zip | ~3.2 GB | Complete resources (textures, sounds, 3D models) |
hytale-downloader | ~5 MB | Official 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: 16is 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:
- Open https://accounts.hytale.com/device in your browser
- Log in with your Hytale account
- Enter the code displayed in the console
- 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:
| Command | Description |
|---|---|
/help | Display all commands |
/list | List 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-all | Force world save |
/stop | Stop 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:
- Port already in use
sudo lsof -i :5520 sudo fuser -k 5520/udp - Insufficient RAM
free -h # Reduce -Xmx in start.sh if needed - File permissions
sudo chown -R hytale:hytale /opt/hytale - 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:
- Increase allocated RAM
sudo -u hytale nano /opt/hytale/server/start.sh # Change -Xmx6G to -Xmx8G or more - Reduce view distance
sudo -u hytale nano /opt/hytale/server/config.json # Reduce maxViewRadius to 12 or 14 - 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
| Resource | URL |
|---|---|
| Hytale server manual | https://support.hytale.com/hc/en-us/articles/45326769420827 |
| Official Hytale site | https://hytale.com |
| Device authentication | https://accounts.hytale.com/device |
| Adoptium (Java 25) | https://adoptium.net |
VeryCloud Support
| Channel | Availability | URL |
|---|---|---|
| Support tickets | 24/7 | manager.verycloud.fr |
| Community Discord | 24/7 | 600+ active members |
| Documentation | - | docs.verycloud.fr |
| Service status | Real-time | status.verycloud.fr |
Hytale Community
| Platform | Link |
|---|---|
| Official Discord | https://discord.gg/hytale |
| https://reddit.com/r/hytale | |
| Official forums | https://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
hytalecreated - Directories
/opt/hytale/{server,backups,logs}created - Files
HytaleServer.jarandAssets.zipdownloaded - Script
start.shcreated 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
-
MaxViewRadiusconfigured (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.jsonaccording to your gameplay
Need Help?
VeryCloud team is available 24/7 to assist you:
- Documentation: docs.verycloud.fr
- Technical support: Open a ticket from your client area
- Discord community: Join (600+ members)
- Service status: status.verycloud.fr


















