Add a field, ship the patch, and watch old saves fail to load. It is one of the most common ways an update hurts the players who have played the longest.
Save Migrator keeps a versioned history of your save schema. When a player opens a save written by an older build, every step between their version and the current one runs in order, automatically. Your loading code never has to know which version it received.
DECLARE CHANGES, DON'T HAND-WRITE THEM
Migration.From(2).To(3)
.RenameField("hp", "health")
.MoveField("health", "player.health")
.AddField("player.level", 1);
Add, remove, rename, move, and transform fields by path. Iterate arrays for inventories and quest lists. Drop to a custom function when you need to.
CATCH THE MISSING STEP BEFORE YOUR PLAYERS DO
If you register 1 to 2 and 3 to 4 but forget 2 to 3, every player holding a v2 save is stranded. Validate() finds that gap at build time, and the Migration Inspector window shows it in one click. This is the failure the package exists to prevent.
SAVES THAT SURVIVE A BAD DAY
Atomic writes: contents go to a temporary file and are moved into place, so an interrupted write cannot damage the live save. Generational backups with automatic recovery when the main file is unreadable. Corruption detection on load. If nothing readable remains, it stops rather than handing back empty data and letting your game overwrite a save that was only damaged.
ADD IT TO A GAME THAT ALREADY SHIPPED
Saves written before you installed this have no version stamp. Tell the store which version to treat them as, and they are read, migrated, and re-saved in place. Nothing has to be converted up front.
NO DEPENDENCIES, NOTHING TO BREAK
No third-party packages, including for JSON. The runtime assembly references no UnityEngine types at all, so an engine upgrade cannot break it and the logic can be unit tested outside the editor. It works alongside whatever serializer you already use, since it operates on the serialized text rather than on your classes.
WHAT IS IN THE BOX
Full C# source, no DLLs. Migration Inspector editor window. A worked example covering four schema versions. An automated test suite you can run yourself. Verified on Unity 2022.3 LTS and Unity 6 LTS.
Support: stibtworks@gmail.com