WorldGenOverlayLib

A library mod for Hytale that provides shared worldgen overlay functionality, allowing multiple mods to coexist and merge their ore generation without conflicts.

File Details

WorldGenOverlayLib-1.0.2.jar

  • R
  • Feb 8, 2026
  • 49.50 KB
  • 529
  • Early Access

File Name

WorldGenOverlayLib-1.0.2.jar

Supported Versions

  • Early Access

[1.0.2]

Fixed

  • Multiple worlds: Each world that uses the overlay now shares a stable prepared directory per generator config instead of overwriting one shared dir. Multiple worlds with the same config (e.g. name=Default, path=null) reuse one prepared dir; no more cross-world overwrites.
  • Older worlds / missing ore files: Caves.json is sanitized after applying overlays: any Types entry that references an ore placement file (e.g. Ores.Zone0.Ore_HylteriumPlacement) is removed if that file does not exist in the work dir. This avoids NoSuchFileException when loading older worldgen or bases that reference ores no longer provided by the current overlay set.
  • Disk usage: On plugin startup, old worldgen work directories are removed. Only dirs older than 1 minute are deleted; stable cache dirs (e.g. Default_default) are preserved so they can be reused on the next start.

Performance

  • Startup speed: Worldgen preparation is cached per generator config. The expensive base copy runs once per config per run instead of once per world. Multiple worlds using the same config share one prepared directory and skip copying.
  • Restart speed: Stable prepared directories (e.g. worldgen/Default_default) are preserved across server restarts. On the next start the library reuses the existing prepared dir when present and skips the full copy. If you change mods or overlays, delete the worldgen folder in the plugin data dir to force a full re-prepare.

Changed

  • Work directories use stable names per (name, path) (e.g. Default_default, Default_<8-char-hash>) so they can be reused within a run and preserved across restarts. Startup cleanup only deletes non-stable (e.g. old UUID-style) dirs; stable cache dirs are kept.