Skip to content

Patch Notes Page 78

  • Advanced scripted and native mod runtime capabilities.
  • ScriptRuntime now loads JSON entrypoints and executes bounded hook actions (add_copper, wave-clear bonus multipliers, and spawn_enemy requests).
  • Wave-start script actions are now applied in runtime (scripted copper grants and enemy spawns), and wave-clear rewards now honor script-configured multipliers.
  • Upgraded native plugin host from scaffold to dynamic loading path.
  • NativePluginHost now resolves platform-specific plugin binaries, validates required exports/ABI/API metadata, and executes plugin lifecycle callbacks (OnLoad, OnTick, OnUnload) in unsafe mode.
  • Added platform-aware binary resolution and actionable failure reasons (platform mismatch, binary not found, export missing, ABI mismatch).
  • Added missing mod deliverables and tests.
  • Added game/mods/ModRuntimeState.h/.cpp.
  • Added tools/native_sdk/ (C ABI header, sample plugin CMake project, SDK README).
  • Added script_runtime_tests and expanded mod_runtime_tests for digest and native-loader behavior.
  • Packaging/docs updates.
  • Packaging scripts now include tools/native_sdk/ as native_sdk/ in distributables.
  • Expanded WardenModKit validate lint coverage for gameplay datasets and added starter schemas for enemies, waves, contracts, and rpg.
  • WardenModKit init now scaffolds scripts/runtime.json and wires script entrypoints by default.
  • Updated README.md, docs/MODDING_GUIDE.md, docs/MODDING_API.md, docs/NATIVE_PLUGIN_SDK.md, and docs/GAME_SPEC.md for new runtime behavior.
  • Updated build/version alignment.
  • Updated player-visible build string to Pre-Alpha | Build v0.0.748.
  • Updated Discord join-service test build-tag fixtures to v0.0.748 (mismatch assertion moved to v0.0.749).
  • Expanded mod validation test infrastructure for cleaner CI signal and compatibility coverage.
  • Split workshop validation assertions into a dedicated steam_workshop_validation_tests target.
  • Kept steam_workshop_tests focused on workshop manifest/load-policy and upload-tooling smoke behavior.
  • Hardened native plugin compatibility digest regression coverage.
  • mod_runtime_tests now asserts NativePluginHost::activePluginDigest() is non-empty, deterministic across repeated loads, and changes when permission/API gating state changes.
  • Updated build/version alignment.
  • Updated player-visible build string to Pre-Alpha | Build v0.0.747.
  • Updated Discord join-service test build-tag fixtures to v0.0.747 (mismatch assertion moved to v0.0.748).
  • Expanded automated coverage for workshop mod validation and native permission gates.
  • steam_workshop_tests now validates root-level and nested workshop mod.json discovery.
  • Added regression checks for invalid manifests, duplicate workshop IDs, diagnostics, and exported valid mod roots.
  • Added SteamWorkshopService::setMountedRootsForValidation(...) to exercise validation deterministically without Steam runtime dependencies.
  • Added native plugin host gating regression tests in the mod runtime suite.
  • mod_runtime_tests now covers unsafe-mode rejection, API mismatch rejection, allow-list-required behavior, and permission normalization/denial paths.
  • Updated build/version alignment.
  • Updated player-visible build string to Pre-Alpha | Build v0.0.746.
  • Updated Discord join-service test build-tag fixtures to v0.0.746 (mismatch assertion moved to v0.0.747).
  • Expanded milestone runtime integration for modding, scripting, and workshop validation.
  • Added script hook dispatch for enemy spawn/kill, player damage, pickup collection, wave start, boss spawn, and run start.
  • Added native plugin permission allow-list validation and explicit unsafe-native warning paths.
  • Added workshop-side manifest scanning with canonical mod-id validation and duplicate-id rejection diagnostics.
  • Improved in-game Mods manager controls.
  • Added Unsafe Native Mods: ON/OFF toggle directly in the Mods menu.
  • Mods page now surfaces runtime warning counts and selected-mod missing dependency hints.
  • Added WardenModKit CLI scaffolding and packaging coverage.
  • Added tools/modkit + modtools with init, validate, pack, inspect, diff, and map validate commands.
  • Added mod template/schema assets and packaged mods/ + modtools/ in all platform pack scripts.
  • Added net/test/runtime safety coverage updates.
  • Added net join regression for mod set mismatch in NetSessionJoinTests.
  • Updated workshop manifest supported roots to include mods.
  • Updated build/version alignment.
  • Updated player-visible build string to Pre-Alpha | Build v0.0.745.
  • Updated Discord join-service test build-tag fixtures to v0.0.745 (mismatch assertion moved to v0.0.746).
  • Added milestone-0 runtime mod infrastructure and deterministic load order.
  • Added engine/mod systems for mod.json parsing, discovery, dependency/load-hint resolution, and virtual filesystem mounting.
  • Runtime mod precedence now resolves as enabled mods, then workshop roots, then base game roots.
  • Wired core content loading through the mod-aware VFS.
  • GameRoot::resolveAssetPath(...) now resolves through the shared mod VFS before fallback.
  • Data loaders for asset manifest, enemies/units/allies, RPG data, waves/contracts, menu presets/abilities, and menu-attract config now use mod-aware path resolution.
  • Improved TMX include fallback behavior for modded maps.
  • TmxLoader now accepts include search roots and can resolve external TSX includes through mounted roots when map-relative includes are absent.
  • Added runtime mod regression coverage.
  • Added tests/ModRuntimeTests.cpp and mod_runtime_tests target (manifest/registry/resolver, VFS precedence, asset-manifest override, TMX include fallback).
  • Updated build/version alignment.
  • Updated player-visible build string to Pre-Alpha | Build v0.0.744.
  • Updated Discord join-service test build-tag fixtures to v0.0.744 (mismatch assertion moved to v0.0.745).
  • Fixed Combustion hazard hit detection to require direct flame contact.
  • Combustion damage/ignite now triggers only while the hero collider overlaps the active flame footprint.
  • Contact checks now clamp to the visible 32x32 flame bounds, preventing long-range ignition from oversized tuning radius values.
  • Updated Combustion mutator text/tuning for clarity.
  • Updated mutator description to explicitly state direct flame contact behavior.
  • Updated default puddleRadius tuning to 16.0 (32x32 flame half-size).
  • Updated build/version alignment.
  • Updated player-visible build string to Pre-Alpha | Build v0.0.743.
  • Updated Discord join-service test build-tag fixtures to v0.0.743 (mismatch assertion moved to v0.0.744).
  • Adjusted Volatile death explosion sizing/placement for exact sprite-scale readability.
  • Volatile Explosion1.png death FX now renders at fixed 32x32 in-world (1:1 with source frame size).
  • Volatile explosion spawn is centered on the dying enemy position.
  • Updated build/version alignment.
  • Updated player-visible build string to Pre-Alpha | Build v0.0.742.
  • Updated Discord join-service test build-tag fixtures to v0.0.742 (mismatch assertion moved to v0.0.743).
  • Fixed volatile death explosion visibility layering.
  • Volatile explosion overlay now computes a render sort bias from the dying enemy’s visual height so the explosion draws above the corpse reliably.
  • Slightly increased minimum volatile explosion render span for better readability on small enemies while preserving enemy-scaled behavior.
  • Updated build/version alignment.
  • Updated player-visible build string to Pre-Alpha | Build v0.0.741.
  • Updated Discord join-service test build-tag fixtures to v0.0.741 (mismatch assertion moved to v0.0.742).