Quick Help
The common surprises explained, and where to look when something is off.
Common surprises
- My asset shows its default values again after I stop playing. Intentional: the editor restores your authored defaults at play-exit; the save still exists and reloads next launch. See Editor safety.
- A field never saves. Only fields Unity serializes are persisted, the same rules as the inspector: public fields or
[SerializeField]ones, with custom classes marked[Serializable]. A property, a static field, or a[NonSerialized]field is never saved. If it does not show in the inspector, it does not save. - A save is being ignored. A no-op result means one of: no slot selected (a multi-slot object without a slot), the object is
IDirtyTrackedand not dirty, the manager has not loaded yet (not ready), or a block hook vetoed it. The result'sMessagesays which. - Data does not load, or loads as defaults. The read returned
Invalid(no save yet, or unreadable, so the object kept its defaults) orFailure(temporarily unavailable, so it is still retrying). The manager's log shows which. - I changed a manager setting and an existing save is gone. What is recoverable depends on the setting. Changing where it saves (the file name, an HTTP URL, the Cloud Save Key) points the manager at a fresh location, so the old save is stranded but still sits at the old one. Changing how it saves (compression, encryption, the serializer) keeps the same location but makes the old data undecodable, so it loads as defaults and the next save overwrites it for good. Either way, Locking & migrating saves is the protection: lock the manager once players have it, and migrate through an import copy.
- An error says two managers share a storage location. They would silently overwrite each other's saves there, so the editor refuses it and a build fails at start. It only happens with overridden names (Local File's File Name, the HTTP URL and Id, the Cloud Save Key): two managers ended up with the same one, so change one of them. See Identity & portability.
- A manager or component does not appear (Cloud Save, a No-Code Input/Localization component). Each needs its Unity package installed: see optional modules.
- A remote save never lands. The player is likely not authenticated yet or offline;
IsReadystays false and the load keeps retrying. See Cloud & Remote.
Digging deeper
Three places report what actually happened:
- The manager's Status section in the inspector: live state, the last operation's result, and a running log of every load, save and clear with its outcome and messages. See Debugging.
- The In Game Logs Viewer: the same logs as an overlay in a running build or on a device.
- The Unity console: warnings and errors carry a
[Persistent Asset]prefix, so real problems surface even with no inspector open.
Crash safety, concurrency, security and performance are covered in the Technical Q&A. For anything else, email justetools@gmail.com.