Hytale Advanced Server Configuration
This guide covers advanced Hytale server configuration including complete configuration file references, world pre-generation, 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 |
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
Main Server Configuration (config.json)
{
"ServerName": "My Hytale Server",
"MOTD": "Welcome to my server!",
"MaxPlayers": 20,
"ViewDistance": 12,
"SimulationDistance": 10,
"WhitelistEnabled": false,
"Difficulty": "Normal",
"DefaultGameMode": "Survival",
"AllowFlight": false,
"SpawnProtection": 16,
"EnableCommandBlock": false,
"MaxWorldSize": 29999984,
"NetworkCompressionThreshold": 256,
"PlayerIdleTimeout": 0,
"PreventProxyConnections": false,
"EnableQuery": false,
"QueryPort": 5521,
"RCON": {
"Enabled": false,
"Port": 5522,
"Password": ""
},
"Backups": {
"Enabled": true,
"FrequencyMinutes": 60,
"MaxBackups": 24,
"Directory": "./backups"
}
}
| Setting | Description |
|---|---|
ServerName |
Name displayed to players |
MOTD |
Message of the day shown on connection |
MaxPlayers |
Maximum concurrent players |
ViewDistance |
How far players can see (chunks) |
SimulationDistance |
How far entities are active |
WhitelistEnabled |
Restrict to approved players |
Difficulty |
Peaceful, Easy, Normal, Hard |
DefaultGameMode |
Survival, Creative, Adventure |
SpawnProtection |
Protected radius around spawn (blocks) |
PlayerIdleTimeout |
Kick idle players after X minutes (0 = disabled) |
NetworkCompressionThreshold |
Packet compression threshold |
World Configuration (universe/worlds/[WorldName]/config.json)
{
"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",
"RequiredPlugins": {},
"IsSpawningNPC": true,
"IsSpawnMarkersEnabled": true,
"IsAllNPCFrozen": false,
"GameplayConfig": "Default",
"IsCompassUpdating": true,
"IsSavingPlayers": true,
"IsSavingChunks": 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 |
IsUnloadingChunks |
Unload empty chunks |
DeleteOnUniverseStart |
Delete world on server start |
DeleteOnRemove |
Delete world files when removed |
Permissions Configuration (permissions.json)
{
"Groups": {
"default": {
"DisplayName": "Player",
"Prefix": "",
"Permissions": [
"hytale.chat",
"hytale.build",
"hytale.break",
"hytale.interact",
"hytale.command.help",
"hytale.command.spawn",
"hytale.command.home"
],
"Inheritance": []
},
"vip": {
"DisplayName": "VIP",
"Prefix": "[VIP] ",
"Permissions": [
"hytale.command.fly",
"hytale.command.nick",
"hytale.bypass.afk"
],
"Inheritance": ["default"]
},
"moderator": {
"DisplayName": "Moderator",
"Prefix": "[MOD] ",
"Permissions": [
"hytale.command.kick",
"hytale.command.mute",
"hytale.command.warn",
"hytale.command.tp",
"hytale.command.tphere",
"hytale.command.vanish",
"hytale.bypass.spam"
],
"Inheritance": ["vip"]
},
"admin": {
"DisplayName": "Admin",
"Prefix": "[ADMIN] ",
"Permissions": [
"hytale.command.ban",
"hytale.command.unban",
"hytale.command.give",
"hytale.command.gamemode",
"hytale.command.time",
"hytale.command.weather",
"hytale.command.whitelist"
],
"Inheritance": ["moderator"]
},
"owner": {
"DisplayName": "Owner",
"Prefix": "[OWNER] ",
"Permissions": [
"*"
],
"Inheritance": []
}
},
"Players": {
"your-uuid-here": {
"Group": "owner",
"AdditionalPermissions": []
},
"friend-uuid-here": {
"Group": "admin",
"AdditionalPermissions": [
"hytale.command.stop"
]
}
}
}
*grants all permissionsInheritancelets groups build on each otherAdditionalPermissionsadds extra permissions to specific players beyond their group- Changes require a server restart
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.
{
"Network": {
"Mode": "mesh",
"ServerId": "lobby-1",
"SharedSecret": "your-secure-secret-key-here"
},
"Referrals": {
"Enabled": true,
"Targets": {
"survival": {
"Host": "survival.myserver.com",
"Port": 5520,
"DisplayName": "Survival World"
},
"creative": {
"Host": "creative.myserver.com",
"Port": 5520,
"DisplayName": "Creative World"
},
"minigames": {
"Host": "games.myserver.com",
"Port": 5520,
"DisplayName": "Minigames"
}
}
},
"Redirect": {
"Enabled": true,
"DefaultTarget": "lobby",
"Rules": [
{
"Condition": "ServerFull",
"Target": "lobby-2"
},
{
"Condition": "Maintenance",
"Target": "maintenance"
}
]
},
"Fallback": {
"Enabled": true,
"Server": {
"Host": "lobby.myserver.com",
"Port": 5520
}
}
}
| Feature | Description |
|---|---|
| Player Referral | Transfer players between servers seamlessly |
| Connection Redirect | Redirect during handshake before full connection |
| Disconnect Fallback | Auto-reconnect to fallback if server crashes |
Security: Referral payloads pass through the client. Use SharedSecret to cryptographically sign payloads 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 | 60 |
--disable-sentry |
Disable crash reporting | Enabled |
--allow-op |
Allow operator commands | Disabled |
--accept-early-plugins |
Load experimental plugins | 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
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