We are your new 5-Star Hosting Company. At least according to ★ Trustpilot

Following along with a Hytale server? Deploy yours in minutes.

All servers come with a 24-Hour Trial, Free Backups, and 40Gbps DDoS Protection included!

Use code SAVE15 to take 15% OFF Your First Invoice with ChicagoServers! Limited Time!
Hytale guide

Hytale Dedicated Server Setup Guide: Java 25, Assets, Ports and First Start

By the ChicagoServers team · Updated · 8 min read

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.

Quick answer
  • 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 device in 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
  1. What you need before you start
  2. Hosted server or your own machine
  3. Get the server files
  4. The launch command
  5. Ports, QUIC and firewalls
  6. What the server creates on first start
  7. First start and authentication
  8. Connecting and version matching
  9. Memory and view distance
  10. Running this on ChicagoServers
  11. 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.

RequirementWhat the manual says
JavaJava 25. The manual recommends the Adoptium distribution. Check yours with java --version.
MemoryAt least 4 GB. Tune the heap with -Xmx by experimenting, and treat heavy garbage-collection CPU use as a sign of memory pressure.
CPU architectureBoth x64 and arm64 are supported.
NetworkOne UDP port, 5520 by default. QUIC runs over UDP, so TCP forwarding is not needed.
Hytale accountYou 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.

TaskOn your own machineOn a hosted ChicagoServers server
Install Java 25You install and verify itAsk support which Java version your server runs
Get the server filesLauncher copy, Downloader CLI or bootstrap (below)The server is set up for you within minutes of ordering
Open the portOpen UDP 5520 in your firewall and routerNothing to open. Copy the address shown at the top of the server page
AuthenticateRun /auth login device in your terminalRun the same command in the Console tab, or ask support if you are unsure whether it is already authenticated
Edit config filesEdit them in the server folderUse the Files tab or SFTP, with the server stopped
UpdatesDownloader CLI or /update commandsSee 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.

MethodBest forHow it works
Copy from the launcher installQuick local testingCopy the Server folder and Assets.zip out of the Hytale launcher's install folder.
Hytale Downloader CLIProduction serversDownloads the server with OAuth2 authentication. The archive includes a QUICKSTART.md.
Bootstrap from HytaleServer.jarWhen you only have the JARRun java -jar HytaleServer.jar --bootstrap in an empty directory, authenticate, then run /update setup or /update download.
Launcher install locations to copy from: Windows, Linux, macOS (in that order)
%appdata%\Hytale\install\release\package\game\latest
$XDG_DATA_HOME/Hytale/install/release/package/game/latest
~/Library/Application Support/Hytale/install/release/package/game/latest

The 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

Run from the Server folder. Assets.zip sits next to or above it, so adjust the path to match your layout
java -XX:AOTCache=HytaleServer.aot -jar HytaleServer.jar --assets Assets.zip
PartWhat it does
-XX:AOTCache=HytaleServer.aotUses the bundled ahead-of-time cache, which shortens boot time by skipping JIT warmup.
-jar HytaleServer.jarStarts the server.
--assets Assets.zipPoints the server at the asset archive. The help output lists a different default (..\HytaleAssets), so pass this flag explicitly.
--bind 3500Changes the port. The default bind address in the help output is 0.0.0.0:5520.
--bootstrapInstalls the server from a lone JAR, as described above.
--disable-sentryStops error reports being submitted. The manual suggests it during active plugin development.
--helpLists 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.

Example inbound UDP rules for port 5520: ufw, iptables, then Windows PowerShell
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 Allow

The 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

PathPurpose
.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.jsonServer configuration
permissions.jsonPermission configuration
whitelist.jsonWhitelisted players
bans.jsonBanned 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

  1. Start the server

    Run the launch command or the wrapper script and wait for the console to settle.

  2. Authenticate

    Type /auth login device in 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.

  3. Confirm it worked

    The console reports Authentication successful! with Mode: OAUTH_DEVICE. The manual notes that once authenticated, your server can accept player connections.

  4. Make a safety copy

    Once the server has written its first config and world, copy config.json and universe/ 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.

We are your new 5-Star Hosting Company. At least according to ★ Trustpilot

Following along with a Hytale server? Deploy yours in minutes.

All servers come with a 24-Hour Trial, Free Backups, and 40Gbps DDoS Protection included!

We offer quality support, a detailed knowledgebase, video tutorials on most topics, and even live support in case you prefer a live human.

Use code SAVE15 to take 15% OFF Your First Invoice with ChicagoServers! Limited Time!