Overrides and Persistence
Overview
The NeoFPS save system has multiple uses. In the samples it is also set up to save character data for persistence when changing scenes, but it can also be extended to for other purposes.
Persistence
When progressing through a game you often have levels which continue on from each other. In this situation, you need certain data to carry over into the new scene, while other data can be discarded. For example, you would want the character to spawn at the position of the spawn point in the new scene, in a neutral state, but you would probably want them to retain their health and the contents of their inventory from the previous scene.
The actual persistence of the data is handled by the game mode. This tells the save game manger to save the player object and character object to a byte buffer using the persistence save mode. If you want to extend the persistence system or create your own, then it can be done with the following methods:
public static bool SaveGameManager.SaveGameObjectsToBuffer(NeoSerializedGameObject[] objects, SaveMode saveMode);
public static bool SaveGameManager.LoadGameObjectsFromBuffer(NeoSerializedGameObject[] objects);
These both take an array of objects and will serialize them in order. As long as the objects in the save method match the objects in the load method (in terms of source prefab and order), then the requested data will be transferred between them.
Adding New Save Modes
The available save modes are set using the NeoFPS generated constants system. The first option is always the default save mode, as used by the standard quick, auto and manual saves. It is advised to keep the second option as persistence and add any new modes after this unless you're sure it isn't required for your project.
Using Overrides To Customise Saved Data
Each NeoSerializedGameObject can be set up to save different data for each game mode. The main filters and transform options are used for the default mode.

At the bottom of its inspector, you can see a section called Save Type Overrides. The dropdown button below this (Add Override) allows you to add a new override based on the available modes.
The override settings will appear below this and mirror the save settings and filters in the main inspector. Each property has a Use Default option so that not every property needs to be overriden. It can be limited to just transform properties, children or components as required.