-
-
Notifications
You must be signed in to change notification settings - Fork 0
Home
WorldgenLib is a server-side world-generation interoperability library for Vintage Story. It exposes ordered seams around the terrain, map, post-process, and BlockLayers passes so world-generation mods can share one pipeline instead of replacing the same vanilla systems.
This wiki documents the 0.1.0 implementation and its current contracts. The code has been built and exercised against Vintage Story server environments from 1.22.0 through 1.22.7. The eight-version lifecycle matrix passed 24 of 24 server checks. A canonical byte-level parity matrix also passed for all eight versions by comparing deterministic WGLP streams at the map-region and Terrain boundaries. Full persisted-save parity remains outside that contract. The mod declares a 1.22.0 game dependency.
- Getting-Started for installation and the first consumer hook
- Concepts for the ordered-delegate model
- Architecture for lifecycle, runtime seams, and conflict handling
- API-Reference for the public entry points
-
Terrain-Hooks for
GenTerrasteps and column contexts -
Map-Hooks for
GenMapsregions, map layers, and force requests - BlockLayers-and-PostProcess for the later world-generation passes
- Contexts-and-State for context objects, moddata, and thread safety
- Registries-and-Sampling for landforms, region maps, and terrain queries
- Ordering-and-Composition for order bands and multi-mod composition
- Example-River for a small three-hook consumer
- Migration for Rivers-Mod, VSRiverGen, Watersheds, and Terra Prety
- Compatibility-and-Updates for versioning and unsupported seams
- Diagnostics-and-Troubleshooting for startup reports and failures
- Testing for the verification model
The four target consumers have a WorldgenLib destination for every server-side world-generation mechanism found in their reference sources. That is 100% seam coverage, not a claim that their external source repositories have already been rewritten or run in-game through this library.
Known release limits are listed in Status-and-Limits. They include the absence of real external consumer runtime migrations, full persisted-save parity, and the remaining native persistence and numeric parity fixtures.