Skip to content

Patch Notes Page 77

  • Massively expanded unsafe native C++ mod API power surface.
  • Added broad NativePluginHostApi callbacks for run state access (getCurrentWave, getHeroLevel, getCopper), state mutation (setWave, setCopper, addExperience), direct actions (spawnEnemyBatch, healHero, damageHero), and gameplay multipliers.
  • Added new multiplier controls for player damage/move/attack speed, XP/gold gain, enemy health/speed/damage, copper reward gain, and wave-clear bonus gain.
  • Wired new native callbacks into runtime gameplay systems.
  • Native callbacks now bind through Game.cpp to core run-state controls and economy/combat mutation paths.
  • Added host-side runtime application of enemy health/speed overrides for existing enemies.
  • Added effective enemy contact-damage integration so native enemy damage multipliers affect enemy-special/mutator damage paths consistently.
  • Updated SDK/docs and tests for the expanded API.
  • Updated SDK headers and sample plugin to use and demonstrate the wider callback surface.
  • Expanded mod_runtime_tests callback coverage for new NativePluginHost callback routes.
  • Updated build/version alignment.
  • Updated player-visible build string to Pre-Alpha | Build v0.0.756.
  • Updated Discord join-service test build-tag fixtures to v0.0.756 (mismatch assertion moved to v0.0.757).
  • Fixed native-plugin crash on run start when using the enemy-size pulse template mod.
  • NativePluginHost now stores the plugin host API table as persistent member state instead of a temporary stack variable.
  • Prevents plugins from dereferencing an invalid host API pointer during OnTick.
  • Updated build/version alignment.
  • Updated player-visible build string to Pre-Alpha | Build v0.0.755.
  • Updated Discord join-service test build-tag fixtures to v0.0.755 (mismatch assertion moved to v0.0.756).
  • Fixed shipped native pulse-mod runtime usability.
  • Root zeta builds now automatically compile the shipped template_enemy_size_pulse_cpp plugin.
  • Build output staging now consistently includes the pulse plugin binary in runtime mods/, preventing silent “enabled but no effect” states.
  • Improved Mods menu native diagnostics.
  • Mods details panel now shows per-selected-mod native plugin load status/reason (for example missing binary or permission/API rejection).
  • Updated modding docs for shipped native template behavior.
  • Updated README.md, docs/MODDING_GUIDE.md, and template mod docs to call out auto-build behavior.
  • Updated build/version alignment.
  • Updated player-visible build string to Pre-Alpha | Build v0.0.754.
  • Updated Discord join-service test build-tag fixtures to v0.0.754 (mismatch assertion moved to v0.0.755).
  • Added a shipped native C++ template mod for obvious runtime verification.
  • Added mods/template_enemy_size_pulse_cpp/ with a native plugin source project and manifest wiring.
  • Template plugin repeatedly shrinks/grows enemies (sine-wave scale pulse) for immediate visual confirmation.
  • Added native mod docs and build instructions in README_mod.md.
  • Expanded native plugin host API for gameplay-visible scaling tests.
  • Added setEnemyScaleMultiplier(float) callback to NativePluginHostApi / SDK header.
  • Runtime now applies plugin-driven enemy scale multipliers to enemy render size + hitbox AABB.
  • Enemy scaling resets safely on run reset and when native plugins unload.
  • Updated SDK sample and docs for the new callback/template flow.
  • Updated tools/native_sdk/sample_plugin to demonstrate enemy scale modulation during ticks.
  • Updated README.md, docs/MODDING_GUIDE.md, docs/NATIVE_PLUGIN_SDK.md, docs/GAME_SPEC.md, mods/README.md, and tools/native_sdk/README.md.
  • Updated build/version alignment.
  • Updated player-visible build string to Pre-Alpha | Build v0.0.753.
  • Updated Discord join-service test build-tag fixtures to v0.0.753 (mismatch assertion moved to v0.0.754).
  • Fixed Mods menu row selection clicks in the left panel.
  • Stopped rebuilding mod rows every frame, which could invalidate click state before Click events fired.
  • Dynamic row listeners are now rebuilt only when row content changes, with old listeners safely released.
  • Improved Mods menu runtime stability.
  • Separated persistent button listeners from dynamic row listeners to avoid stale listener buildup.
  • Updated build/version alignment.
  • Updated player-visible build string to Pre-Alpha | Build v0.0.752.
  • Updated Discord join-service test build-tag fixtures to v0.0.752 (mismatch assertion moved to v0.0.753).
  • Added a shipped gameplay-visible template mod for immediate runtime verification.
  • Added mods/template_giant_monsters/ with data/enemies.json overrides that increase enemy sizeMultiplier values.
  • Mod is designed to be toggled on/off from Mods menu and produce an obvious visual difference in live runs.
  • Updated shipped mods documentation.
  • Updated mods/README.md, README.md, and docs/MODDING_GUIDE.md with the new gameplay template mod.
  • Updated build/version alignment.
  • Updated player-visible build string to Pre-Alpha | Build v0.0.751.
  • Updated Discord join-service test build-tag fixtures to v0.0.751 (mismatch assertion moved to v0.0.752).
  • Added a shipped no-op template mod for runtime verification.
  • Added mods/template_noop_mod/ with a valid manifest and zero gameplay overrides.
  • Template mod is safe to toggle on/off in Mods menu and is intended to verify mod loading without gameplay changes.
  • Added build-output staging for shipped mods in local VS26/Release runs.
  • CMake zeta post-build now copies repo mods/ to runtime output (build-vs26/Release/mods).
  • Added mods/README.md documenting shipped mod folder purpose.
  • Updated docs for template-mod workflow.
  • Updated README.md and docs/MODDING_GUIDE.md to reference template_noop_mod.
  • Updated build/version alignment.
  • Updated player-visible build string to Pre-Alpha | Build v0.0.750.
  • Updated Discord join-service test build-tag fixtures to v0.0.750 (mismatch assertion moved to v0.0.751).
  • Expanded Warden Forge from scaffold to a usable phase-2 desktop mod editor.
  • Added live editors for enemies, waves, drops, abilities, and map-link JSON datasets.
  • Added integrated mod validation and TMX map validation actions powered by WardenModKit.
  • Added asset browser with PNG/GIF preview for rapid sprite-sheet iteration.
  • Added selected-mod launch profile wiring for test-in-game flow.
  • Warden Forge now launches the game with WARDEN_TEST_MOD_ROOT, WARDEN_TEST_MOD_ID, and WARDEN_TEST_ONLY_MODS.
  • Runtime mod discovery now honors WARDEN_TEST_MOD_ROOT and supports forced selected-mod enable/pinning in Game.cpp.
  • Optional test-only mode now constrains active mods to selected mod + required dependencies for deterministic iteration.
  • Expanded native plugin host gameplay callback surface.
  • Added grantCopper(int amount) to NativePluginHostApi and wired it into runtime through NativePluginHost + Game.cpp.
  • Updated the native SDK sample plugin to call grantCopper on tick, proving runtime behavior can be modified through supported host API calls.
  • Hardened WardenModKit validation lint rules.
  • Added warnings for common broken asset references and out-of-range tunables.
  • Added unsafe script-action detection for JSON entrypoints under scripts/.
  • Packaging and docs updates for tooling distribution.
  • Packaging scripts now include tools/warden_forge/ as warden_forge/ in Linux/macOS/Windows outputs.
  • Added tools/warden_forge/README.md and updated README.md, docs/MODDING_GUIDE.md, docs/GAME_SPEC.md, and modtools/README.md.
  • Updated build/version alignment.
  • Updated player-visible build string to Pre-Alpha | Build v0.0.749.
  • Updated Discord join-service test build-tag fixtures to v0.0.749 (mismatch assertion moved to v0.0.750).