Changelog
Last updated:
- Published on
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[Unreleased]
[0.33.0] - 2026-08-06
Added
- Mod test room teleports — Dev Mode Room Teleport adds Mod test — Rest site and Mod test — Treasure entries that spawn extra fake players with your character so you can preview official multiplayer campfire and relic-hand UI in solo dev runs.
- MCP
dev_add_relic— Grant a relic to the local player by model id, the relic counterpart ofdev_add_card. Passsearchto list ids and rarities without a run. @Elnas32 · PR #14 · 37b6d19 - MCP
dev_hover— Focus a UI element so hover-only behaviour fires.targettakes an alias (map_node,reward_alternative,rest_option,relic,boss_icon,event_option,potion,card,creature,treasure_relic) or any node type name;target: "list"reports every focusable type on screen,"none"unhovers,clickpresses after focusing, and omittingindexlists that target’s instances. @Elnas32 · PR #14 · 2099602
Fixed
- Card browser → selection screens — Opening the card browser no longer leaves official card pick/remove grids with shrunk or misaligned cards afterward. Thanks to OLC for the report.
- Pseudo co-op companion spawn on v0.110.1 — Registering a simulated peer threw
NullReferenceExceptionand aborted the spawn part-way, leaving the companion in the run with no action queue, so every card it played was dropped and its turn was force-ended. @Elnas32 · PR #8 · 108b87c - Combat ready-set lookup on v0.110.1 — The per-player "ready to begin enemy turn" check always reported
false, so simulated peers were re-signalled after they were already ready. @Elnas32 · PR #8 · 108b87c - Dev panel icons — The MDI icon set is generated as part of the build instead of only by
make icons, which nothing depended on.KitLib.Panelshipped with no icon set at all: the build stayed green while every icon lookup loggedicon '<name>' not foundat runtime. @Elnas32 · PR #13 · b78a311
[0.32.1] - 2026-08-01
Added
- Dev Viewer AI panel — Stream combat and macro decision telemetry, sim/option breakdown, deck combo panel, and macro scoring insights.
- Sim-first deck scoring — Macro picks use route fight outcomes and combo option chains with exercise probability instead of Codex defaults alone.
Changed
- Combat AI opener and map scoring — Prioritize vulnerable setup over idle block on safe turns; map routes scored with route-sim EV.
Fixed
- STS2 v0.110.1 — KitLib supports the latest game build; multiplayer handshake, hotkeys, controller UI, and lobby peer listing work again on v0.110.1.
- Combat AI block scaling — Body Slam damage modeled in simulation; block-scaling openers deferred until block is useful; peeked key cards no longer burned by Havoc-style plays.
- Combat AI chip damage — Prefer safe chip damage over redundant block when incoming damage is already fully covered.
[0.32.0] - 2026-07-26
Added
- Multi-version support — One KitLib install can cover stable and beta; the matching build loads for your game version. Limited maintainer bandwidth — public releases and ongoing support still focus on beta.
- Android support — KitLib modules are enabled by default on Android; modules that fail to load are skipped so the rest of KitLib keeps working.
Changed
- Dual-instance LAN presets — Removed auto-apply on launch; use DevPanel → AI Host LAN preset buttons on each window.
Fixed
- Dual-instance multiplayer — A real LAN client joining as player 1001 is no longer mistaken for the phantom companion; the host no longer auto-ready-to-end-turn for live clients, fixing combat desync when both players take their own turns.
[0.31.1] - 2026-07-21
Changed
- Developer console (auto-open on startup) — If a browser tab is already connected to the local viewer, KitLib no longer opens another one on startup.
- Developer console (logs) — Connection status uses traffic-light dots; removed the “Synced with game” toolbar badge.
Fixed
- Card browser — Adding a card from the library no longer refreshes the entire card grid and detail panel.
- Card browser — After searching or filtering, adding a card, then closing and reopening the panel, filtered cards can be selected again without clearing the search.
- Settings — Changing Dark / OLED / Light theme no longer freezes the Settings panel so it cannot be closed. Thanks to @minatowolf for reporting.
[0.31.0] - 2026-07-20
Added
- MCP card selection — New
get_selection_stateandselection_actiontools let agents read and pick cards on in-combat selection screens (discard/draw/exhaust pile picks, hand multi-select).combat_actionplay_cardcan passselection_card_idorselection_indexfor one-shot auto-pick; when a picker stays open, the response includespendingSelectionandselectionStateinstead of failing immediately.
Changed
- Log viewer & developer console — KitLib scoped log lines now use the same tag spacing as the official STS2 logger (
[KitLib] [Scope], not[KitLib][Scope]).
Removed
- Content mod logging API (
KitLibLog/ModLog/ModLogSettings) — Content mods should use the official STS2MegaCrit.Sts2.Core.Logging.Logger. KitLib.User still captures all logger output for the in-game log viewer and dev console. KitLibModSettingsUiOps.BuildLogLevelRow— UseLogger.SetLogLevelForTypein your mod settings instead.
[0.30.0] - 2026-07-19
Added
- Singleplayer AI companion — Mods can summon a second character into an active solo run via
CompanionBridge.TrySummon. The companion plays its own hand in combat, mirrors your map vote, and can handle rewards, events, and shop when enabled at spawn. - AI Host panel — Shows active companion count and solo-companion mode hints in Dev Mode → AI Host.
- Dev Mode rail expand — Mod panel → KitLib → General: Rail expand trigger — Hover peek tab (default) expands when you hover the small left-edge tab; Hover left edge expands on the screen edge and hides the peek tab.
- Map prediction — Dev Mode → Cheats → Game: Map prediction (off by default). With cheat mode on, hover unvisited map nodes to preview room type, encounters, and events;
?nodes follow the same RNG rules as the game. - Developer console (browser) — Unified dev panel at
http://127.0.0.1:9878with Logs and Combat tabs: live log stream, filter sync with the in-game log viewer, combat event timeline (per-turn state, search, kind filters), and JSON export. English / 中文. - In-game log viewer → Dev viewer — Dev viewer button opens the browser panel; filters stay in sync when Sync with game is on.
- Vanilla error dialogs — Popups with Feedback Bug now include Log Export (KitLib) below that button for a one-click diagnostics ZIP.
- KitLib hotkeys — Rebind modifier combos (e.g. Ctrl+Shift+M) in Mod settings → Hotkeys.
Changed
- Steam beta only — KitLib releases and Steam Workshop uploads now target the public-beta game branch (currently 0.109.x). There is no separate build for the stable/public Steam branch; match your game branch before installing or updating.
- Dev Mode rail (default) — The left sidebar now expands when you hover the peek tab by default; switch to left-edge hover in Mod panel → KitLib → General.
- Map hover preview — No longer appears whenever cheat mode is on; enable Map prediction under Cheats → Game. Visited nodes keep the vanilla tooltip.
- Card test room — Training dummy combat now uses a KitLib-only encounter. We’re sorry the old implementation also changed the official Battleworn Dummy event.
- Auto-open developer console — KitLib setting renamed from the legacy kitlog terminal option; one toggle opens the browser dev panel on startup (default off).
- Log export ZIP — Removed
report.txtand the title/description form; export always includes Harmony patches, combat stats, and a full game log at the ZIP root. - Log export UI — Merged into the log viewer; Log Export opens a slide-out extension panel (same pattern as the card browser). Removed the standalone Dev rail tab and main-menu entry.
- Command reference — Commands are grouped under Official and per-mod sections; official command descriptions are localized (English / Chinese).
Removed
- kitlog CLI — Removed from the repo, build pipeline, GitHub/Nexus releases, and
make deploy-tools. Use the browser developer console (http://127.0.0.1:9878/#/logs) or tail%AppData%\SlayTheSpire2\logs\godot.logfor dual-instance debugging. - Per-instance
session.log— KitLib no longer mirrors logs tomod_data/KitLib/instances/{pid}/session.log. All play uses the officialuser://logs/godot.log. mod_data/KitLib/instances/— Removed lock files, per-PID filter JSON, and instance subfolders. Dual-instance detection uses running STS2 process count. Optionalperf-trace.lognow lives directly undermod_data/KitLib/. Startup auto-deletes any leftoverinstances/folder (temporary migration; remove this cleanup in a later release).- Combat stats auto-open — Removed the separate “open combat stats in browser when combat starts” setting; use Auto-open developer console instead.
- Combat contribution score — Removed weighted combat scores, the multiplayer top-right score overlay, and related settings.
- Combat stats Dev panel — Removed the in-game Combat Stats rail tab and launcher panel.
- Combat stats views — Removed summary, by-card, damage-taken, turn charts, extended stats, and run totals; timeline is shown in the browser viewer.
- Combat stats right rail — Removed the in-combat right-edge event overlay.
- Combat stats viewer: Current / Last — Removed the snapshot source toggle; the viewer shows the active combat only.
- Dev console — KitLib
dm*commands (cheats, saves, stats, enemies, cards, relics, and related tools). Use DevMode panels instead. - Mod variant bundles — Removed
KitLib.ModVariantLoaderand multi-DLLlib/<ModId>_<version>/layouts. Content mods should ship one build for the current beta game line.
Fixed
- KitLib on Steam beta (0.109+) — Fixed startup errors when optional satellite modules (e.g. Cheats) or content mods that register custom cards or relics were installed.
- Official Battleworn Dummy event — With KitLib loaded, the hardest training tier no longer shows 999999999 HP or behaves like the card-test infinite dummy.
- In-game log viewer — Fixed the panel stopping on old lines or showing only engine backtrace spam instead of the latest logs.
- In-game log viewer — Godot gamepad input-map errors (and their backtrace blocks) are folded by a built-in suppress rule so mod and KitLib lines stay visible.
- Dev Mode rail / settings — Fixed tab labels mixing English and Chinese in the main-panel list and sidebar tooltips.
- Enemy browser — map — Map encounter editing now works in normal runs with cheat mode enabled, not only dev test runs.
- Dev Mode rail (hover peek tab) — Fixed the sidebar rapidly opening and closing when hovering the peek tab.
- Map prediction —
?nodes predicted as shop, treasure, or rest site no longer show “cannot predict” under the correct room-type header. - Dev Mode sidebar after errors — After a mid-transition game error (e.g. room load failure), the left sidebar no longer stays hoverable but ignores clicks until you restart.
- Dev Mode panels with game dialogs — Panel content is clickable again while a vanilla fullscreen dialog is open (e.g. corrupt save load failure); previously only the sidebar responded.
- KitLib hotkeys — Fixed hotkey rebinding in Mod settings.
[0.27.0] - 2026-07-13
Added
- Mod panel — Open from Pause → Settings → General → Mods (KitLib) during a run.
- Mod panel — Ctrl+Shift+M opens or closes the panel from the main menu or during a run; rebind under KitLib Hotkeys.
- Dev Mode sidebar — Default keyboard shortcuts open each panel directly (e.g. Ctrl+Shift+C for Cards); rebind under KitLib Hotkeys → Open panel.
Changed
- Card browser — Filter controls are arranged in three rows; the mod-source filter is removed and library chips use shorter labels.
- Card browser — Improved scroll performance.
- Card browser — Performance timing logs are opt-in under KitLib Performance settings (off by default).
- Dev Mode panel shortcuts — Press the same shortcut again to close the open panel; the sidebar hides afterward when it was shown only for that shortcut.
Fixed
- Card browser — Fixed card descriptions not showing on hover.
[0.26.0] - 2026-07-11
Added
- Mod panel — Edit a custom display name for each mod from the detail banner.
- Mod panel — Harmony patch summary and details on the selected mod’s detail banner.
Changed
- Mod panel — Opens with KitLib selected when available; mod metadata (version, source, install size) appears as chips on the detail banner; click the source chip to open the install folder in your file manager.
- KitLib module settings — Optional modules are toggled individually.
Removed
- KitLib module settings — Load presets (Minimal / Standard / Full).
- Dev Mode — SpireScratch scripting and the one-hit kill cheat.
Fixed
- Log viewer — Opening the viewer now scrolls to the newest log lines.
- Mod panel — Ritsu-backed mod settings — Fixed mods with RitsuLib-registered settings showing only a single entry instead of the full settings page in the Mod panel.
[0.25.1] - 2026-07-09
Fixed
- ModVariantLoader — KitLib dependencies resolve from the game’s loaded KitLib mod path (Steam Workshop or local
mods/KitLib/), not only a hardcoded sibling folder.
[0.25.0] - 2026-07-09
Added
- KitLib module settings (main menu Mods → KitLib → Modules) — choose a load profile (Minimal / Standard / Full) and toggle optional modules; each entry shows its module ID, what it does, dependencies, and current status.
- Mod panel sidebar — each mod lists its install source (Steam Workshop or local) and install folder path.
Changed
- Dev Mode main menu — flatter layout: pseudo co-op options sit at the top level; the LAN debug submenu is removed.
- Multiplayer cheat opt-in — moved from Dev Mode settings to KitLib mod settings in the Mods panel.
Fixed
- Dev toolkit — turning off optional KitLib modules (Cheat, AI, Dev) in module settings no longer prevents the dev toolkit from loading when all module files are installed.
- Leaving a dev or pseudo co-op run — fixed main-menu hangs caused by combat replay serialization on exit.
- Pseudo co-op diagnostics — trace logging runs only during an active pseudo co-op session.
[0.24.1] - 2026-07-08
Added
- RegisterCharacterProfile — Content mods can register a per-character AI profile (e.g. non-combat auto-play) through
CompanionBridgewithout referencingKitLib.AI.dllor supplying a custom decision strategy; when the AI module is loaded, KitLib uses its built-in default strategy.
Changed
- Mod install layout — KitLib ships a thin
KitLib.dllentry loader plusKitLib.Core.dllat the mod root, with satellite modules inmodules/(nolib/variant picker). Re-subscribe or re-download from Steam Workshop or Nexus if your folder still uses the old layout. - Steam Workshop — One workshop listing publishes separate builds for the stable game branch (
public) and the beta branch (public-beta); subscribe once and the game serves the build that matches your branch.
[0.24.0] - 2026-07-04
Added
- ModVariantLoader NuGet package for content mods that ship stable and beta implementation DLLs in one mod folder.
- ComposeModVariantBundle MSBuild target and CLI to write variant manifests with SHA256 verification.
- Flat variant layout
lib/<ModId>_<pinned-game-version>.dllwith schema 2 manifests.
[0.23.1] - 2026-07-03
Changed
- AI Host, host teammate, SyncBot, phantom player, and client AFK toggles are session-only: they reset when a run ends and are no longer written to
settings.json, so solo or co-op runs should not unexpectedly start AI play on the next launch. - KitLib user data is read only from
mod_data/KitLib/. The oldmod_data/DevModefolder is no longer moved automatically on first launch — copy or rename it manually if you still have settings or snapshots there.
[0.23.0] - 2026-07-01
Added
- Card test: queue mod cards for automated base and upgraded testing in the training dummy room.
- Card test: smith-style upgrade preview for queued cards at campfires (cards are not played).
Changed
- Dev cheats: renamed Stat Locks to Stat Edit.
- Stat edit: changing a value applies immediately without enabling the lock checkbox first.
- Logs: single-instance play no longer writes
session.log; the log viewer and feedback export use the officialgodot.log, and old dual-instance log folders are cleared on startup. Per-windowsession.logfiles are created only while two game instances are running.
Fixed
- Fixed co-op combat stats overlay contribution bars not showing.
- Fixed combat stats overlay not updating during fights.
- Fixed combat stats overlay not being draggable.
- Fixed card browser detail panel not refreshing after upgrade or remove in pile tabs.
- Fixed dev cheats panel power adds failing during combat.
- Fixed dev save slots ignoring custom names entered in the save picker.
[0.22.2] - 2026-06-28
Fixed
- Multiplayer — Hosting or joining a regular Steam multiplayer run no longer freezes on a black screen at run start when dev cheat sync is opted in.
- Quick save / load — Saving at a rest site, shop, treasure room, or on the map no longer crashes on load with
ArgumentOutOfRangeException. Snapshots now follow the samePreFinishedRoomrules as the game’s Continue save; older snapshots with an invalid room type are repaired on load. - Kill All Enemies (cheats) — The cheat toggle in the dev panel works again when enabled.
- Lock Gold (cheats) — With gold locked in the dev cheats panel, spending or earning gold no longer changes your total.
- Lock Current HP (cheats) — Current HP stays at the locked value during combat.
- Lock Max HP (cheats) — Max HP stays at the locked value.
- Lock Current Energy (cheats) — Energy stays at the locked value when playing cards.
- Lock Max Energy (cheats) — Max energy stays at the locked value.
- Lock Stars (cheats) — Stars stay at the locked value in combat.
[0.22.1] - 2026-06-19
Removed
- In-game Manual rail panel — Embedded
manual/help and the Manual utility tab are removed. Use the docs site or repo README instead.
[0.22.0] - 2026-06-19
Changed
- STS2 v0.107.1 — KitLib requires the current game build (v0.107.1). Older versions (including 0.103.3) are not supported.
Fixed
- Mod Feedback — The log file dropdown now lists session logs from other game instances (
instances/<pid>/session.log), not only the current window. - Multiplayer — KitLib no longer breaks joining or hosting on the current game version.
Removed
- Automatic crash feedback prompts — KitLib no longer detects unhandled errors or abnormal exits and opens a feedback dialog. Use Dev Mode → Diagnostics → Mod Feedback (or the in-run dev rail) to export a report manually.
kitlib.compat.tomlsidecar — KitLib no longer reads or shows version/dependency warnings from compat sidecars in Mod settings or on the main menu. Declare requirements in the game’s official mod manifest (min_game_version,dependencies) instead.
[0.21.0] - 2026-06-13
Added
- In-run hotkeys panel — Open Settings → Keyboard shortcuts from a compact slide-out on the dev rail during a run, not only from the main-menu mod settings.
Changed
- Content browser layout — Card, relic, potion, power, enemy, and other pickers use a dual-column overlay (list + details). Panel width follows your viewport instead of a saved pixel width.
Removed
- In-run right context sidebar — Combat stats, enemy intent, and related context no longer appear in a separate column beside the dev rail; use the matching dev-rail tab or browser overlay instead.
- Saved dev panel width — Dual-column browser width is derived from the viewport each session, not from a stored pixel value.
Fixed
- Mod source filter (browsers) — The Mod source dropdown chip lines up with its label in card, relic, potion, and other content browsers.
- Crash recovery prompt — Quitting normally from the main menu no longer leaves a stale session marker, so the «previous session may have crashed» dialog does not appear on every launch.
- Power browser — The extension column no longer grows wider than the panel; the power detail row uses a simpler icon layout.
- Potion browser — Wider usable list column in the dual-column layout.
- Combat stats charts — Pie and per-turn damage charts stay visible while the dev panel slides in.
- Enemy browser — Map and enemy details use separate columns; map connection lines render correctly.
- Dev perf overlay — Shows reliably after startup when enabled in settings.
- Keyboard shortcuts — Rebinding and default keys work correctly with the game’s input system again.
[0.20.0] - 2026-06-11
Added
- Modular KitLib split — One in-game mod with a thin Core host (
KitLib.dll) and optional satellite DLLs undermodules/(KitLib.User,KitLib.ModPanel,KitLib.Panel,KitLib.AI,KitLib.Cheat,KitLib.Dev). Satellites register dev-rail tabs and features viaKitLibHost; shared runtime lives inKitLib.Features. Remove a satellite DLL (or pick a load profile) to disable that feature without uninstalling KitLib. Releases ship KitLib-Full plus per-module zips. NuGetSTS2.KitLib.Abstractionsis the compile-time contract for content mods. - Main-menu Mod settings panel — Native KitLib settings in the game’s mod list (RitsuLib bridge): browse and configure KitLib without the in-run dev rail.
- Mod Panel sidebar — Enable or disable loaded mods from the sidebar; each row shows a version badge and STS2-style focus cursor.
- Satellite load profiles — Choose Minimal, Standard, Full, or Custom sets of bundled KitLib modules from Mod settings.
- Mod settings: hotkeys — Rebind dev sidebar shortcuts (open/close rail, switch tabs, quick save/load, combat checkpoints) on a dedicated settings page.
- Mod settings: accent theme — Optional orange accent for KitLib UI chrome.
- Mod compatibility (
kitlib.compat.toml) — Settings surface dependency and version warnings from each mod’s compat manifest. - Content mod logging (
KitLibLog/ModLog) — Other mods can log through KitLib so lines appear in the log viewer with correct mod source tags and colors; reusable log-level row for mod settings pages. - KitLog CLI — Optional
kitlogtool (tools zip):tailforsession.log,attachfor a structured named-pipe stream,--sync-viewerto mirror in-game filters, optional auto-open in Windows Terminal when KitLib loads. - STS2 stable/beta dual build — KitLib ships stable- and beta-targeted builds; auto-detects your Steam install profile and shows a startup banner when the installed game version does not match the mod build.
- Dev perf overlay — Optional HUD (dev rail) with preload and save-serialization timing probes.
- AI Host & StrongStrategy — Mod AI platform with an AI Host panel in the dev rail, external companion terminal APIs, and StrongStrategy solo autoplay informed by Codex priors.
- Combat simulation & beam planner — In-fight AI simulates deck EV, multi-turn lines, relic/power hooks, potion use in search, minion engagement, and enemy mechanic discovery.
- AI HUD overlay — Top-left run overlay with big/small deck forecast, win estimate, and live sim telemetry (replaces the older heuristic HUD).
- Reward, map & rest AI — Card rewards scored by marginal deck/sim value (including next-fight beam preview); map routing weighs path risk; rest sites prefer campfires when the deck needs upgrades; scored hand picks for exhaust and upgrade prompts.
- Ancient event debug (dev tools) — From Events or Room Teleport → Ancient Ones, pick any ancient in the extension panel and enter randomly or pin a listed option (Darv, Orobas, and mod ancients share one picker);
dmevent force <eventId> [choice]. - MCP Nexus upload — Pipeline to publish mod packages to Nexus from the MCP tooling (see README MCP).
Changed
- Breaking: monolith → modules — DevMode’s single DLL becomes Core + satellites. Install KitLib-Full (recommended) or Core +
KitLib.Features+ the satellite zips you need.make syncdeploys Core only;make sync-fulldeploys the full local bundle. Existing installs migrate module toggles to Full (all satellites on); new installs default to Standard (Panel on; AI/Cheat/Dev off). - Rebrand to KitLib — Mod id, assembly, C# root namespace, user-data path (
mod_data/KitLib), and NuGet package id (STS2.KitLib) replace DevMode. Legacymod_data/DevModesettings migrate automatically on first launch. Dependent mods should referenceKitLib.dllandKitLib.*namespaces (e.g.KitLib.Companion.CompanionBridge). - Content-mod integration — Ship a
kitlib.compat.tomlsidecar for version/dependency checks in Mod settings; referenceSTS2.KitLib.Abstractionsat compile time andKitLib.dll(+ any satellite you need) at runtime. - Mod Panel navigation — Page tabs use an LB/RB shoulder carousel; controller hints and focusable sidebar rows; opens through the official submenu stack for reliable gamepad navigation.
- Progress protection — Settings, backup list, restore flow, and startup progress-loss prompt live under Mod Panel (replacing the legacy DEVMODE menu entry).
- Log format & viewer — KitLib internal lines use
[KitLib][scope]without duplicate[KitLib]prefixes; secondary scope tags render dimmer than primary mod tags in the log viewer and kitlog. - Combat stats sidebar — Context-pane score bar uses readable scale ticks aligned to the bar height.
- Combat AI behavior — Block-first lines, sim-backed focus fire and vulnerable setup, potion scoring in beam search, weak mitigation modeling, skip-anim-safe card play, no premature end-turn with playable cards, save/load after AI combat, and reward-screen skip loops resolved.
Fixed
- Install packages — Release zips again include the required PCK after the modular packaging split.
- STS2 stable + Dev Mode — Dev bootstrap on the stable game branch no longer crashes or double-applies Harmony on the main menu.
[0.13.0] - 2026-06-02
Added
- Dev sidebar keyboard shortcuts — Toggle the sidebar, close the active panel, switch tabs, or lock the rail from the keyboard. Rebind under Settings → Keyboard shortcuts (conflicts with in-game shortcuts are rejected).
- Quick save / load — F5 quick-saves and F9 quick-loads the current run (slot 0) during a run; rebind in Settings → Keyboard shortcuts. The Save / Load panel shows a dedicated Quick Save row at the top.
- Combat checkpoint nodes — During combat, DevMode auto-saves checkpoints at combat start and each player turn start (with a
.combat.binsidecar for in-fight restore of HP, piles, etc., without a fullLoadRun). F8 replays from combat start, F6 from the current turn start (rebind in Settings → Keyboard shortcuts). The Save / Load panel lists This combat nodes separately from quick save. - MCP bridge — Connect MCP clients (Cursor, Claude Desktop, etc.) to a running session on port 9877 for automated testing and agent workflows: game state, combat/map actions, save slots, cards, monsters, and cheats. See README MCP; bootstrap with
make dev-session. - MCP combat observability — During combat, MCP
get_game_stateincludes your active powers (stack counts and mod power ids), combat phase, and indexed enemies. Playing a card via MCP returns an after-play snapshot for assertions without guessing from HP alone.
Fixed
- Crash recovery prompt — Exporting a feedback ZIP or dismissing the dialog no longer leaves a stale pending report, so the main-menu prompt does not reappear every launch. Normal game quit now clears the session marker more reliably.
- STS2 Steam beta — Mod dependency metadata loads correctly on the beta game branch again.
[0.12.0] - 2026-06-02
Added
- Crash recovery prompts — When an unhandled error occurs in-game, DevMode shows a dialog to view logs or export a feedback ZIP (prefilled with crash summary). If the game exits abnormally, the main menu offers the same on next launch. Toggle under Settings → Crash recovery. Session markers live under
mod_data/KitLib/instances/{pid}/. - Progress protection — On mod set fingerprint change, DevMode backs up the active profile’s
progress.save(and optional related saves) undermod_data/KitLib/profile_backups/before vanilla save filtering can run. Optional warn-only log when progress still references unloaded mods. Toggle under Settings → Progress protection or the title-screen DEVMODE → Progress protection panel (status + recent backups + one-click restore). Each backup row has a Details button to inspect account progress, per-character stats, epochs, compendium counts, and backup metadata. - Progress protection startup prompt — On main menu load, if mod character stats were filtered but a recoverable backup exists, DevMode offers a Restore / Not now dialog (toggle under Progress protection settings).
- Content browsers (mod source) — Card, relic, potion, power, and event pickers include a Mod source filter to include or exclude game content and loaded mods. Detail views show Source: for the selected entry. The card browser remembers your mod-source filter across sessions.
Changed
- DEVMODE main menu — Logs and Mod Feedback are grouped under Diagnostics; Progress protection opens a dedicated panel from the title screen.
- AI Host (dev rail) — Uses a robot icon instead of sharing the Scripts puzzle icon.
Fixed
- DEVMODE main menu — Re-entering the title-screen DEVMODE submenu after Mod Feedback and save/load no longer stacks stock menu buttons with dev entries; overlays are torn down on hide. (Thanks @Crimson707707 for the report.)
- Add enemies to combat picker — The encounter and monster lists scroll correctly within the panel; switching to Monsters no longer leaves a large blank scroll area.
- Enemy intent overlay — Saving and exiting or leaving combat mid-fight with the intent overlay enabled no longer crashes or leaves a black screen; the overlay hides cleanly when combat ends. (Thanks @Crimson707707 for the report.)
[0.11.2] - 2026-06-01
Fixed
- Install packages — Official release zips and NuGet packages again include the required PCK file, so the mod loader no longer reports a missing PCK and the in-game mod list shows the preview image.
[0.11.1] - 2026-05-27
Fixed
- Mid-combat add monster — Adding a monster type for the first time no longer freezes the game for a long time.
- Mid-combat add encounter (multiplayer) — When the host syncs an entire encounter, all clients receive every monster correctly.
- Battle rewards — Opening the dev sidebar no longer dismisses the post-combat reward screen.
- Map debug jump — Map clicks work again; jumping to an Ancient room enters the Ancient encounter (not a random event); free map travel while the map screen is open only, normal path rules return after you close the map.
[0.11.0] - 2026-05-25
Added
- LAN host-drive + AFK testing — Run two game instances on one machine: the host plays while an AFK client receives AI-driven actions. Includes end-turn and enemy-turn ready sync, ally-target card support for AI teammates, and cleanup when host AI is toggled off mid-combat.
- DEVMODE main menu — The title screen uses a single DEVMODE button; Logs, Mod Feedback, and Multiplayer (pseudo co-op, LAN test scene) are inside that menu.
Changed
- In-game right sidebar defaults to off — turn on In-game right sidebar under Settings → Game to show the combat right rail (stats, enemy intent preview, combat tools).
- Enemy intent overlay defaults to off — enable it from the Enemy intents panel when you want the draggable prediction float during fights.
- Removed non-working Card Library and Relic Collection entries from the DEVMODE main menu.
- Settings — Game options (right sidebar, speed, skip animations) appear above the sidebar layout section; Show hidden cards was removed from Settings (still available in the card browser).
Fixed
- Log viewer — Closing and reopening from the header works again when the rail tab state was bypassed.
- STS2 Steam beta — Additional API compatibility fixes on the beta game branch.
[0.10.0] - 2026-05-24
Added
- Main menu DevMod shortcuts — On the title screen: Logs (DevMod) and Mod Feedback (DevMod) open the log viewer and feedback ZIP export without entering a run; in Dev Mode (DevMod), Unlock all progress (with confirmation) reveals timeline epochs, ascension A10, and compendium entries on your save.
- In-game manual — Manual rail panel with embedded help for each dev tool (replaces the separate Valaxy documentation site).
- Card browser — Optional show hidden cards and safer preview for event-only cards; mod character pools in a dropdown; right-click a filter chip to exclude that tag; pool filters split into clearer rows.
- Card enchantment picker — Expandable card grid when choosing enchantments during card edit.
- Logs — Viewer loads earlier lines from the on-disk game log; clearer mod vs game source coloring; rail tab alerts when new Warn/Error entries arrive; peek tab blinks until you hover it once.
- Enemy intent tools — Draggable in-combat intent overlay; Enemy intents DevPanel tab with next-turn preview rail; edit per-turn enemy intents in the enemy browser.
- Intent badges on the combat context rail stack vertically when an enemy has multiple intents.
- Rooms panel — Teleport to ancient shop locations from a slide-out submenu.
- AI Host panel — AI-driven combat from the dev rail; SyncBot simulates multiplayer ACKs for solo dev testing.
- Pseudo co-op (Host) — From Developer Mode main menu: one-click host with optional phantom player, map vote mirroring, and AI teammate in combat.
- Multiplayer cheat sync — When hosting with multiplayer cheat enabled: synced cheats, card/relic/potion edits, combat enemy tools, powers, and per-player cheat flags across clients.
- Combat enemy context rail — During fights, the game right Context Pane shows compact icons to add encounters/monsters, kill individual enemies, or kill all. Overlays handle search and selection.
- Combat Stats panel — live per-combat damage statistics (dealt, taken, block, cards played, breakdowns by card/source/turn) via the game’s
CombatHistoryAPI. Extended stats (overkill, blocked damage, energy, potions, debuffs, power damage, event timeline), run totals, current-vs-last comparison, JSON export, anddmstatsconsole command. SeeTODO.mdfor remaining backlog (HUD, co-op polish). - Combat Stats game right rail — During fights, a slim pane on the right edge of the game shows live player contribution bars or a compact score breakdown; it updates in combat without opening the full stats panel. When the stats browser is nearly full width, the panel can merge flush with that rail.
- Combat Stats pie breakdown — The stats panel includes a right sidebar with a category pie chart (overview, cards, offense, support, damage taken) and color legend; the default category follows the active view tab.
- STS2 Steam beta support — DevMode can be used on the Steam beta branch of Slay the Spire 2, including cheats and dev tools for powers, mid-combat card adds, and enemy/combat edits. Use the beta build of the mod on the beta game install (not interchangeable with the stable/public build).
- Customizable dev sidebar — In Settings → Sidebar, drag to reorder rail panels and uncheck any you want hidden. Your layout is saved between sessions. Harmony analysis, Scripts, and Frameworks start hidden; turn them on in Settings when you need them.
- Multiplayer combat stats overlay — During co-op fights, a draggable top-right panel shows each player’s live score bars (bar length scales to the highest score) with breakdown tooltips. Single-player still uses the slim vertical bar on the game right rail.
Changed
- Enemy panel map-centric UI — Global, By Type, and Map tabs are merged into a single map editor: left side shows the run map with hover previews; right side has Run rules (all combats / Normal / Elite / Boss, active for this run only), Selected node editing, and an embedded encounter picker. Combat kill/spawn actions live on the game Context Pane rail during fights, not in the enemy browser header.
- RitsuLib is now optional. DevMode no longer lists RitsuLib as a required dependency mod — it loads and runs without RitsuLib installed. The Framework Bridge panel shows "—" when RitsuLib is absent instead of preventing DevMode from loading.
- Normal run Dev Mode preference — In the Developer Mode main menu, the Normal run cycle (disabled / Dev Mode / Cheat Mode) defaults to Dev Mode and is saved for the next launch.
- Opening a dev browser panel no longer hides the multiplayer combat stats overlay; it stays visible above the panel.
Fixed
- Enemy map hover tooltip — Node hover previews render inside the map panel again (no longer invisible due to incorrect top-level layering).
- Settings, save slots, presets, and scripts are now stored in the game’s user-data directory (
SlayTheSpire2/steam/<id>/mod_data/KitLib/) instead of inside the mod folder — they survive Steam Workshop updates without data loss. - Settings and save-slot files are now written atomically, preventing file corruption if the game crashes mid-save.
- Applying powers, adding cards in combat, and loading presets work on the stable/public STS2 build again, not only the Steam beta branch.
- Combat Stats pie chart sidebar layout when the stats panel is nearly full width and flush with the game right rail.
- Combat Stats Timeline tab no longer shows a harsh white focus ring on the event text area.
[0.6.0] - 2026-05-17
Added
- Mod Feedback panel — describe an issue and export a ZIP report for any mod author: filtered in-game logs, loaded mod list, Harmony patch dump, and framework bridge snapshot. Attach a game log from the
logsfolder (defaults to the current session’sgodot.log, last 512 KB). Privacy mode (on by default) replaces your user-data path with<user-data>in the package. - Harmony analysis — exclude patch owners by id (wildcards supported; DevMode and RitsuLib excluded by default), clearer smart-report layout, and smoother handling of large dumps (type list + detail panes, less stutter when refreshing).
- In-game log viewer — new default noise rules hide routine background/foreground FPS limit messages.
- The in-game mod list now shows a preview image for DevMode.
- Card browser (full library): set base energy cost before you add a card — the value applies to the new copy you receive, not the catalog entry.
- Card browser remembers type/rarity/cost/pool filters, sort, search text, and View upgrades between sessions.
- Clearer upgrade preview when browsing library cards with View upgrades enabled.
- Dev map entry from the dev room: on that map screen, more nodes stay selectable for movement (normally greyed-out paths unlock) so you can hop around faster while testing.
- Dedicated Cheats rail tab — all gameplay modifiers (player, enemy, rewards, map, stat locks, and related toggles) in one panel when cheat mode is active.
Changed
- Settings now only covers appearance and workflow (game speed, skip animations); gameplay cheats live on the Cheats tab instead of under Settings.
- Cheats panel is wider and arranges sections in one, two, or three columns based on panel width, with more space between columns so options are easier to scan.
- Dev panel rail tooltips show the tab name only (no extra Dev/Cheat suffix).
- Card browser pool filter defaults to the current character instead of all pools.
- Card number and text fields in the browser apply as you edit (on change or when leaving the field), without a separate apply step.
- Dev save / load snapshot overlay (main menu and dev panel) now follows your DevMode appearance theme — backdrop, panels, separators, buttons, name field, and stat chips stay in sync with Dark / OLED / Light / Warm.
- In-run Save / Load opens the snapshot picker in a slide-out column beside the menu (same browser rail style as other dev panels) instead of a separate full-screen dialog.
- Main-menu Load Save fullscreen picker grows taller on large displays (height scales with your window).
Removed
- Third-party panel registration:
DevPanelModApi,RegisterPanelWhenReady, and the related deferred-registration queue have been removed. DevMode no longer supports external mods registering custom rail panels.
Fixed
- Cheats panel strings (including god mode, draw limits, and map cheats) now localize correctly in Chinese instead of showing English fallbacks.
- Infinite energy cheat label and behavior are unified: one toggle keeps energy topped up every frame (no duplicate “runtime” entry).
- DevMode now appears under the correct display name in the game’s mod list manifest.
- Dev save/load snapshot list: clicking the same slot again no longer makes the right-hand detail area flash.
- In-run snapshot picker no longer appears as a thin strip at the top of the extension column — it now fills the panel height.
- Cards whose description text uses dynamic placeholders no longer trigger formatter errors in the dev card UI or preset flows.
- Energy cost edits on cards you already own (deck or combat piles) apply more reliably; the library list itself stays read-only for cost, so cost is applied when you add the card.
[0.5.0] - 2026-04-26
Added
- Dev rail browser panels now support drag-resize width and remember each panel’s width between sessions.
Changed
- Browser panels now use smoother side-rail transitions: open with a rail-origin slide animation and close with a matching slide-out animation.
Fixed
- Switching panels no longer causes the rail edge to flicker back to rounded corners during transition.
- Dragging a resized browser panel after animation no longer detaches it from the rail edge.
[0.4.2] - 2026-04-11
Fixed
- Mod UIs that register with DevMode after startup now show up reliably once every mod has finished loading (deferred registration was running too early).
- Crash when entering combat after replacing an encounter from the map (right-click on a node, including per-floor overrides).
[0.4.1] - 2026-04-10
Added
- SpireScratch — visual block scripting with a bundled Blockly editor: rules save as JSON in the mod
scriptsfolder, reload on file changes, and run on the same hook triggers/conditions/actions as the Hooks system. The Scripts panel lists loaded scripts with per-script enable/disable, shortcuts to open the scripts folder or editor, and optional migration of existing Hook rules into script files. - SpireScratch scripts now support live reload via WebSocket bridge: the editor pushes saves directly to the running game, and the Scripts panel auto-refreshes to reflect changes without restarting.
- Exhaust pile target — the card browser’s Add target picker and nav tabs now include the Exhaust pile alongside Hand, Draw, Discard, and Deck. The
dmcard addconsole command also acceptsexhaustas a target argument. - Card browser Add target defaults to Hand instead of Deck.
- Character / pool filter chips in the card browser (All Cards tab): Character group (Ironclad, Silent, Defect, Regent, Necrobinder, Colorless) and Special group (Ancients, Status, Curse, Event, Quest, Token) — combine freely with Type, Rarity, and Cost filters. Mod-added characters are detected automatically and appended to the Character group.
Fixed
- Draw/Discard (and now Exhaust) pile count labels no longer stay stale after DevMode adds a card:
CardAddFinishedis now fired manually for the silent add path that bypasses normal VFX animations. Also fixes the same stale count when a preset with a combat snapshot restores cards to those piles. - Map encounter preview now shows the correct monster for every node: the current combat floor reads the actual running encounter from the combat room (instead of re-deriving it from the queue counter), and future floors use a DAG-BFS path walk to compute the exact queue offset along the player’s reachable route. Unreachable nodes on bypassed branches show the encounter that would be entered next if teleported there.
- Right-clicking a map node to replace its encounter is now blocked for the current combat position — the encounter is already running and cannot be swapped mid-fight.
[0.4.0] - 2026-04-08
Added
- Hook System — a new "Hooks" panel for defining automated Trigger → Condition → Action rules that fire during gameplay (e.g. apply a power every combat start, add a card every turn start).
- Triggers: Combat Start/End, Turn Start/End, On Draw, On Damage Dealt/Taken, On Potion Used.
- Conditions: HP Below/Above %, Floor Above/Below, Has Power, Not Has Power.
- Actions: Apply Power, Add Card, Use Potion, Save Slot.
- Rules are persisted across sessions and can be enabled/disabled individually.
- Auto-Apply shortcuts — one-click "Add to Auto-Apply" button in the Power, Potion, and Card browsers to instantly create a Combat Start hook for the selected item.
- Copyable IDs — all browser detail panels (Power, Potion, Card, Relic, Enemy) now show a Copy button next to the item ID for easy clipboard access.
- ID picker popup — the Hook rule editor’s ID field now has a
…browse button that opens a searchable popup listing all available IDs for the chosen action type. - Hook rule editor uses dropdown menus (OptionButton) for Trigger, Action Type, Condition Type, and Target — no more cycling through values by clicking.
[0.3.0] - 2026-04-08
Added
- Restart with Seed in the in-run Save/Load overlay: optionally carry cards, relics, and/or gold into a new run with a chosen seed.
- Main menu Developer Mode: New Test (Seed) to start a run with a custom seed.
- Save Manager redesign: dynamic slots, add/delete slots, richer slot list and detail view (including scrollable cards, relics, and mods).
- Save metadata includes run seed and loaded mods (name and version) in the detail view.
dmsaveconsole:listanddeletesubcommands.
Changed
- Save/load UI uses a unified slot list (no separate quick-save row); carry-over toggles for Restart with Seed default to off.
[0.2.0] - 2026-04-08
Added
- Dynamic theme system with dark, light, OLED, and warm color modes.
- Room Teleport panel in the dev sidebar.
- Card browser Edit mode with preset support.
Changed
- Redesigned Powers panel as a two-pane browser layout.
- Rebuilt Potion browser with a visual grid.
- Preset Manager enhanced with scope-based save/load and combat snapshot support.
- Replaced vanilla relic collection with self-drawn RelicBrowserUI.
- Replaced card browser top bar with custom CardBrowserUI and rail sliding indicator.
- Unified all DevMode panels with rail-spliced browser-panel layout.
Fixed
- Power apply not working correctly in the Powers panel.
- Add Potion API not functioning properly.
- MDI icon tree-shaking regression causing missing icons after build.
[0.1.0] - 2026-04-07
Added
- Sidebar panel with categorized sections: Player, Inventory, Status, Enemy, and Game.
- Player: invincible, infinite block/energy/stars, defense multiplier.
- Inventory: edit gold, gold multiplier, free shop, edit energy cap, edit potion slots.
- Status: always reward potion, always upgrade card rewards, max card reward rarity, max score, score multiplier.
- Enemy: freeze enemies, one-hit kill, damage multiplier.
- Game: unknown nodes → treasure, game speed.
- Runtime stat modifiers: god mode, kill all enemies, infinite energy, always player turn, draw to hand limit, extra draw each turn, auto-act friendly monsters, negate debuffs.
- Stat locks: lock gold, current/max HP, current/max energy, stars, orb slots.
- Map rewrite: force all rooms to chest, elite, or boss; keep final boss option.
- Power select panel with 4 target modes (self, all enemies, specific, allies).
- Potion select and event select panels.
- Card editor: edit base cost, replay, damage, block, exhaust, ethereal, unplayable, enchantments.
- Preset manager: save/load/export/import loadout presets.
- Console command reference UI with search, native and DevMode command sections.
- 10 new console command modules (card, cheat, enemy, event, game, potion, power, relic, runtime, save).
- Redesigned DevPanel as Apple-style icon rail with unified overlay system and slide-down animations.
- Iconify MDI adapter with build-time tree-shaking; replaced all text icons with real MDI icons.
- Click-to-lock toggle for sidebar panel.
- Always-enable DevMode toggle for normal (non-dev) runs.
- New test button in save/load panel.
- Multiplayer compatibility patch (filter mod signatures, normalize ModelDb hash).
- Asset warmup service with frame-budgeted texture/scene preloader.
- Cross-version API compatibility layer (Sts2ApiCompat).
Changed
- Removed StartingGold override; uses game default gold instead.
Fixed
- Infinite block not refilling correctly after loss.
- Potion slot removal and stat lock values not updating live.
- Overlay panels stacking on tab switch instead of closing.
- UTF-8 encoding for changelog read/write to prevent Chinese garbling.
[0.0.1] - 2026-04-06
Added
- Developer Mode panel accessible from the main menu.
- Customizable relics, cards, gold, and encounter selection for testing.
- Enemy encounter system with unified select UI, combat monster spawning, and idle animation preview.
- i18n support with English and Simplified Chinese localization.
- STS2AI integration panel with AI control, speed, and animation controls.