Hytale Neue Welten Modding-Wettbewerb
Hytale veranstaltet seinen ersten Modding-Wettbewerb mit einem Preispool von $ 100.000!
Jonas
17. Juni, 2026
Das hier war ein echter Geist in der Maschine. Der Fehler schlummerte seit 2021 still im Code – fast fünf Jahre lang – und wurde erst aktiv, als wir etwas völlig Unabhängiges behoben haben.
Was kaputt war: Nach dem Update auf 0.5.5 sahen einige Server, dass die Spielerkollision auf harte Kollision umgestellt wurde, sodass Spieler ineinander stecken bleiben oder sich gegenseitig herumschieben konnten. Dieselbe Ursache konnte außerdem dazu führen, dass platzierte Entitäten und Objekte mit vertauschten Einstellungen für harte und weiche Kollision geladen wurden oder dass die Abstoßungsfelder „Standard“ und „Minispiele“ vertauscht waren.
Die Ursache: Die HitboxCollision-Komponente (und Repulsion) speicherte den Laufzeit-Asset-Index anstelle des Namens des Assets. Dieser Index ist lediglich der Platz, den ein Asset einnimmt, wenn der Server seine Assets lädt, und keine stabile Kennung. Der einzige Grund, warum dies in der Vergangenheit funktioniert hat, war, dass Assets in einer halbwegs deterministischen Reihenfolge basierend auf dem Dateisystem geladen wurden. Dadurch war der Index zufällig jedes Mal gleich.
Was den Fehler ausgelöst hat: Eine separate Fehlerbehebung in 0.5.5 korrigierte die Reihenfolge, in der Assets geladen werden (ein unabhängiger Fehler im Zusammenhang mit Asset-Vererbung). Dadurch verschoben sich die Asset-Indizes, sodass die in älteren Welten gespeicherten Zahlen plötzlich auf andere Konfigurationen zeigten und „Hart/Weich“ sowie „Standard/Minispiele“ ihre Plätze tauschten. Der interessante Teil: Ein fünf Jahre alter Fehler blieb komplett unsichtbar, bis wir einen anderen Fehler behoben haben, der zufällig genau diese Abhängigkeit gestört hat.
Die Lösung: Entitäten speichern nun den stabilen Namen des Assets anstelle seines Indexes. Beim Laden liest 0.5.6 den alten gespeicherten Index, ordnet ihn wieder der ursprünglich gemeinten Konfiguration zu und speichert ihn anschließend mit dem Namen neu. Dies konnten wir sicher durchführen, weil das Basisspiel diese Assets in einer festen, reproduzierbaren Reihenfolge ausliefert und wir daher genau wussten, welchem alten Index welche Konfiguration entsprach. Ab jetzt wird der Index immer aus dem Namen abgeleitet, sodass er sich nicht mehr verschieben kann.
Für Server-Betreiber: Fast jede Welt korrigiert sich automatisch ohne erforderliche Maßnahmen. Es gibt jedoch zwei Fälle, auf die man achten sollte.
Erstens: Die automatische Zuordnung deckt nur die Kollisions- und Abstoßungskonfigurationen des Basisspiels ab. Wenn ihr eigene benutzerdefinierte Kollisions- oder Abstoßungs-Assets verwendet, können Entitäten, die darauf verwiesen haben, möglicherweise nicht korrekt zugeordnet werden und ohne diese Einstellung geladen werden.
Zweitens: Entitäten, die während des kurzen Zeitraums erstellt wurden, in dem 0.5.5 aktiv war, aber noch vor 0.5.6 gespeichert wurden, wurden bereits unter der neuen Reihenfolge gespeichert. Diese können nicht von älteren Daten unterschieden werden, weshalb eine kleine Anzahl weiterhin mit vertauschten Einstellungen geladen werden kann. In diesem Fall müsst ihr die Kollision oder Abstoßung der Entität mit den Entity-Editor-Werkzeugen erneut anwenden. Danach ist sie dauerhaft korrigiert.
Es gehen keine Weltdaten verloren.
Vielen Dank an alle, die diesen Fehler gemeldet und uns bei der Suche nach der Ursache geholfen haben.
Alles anzeigen
16. Juni, 2026
5. Juni, 2026
29. Mai, 2026
27. Mai, 2026
26. Mai, 2026