Back to mods
WorldgenLib project artwork

Vintage Story Mod DB · Vintage Story mod

WorldgenLib

WorldgenLib v0.1.0 targets Vintage Story 1.22.0 and has been rebuilt and exercised against Vintage Story 1.22.0 through 1.22.7. It is a server-side dependency for world-generation mods. Back up worlds before testing new worldgen combinations. Support Zaldaryo

Choose a version Pick your version below, then grab the matching file.

Quick answer

Which WorldgenLib release should I use?

Updated last month
Latest stable file 0.1.0
Game version 1.22.0, 1.22.1, 1.22.2
Loader Built-in Vintage Story mod system

WorldgenLib 0.1.0 targets 1.22.0, 1.22.1, 1.22.2. Do not install it on the client. It must be installed on the dedicated server. No extra mods listed for this file.

Where it goes

Is WorldgenLib required on the client, server, or both?

Do not install it on the client. It must be installed on the dedicated server.

Client Not supported
Dedicated server Required
Loader for this release Built-in Vintage Story mod system
Required install it here Optional supported, not mandatory Not supported do not install here Source doesn’t say do not assume

This Vintage Story file is marked server-only.

What else does WorldgenLib 0.1.0 need?

0.1.0. Change the file and its required mods may change too.

No extra mods listed for this file

This file does not list any required mods. Do not add a library just because a different file uses it.

This file does not list any required or optional mods.

Before you install it

Add WorldgenLib without breaking your instance.

Built for WorldgenLib 0.1.0. Pick another file and the loader, install side or required mods may change.

  1. 01

    Stick to this file

    Use 0.1.0. It targets 1.22.0, 1.22.1, 1.22.2; another release may have different loader, side or dependency requirements.

  2. 02

    Bring the mods it needs

    This file does not list any required mods. Do not add a library just because a different file uses it.

  3. 03

    Put it on the correct side

    Do not install it on the client. It must be installed on the dedicated server.

  4. 04

    Pick the file you checked

    Use the “Get this file” button beside 0.1.0. It opens that exact file at the source.

About this project

What does WorldgenLib add?

WorldgenLib v0.1.0 targets Vintage Story 1.22.0 and has been rebuilt and exercised against Vintage Story 1.22.0 through 1.22.7. It is a server-side dependency for world-generation mods. Back up worlds before testing new worldgen combinations.
Support Zaldaryon on Ko-fi.
What WorldgenLib does under the hood

WorldgenLib is a shared server-side API for Vintage Story modders. It helps world-generation mods compose compatible changes through ordered hook points around the map, terrain, post-process and BlockLayers passes, instead of competing to own the same vanilla generator. A consumer registers only the work it needs to change. WorldgenLib keeps the vanilla initialization state available, detects blocking takeovers, and isolates failing consumer hooks. It does not add blocks, items, biomes or terrain content by itself.

Ordered map hooks
nine map stages, generator wrappers, padding seams, force requests and a region-finalization boundary let consumers modify map work at a defined point
Terrain seams
hooks cover border preparation, octave construction, vertical distortion, water selection, voxel thresholds, post-placement edits and terrain finalization
Late worldgen passes
post-process opt-out, floating-node cleanup, BlockLayers raise changes, sea-level filtering and complete-pass adapters stay separate from terrain hooks
Shared generation state
typed chunk and column contexts expose request-local data, all vertical chunks, map and chunk moddata, generator access and finalization state
Registries and sampling
landforms, persistent region maps and coordinate-aware terrain queries have namespaced APIs with reload and invalidation rules
Conflict and version checks
startup diagnostics inspect known delegate and Harmony takeovers, while the versioned step registry and structural seam checks expose unsupported paths clearly
One pipeline, many worldgen mods

Share the seams instead of racing for the same method.

Each hook has an explicit order value. WorldgenLib runs enabled registrations in order, keeps terminal adapters available for non-decomposable consumers, and disables a consumer's registrations after a generation error so other hooks can continue. A blocking foreign takeover is reported instead of creating a second complete owner for the same pass.

Server-side by design

Give worldgen authors a shared contract.

WorldgenLib runs on the server and is required on the server. Clients do not need it. Install it beside the consumer mods that use its API, then let each consumer register its own map or terrain behavior during server startup.

What WorldgenLib gives worldgen authors

A documented API for composing world-generation changes at named stages, with order bands, typed contexts, terminal migration adapters, conflict diagnostics and version-aware step identifiers. The current implementation is WorldgenLib v0.1.0.

Map composition
Register changes for geoprovince, climate, forest, upheaval, ocean, beach, shrub, biome, landform and region finalization.
Terrain composition
Adjust the terrain pipeline at the seams that fit the algorithm, from water selection and threshold changes to full column edits.
Explicit state
Use request-local contexts and registries instead of copying private engine fields or sharing mutable buffers across parallel columns.
Late passes
Use the post-process and BlockLayers hosts for work that belongs after terrain generation or needs a complete pass.
Measured status
The unit suite has 102 passing tests. The versioned server lifecycle matrix has 24 passing checks across Vintage Story 1.22.0 through 1.22.7.
Canonical parity
Eight of eight seed-42 comparisons matched byte for byte at the canonical map-region and Terrain probe boundaries.

Good fit for

Authors of terrain, biome, climate, river and map-generation mods who need defined execution points and a shared server contract. It is also useful for server owners who want consumer mods to declare one worldgen dependency instead of silently replacing the same vanilla pass.

Compatibility and limits

WorldgenLib v0.1.0 declares Vintage Story 1.22.0 and has server evidence from 1.22.0 through 1.22.7. It does not prove compatibility with every foreign Harmony or IL patch. A blocking takeover can leave WorldgenLib hooks inactive, and the inline BlockLayers hooks require the expected method structure. The four analyzed external consumer mods have mapped seams, but no adapted consumer source or consumer-specific in-game result is included in this release.

The byte-level result covers the canonical probe boundaries. It is not a claim that complete persisted saves, entities, lighting or late process-sensitive decoration state will match byte for byte.

Install notes

Place WorldgenLib-0.1.0.zip in the server Mods folder. WorldgenLib is server-side, so clients do not need to install it. Use a test world when changing world-generation combinations.

WorldgenLib is a library, not a standalone terrain overhaul. It has no visible effect until a consumer mod registers world-generation hooks or uses one of its registries.
Need the API and compatibility guide?
The Wiki covers installation, contexts, ordering, map hooks, terrain hooks, registries, diagnostics, migration notes, testing and the current status limits. Read the compatibility page before pairing WorldgenLib with a full worldgen replacement or an inline patch.

Project description from Vintage Story Mod DB.

Pick your setup

WorldgenLib releases for each Vintage Story version.

Choose the version and loader you play, then open the matching release.

8 available setups

Check the dependencies, then try the file in a copied instance before changing a world you care about.

Recent files

WorldgenLib versions and loaders

1 of 1 releases match

Looking for an older file? The official Vintage Story Mod DB project page is in Resources.