Hytale Advanced Server Configuration: Difference between revisions

From Survival Servers
Jump to navigation Jump to search
No edit summary
Line 26: Line 26:
# Log into your [https://www.survivalservers.com/sspanel/ control panel]
# Log into your [https://www.survivalservers.com/sspanel/ control panel]
# Click '''Stop''' to shut down your server
# Click '''Stop''' to shut down your server
# Click '''Configuration Files''' or use '''FTP Access'''
# Click '''Server Config''' button (easy editor) or use '''File Manager'''
# Edit the desired file and save
# Edit the desired file and save
# Click '''Start''' to restart your server
# Click '''Start''' to restart your server

Revision as of 11:03, 12 January 2026

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

  1. Log into your control panel
  2. Click Stop to shut down your server
  3. Click Server Config button (easy editor) or use File Manager
  4. Edit the desired file and save
  5. Click Start to restart your server

For Self-Hosted Servers

  1. Stop your server (type stop or press Ctrl+C)
  2. Open the config file in a text editor
  3. Make your changes and save
  4. 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 permissions
  • Inheritance lets groups build on each other
  • AdditionalPermissions adds 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

  1. Start your server and log in as admin
  2. Fly around the map to generate chunks
  3. The server saves chunks as you explore

Method 2: Pre-Generation Mods

  1. Add a pre-gen mod to your mods/ folder
  2. Configure the area size and center point
  3. 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