Use Cases
Common save-data scenarios and how Remote Storage handles them, plus the API to use for each.
Restore after reinstall
The player deletes the game and installs it again. On the first launch, Remote Storage signs into the same device account and pulls the cloud save before IsDataReady turns true. Keep your loading screen up until IsDataReady is true and the player continues right where they left off.
Show a save-restored popup
Whenever cloud data replaces local data (reinstall restore, sign-in on a new device), OnRemoteDataUpdated fires on the main thread. Use it for two things: re-read any values your game keeps in memory, and show the player a popup that their progress was restored from the cloud.
RemoteStorage.OnRemoteDataUpdated += ReloadSaveData;
// e.g. re-read saved values and show a save-restored popupContinue on a new device
The player signs in with Facebook on the new device. Remote Storage merges that account's save with the device's save, keeps the winner everywhere, and fires OnRemoteDataUpdated if the cloud save won.
Conflicting progress on two devices
When local and cloud saves differ, the winner is decided by MergeConflictData: most recent purchase first, then higher PlayerXP, then newest save time. Keep it updated through Save(MergeConflictData) — especially right after a purchase.
Delete progress
RemoteStorage.DeleteAll() clears local data, deletes the cloud save, and removes the account, so the next session starts completely fresh.
Playing offline
Reads and writes always work — they are local and instant. Save() returns false while offline; the data stays safe on the device and reaches the cloud on a later Save() or the next session's startup sync. If the connection comes back mid-session, the next Save() recovers on its own — it authenticates, pulls and merges the cloud save, then pushes your data. Use OnSyncStateChanged to show an offline indicator if you want one.
Last updated
Was this helpful?