Server Configuration
This guide covers configuring your Hytale server after the initial setup.
Configuration Files
Section titled “Configuration Files”After first launch, your server generates several configuration files:
my-server/├── HytaleServer.jar├── config.json # Main server configuration└── universe/ └── worlds/ └── default/ └── config.json # World-specific settingsServer Configuration (config.json)
Section titled “Server Configuration (config.json)”The main config.json file controls server-wide settings:
{ "ServerName": "Hytale Server", "MOTD": "", "Password": "", "MaxPlayers": 100, "MaxViewRadius": 32, "LocalCompressionEnabled": false, "Defaults": { "World": "default", "GameMode": "Adventure" }, "ConnectionTimeouts": { "InitialTimeout": "PT10S", "AuthTimeout": "PT30S", "PlayTimeout": "PT1M" }, "RateLimit": { "Enabled": true, "PacketsPerSecond": 2000, "BurstCapacity": 500 }}Key Settings
Section titled “Key Settings”| Setting | Type | Default | Description |
|---|---|---|---|
ServerName | string | "Hytale Server" | Display name for your server |
MOTD | string | "" | Message of the day shown to players |
Password | string | "" | Server password (empty for no password) |
MaxPlayers | integer | 100 | Maximum concurrent players |
MaxViewRadius | integer | 32 | Maximum view radius in chunks |
LocalCompressionEnabled | boolean | false | Enable local network compression |
Defaults.World | string | "default" | Default world players spawn in |
Defaults.GameMode | string | "Adventure" | Default game mode for new players |
World Configuration
Section titled “World Configuration”Each world has its own config.json in universe/worlds/<worldname>/:
{ "UUID": "generated-uuid-here", "DisplayName": "My World", "Seed": 1234567890, "WorldGen": { "Type": "Hytale" }, "ChunkStorage": { "Type": "Region" }, "IsTicking": true, "IsBlockTicking": true, "IsPvpEnabled": false, "IsFallDamageEnabled": true, "IsGameTimePaused": false, "GameTime": "1970-01-01T05:30:00Z", "GameMode": "Adventure", "IsSpawningNPC": true, "IsSpawnMarkersEnabled": true, "IsSavingPlayers": true, "IsSavingChunks": true, "IsUnloadingChunks": true, "GameplayConfig": "Default"}World Settings
Section titled “World Settings”| Setting | Type | Default | Description |
|---|---|---|---|
UUID | string | auto-generated | Unique identifier for this world |
DisplayName | string | null | Player-facing name of the world |
Seed | long | current time | World generation seed |
WorldGen.Type | string | "Hytale" | World generator type |
ChunkStorage.Type | string | "Region" | Chunk storage system type |
IsTicking | boolean | true | Whether chunks in this world tick |
IsBlockTicking | boolean | true | Whether blocks in this world tick |
IsPvpEnabled | boolean | false | Allow player vs player combat |
IsFallDamageEnabled | boolean | true | Players take fall damage |
IsGameTimePaused | boolean | false | Whether game time is paused |
GameTime | ISO-8601 | "1970-01-01T05:30:00Z" | Current time of day (affects day/night cycle) |
GameMode | string | inherits from server | Default game mode for this world |
IsSpawningNPC | boolean | true | Whether NPCs can spawn |
IsSpawnMarkersEnabled | boolean | true | Whether spawn markers are enabled |
IsSavingPlayers | boolean | true | Whether player data is saved |
IsSavingChunks | boolean | true | Whether chunk data is saved to disk |
IsUnloadingChunks | boolean | true | Whether chunks can be unloaded |
GameplayConfig | string | "Default" | Gameplay configuration to use |
Memory Configuration
Section titled “Memory Configuration”Allocate appropriate memory based on your player count:
| Players | Recommended RAM |
|---|---|
| 1-10 | 4GB |
| 10-20 | 6GB |
| 20-50 | 8GB |
| 50+ | 12GB+ |
Example for a larger server:
java -Xms8G -Xmx8G -jar HytaleServer.jar --assets ../HytaleAssetsBackup Configuration
Section titled “Backup Configuration”Enable automatic backups with command-line arguments:
java -Xms4G -Xmx4G -jar HytaleServer.jar \ --assets ../HytaleAssets \ --backup \ --backup-dir ./backups \ --backup-frequency 30 \ --backup-max-count 5This creates backups every 30 minutes in the ./backups directory, keeping up to 5 backups.
Authentication Modes
Section titled “Authentication Modes”Authenticated Mode (Default)
Section titled “Authenticated Mode (Default)”Players must have valid Hytale accounts. This is the recommended mode for public servers:
java -jar HytaleServer.jar --assets ../HytaleAssets --auth-mode authenticatedTo authenticate as a server operator, use the in-game command:
/auth login deviceThis initiates OAuth 2.0 device authentication flow.
Offline Mode
Section titled “Offline Mode”No account verification. Use for private/LAN servers only:
java -jar HytaleServer.jar --assets ../HytaleAssets --auth-mode offlineInsecure Mode
Section titled “Insecure Mode”Similar to offline mode but with additional relaxed security. Only use for development:
java -jar HytaleServer.jar --assets ../HytaleAssets --auth-mode insecurePerformance Tuning
Section titled “Performance Tuning”JVM Arguments
Section titled “JVM Arguments”For better garbage collection performance:
java -Xms4G -Xmx4G \ -XX:+UseG1GC \ -XX:+ParallelRefProcEnabled \ -XX:MaxGCPauseMillis=200 \ -jar HytaleServer.jar --assets ../HytaleAssetsView Distance
Section titled “View Distance”Adjust maximum view radius in config.json to balance performance:
{ "MaxViewRadius": 32}Lower values improve performance but reduce the visible area for players. The default of 32 chunks provides a good balance for most servers.
Running as a Service
Section titled “Running as a Service”Linux (systemd)
Section titled “Linux (systemd)”Create /etc/systemd/system/hytale.service:
[Unit]Description=Hytale ServerAfter=network.target
[Service]User=hytaleWorkingDirectory=/opt/hytaleExecStart=/usr/bin/java -Xms4G -Xmx4G -jar HytaleServer.jar --assets ../HytaleAssetsRestart=on-failureRestartSec=10StandardOutput=journalStandardError=journal
[Install]WantedBy=multi-user.targetEnable and start:
sudo systemctl enable hytalesudo systemctl start hytaleView logs:
sudo journalctl -u hytale -fWindows Service
Section titled “Windows Service”Use tools like NSSM (Non-Sucking Service Manager) to run as a Windows service:
# Install NSSM and configure the servicenssm install HytaleServer "C:\Program Files\Java\jdk-25\bin\java.exe"nssm set HytaleServer AppParameters "-Xms4G -Xmx4G -jar HytaleServer.jar --assets ..\HytaleAssets"nssm set HytaleServer AppDirectory "C:\hytale-server"nssm start HytaleServerNext Steps
Section titled “Next Steps”Learn about Server Commands to manage your server.