Skip to content

WARNING

For experienced users only. This guide assumes you can work with the command line, Java, a firewall, and basic VPS setup.

TIP

Don't want to deal with this? If you just need a server to play with friends, create one at Hosting-Hytale.pro. It already uses our auth patch, you can run an unofficial server, and there is a free plan.

This guide is based on the official Hytale documentation, but adapted for an unofficial server — without /auth login device and a Hytale account.

Requirements

ResourceMinimumRecommended
RAM4 GB8+ GB (depends on player count and view distance)
JavaJava 25Adoptium Temurin 25
CPU2 cores4+ cores with a large player count
Disk10 GB20+ GB SSD
NetworkUDP port 5520Open UDP (not TCP!)

Check Java:

bash
java --version

Expected output: openjdk 25.x.x

TIP

Java can be located anywhere — just provide the full path to java / java.exe in the startup command. You do not have to install it into Server/jre/.


File layout

Official Hytale server layout:

game/
├── Assets.zip
├── jvm.options          # optional — custom JVM arguments (one per line)
├── start.sh             # optional (Linux)
├── start.bat            # optional (Windows)
└── Server/
    ├── HytaleServer.jar
    ├── HytaleServer.aot # optional — speeds up the first launch
    ├── earlyplugins/
    │   └── hytale-auth-patch.jar   ← patch for an unofficial server
    ├── mods/
    ├── universe/        # worlds and player saves
    ├── logs/
    ├── config.json
    ├── permissions.json
    ├── bans.json
    └── whitelist.json

Important: the server is started from the Server/ folder, and Assets.zip sits one level above (../Assets.zip).

Where to get the game files

  1. Copy them from the launcher install:
    • Release: %appdata%\HLauncher\install\release\package\game\latest\Server
    • Pre-Release: %appdata%\HLauncher\install\pre-release\package\game\latest\Server
    • Assets.zip: %appdata%\HLauncher\install\release\package\game\latest
  2. Transfer the files to the VPS.

Minimum required: the Server/ folder (with HytaleServer.jar) and Assets.zip.


Step 1. Download the unofficial patch


Step 2. Install the patch

  1. Create an earlyplugins folder inside Server/.
  2. Place the file and name it hytale-auth-patch.jar.
game/Server/earlyplugins/hytale-auth-patch.jar

Step 3. Start the server

Go to the Server/ folder and run the command. Replace the paths with your own.

bat
cd C:\hytale\Server

"...\jdk-25\bin\java.exe" ^
  -Duser.home="C:\hytale\Server" ^
  -Dterminal.ansi=true ^
  -Xms2G -Xmx10G ^
  -XX:+UseG1GC -XX:+UnlockExperimentalVMOptions ^
  -XX:G1NewSizePercent=20 -XX:G1MaxNewSizePercent=40 ^
  -XX:G1ReservePercent=15 -XX:G1HeapWastePercent=5 ^
  -XX:G1MixedGCCountTarget=4 -XX:MaxGCPauseMillis=200 ^
  -XX:G1HeapRegionSize=8M -XX:InitiatingHeapOccupancyPercent=35 ^
  -XX:G1MixedGCLiveThresholdPercent=90 -XX:G1RSetUpdatingPauseTimePercent=5 ^
  -XX:+DisableExplicitGC -XX:+AlwaysPreTouch ^
  -XX:+ExtensiveErrorReports -XX:+UseStringDeduplication ^
  -XX:+PerfDisableSharedMem -XX:ParallelGCThreads=6 ^
  -XX:ConcGCThreads=2 -XX:+ParallelRefProcEnabled ^
  --enable-native-access=ALL-UNNAMED -Xshare:off ^
  -jar HytaleServer.jar ^
  --assets ..\Assets.zip ^
  --accept-early-plugins

Background launch on a VPS:

bash
screen -S hytale
# run the startup command
# Ctrl+A, D — detach; screen -r hytale — reattach

Wait for the Done status in the console.

TIP

If HytaleServer.aot is present in the Server/ folder, add -XX:AOTCache=HytaleServer.aot before -jar — this speeds up loading (as in the official documentation).


Step 4. Network and connecting

Hytale uses QUIC over UDP, not TCP.

ParameterValue
Default port5520 UDP
Change port--bind 0.0.0.0:3500

Player connection: client → ServersDirect Connect → server IP (for example 123.45.67.89 or 123.45.67.89:5520).

Firewall

Windows:

powershell
New-NetFirewallRule -DisplayName "Hytale Server" -Direction Inbound -Protocol UDP -LocalPort 5520 -Action Allow

Linux (ufw):

bash
sudo ufw allow 5520/udp
sudo ufw reload

On the router, forward UDP 5520, not TCP.


VPS: quick setup

  1. Preparation
    bash
    sudo mkdir -p /opt/hytale/Server/earlyplugins
    sudo chown -R $USER:$USER /opt/hytale

    Upload via SFTP: Assets.zip, Server/HytaleServer.jar, and the patch into Server/earlyplugins/.

  2. Java 25
    bash
    sudo apt update && sudo apt install -y temurin-25-jdk
    java --version
  3. Launch

    Run the command from the Linux tab above.

  4. Autostart (optional)

    Create /etc/systemd/system/hytale.service — set the full path to java, WorkingDirectory=/opt/hytale/Server, and the Step 3 command in ExecStart.


Windows: quick setup

  1. Create C:\hytale\ and arrange the files according to the layout above.
  2. Install Java 25 (Adoptium).
  3. Place the patch in C:\hytale\Server\earlyplugins\.
  4. Run the command from the Windows tab (you can save it as start-pirate.bat).
  5. Allow Java in Windows Firewall (UDP 5520).

Good to know

Memory: the main RAM consumer is view distance. Officially, it is recommended not to go above 12 chunks (384 blocks). If you are short on memory, reduce -Xmx10G to -Xmx4G.

Mods: place .jar / .zip files in Server/mods/.

Configs: config.json, permissions.json, and others are overwritten by the server while it is running — do not edit them while the server is up.

Versions: the client and server must be on the same protocol version, otherwise the connection will be rejected.

HLauncher documentation