v0.2.2
Bugfix release. Everyone on 0.2.1 should update: the fix lives in the built DLL, so reinstall (rerun the installer or build script) after downloading this release's source.
Fixed
- The 0.2.1 "Client Thread Crash" on world load. The chunkculling thread died with
Field not found: 'ClientWorldMap.chunksLock'on every world load. The release DLL is the vanilla assembly with selected optimized methods transplanted in, and the transplanted occlusion-culling method referenced that field with a signature the vanilla assembly cannot resolve. The field keeps its vanilla type now, and the patcher verifies every transplanted reference by full signature - the same way the runtime resolves them - before it will write a DLL. - Startup shader crash from corrupted installs (
blur.vsh ... syntax error, unexpected $end). A partially extracted game download could poison the build cache and get reused by every reinstall. The installer now detects zero-byte and truncated files, discards bad extractions, and packaging refuses to ship a build whose staged assets or shaders fail validation. - A mod exception no longer kills the whole client while the creative search index builds. Mods that throw from held-item info there (a SmithingPlus shutdown race is a known trigger) previously crashed the game; the affected item now falls back to a name-only search entry and the offending mod is named in the log.
- Cancellable event handlers (
BeforeActiveSlotChangedand friends) were cast to the wrongFuncdelegate type in full-compiled builds, failing every registered handler withInvalidCastExceptionand spamming the log. Fixed, and a new cast-divergence check incheck-vanilla-compat.shgates this whole class of decompiler artifact.
Also in this release
- All 33 locale files for the Optimum settings strings, previously missing from the public tree.
- New regression tests:
CecilTransplantBoundaryTests,EventHelperDelegateCastTests.
Amended 2026-07-06 (second hotfix)
- Temperature and other non-ASCII strings showed as mojibake (
°Crendered as°C). The lang-file merge read/wrote vanilla translation JSON without an explicit encoding, and Windows PowerShell 5.1 (what the installer launches the packaging script under) defaults to the system codepage for a BOM-less file, corrupting every non-ASCII character. Fixed by reading/writing UTF-8 explicitly, independent of the PowerShell edition running the script.