Hytale Advanced Server Configuration
This guide covers advanced Hytale server configuration including world settings, command-line arguments, and server mesh architecture.
Important: Always back up your server files before making configuration changes. Stop your server before editing any configuration files.
Configuration File Locations
| File | Location | Purpose |
|---|---|---|
config.json |
Server root folder | Main server settings |
permissions.json |
Server root folder | Player roles and permissions |
bans.json |
Server root folder | Banned player list |
whitelist.json |
Server root folder | Allowed players list |
config.json |
universe/worlds/[WorldName]/ |
Per-world settings |
Server Configuration (config.json)
The main config.json in your server root controls server-wide settings:
{
"Version": 3,
"ServerName": "Hytale Server",
"MOTD": "",
"Password": "",
"MaxPlayers": 100,
"MaxViewRadius": 32,
"LocalCompressionEnabled": false,
"Defaults": {
"World": "default",
"GameMode": "Adventure"
},
"ConnectionTimeouts": {
"JoinTimeouts": {}
},
"RateLimit": {},
"Modules": {},
"LogLevels": {},
"Mods": {},
"DisplayTmpTagsInStrings": false,
"PlayerStorage": {
"Type": "Hytale"
}
}
| Setting | Description | Recommended |
|---|---|---|
ServerName |
Display name shown to players | Your server name |
MOTD |
Message of the day | Short welcome message |
Password |
Server password (empty = no password) | Leave empty for public |
MaxPlayers |
Maximum concurrent players | Based on RAM (20-50 typical) |
MaxViewRadius |
How far players can see (in chunks) | 12 for performance |
LocalCompressionEnabled |
Enable local network compression | false |
Defaults.World |
Default world name players spawn in | "default" |
Defaults.GameMode |
Default game mode for new players | "Adventure" or "Creative" |
Performance Tip: The official Hytale manual recommends limiting MaxViewRadius to 12 chunks (384 blocks) for both performance and gameplay. The default of 32 is equivalent to roughly 64 Minecraft chunks and will significantly increase RAM usage.
Editing Configuration Files
For Survival Servers Customers
- Log into your control panel
- Click Stop to shut down your server
- Click Configuration Files or use FTP Access
- Edit the desired file and save
- Click Start to restart your server
For Self-Hosted Servers
- Stop your server (type
stopor pressCtrl+C) - Open the config file in a text editor
- Make your changes and save
- Start your server
World Configuration (universe/worlds/[WorldName]/config.json)
Each world has its own configuration file. Below is the documented world config structure:
{
"Version": 4,
"UUID": {
"$binary": "j2x/idwTQpen24CDfH1+OQ==",
"$type": "04"
},
"Seed": 1767292261384,
"WorldGen": {
"Type": "Hytale",
"Name": "Default"
},
"WorldMap": {
"Type": "WorldGen"
},
"ChunkStorage": {
"Type": "Hytale"
},
"ChunkConfig": {},
"IsTicking": true,
"IsBlockTicking": true,
"IsPvpEnabled": false,
"IsFallDamageEnabled": true,
"IsGameTimePaused": false,
"GameTime": "0001-01-01T08:26:59.761606129Z",
"ClientEffects": {
"SunHeightPercent": 100.0,
"SunAngleDegrees": 0.0,
"BloomIntensity": 0.30000001192092896,
"BloomPower": 8.0,
"SunIntensity": 0.25,
"SunshaftIntensity": 0.30000001192092896,
"SunshaftScaleFactor": 4.0
},
"RequiredPlugins": {},
"IsSpawningNPC": true,
"IsSpawnMarkersEnabled": true,
"IsAllNPCFrozen": false,
"GameplayConfig": "Default",
"IsCompassUpdating": true,
"IsSavingPlayers": true,
"IsSavingChunks": true,
"SaveNewChunks": true,
"IsUnloadingChunks": true,
"IsObjectiveMarkersEnabled": true,
"DeleteOnUniverseStart": false,
"DeleteOnRemove": false,
"ResourceStorage": {
"Type": "Hytale"
},
"Plugin": {}
}
| Setting | Description |
|---|---|
Seed |
World generation seed |
IsPvpEnabled |
Allow player vs player combat |
IsFallDamageEnabled |
Players take fall damage |
IsGameTimePaused |
Freeze day/night cycle |
IsSpawningNPC |
Enable mob spawning |
IsAllNPCFrozen |
Freeze all NPCs in place |
IsTicking |
World simulation runs |
IsBlockTicking |
Block updates (crops, liquids) |
IsSavingPlayers |
Save player data |
IsSavingChunks |
Save world changes |
SaveNewChunks |
Save newly generated chunks to disk |
IsUnloadingChunks |
Unload empty chunks |
ClientEffects |
Visual effects settings (sun, bloom, sunshafts) |
DeleteOnUniverseStart |
Delete world on server start |
DeleteOnRemove |
Delete world files when removed |
World Pre-Generation
Pre-generating creates terrain ahead of time, reducing lag when players explore.
Method 1: In-Game Exploration
- Start your server and log in as admin
- Fly around the map to generate chunks
- The server saves chunks as you explore
Method 2: Pre-Generation Mods
- Add a pre-gen mod to your
mods/folder - Configure the area size and center point
- Run the pre-generation command
Method 3: Command-Line
java -jar HytaleServer.jar --help
Check for built-in pre-generation options.
Server Mesh Architecture (Multi-Server Networks)
Hytale has built-in support for connecting multiple servers together without third-party proxies like BungeeCord.
These features are implemented via the server's Java API:
| Feature | API Method | Description |
|---|---|---|
| Player Referral | PlayerRef.referToServer(host, port, payload) |
Transfer players between servers with optional 4KB payload |
| Connection Redirect | PlayerSetupConnectEvent.referToServer(host, port) |
Redirect during handshake before full connection |
| Disconnect Fallback | Coming soon | Auto-reconnect to fallback if server crashes |
Security: Referral payloads pass through the client and can be tampered with. Sign payloads cryptographically (e.g., HMAC with a shared secret) so receiving servers can verify authenticity.
Custom Proxies: Build proxy servers using Netty QUIC. Packet definitions available in HytaleServer.jar at com.hypixel.hytale.protocol.packets.
Command-Line Arguments
java [JVM options] -jar HytaleServer.jar [server options]
JVM Options
| Option | Description | Example |
|---|---|---|
-Xms |
Initial memory allocation | -Xms4G
|
-Xmx |
Maximum memory allocation | -Xmx4G
|
-XX:+UseG1GC |
Use G1 garbage collector | Recommended for 8GB+ |
-XX:AOTCache |
Use AOT cache for faster startup | -XX:AOTCache=HytaleServer.aot
|
Server Options
| Option | Description | Default |
|---|---|---|
--assets <path> |
Path to Assets.zip (required) | None |
--bind <ip:port> |
Address and port to listen on | 0.0.0.0:5520 |
--auth-mode <mode> |
authenticated or offline |
authenticated |
--backup |
Enable automatic backups | Disabled |
--backup-dir <path> |
Backup storage location | ./backups |
--backup-frequency <mins> |
Backup interval in minutes | 60 |
--disable-sentry |
Disable crash reporting | Enabled |
--allow-op |
Allow operator commands | Disabled |
--accept-early-plugins |
Load experimental plugins (unsupported) | Disabled |
Example Launch Scripts
Production server (Windows - start.bat):
@echo off java -Xms6G -Xmx6G -XX:+UseG1GC -XX:AOTCache=HytaleServer.aot -jar HytaleServer.jar --assets Assets.zip --backup --backup-frequency 60 pause
Production server (Linux - start.sh):
#!/bin/bash java -Xms6G -Xmx6G -XX:+UseG1GC -XX:AOTCache=HytaleServer.aot -jar HytaleServer.jar --assets Assets.zip --backup --backup-frequency 60
Development server:
java -Xms4G -Xmx4G -jar HytaleServer.jar --assets Assets.zip --auth-mode offline --disable-sentry
Firewall Configuration
Hytale uses QUIC protocol over UDP (not TCP).
Windows PowerShell:
New-NetFirewallRule -DisplayName "Hytale Server" -Direction Inbound -Protocol UDP -LocalPort 5520 -Action Allow
Linux (iptables):
sudo iptables -A INPUT -p udp --dport 5520 -j ACCEPT
Linux (ufw):
sudo ufw allow 5520/udp
See Also
- How to Create a Hytale Server Guide
- How to Join a Hytale Server
- How to Install Mods on a Hytale Server
- Official Hytale Website
- Hytale Support & Documentation
- Rent a Hytale Server from Survival Servers