Monster Train 2
Install

Details

Last Updated
First Uploaded
Downloads
22
Likes
0
Size
45KB
Dependency string
SpecialCircumstances-UndoEverywhere-0.1.0
Dependants

UndoEverywhere

A Monster Train 2 mod that adds a way to undo out-of-combat mistakes -- shop purchases, event choices, path picks -- that the game otherwise has no undo for outside of battle.

The pause menu's Restart Battle button now also works on the map, where it relabels itself to Restart Ring. Picking it rewinds the run to the moment the last battle ended -- or to the start of the run, if you haven't fought one yet -- and reloads from there. Any battles you've already won stay won; only the shop purchases, event choices and path picks made since are undone.

Under the hood the mod snapshots your save file at each of those boundaries (a .stagestart file next to the real save) and restores it through the game's own continue-run path, so gold, relics, deck and map position all come back exactly as the game itself would load them.

Configuration

None -- the mod has no config file. It's on whenever the plugin is loaded.

Install

Use a mod manager (r2modman / Thunderstore Mod Manager) and install SpecialCircumstances-UndoEverywhere. Dependencies are pulled in automatically:

  • BepInEx 5.4.2100
  • Trainworks Reloaded 0.7.2
  • Conductor 0.4.1

Manual install: drop UndoEverywhere.dll into BepInEx/plugins/.

Known limitations

  • Snapshots survive quitting and relaunching, but only exist once the mod has seen a run start or a battle end. Installing the mod part-way through a ring leaves the button hidden until your next battle finishes.
  • The button stays hidden during battle intros and at the game-over screen -- a lost run can't be rewound.
  • Rewinding is all-or-nothing back to the last battle. There's no step-by-step undo of a single shop purchase.
  • No confirmation-text customization yet -- it reuses the game's own restart confirmation dialog as-is.
  • Snapshot files are never cleaned up. They're tiny (one JSON per save slot, overwritten in place), just not tidied away when a run ends.

Build

dotnet build

The output DLL is copied to ../../mt2-plugins/UndoEverywhere after every build (PluginDeployDir in UndoEverywhere.csproj) -- point that at your BepInEx/plugins folder to test in-game directly.

Harmony patches live in UndoEverywhere/patches/: RestartStagePatches.cs wires the pause-menu button up outside of combat and performs the restart, and StageStartMarker.cs captures the snapshots it restores back to.

Publishing to Thunderstore is driven by thunderstore.toml via tcli; the GitHub workflows in .github/workflows/ build and validate the package.

License

See LICENSE.

Thunderstore development is made possible with ads. Please consider making an exception to your adblock.