Hytale Dedicated Server Setup Guide: Java 25, Assets, Ports and First Start
A Hytale dedicated server is a Java program you run yourself, either on your own computer or on a hosted machine. Hytale is in Early Access, and the server is still evolving, so this guide sticks to what Hytale's own Server Manual documents and marks anything that comes from community write-ups as such.
You will find the requirements, the three official ways to get the server files, the launch command and its flags, the network details (UDP, QUIC, port 5520), the first-start steps, and how players connect. Each step also notes what you do differently when your server is hosted on ChicagoServers rather than on your own machine.
- The server needs Java 25 and at least 4 GB of memory, on x64 or arm64. Hytale's manual suggests the Adoptium distribution.
- Launch with
java -XX:AOTCache=HytaleServer.aot -jar HytaleServer.jar --assets Assets.zip. - The default port is UDP 5520. Hytale uses QUIC over UDP, so you forward UDP only, never TCP. Change the port with
--bind. - After the first launch, run
/auth login devicein the server console. See the authentication guide for the full flow. - Client and server must be on the exact same protocol version, or the connection is rejected.
- On a hosted ChicagoServers server you do not manage the machine or forward ports yourself. You still authenticate and configure the game, and support can tell you how updates are handled on your server.
On this page
- What you need before you start
- Hosted server or your own machine
- Get the server files
- The launch command
- Ports, QUIC and firewalls
- What the server creates on first start
- First start and authentication
- Connecting and version matching
- Memory and view distance
- Running this on ChicagoServers
- Frequently asked questions
What you need before you start
Hytale's Server Manual lists a short set of requirements. The server runs on any device that meets them, which includes a spare PC, a home server, a rented machine or a hosted game server.
| Requirement | What the manual says |
|---|---|
| Java | Java 25. The manual recommends the Adoptium distribution. Check yours with java --version. |
| Memory | At least 4 GB. Tune the heap with -Xmx by experimenting, and treat heavy garbage-collection CPU use as a sign of memory pressure. |
| CPU architecture | Both x64 and arm64 are supported. |
| Network | One UDP port, 5520 by default. QUIC runs over UDP, so TCP forwarding is not needed. |
| Hytale account | You authenticate the server with a Hytale account after the first launch. Each game license is limited to 500 servers. |
Hosted server or your own machine
The steps below are written for someone running the server themselves. If your server is hosted on ChicagoServers, most of the machine-level work is already done for you. This table shows where the two paths differ.
| Task | On your own machine | On a hosted ChicagoServers server |
|---|---|---|
| Install Java 25 | You install and verify it | Ask support which Java version your server runs |
| Get the server files | Launcher copy, Downloader CLI or bootstrap (below) | The server is set up for you within minutes of ordering |
| Open the port | Open UDP 5520 in your firewall and router | Nothing to open. Copy the address shown at the top of the server page |
| Authenticate | Run /auth login device in your terminal | Run the same command in the Console tab, or ask support if you are unsure whether it is already authenticated |
| Edit config files | Edit them in the server folder | Use the Files tab or SFTP, with the server stopped |
| Updates | Downloader CLI or /update commands | See the updates and versions guide |
Both routes end with the same game server, so the rest of the guide still applies: the commands, the files and the version rules are identical.
Get the server files
The manual describes three ways to obtain the server. All of them give you a Server folder containing HytaleServer.jar, plus an Assets.zip archive.
| Method | Best for | How it works |
|---|---|---|
| Copy from the launcher install | Quick local testing | Copy the Server folder and Assets.zip out of the Hytale launcher's install folder. |
| Hytale Downloader CLI | Production servers | Downloads the server with OAuth2 authentication. The archive includes a QUICKSTART.md. |
Bootstrap from HytaleServer.jar | When you only have the JAR | Run java -jar HytaleServer.jar --bootstrap in an empty directory, authenticate, then run /update setup or /update download. |
%appdata%\Hytale\install\release\package\game\latest
$XDG_DATA_HOME/Hytale/install/release/package/game/latest
~/Library/Application Support/Hytale/install/release/package/game/latestThe Downloader CLI is the manual's pick for production. Running ./hytale-downloader downloads the latest release, -print-version prints the game version without downloading, -download-path game.zip sets the output file, and -patchline pre-release selects the pre-release channel. Patchlines are explained in the updates guide.
With the bootstrap method, the server extracts its files and then shuts itself down. Start it afterwards with ./start.sh on Unix or start.bat on Windows. On Windows, delete the installer JAR by hand after shutdown, because it cannot delete itself while running. Credentials from the bootstrap session carry over, so the real server starts already authenticated.
The launch command
java -XX:AOTCache=HytaleServer.aot -jar HytaleServer.jar --assets Assets.zip| Part | What it does |
|---|---|
-XX:AOTCache=HytaleServer.aot | Uses the bundled ahead-of-time cache, which shortens boot time by skipping JIT warmup. |
-jar HytaleServer.jar | Starts the server. |
--assets Assets.zip | Points the server at the asset archive. The help output lists a different default (..\HytaleAssets), so pass this flag explicitly. |
--bind 3500 | Changes the port. The default bind address in the help output is 0.0.0.0:5520. |
--bootstrap | Installs the server from a lone JAR, as described above. |
--disable-sentry | Stops error reports being submitted. The manual suggests it during active plugin development. |
--help | Lists every argument. |
Run java -jar HytaleServer.jar --help once on your own copy. The help output also shows options such as --auth-mode, --backup and --backup-frequency (default 30 minutes). The manual does not explain --auth-mode offline, so leave it alone unless you know what you are doing.
The start.sh and start.bat wrapper scripts, created by the bootstrap flow or by /update setup, launch the server from inside Server/ with --assets ../Assets.zip --backup --backup-dir backups --backup-frequency 30. They also read extra JVM arguments from a jvm.options file if one exists, one argument per line, with # starting a comment. Put -Xmx there rather than editing the script.
Ports, QUIC and firewalls
Hytale uses QUIC, which runs over UDP. That has one practical consequence that catches Minecraft veterans out: forward and allow UDP on the server port, and do not bother with TCP.
sudo ufw allow 5520/udp
sudo iptables -A INPUT -p udp --dport 5520 -j ACCEPT
New-NetFirewallRule -DisplayName "Hytale" -Direction Inbound -Protocol UDP -LocalPort 5520 -Action AllowThe manual also lists SRV record support as planned but currently unsupported, so players need the address and port rather than a hostname that resolves through an SRV record. If you change the port with --bind, tell players the new port.
What the server creates on first start
| Path | Purpose |
|---|---|
.cache/ | Cache for optimized files |
logs/ | Server log files |
mods/ | Installed mods. The manual says to drop mods into this folder |
universe/ | World and player save data. Worlds live in universe/worlds/, each with its own config.json |
config.json | Server configuration |
permissions.json | Permission configuration |
whitelist.json | Whitelisted players |
bans.json | Banned players |
The server reads these files at startup and rewrites them during in-game actions, so edits made while it is running may be overwritten. The config files guide covers a safe editing routine.
First start and authentication
- Start the server
Run the launch command or the wrapper script and wait for the console to settle.
- Authenticate
Type
/auth login devicein the server console. The console prints a device page address, accounts.hytale.com/device, and a short code. Open that page in a browser on any device, sign in and enter the code. The code is valid for 900 seconds. - Confirm it worked
The console reports
Authentication successful!withMode: OAUTH_DEVICE. The manual notes that once authenticated, your server can accept player connections. - Make a safety copy
Once the server has written its first config and world, copy
config.jsonanduniverse/somewhere safe so you have a clean starting point.
The reasons for authentication, the 500-server limit and what to do when the flow fails are in the Hytale server authentication guide. On a hosted server, type the command into the Console tab and press Send.
Connecting and version matching
Community guides report that players join from the Hytale client's server menu: choose Server, then Add Server (or Direct Connect), and enter the server's IP address and port. Menu labels can shift between builds, so treat that as a pointer rather than gospel.
The part the manual is firm about is version matching. Hytale uses a hash to check that client and server are compatible, and if the hashes do not match exactly the connection is rejected. In plain terms: client and server must be on the exact same protocol version. When a Hytale update lands, update your server promptly and ask players to update their client. The updates and versions guide explains the /update commands and what to check when players cannot join.
Memory and view distance
The manual calls view distance the main driver of RAM use and recommends capping it at 12 chunks (384 blocks). It also notes that Hytale's default of 384 blocks is roughly 24 Minecraft chunks, against Minecraft's 10, and says to expect higher RAM usage with default settings. If your server is running out of memory, lowering view distance is the first lever to try before buying more RAM. The setting lives in config.json and is covered in the config files guide.
Set -Xmx from observation: start from a sensible figure, watch real usage with your normal player count, and adjust. Constant garbage collection that burns CPU suggests the heap is too small.
Running this on ChicagoServers
If you would rather not manage Java, firewalls and updates yourself, Hytale server hosting from ChicagoServers is $15/mo, with instant setup in Chicago facilities, 40Gbps DDoS protection included, SFTP access, 24/7 support, a 7-day money-back guarantee and a free 24-hour trial. You still run /auth login device and manage your config, but the machine side is handled.
Frequently asked questions
What Java version does a Hytale server need?
Java 25. Hytale's Server Manual recommends the Adoptium distribution and says to confirm your install with java --version.
Which port does a Hytale server use?
UDP 5520 by default. The server uses QUIC over UDP, so you only need to forward UDP, not TCP. Use the --bind argument to change it, for example --bind 3500.
How much RAM does a Hytale server need?
The manual states a minimum of 4 GB with Java 25. Real needs depend mainly on view distance and the amount of loaded world. The manual recommends capping view distance at 12 chunks, and suggests tuning -Xmx from observed usage. Player-count tables you see elsewhere are community estimates.
Do I need to authenticate a Hytale server?
Yes. Hytale's manual says authentication is required for service API communication and abuse prevention, and that once authenticated the server can accept player connections. Run /auth login device in the server console after the first launch.
Why can't my friends connect to my Hytale server?
The common causes are a closed or forwarded-as-TCP port (it must be UDP), the server not being authenticated yet, and a client and server on different protocol versions. Check those three first, then read the server log.
Can I run a Hytale server on arm64 hardware?
Yes. The manual says both x64 and arm64 are supported, as long as you have Java 25 and at least 4 GB of memory.