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
ConfigNameand stableThing.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.