Balrond-balrond_core_optimizer icon

balrond core optimizer

Mod optimize logic calculations in multiple ingame components to lessen CPU burden

CHANGELOG

Balrond 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_diag console 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 to BepInEx/BCO_Diagnostics/.
  • Added comprehensive full reporting 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 MethodSpec call 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 Info logging. 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 LightLodScheduler transition-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 WearNTear ownership.
  • Improved source/project hygiene, ILRepack PackageReference build metadata, matching 0.2.7 versions, tests and developer validation artifacts; removed obsolete source patch instructions and packages.config from 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

  • SkyAlpha remains a no-op/blocked fallback where its exact method is unavailable; Ground Loot NonAlloc Physics is 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.