balrond core optimizer
Mod optimize logic calculations in multiple ingame components to lessen CPU burdenBalrond Core Optimizer — Changelog
v0.2.7 — Development update (2026-10-20)
Status: source-stage update; static checks completed in the development workflow. A successful C# build or static validation does not establish multiplayer, visual or performance correctness without Valheim runtime testing.
Diagnostics and tools
- Added the client-side
bco_diagconsole command: immediate snapshot,start [seconds],full [seconds],stop,methods,materials,help. Timed sessions default to 60 seconds and clamp to 10–180 seconds; reports are saved toBepInEx/BCO_Diagnostics/. - Added comprehensive
fullreporting of frame intervals, available GC/main-thread allocation readings, BCO-owned service timings, Harmony owners, settings, Balrond/external providers, scene-registry changes and on-demand material incidents. - Improved the diagnostic method inventory and offline Valheim assembly audit tooling, including generic
MethodSpeccall resolution. The method inventory is static/read-only; there is no new full per-method CPU profiler. - Added approximate sampled p50/p95/p99 frame-interval statistics and hitch counts. These do not represent isolated CPU/GPU frametime and should not be advertised as FPS gains.
- Reduced routine
Infologging. Successful command registration and normal startup/report messages are silent or Debug-only; warnings and errors remain visible.
Five bounded safety utilities
CacheVerification: periodically verifies the BCO-owned camera identity memo (one in 32 hits); divergence disables that memo for the current session and falls back to a live read.FrameCameraSnapshot: same-frame camera identity reuse limited to BCO's optional LightLod scheduler. World positions are read live; known camera/post-processing providers bypass memoization.OwnedStateGuard<T>: conditional restoration of BCO's own experimental GPU-instancing material flag writes; avoids overwriting changed shader/observed state.ReusableBufferPool<T>: capacity-limited, cleared reusable arrays for BCO's external-provider diagnostic reporting only; no pooled world objects/network state.ExternalOptimizerDiagnostics: advisory recognition of SteadyFrame, ValheimVisuals and other visual/camera providers without taking over their systems.- These modules add no new BepInEx configuration entries or Valheim Harmony targets.
Performance, correctness and compatibility
- Cached the weak-state factory delegate; reduced avoidable BCO allocations on repeat state lookups.
- Improved
LightLodSchedulertransition-queue removal and unregister cleanup; hardened Unity InstanceID reuse handling and per-object vanilla rollback so one failing object cannot abort restoration of others. - Replaced optional GPU-instancing allowlist prefab reflection calls with the publicized direct
ZNetScene.GetPrefab(string)API; kept the feature opt-in/disabled by default, with BAO material ownership and external-renderer guards. - Improved weak Unity-object registry identity checks, avoiding removal of a newer entry if Unity reuses an InstanceID.
- Kept Harmony conflict handling per exact target. Delegated known Balrond-owned overlaps; protected BAO visuals, BMM authority and BetterBuild
WearNTearownership. - Improved source/project hygiene, ILRepack
PackageReferencebuild metadata, matching 0.2.7 versions, tests and developer validation artifacts; removed obsolete source patch instructions andpackages.configfrom the prepared clean baseline. - Preserved existing Conservative Mode defaults, ServerSync registration and gameplay boundaries. No static-building clusters, construction GPU batching, AI, ZDO, multiplayer-authority or physics overhaul was added.
Known limitations / testing
SkyAlpharemains a no-op/blocked fallback where its exact method is unavailable;Ground Loot NonAlloc Physicsis off by default and its protected target may be delegated.- Instrumented BCO services are not a general Valheim method profiler. Material scans run only on request or at the end of
bco_diag full. - Compilation and in-game A/B, DX11/Vulkan, host/client and dedicated-server tests remain release gates. No measured FPS improvement is claimed for these changes.
v0.2.6
- Prior development baseline for the 0.2.7 changes. The supplied historical changelog does not contain a detailed v0.2.6 entry; no undocumented release claims are added here.
v0.2.5
- ServerSync/ILRepack build integration and multiplayer configuration hotfixes; actual deployment now uses the merged DLL rather than a loose ServerSync runtime dependency.
v0.2.4
- Code optimization, additional patch gates and improved patch efficiency.
v0.2.1
- Multiplayer synchronization and safety improvements, including protection for Catapult/SiegeMachine composite Vagon instances.
v0.2.0
- More selective Harmony compatibility, audited owner delegation and additional presentation/query optimizations.
v0.1.3
- Even More Deep North Fix.
v0.1.2
- More Deep North Fix.
v0.1.1
- Deep North Fix.
v0.1.0
- Initial release.
