Game can be saved and loaded at any time by using save and load menus. User can select a save slot to use and delete any previously used slot.
Save slots are serialized to either
.json or binary files (depending on the configuration). File names, slot limit and directory name can be configured using
Naninovel -> Configuration -> State context menu; for available options see configuration guide.
In WebGL save slots are serialized using cross-browser IndexedDB API.
Menu UIs can be customized or completely replaced using UI Customization feature.
Naninovel provides two serialization handlers out of the box:
UnityEngine.PlayerPrefs. Former will store the slots as separate files at persistentDataPath and the second one will use Unity's PlayerPrefs API to store the slots in the key-value database. You can select the handler in the state configuration menu. IO handlers are selected by default; consider switching to PlayerPrefs or adding a custom handler in case you have issues reading/writing save data on specific platforms.
For more information on how the state is managed and ways to customize it, see state management guide.