Skip to content

v0.2.2

Choose a tag to compare

@Zaldaryon Zaldaryon released this 06 Jul 12:54
· 15 commits to main since this release
v0.2.2
c736713

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 (BeforeActiveSlotChanged and friends) were cast to the wrong Func delegate type in full-compiled builds, failing every registered handler with InvalidCastException and spamming the log. Fixed, and a new cast-divergence check in check-vanilla-compat.sh gates 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 (°C rendered 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.