How to Set Up a Hytale Server on Ubuntu

Install Java 25, download and authenticate a Hytale dedicated server on Ubuntu or Linux, open UDP 5520, and run it with systemd.

Last updated: 2026-08-24

This guide turns the official Hytale dedicated-server workflow into a practical Linux installation. The Hytale server supports x64 and arm64 machines, requires Java 25, and needs at least 4 GB of memory. Treat that memory figure as an installation floor rather than a promise that every world will run well at 4 GB.

Before you install

You need:

  • A supported 64-bit Linux host with at least 4 GB of RAM.
  • Java 25. The official manual recommends an Adoptium build.
  • A Hytale account that can authenticate the server.
  • Administrative access for installing Java and opening the firewall.
  • Enough disk space for the application, Assets.zip, worlds, logs, updates, and multiple backups.

Check the installed runtime first:

java --version

Do not continue if the command reports Java 21, 17, or another older release. Package names differ between Ubuntu versions, so use the current Java 25 instructions from your chosen vendor rather than substituting an older distribution package.

1. Create a dedicated account and directory

Do not run an internet-facing game server as root. Create a service account and an application directory using your distribution's normal administration workflow. A common layout is:

/opt/hytale-server/
  HytaleServer.jar
  Assets.zip
  mods/
  universe/
  logs/

Give the service account ownership of the server directory. Keep backups outside that directory so a failed update or accidental deletion cannot remove the live world and its only backup together.

2. Obtain the current server files

For a quick local test, the server files can be copied from a launcher installation. On Linux, the official manual identifies the release package beneath:

$XDG_DATA_HOME/Hytale/install/release/package/game/latest

For a server intended to stay online, use the official Hytale Downloader CLI or bootstrap workflow. These provide a more maintainable update path than repeatedly copying files from a desktop installation.

With HytaleServer.jar and Assets.zip in the working directory, the direct launch command is:

java -XX:AOTCache=HytaleServer.aot -jar HytaleServer.jar --assets Assets.zip

If the supplied AOT cache is not present, consult the current official manual before removing the option. Keep the JAR, asset archive, and cache from the same release.

3. Authenticate the server

At the server console, begin the official device flow:

/auth login device

Open the official URL printed in the console and enter the temporary code. Codes expire, so start a new device flow instead of reusing a failed code. For an unattended server, review the official Server Provider Authentication Guide before choosing encrypted persistence or a provider-token workflow.

Never publish auth.enc, auth.key, identity tokens, session tokens, or device codes. Exclude them from support bundles, screenshots, repositories, and backups shared with other people.

4. Open the Hytale UDP port

Hytale uses QUIC over UDP. The default bind is 0.0.0.0:5520, so an Ubuntu host using UFW normally needs:

sudo ufw allow 5520/udp
sudo ufw status

If you select a different port, use the same UDP value in the launch bind, UFW rule, cloud security group, router forwarding rule, and player address. A TCP-only rule will not carry the game connection.

Cloud providers often have a second network firewall outside the virtual machine. Opening UFW does not automatically open an AWS, Azure, Google Cloud, or hosting-panel firewall.

5. Run Hytale with systemd

The following is a Hytale Server Tools template, not an official Hypixel unit file. Replace the user, group, Java path, and directory with values verified on your host.

[Unit]
Description=Hytale Dedicated Server
After=network-online.target
Wants=network-online.target

[Service]
Type=simple
User=hytale
Group=hytale
WorkingDirectory=/opt/hytale-server
ExecStart=/usr/bin/java -XX:AOTCache=HytaleServer.aot -jar HytaleServer.jar --assets Assets.zip
Restart=on-failure
RestartSec=10
TimeoutStopSec=120

[Install]
WantedBy=multi-user.target

Save it as /etc/systemd/system/hytale.service, then reload, enable, and start it:

sudo systemctl daemon-reload
sudo systemctl enable --now hytale
sudo systemctl status hytale

Follow console output with:

journalctl -u hytale -f

Use the in-server shutdown command whenever possible before maintenance. A forced process termination can interrupt a world save.

6. Verify before inviting players

Test in a controlled order:

  1. Confirm the service stays active and authentication succeeds.
  2. Check that the expected UDP port is bound.
  3. Connect locally or from the same private network.
  4. Connect from a genuinely external network.
  5. Review logs/ and the system journal after any failure.

Back up universe/, configuration, permissions, whitelist, bans, mods, and authentication material according to their sensitivity. Then schedule updates and test a restore before the server becomes important to players.

Official references

Related pages