Hytale: Erweiterte Serverkonfiguration

Aus Survival Servers
Zur Navigation springen Zur Suche springen

Diese Anleitung behandelt die erweiterte Hytale-Serverkonfiguration, einschließlich Welteinstellungen, Kommandozeilenargumenten und der Server-Mesh-Architektur.

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 Liste der erlaubten Spieler
config.json universe/worlds/[WorldName]/ Einstellungen pro Welt

Serverkonfiguration (config.json)

Die zentrale config.json im Stammverzeichnis deines Servers steuert die serverweiten Einstellungen:

{
  "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"
  }
}
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 Komprimierung im lokalen Netzwerk aktivieren 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 32 entspricht etwa 64 Minecraft-Chunks und erhöht den RAM-Verbrauch deutlich.

Konfigurationsdateien bearbeiten

Für Kunden von Survival Servers

  1. Melde dich in deinem Webinterface an
  2. Klicke auf Stop, um deinen Server herunterzufahren
  3. Klicke auf Configuration Files oder nutze FTP Access
  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. Unten ist die dokumentierte Struktur der Weltkonfiguration:

{
  "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 zur Assets.zip (erforderlich) None
--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 ./backups
--backup-frequency <mins> Backup-Intervall in Minuten 60
--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