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
Known 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
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp