Hytale: Erweiterte Serverkonfiguration

Aus Survival Servers
Zur Navigation springen Zur Suche springen

Wichtig: Sichere deine Serverdateien immer, bevor du Konfigurationsänderungen vornimmst. Stoppe deinen Server, bevor du Konfigurationsdateien bearbeitest.

Speicherorte der Konfigurationsdateien

Datei Standort Zweck
config.json Stammverzeichnis des Servers Wichtigste Servereinstellungen
permissions.json Stammverzeichnis des Servers Spielerrollen und Berechtigungen
bans.json Stammverzeichnis des Servers Liste der gebannten Spieler
whitelist.json Stammverzeichnis des Servers Alte Liste erlaubter Spieler. Hytale 0.6.6 und neuer lesen sie einmal ein, wandeln sie in Beitrittsberechtigungen um und benennen sie in whitelist.json.migrated um
config.json universe/worlds/[WorldName]/ Einstellungen pro Welt

Serverkonfiguration (config.json)

Die zentrale Datei config.json im Stammverzeichnis deines Servers steuert die serverweiten Einstellungen. So ist sie in Hytale Update 7 aufgebaut:

{
  "Version": 4,
  "ServerName": "Hytale Server",
  "MOTD": "",
  "Password": "",
  "MaxPlayers": 100,
  "MaxViewRadius": 32,
  "LocalCompressionEnabled": false,
  "Defaults": {
    "World": "default",
    "GameMode": "Adventure",
    "HardcoreMode": "None",
    "CrashRecovery": {}
  },
  "ConnectionTimeouts": {},
  "RateLimit": {},
  "Modules": {},
  "LogLevels": {},
  "Mods": {},
  "DisplayTmpTagsInStrings": false,
  "PlayerStorage": {
    "Type": "Hytale"
  },
  "DefaultModsEnabled": true,
  "RequireJoinPermission": false,
  "UniverseResourceStorage": {
    "Type": "Hytale"
  },
  "BanStorage": {
    "Type": "Disk",
    "Path": "bans.json"
  },
  "AuthCredentialStore": {
    "Type": "Encrypted",
    "Path": "auth.enc"
  },
  "Update": {},
  "Backup": {},
  "WorldMap": {}
}
Einstellung Beschreibung Empfohlen
ServerName Anzeigename, den Spieler sehen Dein Servername
MOTD Nachricht des Tages Kurze Willkommensnachricht
Password Serverpasswort (leer = kein Passwort) Leer lassen für öffentlich
MaxPlayers Maximale Anzahl gleichzeitiger Spieler Abhängig vom RAM (typisch 20-50)
MaxViewRadius Sichtweite der Spieler (in Chunks) 12 für die Performance
LocalCompressionEnabled Aktiviert die Komprimierung im lokalen Netzwerk. Hytale 0.7.0 liest den Wert nicht mehr, er bewirkt also nichts false
Defaults.World Standard-Weltname, in dem Spieler spawnen "default"
Defaults.GameMode Standard-Spielmodus für neue Spieler "Adventure" oder "Creative"

Performance-Tipp: Das offizielle Hytale-Handbuch empfiehlt, MaxViewRadius auf 12 Chunks (384 Blöcke) zu begrenzen, sowohl für die Performance als auch fürs Gameplay. Der Standardwert ist 32, seit Update 7 zugleich das Maximum. Ein höherer Wert in config.json wird beim Serverstart mit einer Warnung auf 32 gesenkt.

Konfigurationsdateien bearbeiten

Für Kunden von Survival Servers

Am einfachsten geht es über Server Config, den ersten Button unter TOOLS: Ändere die Einstellungen, wähle Apply & Restart oder Apply und klicke dann auf Save.

  1. Melde dich im Command Center an
  2. Klicke auf Stop, um deinen Server herunterzufahren
  3. Klicke unter TOOLS auf config.json oder world/config oder nutze FTP-Zugang
  4. Bearbeite die gewünschte Datei und speichere
  5. Klicke auf Start, um deinen Server neu zu starten

Für selbst gehostete Server

  1. Stoppe deinen Server (gib stop ein oder drücke Ctrl+C)
  2. Öffne die Konfigurationsdatei in einem Texteditor
  3. Nimm deine Änderungen vor und speichere
  4. Starte deinen Server

Weltkonfiguration (universe/worlds/[WorldName]/config.json)

Jede Welt hat ihre eigene Konfigurationsdatei.

{
  "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": {}
}
Einstellung Beschreibung
Seed Seed für die Weltgenerierung
IsPvpEnabled Kämpfe zwischen Spielern erlauben
IsFallDamageEnabled Spieler nehmen Fallschaden
IsGameTimePaused Tag-/Nachtzyklus einfrieren
IsSpawningNPC Mob-Spawning aktivieren
IsAllNPCFrozen Alle NPCs an Ort und Stelle einfrieren
IsTicking Weltsimulation läuft
IsBlockTicking Block-Updates (Pflanzen, Flüssigkeiten)
IsSavingPlayers Spielerdaten speichern
IsSavingChunks Weltänderungen speichern
SaveNewChunks Neu generierte Chunks auf die Festplatte speichern
IsUnloadingChunks Leere Chunks entladen
ClientEffects Einstellungen für visuelle Effekte (Sonne, Bloom, Sonnenstrahlen)
DeleteOnUniverseStart Welt beim Serverstart löschen
DeleteOnRemove Weltdateien beim Entfernen löschen

Welt-Vorgenerierung

Die Vorgenerierung erstellt das Gelände im Voraus und verringert Lag, wenn Spieler erkunden.

Methode 1: Erkundung im Spiel

  1. Starte deinen Server und melde dich als Admin an
  2. Fliege über die Map, um Chunks zu generieren
  3. Der Server speichert Chunks, während du erkundest

Methode 2: Pre-Generation-Mods

  1. Füge deinem Ordner mods/ eine Pre-Gen-Mod hinzu
  2. Lege die Größe und den Mittelpunkt des Bereichs fest
  3. Führe den Befehl zur Vorgenerierung aus

Methode 3: Kommandozeile

java -jar HytaleServer.jar --help

Prüfe, ob es integrierte Optionen zur Vorgenerierung gibt.

Server-Mesh-Architektur (Multi-Server-Netzwerke)

Hytale bringt integrierte Unterstützung mit, um mehrere Server ohne Drittanbieter-Proxys wie BungeeCord miteinander zu verbinden.

Diese Funktionen sind über die Java API des Servers implementiert:

Funktion API-Methode Beschreibung
Spieler-Empfehlung PlayerRef.referToServer(host, port, payload) Spieler zwischen Servern übertragen, optional mit einer Payload von 4KB
Verbindungsumleitung PlayerSetupConnectEvent.referToServer(host, port) Umleitung während des Handshakes vor der vollständigen Verbindung
Disconnect-Fallback Demnächst verfügbar Automatische Neuverbindung zum Fallback, wenn der Server abstürzt

Sicherheit: Referral-Payloads laufen über den Client und können manipuliert werden. Signiere Payloads kryptografisch (z. B. HMAC mit einem gemeinsamen Secret), damit empfangende Server die Echtheit prüfen können.

Eigene Proxys: Baue Proxyserver mit Netty QUIC. Paketdefinitionen findest du in HytaleServer.jar unter com.hypixel.hytale.protocol.packets.

Kommandozeilenargumente

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

JVM-Optionen

Option Beschreibung Beispiel
-Xms Anfängliche Speicherzuweisung -Xms4G
-Xmx Maximale Speicherzuweisung -Xmx4G
-XX:+UseG1GC Garbage Collector G1 verwenden Empfohlen ab 8 GB
-XX:AOTCache AOT-Cache für schnelleren Start verwenden -XX:AOTCache=HytaleServer.aot

Serveroptionen

Option Beschreibung Standard
--assets <path> Pfad zu Assets.zip ..\HytaleAssets
--bind <ip:port> Adresse und Port, an denen der Server lauscht 0.0.0.0:5520
--auth-mode <mode> authenticated oder offline authenticated
--backup Automatische Backups aktivieren Deaktiviert
--backup-dir <path> Speicherort für Backups None
--backup-frequency <mins> Backup-Intervall in Minuten 30
--disable-sentry Absturzberichte deaktivieren Aktiviert
--allow-op Operator-Befehle erlauben Deaktiviert
--accept-early-plugins Experimentelle Plugins laden (nicht unterstützt) Deaktiviert

Beispiel-Startskripte

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

Produktionsserver (Linux - start.sh):

#!/bin/bash
java -Xms6G -Xmx6G -XX:+UseG1GC -XX:AOTCache=HytaleServer.aot -jar HytaleServer.jar --assets Assets.zip --backup --backup-frequency 60

Entwicklungsserver:

java -Xms4G -Xmx4G -jar HytaleServer.jar --assets Assets.zip --auth-mode offline --disable-sentry

Firewall-Konfiguration

Hytale nutzt das QUIC-Protokoll über UDP (nicht TCP).

Windows PowerShell:

New-NetFirewallRule -DisplayName "Hytale Server" -Direction Inbound -Protocol UDP -LocalPort 5520 -Action Allow

Linux (iptables):

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

Linux (ufw):

sudo ufw allow 5520/udp

Siehe auch