Save Compatibility

Save compatibility is handled defensively because missing custom definitions can make a native load unsafe.

Runtime-proven behavior

Current development-line tests have proven all of the following in dedicated runs:

  • the save serializer can retain a custom ConfigName and stable Thing.Id;
  • custom material data can round-trip through FTK2 serialization;
  • installed custom definitions can be discovered before load commit;
  • a compatible save can continue to commit/adoption;
  • a missing custom definition can be detected before commit;
  • a missing-definition load can be blocked;
  • the blocked path can avoid mutating the save graph;
  • blocked-load recovery can return control without performing commit/adoption.

What this does not promise

This is not a blanket promise that every future custom-content type is save-safe. Each new content system must document its own persistence boundary. Multiplayer save/sync behavior is not currently proven.

Warning

If a save depends on custom content, do not remove that content and repeatedly attempt to force-load the save. Restore the required mod/toolkit version first and use the compatibility diagnostics to determine what definition is missing.