Hytale gameplay

Host a Hytale Dedicated Server

Hytale is a block-based sandbox game that blends creative building with RPG adventure. Explore procedurally generated worlds filled with unique biomes, dungeons, and creatures. Build anything from simple homes to grand castles, craft items, and battle monsters. Create custom content with built-in modding tools, host your own servers, and shape the experience with plugins and mods.

Hardware Requirements

Here's what you need to run a Hytale dedicated server.

Economy

Small server, 1-5 players

CPU0.5 cores
RAM2 GB
Storage5 GB SSD

Standard

Community server, 5-16 players

CPU1 core
RAM4 GB
Storage5 GB SSD

Pro

Large server, 16-32 players

CPU2 cores
RAM8 GB
Storage5 GB SSD

Start hosting from your own computer

Run a Hytale server on your desktop, laptop, VPS, or dedicated machine — GameCP automates Docker setup, resource allocation, and Hytale configuration instantly. Automatic port forwarding means your friends can connect without touching your router. Start local, scale to a VPS when you're ready.

Get Started FreeNo credit card required

Setup in 4 Steps

Skip the manual installation, port forwarding, and configuration. Install on your own computer and start hosting instantly.

The Manual Way vs. GameCP

Manual Setup

  • Configure 2+ firewall ports and router settings
  • Write systemd service files
  • SSH into server to edit configs
  • Requires a VPS or dedicated server
  • 30-60 minutes if experienced

With GameCP

  • Automatic port forwarding — no router config
  • Host from your own PC, VPS, or dedicated server
  • Docker container with auto-restart
  • Visual config editor in browser
  • Under 5 minutes total

Under the Hood

The full manual process to host a Hytale dedicated server on a VPS. Or install GameCP on your own computer and skip all of this.

Step 1

Configure & Prepare

Set your server settings, then install Docker, and pull the Hytale container image.

Server ConfigurationEdit values to update all commands
terminal
# Update system and install Docker
sudo apt update && sudo apt install -y docker.io
sudo systemctl enable --now docker

# Create game server directory
sudo mkdir -p /opt/gameserver

# Server configuration
export MOTD="Welcome to my server"
export ASSET_PACK="Assets.zip"
export AUTOMATIC_UPDATE="1"
export PATCHLINE="release"
export ENABLE_SOURCE_QUERY_SUPPORT="1"
export ENFORCE_PERMISSIONS="0"
export MAX_VIEW_RADIUS="12"
export DEFAULT_WORLD="default"
export DEFAULT_GAMEMODE="ADVENTURE"
export ALLOW_OP="0"
export AUTH_MODE="AUTHENTICATED"
export USE_PERSISTENT_AUTHENTICATION="DISABLED"
export ACCEPT_EARLY_PLUGINS="0"
export BACKUP_FREQUENCY="30"
export ENABLE_BACKUPS="0"
export MAXIMUM_BACKUPS="5"
export JVM_ARGS="-XX:+UseCompressedOops -XX:+UseCompressedClassPointers -XX:-UseCompactObjectHeaders -XX:+UseG1GC -XX:+UseStringDeduplication -Xlog:aot"
export LEVERAGE_AHEAD_OF_TIME_CACHE="1"
export MEMORY_OVERHEAD="0"
export FORCE_NETWORK_FLUSH="0"
export NETWORK_COMPRESSION="1"
export DISABLE_SENTRY="1"
export EVENT_DEBUG="0"
export VALIDATE_WORLD_GENERATION="0"
export VALIDATE_ASSETS="0"

# Pull the container image
docker pull ghcr.io/natroutter/egg-hytale:latest
Step 2

Run the Installation Script

Hytale uses a custom install script to download and configure the server files.

Installation Script
#!/bin/bash
set -e

DOWNLOAD_URL="https://downloader.hytale.com/hytale-downloader.zip"
DOWNLOAD_FILE="hytale-downloader.zip"

ARCH="$(uname -m)"

echo "Platform: ${ARCH}"
echo "Installing base dependencies..."

apt update
apt install -y curl unzip jq

# ARM-only setup for running amd64 downloader
if [ "${ARCH}" = "aarch64" ]; then
    echo "ARM64 detected, enabling amd64 emulation with QEMU..."

    apt install -y qemu-user-static

    dpkg --add-architecture amd64 || true
    apt update || true
    apt install -y libc6:amd64 || true
fi

cd /opt/gameserver

echo "Starting Hytale downloader installation..."
echo "Downloading hytale-downloader.zip..."

curl -L -o "${DOWNLOAD_FILE}" "${DOWNLOAD_URL}"
if [ $? -ne 0 ]; then
    echo "Error: Failed to download ${DOWNLOAD_URL}"
    exit 1
fi

echo "Extracting ${DOWNLOAD_FILE}..."
unzip -o "${DOWNLOAD_FILE}"
if [ $? -ne 0 ]; then
    echo "Error: Failed to extract ${DOWNLOAD_FILE}"
    exit 1
fi

echo "Cleaning up..."
rm -f "${DOWNLOAD_FILE}" QUICKSTART.md hytale-downloader-windows-amd64.exe

chmod +x ./hytale-downloader-linux-amd64

# ARM wrapper setup
if [ "${ARCH}" = "aarch64" ]; then
    echo "Setting up QEMU wrapper for amd64 downloader..."

    cp /usr/bin/qemu-x86_64-static ./qemu-x86_64-static

    cat > ./hytale-downloader-linux-arm64 << 'EOF'
#!/bin/bash
set -e

REAL_BIN="/opt/gameserver/hytale-downloader-linux-amd64"
QEMU_LOCAL="/opt/gameserver/qemu-x86_64-static"

if [ -x "$QEMU_LOCAL" ]; then
    exec "$QEMU_LOCAL" "$REAL_BIN" "$@"
else
    exec /usr/bin/qemu-x86_64-static "$REAL_BIN" "$@"
fi
EOF

    chmod +x ./hytale-downloader-linux-arm64
fi

# Install Source Query plugin (direct URL, no GitHub API)
if [ "${ENABLE_SOURCE_QUERY_SUPPORT}" = "1" ]; then
    echo "Installing Source Query plugin..."
    mkdir -p /opt/gameserver/mods
    curl -sSL -o /opt/gameserver/mods/hytale-sourcequery.jar \
        "https://github.com/physgun-com/hytale-sourcequery/releases/download/v1.1.0/sourcequery.jar"
    if [ -f /opt/gameserver/mods/hytale-sourcequery.jar ]; then
        echo "Source Query plugin installed successfully!"
    else
        echo "Warning: Source Query plugin download may have failed"
    fi
fi

echo "Installation complete!"
Step 3

Open Firewall Ports

Hytale requires 2 ports to be open for game traffic and queries.

terminal
sudo ufw allow 5520/udp
sudo ufw allow 5521/udp
5520/UDP(PORT)5521/UDP(QUERY_PORT)
Step 4

Launch the Server

Start the Hytale server using the configuration from Step 1.

terminal
docker run -d \
  --name hytale-server \
  -p 5520:5520/udp \
  -p 5521:5521/udp \
  -e MOTD="Welcome to my server" \
  -e ASSET_PACK="Assets.zip" \
  -e AUTOMATIC_UPDATE="1" \
  -e PATCHLINE="release" \
  -e ENABLE_SOURCE_QUERY_SUPPORT="1" \
  -e ENFORCE_PERMISSIONS="0" \
  -e MAX_VIEW_RADIUS="12" \
  -e DEFAULT_WORLD="default" \
  -e DEFAULT_GAMEMODE="ADVENTURE" \
  -e ALLOW_OP="0" \
  -e AUTH_MODE="AUTHENTICATED" \
  -e USE_PERSISTENT_AUTHENTICATION="DISABLED" \
  -e ACCEPT_EARLY_PLUGINS="0" \
  -e BACKUP_FREQUENCY="30" \
  -e ENABLE_BACKUPS="0" \
  -e MAXIMUM_BACKUPS="5" \
  -e JVM_ARGS="-XX:+UseCompressedOops -XX:+UseCompressedClassPointers -XX:-UseCompactObjectHeaders -XX:+UseG1GC -XX:+UseStringDeduplication -Xlog:aot" \
  -e LEVERAGE_AHEAD_OF_TIME_CACHE="1" \
  -e MEMORY_OVERHEAD="0" \
  -e FORCE_NETWORK_FLUSH="0" \
  -e NETWORK_COMPRESSION="1" \
  -e DISABLE_SENTRY="1" \
  -e EVENT_DEBUG="0" \
  -e VALIDATE_WORLD_GENERATION="0" \
  -e VALIDATE_ASSETS="0" \
  -v /opt/gameserver:/opt/gameserver \
  -w /opt/gameserver \
  ghcr.io/natroutter/egg-hytale:latest \
  chmod +x ./start.sh && ./start.sh

Alternative startup profiles:

  • G1GC OptimizedTuned G1 garbage collector for servers with 10+ players. Reduces lag spikes and improves tick consistency.
  • ZGC Low LatencyZ Garbage Collector for ultra-low pause times. Best for competitive or latency-sensitive servers. Requires Java 21+.
  • G1GC + AOT CacheG1GC tuning with Ahead-of-Time compilation cache for faster server startup. Requires initial warmup run.

GameCP lets you switch between these profiles with one click.

Or skip all of this

GameCP automates every step above: Docker, port forwarding, startup, and config. Install on your own PC and deploy a Hytale server in under 5 minutes.

Deploy with GameCP

Ready to Host Your Hytale Server?

Install GameCP on your own computer and start hosting in minutes. Automatic port forwarding, zero config — your friends connect instantly.

No credit card required · Free tier available · Install local, scale later

Deploy Free