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 popup

Continue 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?