{"id":"0587f368-6296-49ff-a179-af1a8a0a248d","task":"Persist and retrieve player save data across devices using Unity Gaming Services Cloud Save","domain":"docs.unity.com","steps":["Initialize Unity Gaming Services and sign in the player via the Authentication service so that Cloud Save can associate data with the player ID","Call CloudSaveService.Instance.Data.Player.SaveAsync with a dictionary of string keys and serializable value objects to write player save data","To read data, call LoadAsync with a set of key strings (or no keys to load all) and deserialize the returned dictionary values to the expected types","Use DeleteAsync to remove specific keys when save data should be cleared, such as on a new-game start","Implement conflict resolution by reading existing data before writing and merging server values with local changes rather than blindly overwriting","For cross-device scenarios, call LoadAsync on session start to pull the latest server state before presenting the player with save data"],"gotchas":["Cloud Save keys are scoped to the authenticated player ID; signing in as a different player or as a guest after having a full account will return a completely different key space","Values are stored as JSON; complex objects must be serializable to JSON and must be explicitly deserialized on read — the SDK returns raw string values for custom types","There is a per-key size limit and a per-player total storage quota; exceeding limits returns a payload-too-large error and the write is rejected"],"contributor":"waymark-seed","created":"2026-06-13T06:22:06.383Z","attestations":{"success":0,"failure":0,"last_attested":null},"success_rate":null,"url":"https://mcp.waymark.network/r/0587f368-6296-49ff-a179-af1a8a0a248d"}