Skip to main content

The Complete Admin Manual for Dedicated Server Setup, Performance Tuning & Multi-Server Networks


Master Your Hytale Server — This comprehensive guide covers everything from basic configuration to advanced multi-server architectures. Whether you’re setting up your first server or optimizing a production environment, you’ll find expert-level instructions here.
Reading TimeDifficultyLast Updated
15 minutesIntermediateJanuary 2026

Quick Navigation

SectionWhat You’ll Learn
File LocationsWhere to find all config files
Editing FilesStep-by-step editing guide
Server ConfigMain server settings explained
World ConfigPer-world customization
Pre-GenerationEliminate exploration lag
Multi-ServerConnect multiple servers
Launch ArgumentsJVM flags & server options
FirewallNetwork & port configuration

Important: Before You Begin

[!CAUTION]

Stop! Read This First

  • Always create a backup of your server files before making changes
  • Stop your server completely before editing any configuration files
  • Changes made while the server is running will be overwritten

Configuration File Locations

Your Hytale server uses several JSON configuration files. Here’s where to find each one:

Server Root Directory

FilePurposeWhen to Edit
config.jsonMain server settingsServer name, slots, view distance
permissions.jsonPlayer permissions & admin groupsAdding admins, setting roles
bans.jsonBanned player listBanning/unbanning players
whitelist.jsonAllowed players (if enabled)Private server access

World-Specific Configuration

LocationPurpose
universe/worlds/[WorldName]/config.jsonIndividual world settings (PvP, spawning, effects)

How to Edit Configuration Files

Option A: Hosted Server (Control Panel)

Step 1 → Log into your control panel
Step 2 → Click "Stop" to shut down the server
Step 3 → Navigate to "Configuration Files" or "FTP Access"
Step 4 → Edit the file and click "Save"
Step 5 → Click "Start" to restart your server

Option B: Self-Hosted Server

Step 1 → Stop the server (type "stop" or press Ctrl+C)
Step 2 → Open the config file in any text editor
Step 3 → Make changes and save the file
Step 4 → Start your server
Pro Tip: Use a JSON validator (like jsonlint.com) to check your syntax before saving!

Server Configuration (config.json)

The main config.json controls your server’s core behavior. This is the first file you should customize.

Complete config.json Template

{
  "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"
  }
}

Settings Reference Table

SettingTypeDefaultDescription
ServerNameString”Hytale Server”Name shown in server browser
MOTDStringEmptyWelcome message for players
PasswordStringEmptyLeave blank for public servers
MaxPlayersInteger100Maximum player slots
MaxViewRadiusInteger32Render distance (chunks)
LocalCompressionEnabledBooleanfalseCompress local network traffic
Defaults.WorldString”default”Spawn world for new players
Defaults.GameModeString”Adventure”Starting game mode

Performance Recommendation

[!IMPORTANT]

Optimize Your View Distance

The official Hytale documentation recommends MaxViewRadius: 12 instead of 32.
SettingRAM UsagePerformance
MaxViewRadius: 32Very HighMay cause lag
MaxViewRadius: 12OptimalRecommended
Result: Up to 70% reduction in memory usage!

World Configuration (Per-World Settings)

Each world has independent settings stored in universe/worlds/[WorldName]/config.json.

Complete World config.json Template

{
  "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": {}
}

Gameplay Settings

SettingDefaultWhat It Does
SeedRandomWorld generation seed
IsPvpEnabledfalseEnable player combat
IsFallDamageEnabledtruePlayers take fall damage
IsGameTimePausedfalseFreeze day/night cycle
IsSpawningNPCtrueNatural NPC spawns
IsAllNPCFrozenfalseFreeze all NPC AI

Performance & Save Settings

SettingDefaultWhat It Does
IsTickingtrueWorld physics active
IsBlockTickingtrueBlock updates active
IsSavingPlayerstrueSave player data
IsSavingChunkstrueSave terrain changes
SaveNewChunkstrueCache new terrain
IsUnloadingChunkstrueFree unused memory
DeleteOnUniverseStartfalseWipes world on restart (use with caution)

Visual Effects (ClientEffects)

EffectDefaultRangeDescription
SunIntensity0.250.0 - 1.0Sunlight brightness
BloomIntensity0.30.0 - 1.0Glow effect strength
BloomPower8.01.0 - 16.0Bloom sharpness
SunshaftIntensity0.30.0 - 1.0”God rays” strength

World Pre-Generation (Reduce Lag)

Pre-generating terrain before players explore eliminates chunk generation lag during gameplay.

Method 1: Manual Exploration

Best for: Small maps, quick setup
StepAction
1Start server and join as admin
2Enable fly mode and explore the map
3Chunks save automatically as you fly

Method 2: Pre-Generation Mods

Best for: Large worlds, automated generation
StepAction
1Download a pre-gen mod and place in mods/ folder
2Configure radius and center coordinates
3Run the mod’s generation command

Method 3: Built-in Command Line

Best for: Checking native options
java -jar HytaleServer.jar --help

Server Mesh Architecture (Multi-Server Networks)

Hytale has built-in multi-server support — no BungeeCord or Velocity proxy needed!

Transfer Players Between Servers

Use the native Java API to move players seamlessly:
// Send a player to another server
PlayerRef.referToServer(host, port, payload)

// Handle incoming player connections
PlayerSetupConnectEvent.referToServer(host, port)

Security Alert

Referral payloads pass through the client and can be modified by hackers. Solution: Sign all payloads using HMAC with a shared secret key so receiving servers can verify authenticity.

Building Custom Proxies

For advanced network architectures, build custom proxy servers:
TechnologyLocation
Netty QUICTransport layer
Packet DefinitionsHytaleServer.jarcom.hypixel.hytale.protocol.packets

Command-Line Arguments & Launch Options

Basic Launch Syntax

java [JVM options] -jar HytaleServer.jar [server options]

JVM Memory & Performance Flags

FlagExamplePurpose
-Xms-Xms4GInitial RAM (set equal to -Xmx)
-Xmx-Xmx4GMaximum RAM allocation
-XX:+UseG1GCG1 Garbage Collector (recommended)
-XX:AOTCacheHytaleServer.aotFaster startup via AOT compilation

Server Launch Options

FlagDescription
--assets <path>Game assets location (e.g., Assets.zip)
--bind <ip:port>Bind to specific network interface
--auth-mode <mode>authenticated (online) or offline (LAN)
--backupEnable automatic world backups
--backup-dir <path>Custom backup storage location
--backup-frequency <mins>Time between backups (minutes)
--disable-sentryDisable crash reporting
--allow-opEnable operator commands
--accept-early-pluginsAllow early plugin initialization

Ready-to-Use 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/Testing Server
java -Xms4G -Xmx4G -jar HytaleServer.jar --assets Assets.zip --auth-mode offline --disable-sentry

Firewall Configuration (Open Ports)

Hytale uses QUIC protocol over UDP — not TCP!
ProtocolPortDirection
UDP5520Inbound

Windows — PowerShell (Run as Administrator)

New-NetFirewallRule -DisplayName "Hytale Server" -Direction Inbound -Protocol UDP -LocalPort 5520 -Action Allow
sudo ufw allow 5520/udp

Linux — iptables

sudo iptables -A INPUT -p udp --dport 5520 -j ACCEPT

Additional Resources

ResourceLink
Official Hytale Websitehytale.com
Hytale Support Portalsupport.hytale.com

Support Channels

If you need assistance or have any questions, please contact our support team:

First Month Discount

Use code KB20 at checkout to get 20% off your first month of hosting!

Last Updated: January 2026 | Need Help? Contact our 24/7 support team!