Servidor dedicado de Hytale usando Docker, basado en el Manual Oficial de Hytale Server.
- Docker y Docker Compose instalados
- Licencia de Hytale (necesitas tener el juego comprado)
- 4GB RAM mínimo (recomendado 6GB+)
- Puerto 5520/UDP abierto en tu firewall/router
hytale-server/
├── Dockerfile # Imagen del servidor
├── docker-compose.yaml # Configuración de Docker
├── config.json # Configuración del servidor
├── permissions.json # Sistema de permisos
├── whitelist.json # Lista blanca de jugadores
├── bans.json # Jugadores baneados
├── Server/ # ⚠️ Archivos del servidor (ver paso 1)
│ ├── HytaleServer.jar
│ └── HytaleServer.aot
├── Assets.zip # ⚠️ Recursos del juego (ver paso 1)
├── universe/ # Datos del mundo (persistente)
├── logs/ # Logs del servidor
├── mods/ # Mods instalados
└── cache/ # Caché de archivos
Necesitas copiar los archivos desde tu instalación de Hytale:
# Abre la carpeta del juego
explorer "%appdata%\Hytale\install\release\package\game\latest"cd $XDG_DATA_HOME/Hytale/install/release/package/game/latestcd ~/Application\ Support/Hytale/install/release/package/game/latestCopia estos archivos a la carpeta del proyecto:
- 📁
Server/→ Toda la carpeta - 📦
Assets.zip→ El archivo ZIP
# Construir la imagen
docker compose build
# Iniciar el servidor
docker compose up -d
# Ver logs en tiempo real
docker compose logs -fEl servidor mostrará cuando esté listo:
===============================================================================================
Hytale Server Booted! [Multiplayer, Fresh Universe] took 10sec 185ms
===============================================================================================
El servidor requiere autenticación para aceptar conexiones de jugadores.
# Acceder a la consola del servidor
docker attach hytale-serverDentro de la consola, ejecuta:
/auth login device
Verás algo como:
===================================================================
DEVICE AUTHORIZATION
===================================================================
Visit: https://accounts.hytale.com/device
Enter code: ABCD-1234
===================================================================
Waiting for authorization (expires in 900 seconds)...
- 🌐 Abre el enlace en tu navegador
- 🔑 Ingresa el código mostrado
- 👤 Inicia sesión con tu cuenta de Hytale
- ✅ El servidor confirmará:
Authentication successful!
Para salir de la consola sin detener el servidor:
- Presiona
Ctrl+Py luegoCtrl+Q
Una vez autenticado, los jugadores pueden conectarse:
IP: tu-ip-publica
Puerto: 5520
New-NetFirewallRule -DisplayName "Hytale Server" -Direction Inbound -Protocol UDP -LocalPort 5520 -Action Allowsudo ufw allow 5520/udpsudo iptables -A INPUT -p udp --dport 5520 -j ACCEPTSi estás detrás de un router, configura el reenvío de puertos:
- Puerto externo: 5520
- Puerto interno: 5520
- Protocolo: UDP (¡NO TCP!)
- IP destino: IP local de tu servidor
Edita docker-compose.yaml para personalizar:
| Variable | Valor por defecto | Descripción |
|---|---|---|
JAVA_OPTS |
-Xms4G -Xmx4G |
Memoria RAM asignada |
SERVER_PORT |
5520 |
Puerto del servidor |
| Archivo | Descripción |
|---|---|
config.json |
Configuración general del servidor |
permissions.json |
Grupos y permisos de jugadores |
whitelist.json |
Lista blanca (si está habilitada) |
bans.json |
Jugadores baneados |
# Iniciar servidor
docker compose up -d
# Detener servidor
docker compose down
# Ver logs
docker compose logs -f
# Reiniciar servidor
docker compose restart
# Acceder a consola
docker attach hytale-server
# Ver estado
docker compose ps
# Reconstruir imagen (después de actualizar archivos)
docker compose build --no-cache
docker compose up -d- Descarga mods (
.zipo.jar) de CurseForge - Colócalos en la carpeta
mods/ - Reinicia el servidor:
docker compose restart
Ajusta según tus necesidades en docker-compose.yaml:
environment:
- JAVA_OPTS=-Xms4G -Xmx8G # Mínimo 4GB, máximo 8GBEl view distance afecta directamente el uso de RAM. Recomendado: 12 chunks (384 bloques).
El servidor usa AOT Cache (HytaleServer.aot) para arranques más rápidos. Ya está configurado por defecto.
- Verifica que
Server/yAssets.zipexistan - Revisa los logs:
docker compose logs
- ¿El servidor está autenticado? (
/auth login device) - ¿Puerto 5520/UDP abierto en firewall?
- ¿Port forwarding configurado en router?
- Recuerda: Hytale usa UDP, no TCP
- Aumenta
JAVA_OPTSen docker-compose.yaml - Verifica que tu sistema tenga suficiente RAM disponible
- Cada licencia tiene límite de 100 servidores
- Contacta a Hytale si necesitas más capacidad
Este proyecto es solo una guía de configuración. Hytale es propiedad de Hypixel Studios.
¿Problemas? Abre un issue o consulta la documentación oficial.
sudo groupadd --system hytale sudo useradd --system --gid hytale --home /opt/hytale --shell /usr/sbin/nologin hytale usermod -s /bin/bash hytale
curl -fsSL -o hytale-downloader.zip https://downloader.hytale.com/hytale-downloader.zip unzip hytale-downloader.zip
./hytale-downloader-linux-amd64
sudo apt update sudo apt install -y wget tar
sudo mkdir -p /opt/java
wget -O /tmp/openjdk-25.tar.gz https://github.com/adoptium/temurin25-binaries/releases/download/jdk-25.0.1+8/OpenJDK25U-jdk_x64_linux_hotspot_25.0.1_8.tar.gz
sudo tar -xzf /tmp/openjdk-25.tar.gz -C /opt/java sudo mv /opt/java/jdk-25.0.1+8 /opt/java/openjdk
export PATH=/opt/java/openjdk/bin:$PATH
java --version
/opt/java/openjdk/bin/java -Xms4G -Xmx4G -XX:AOTCache=/opt/hytale/Server/HytaleServer.aot -jar /opt/hytale/Server/HytaleServer.jar --assets /opt/hytale/Assets.zip --bind 0.0.0.0:5520
su - hytale -s /bin/bash -c "/opt/java/openjdk/bin/java -Xms4G -Xmx4G -XX:AOTCache=/opt/hytale/Server/HytaleServer.aot -jar /opt/hytale/Server/HytaleServer.jar --assets /opt/hytale/Assets.zip --bind 0.0.0.0:5520"
[Unit]
Description=Hytale Dedicated Server
After=network.target
[Service]
Type=simple
User=hytale
Group=hytale
WorkingDirectory=/opt/hytale
ExecStart=/opt/java/openjdk/bin/java -Xms4G -Xmx4G -XX:AOTCache=/opt/hytale/Server/HytaleServer.aot -jar /opt/hytale/Server/HytaleServer.jar --assets /opt/hytale/Assets.zip --bind 0.0.0.0:5520
Restart=on-failure
RestartSec=10
LimitNOFILE=4096
[Install]
WantedBy=multi-user.target
/auth login device
/auth persistence EnEncrypted
/auth status