Product and tooling engineering

RPGModder

RPGModder 2.0 turns a destructive modding workflow into a validated transaction with journals, rollback, migration, and a redesigned cross-platform workspace.

MV + MZengine families
42automated tests
Win + Linuxself-contained builds

Problem

Manual mod installation corrupts clean game state, makes conflicts difficult to reason about, and leaves users without a reliable rollback path.

Engineering approach

  • Create a recovery snapshot and transaction journal before modifying the live game, then restore the previous state automatically if validation or deployment fails.
  • Model file overwrites, structured JSON merges, and semantic JSON patches explicitly so the Conflicts workspace can expose participants and load-order outcomes.
  • Ship self-contained Windows and Linux builds with Nexus nxm:// integration, Steam and Flatpak discovery, Proton-aware launching, and secure Linux credential storage.

Outcome

  • Version 2.0 migrates previous installations non-destructively and protects every deployment with validation, snapshots, journals, and automatic rollback.
  • The release passed 42 automated tests and verified self-contained Windows x64 and Linux x64 packages, including Steam Deck-style Linux workflows.

The hardest problem

The challenge

Make a mod manager safe enough that a failed deployment never costs the player their game.

The constraint

Mods overwrite each other's files and merge into shared JSON; a crash mid-deploy leaves a half-patched game, and telling users to reinstall destroys their configuration along with the corruption.

The way through

Snapshot before touching the game, journal every write, validate before committing, and roll back automatically on any failure, so the worst case is the previous working state.

How I worked through it

Rollback is only trustworthy if the deploy model knows what each mod actually did. File overwrites, structured JSON merges, and semantic JSON patches are modeled as distinct operations, which is what lets the Conflicts workspace show who wins a load-order fight and why, the same model that makes undo precise.

Version 2.0 had to protect installations created before any of this existed, so the migrator upgrades old profiles non-destructively and brings them under the same snapshot-and-journal protection instead of asking users to start over.

Technologies

  • C#
  • .NET
  • Avalonia
  • Transactional deployment
  • JSON patching
  • Nexus Mods API
  • Steam
  • Proton
  • Secret Service

Next case study

Mina native mod menu

A mod configuration menu for Mina the Hollower assembled from the game's own menu classes, a genuinely native settings page for every installed mod.