← All news

Stratum 1.22.6-stratum.1 is out

Posted by Trevor · August 2, 2026

Stratum 1.22.6-stratum.1 is now available.

This release moves Stratum to Vintage Story 1.22.6 and brings the worldgen work from the recent indev builds into a stable release. The main goal this time was to keep Stratum’s parallel chunk generation and contributor optimizations active on an unmodded server, while making the same code far less likely to break worldgen mods.

It also includes more worldgen concurrency work, fixes for several races found while pushing those stages harder, lighting fixes, a cleaner config layout, better update notices for staff, and a bootstrap fix for incomplete server caches.

Download 1.22.6-stratum.1

Before updating

Make a normal world backup and update clients to Vintage Story 1.22.6 before moving an existing server over.

Stratum’s config is now on version 3. Existing version 1 and version 2 configs migrate automatically. Chat rate limits, role prefixes, nametags, theme settings, rules, links, and MOTD text are moved into the new layout while keeping their current values.

The short version

Terrain and TerrainFeatures can now generate several columns at once after a much wider audit of the code they call. The work closes races in schematic placement, chunk database reads, map chunks, region caching, generator scratch state, and dispatcher claims. Structure placement keeps the serial behavior it needs, without forcing the rest of TerrainFeatures back to one column at a time.

The larger change is how this behaves around mods. Stratum now keeps vanilla generator fields, methods, constructors, and handler identities visible where its earlier worldgen changes had reshaped them. Each worker thread gets its own generator instance, so the stock path remains safe and fast without replacing vanilla fields with thread-local ones that reflection and Harmony patches cannot find.

When foreign handlers or patches make a parallel stage unsafe, Stratum returns only that part of generation to the vanilla layout and serial schedule. It reports the fallback in the log, and the rest of the optimized pipeline stays active.

Worldgen performance and correctness

This release finishes the first large pass over Terrain and TerrainFeatures concurrency.

These fixes keep the performance work in place. They do not remove the worker dispatcher, stage concurrency, pooled scratch data, faster placement paths, or the allocation reductions contributed across the project.

Worldgen mod compatibility

Stratum’s rule is that mods should not need a Stratum-specific build. The server has to adapt when it changes a vanilla path.

This release restores the vanilla shape of the worldgen code Stratum had changed most heavily. Cave and chunk random fields are plain fields again, the original PathfinderTask constructor is available to compiled mods, and vanilla handlers stay visible until the server knows an optimized split is safe. Mod handler removal, duplication, and registration order are kept intact.

The compatibility work covers terrain, rock strata, caves, block layers, deposits, structures, ponds, vegetation, creatures, dungeons, terrain post-processing, and schematic placement.

The new path was tested with Terra Prety, Rivers, and Watersheds loaded together. They generated successfully in the same world. That is a good result for three mods touching the most changed part of Stratum, though more combinations are always welcome.

Server-owner changes

Configuration is less crowded in this release. Appearance settings now own the theme, role prefixes, and nametags. Server information owns the rules, Discord and website links, and MOTD. Chat keeps connection messages and rate limiting. Existing settings are migrated instead of reset.

The update checker now repeats its check on a configurable interval and tells online staff with the server-control privilege when a newer stable release is available. Server statistics also use the game’s online-player list for the public player count, with admitted clients retained as diagnostic data.

Bootstrap now checks that a cached server extraction actually contains the required DLLs. An incomplete cache is extracted again, and setup stops with a clear error if the archive still does not contain what the build needs.

Thanks

This release includes work from:

Thank you as well to everyone who tested the indev builds and tried real worldgen mod combinations. This work depended on those reports, especially the cases where a clean server worked and a familiar mod exposed a vanilla assumption Stratum had changed.

Full changelog

Vintage Story 1.22.6

Worldgen concurrency

Mod compatibility

Lighting

Config and server tools

Full commit comparison: v1.22.5-stratum.1…v1.22.6-stratum.1