Hytale Advanced Server Configuration
This guide covers advanced Hytale server configuration for experienced administrators. Topics include world pre-generation, server mesh architecture, and detailed JSON configuration options.
Before You Start
This guide assumes you're familiar with:
- Basic Hytale server setup (see How to Create a Hytale Server Guide)
- Editing JSON files
- Using FTP or file management tools
Important: Always back up your server files before making configuration changes. Stop your server before editing any configuration files.
Server Configuration Files
Your Hytale server uses several JSON files to control its behavior:
| File | Purpose |
|---|---|
config.json |
Main server settings (name, max players, network settings) |
permissions.json |
Player roles, permissions, and admin access |
bans.json |
Banned player list |
whitelist.json |
Allowed players (when whitelist is enabled) |
universe/worlds/[WorldName]/config.json |
Per-world settings |
Main Server Configuration (config.json)
The main config.json file controls your server's core settings.
For Survival Servers Customers
- Log into your control panel
- Click Configuration Files or Config Editor
- Select
config.json - Make your changes and click Save
- Restart your server
For Self-Hosted Servers
- Stop your server
- Open
config.jsonin a text editor - Make your changes and save
- Start your server
Common Server Settings
{
"ServerName": "My Hytale Server",
"MaxPlayers": 20,
"MOTD": "Welcome to my server!",
"ViewDistance": 12,
"SimulationDistance": 10,
"WhitelistEnabled": false,
"Difficulty": "Normal"
}
| Setting | Description | Recommended Value |
|---|---|---|
ServerName |
Name shown to players | Your server name |
MaxPlayers |
Maximum concurrent players | Based on your RAM (10-20 for 4GB, 20-40 for 8GB) |
ViewDistance |
How far players can see (in chunks) | 12 (default is higher but uses more RAM) |
SimulationDistance |
How far entities are active | 8-10 for better performance |
WhitelistEnabled |
Restrict to approved players only | false (public) or true (private) |
Performance Tip: Lowering ViewDistance from the default significantly reduces RAM usage. The default of 384 blocks equals roughly 24 Minecraft chunks. A value of 12 chunks (384 blocks) is recommended for both performance and gameplay.
World Configuration
Each world has its own configuration file located at universe/worlds/[WorldName]/config.json.
World Config Options
{
"Version": 4,
"Seed": 1767292261384,
"WorldGen": {
"Type": "Hytale",
"Name": "Default"
},
"IsTicking": true,
"IsBlockTicking": true,
"IsPvpEnabled": false,
"IsFallDamageEnabled": true,
"IsGameTimePaused": false,
"IsSpawningNPC": true,
"IsSpawnMarkersEnabled": true,
"IsAllNPCFrozen": false,
"GameplayConfig": "Default",
"IsSavingPlayers": true,
"IsSavingChunks": true,
"IsUnloadingChunks": true
}
| Setting | What It Does |
|---|---|
Seed |
World generation seed (determines terrain layout) |
IsPvpEnabled |
Allow players to damage each other |
IsFallDamageEnabled |
Players take damage from falling |
IsSpawningNPC |
Enable/disable mob spawning |
IsAllNPCFrozen |
Freeze all NPCs (useful for building) |
IsGameTimePaused |
Stop day/night cycle |
IsSavingChunks |
Save world changes (disable for temporary worlds) |
IsUnloadingChunks |
Unload chunks when players leave (saves RAM) |
World Pre-Generation
Pre-generating your world creates terrain ahead of time, reducing lag when players explore new areas.
Why Pre-Generate?
- Reduces lag spikes - New chunks are already generated
- Smoother gameplay - No stuttering when exploring
- Better for events - Prepare large areas in advance
- Consistent performance - Server load is predictable
Pre-Generation Methods
Method 1: In-Game Exploration
The simplest method is to explore the world before opening to players:
- Start your server
- Log in as admin
- Fly around the map to generate chunks
- The server saves chunks as you explore
Method 2: Using World Generation Tools
When available, dedicated pre-generation tools or mods can generate large areas automatically:
- Install a pre-generation mod/plugin
- Configure the area size and center point
- Run the pre-generation command
- Wait for completion (can take hours for large areas)
Method 3: Command-Line Pre-Generation
Check java -jar HytaleServer.jar --help for pre-generation options. These may include flags to generate chunks without running the full server.
Pre-Generation Tips
- Start small - Generate a 5000x5000 block area first
- Monitor resources - Pre-generation is CPU and storage intensive
- Schedule during off-hours - Run overnight when no players are online
- Backup first - Always backup before major generation tasks
Server Mesh Architecture (Multi-Server Networks)
Hytale has built-in support for connecting multiple servers together without third-party proxies like BungeeCord.
Use Cases for Server Meshes
- Hub/Lobby servers - Central spawn with portals to game servers
- Minigame networks - Different servers for different game modes
- Load distribution - Spread players across multiple servers
- Regional routing - Direct players to nearest server
Player Referral (Server Transfers)
Transfer connected players from one server to another seamlessly.
How it works:
- Player is on Server A
- Server A sends a referral packet with target server info
- Client disconnects from Server A
- Client automatically connects to Server B
- Optional: Server A can send a 4KB payload to Server B
Configuration example:
{
"Referrals": {
"Enabled": true,
"Targets": {
"minigames": {
"Host": "minigames.myserver.com",
"Port": 5520
},
"survival": {
"Host": "survival.myserver.com",
"Port": 5521
}
}
}
}
Security Note: Referral payloads pass through the client and can be tampered with. Use cryptographic signing (HMAC with shared secret) to verify payload authenticity on the receiving server.
Connection Redirect (Load Balancing)
Redirect players during connection handshake before they fully join.
Use cases:
- Load balancing across multiple servers
- Regional routing based on player location
- Enforcing lobby-first connections
- Maintenance mode redirects
How it works:
- Player connects to Server A
- During handshake, Server A checks conditions
- If needed, Server A rejects with redirect address
- Client automatically connects to the redirect target
Disconnect Fallback
Automatically reconnect players to a fallback server if their current server crashes.
Use cases:
- Return players to lobby after game server crash
- Maintain player engagement during restarts
- Graceful handling of server issues
Configuration:
{
"Fallback": {
"Enabled": true,
"Server": {
"Host": "lobby.myserver.com",
"Port": 5520
}
}
}
Building a Custom Proxy
For advanced networks, you can build custom proxy servers using Netty QUIC.
Key information:
- Hytale uses QUIC protocol exclusively for client-server communication
- Packet definitions are available in
HytaleServer.jaratcom.hypixel.hytale.protocol.packets - Use these to decode, inspect, modify, or forward traffic
Note: Building proxies requires Java development experience and understanding of the QUIC protocol.
Command-Line Arguments
Advanced launch options for fine-tuning your server:
| Argument | Description |
|---|---|
--assets <path> |
Path to Assets.zip (required) |
--bind <ip:port> |
Address and port to listen on (default: 0.0.0.0:5520) |
--auth-mode <mode> |
Authentication mode: authenticated or offline
|
--backup |
Enable automatic backups |
--backup-dir <path> |
Where to store backups |
--backup-frequency <mins> |
Backup interval in minutes |
--disable-sentry |
Disable crash reporting (for development) |
--allow-op |
Allow operator commands |
--accept-early-plugins |
Load experimental plugins (unsupported) |
Example Launch Commands
Production server with backups:
java -Xms6G -Xmx6G -jar HytaleServer.jar --assets Assets.zip --backup --backup-frequency 60 --backup-dir ./backups
Development server (offline mode, no crash reporting):
java -Xms4G -Xmx4G -jar HytaleServer.jar --assets Assets.zip --auth-mode offline --disable-sentry
Custom port binding:
java -Xms4G -Xmx4G -jar HytaleServer.jar --assets Assets.zip --bind 0.0.0.0:25565
Performance Optimization
JVM Tuning
Beyond basic -Xms and -Xmx flags, consider these optimizations:
Using the AOT Cache (Faster Startup):
Hytale includes a pre-trained AOT (Ahead-of-Time) cache that speeds up server boot time:
java -XX:AOTCache=HytaleServer.aot -Xms4G -Xmx4G -jar HytaleServer.jar --assets Assets.zip
Garbage Collection Tuning:
For servers with 8GB+ RAM, consider G1GC tuning:
java -Xms8G -Xmx8G -XX:+UseG1GC -XX:MaxGCPauseMillis=50 -jar HytaleServer.jar --assets Assets.zip
Resource Usage Guidelines
| Resource | What Increases Usage | How to Reduce |
|---|---|---|
| CPU | High player count, many entities (NPCs, mobs) | Reduce mob spawning, limit entity counts |
| RAM | Large view distance, players spread out | Lower view distance, enable chunk unloading |
| Storage | Large worlds, frequent backups | Pre-generation limits, backup rotation |
| Network | High player count, high tick rate | Optimize player cap, use compression |
Permissions Configuration
The permissions.json file controls who can do what on your server.
Basic Structure
{
"Groups": {
"default": {
"Permissions": ["hytale.chat", "hytale.build"],
"Inheritance": []
},
"moderator": {
"Permissions": ["hytale.kick", "hytale.mute"],
"Inheritance": ["default"]
},
"admin": {
"Permissions": ["*"],
"Inheritance": ["moderator"]
}
},
"Players": {
"player-uuid-here": {
"Group": "admin"
}
}
}
Permission Tips
- Use
*for all permissions (admin only) - Inheritance lets groups build on each other
- Player-specific permissions override group permissions
- Changes require server restart to take effect
Troubleshooting Advanced Configurations
Config Changes Not Applying
- Make sure server is stopped before editing
- Check for JSON syntax errors (missing commas, brackets)
- Verify file encoding is UTF-8
- Check server logs for config parsing errors
Multi-Server Connection Issues
- Ensure all servers are on the same Hytale version
- Verify firewall rules allow traffic between servers
- Check that referral hostnames resolve correctly
- Test with direct IP addresses first
Performance Problems
- Monitor RAM usage - increase
-Xmxif consistently high - Check view distance settings
- Review entity counts in logs
- Consider pre-generating heavily explored areas
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