Fix Hytale World Generation Corruption
A damaged world shows up as chunks that will not load, void areas, or a server that stops during start-up. This guide covers what the Hytale server itself offers for finding and repairing damaged chunks, from the server files of build 0.7.3, and how to keep good backups so a bad save never costs you the world.
Understanding World Corruption
Worlds are damaged by server crashes mid-save, a full disk, killing the process instead of stopping it, mod or plugin conflicts, and failing storage or memory. The world lives in universe/worlds/<name>/ in the server's working directory; each world has its own config.json next to its chunk storage.
Solution 1: Read the Log
The server writes to the logs/ folder. These are the lines that point at world damage:
Failed to load chunk! x, zandFailed to load chunk section!: a chunk could not be read and is skipped.Failed to recover a chunk at ...: a recovery run could not fix one.Skipping corrupted entity ... body failed to decode: the chunk loaded but one entity in it did not.Failed to verify world NAME, n/m chunks corrupted: the result of a verify run, see below.
Players who fall through terrain or see void where a base stood are usually hitting the first kind: the chunk was skipped and, depending on the world's settings, regenerated.
Solution 2: Back Up Before You Touch Anything
- Stop the server with
/stopso it saves and closes cleanly. - Copy the whole
universefolder somewhere else, with a date in the name. - Only then try the steps below, on the server or on the copy.
The server can also make backups on a schedule. Start it with --backup, set the interval with --backup-frequency (minutes, default 30), the folder with --backup-dir, and how many to keep with --backup-max-count (default 5) and --backup-archive-max-count (default 5). The same settings live under Backup in config.json as Enabled, FrequencyMinutes, Directory, MaxCount and ArchiveMaxCount, and /backup runs one on demand. To restore, stop the server, replace the damaged world folder with the backup copy and start again.
Solution 3: Verify and Recover With the Server's Own Tools
The server can check a world and exit, without letting players in:
java -jar HytaleServer.jar --assets Assets.zip --verify-worlds
It loads every world, checks every chunk and logs the Failed to verify world ... chunks corrupted line for a damaged one, then shuts down with an error. Adding --recovery-mode turns the check into a repair. The option only works together with --verify-worlds, and takes one of two values:
FROM_BACKUP_OR_REGENERATE: each broken chunk is removed and loaded again from the newest backup zip that holds it, searching the backup folder and itsarchivesubfolder. It logsManaged to recover a chunk at x, zon success andFailed to recover a chunk at x, zwhen no backup has it, and that chunk is then left for the world generator. It needs a backup folder: with none it stops with "No usable backups", and on a storage type that cannot restore single chunks it asks you to restore the whole backup instead.REGENERATE: each broken chunk is removed and the world generator makes it again, so anything built in it is lost.
If the recovery itself fails, the server puts the world back the way it was. Run it on a copy first. Without --recovery-mode the run only counts corrupted chunks and stops.
Two more switches live in the world's own config.json. CrashRecovery sets what a world does when it crashes: Mode and Fallback take None, Reload or Shutdown, with MaxAttempts and RetryDelaySeconds controlling the retries. And /world settings chunkSaving turns chunk saving off or on for a world while you investigate.
One chunk at a time, in game
For a single bad spot, the /chunk command works on chunk positions (a chunk is 32 blocks wide, and relative coordinates are accepted):
/chunk info <x z>shows information about a chunk./chunk regenerate <x z>regenerates it from the world generator, which discards what was built in it./chunk load <x z>and/chunk unload <x z>load or unload one,/chunk marksave <x z>marks it to be saved and/chunk resendsends the chunks to a player again./chunk storagestatsdumps statistics from the active chunk storage, which helps when saves are slow or failing.
There are no /world validate, /world scan, /world repair, /world regenerate, /world fix or /world info commands. The real /world sub-commands are list, add, remove, prune, load, setdefault, save, pause, config, settings, perf, tps and rocksdb.
Solution 4: Repair the Saved Chunks Themselves
If the damage is already in the saved world rather than in the generator settings, our free Hytale World Doctor reads the region files the way the server does, in your browser. It quarantines chunks the game itself cannot parse, so the server regenerates them instead of failing on load, and rebuilds the surface heightmap that makes a world render as if you are underground. Nothing is uploaded.
Check the hardware too: run a disk check (fsck or chkdsk), look at S.M.A.R.T. health, and test the RAM if corruption keeps coming back on a healthy server.
Solution 5: Prevention
- Always stop the server with
/stop; never kill the process. - Keep several backup generations and test a restore once.
- Watch disk space: a save to a full disk is a common cause.
- Remove a mod or plugin you suspect from
mods/before blaming the world. - Run
--verify-worldson a copy of the world after any crash.
Troubleshooting Table
| Log line | Meaning | What to do |
|---|---|---|
Failed to load chunk! | One chunk could not be read | Restore from backup, or recover that chunk with --verify-worlds --recovery-mode |
Failed to load chunk section! | Part of a chunk is damaged | Same as above |
Skipping corrupted entity | An entity in a chunk failed to decode | The entity is dropped; restore from backup if it mattered |
Failed to verify world ... | The verify run found corrupted chunks | Recover on a copy, then replace the world |
Protect your Hytale server worlds from corruption with regular backups, a clean shutdown habit, and a verify run after any crash.