JsonUtility.ToJson. The platform stores it and tracks its
version for you.
Read
LoadResult:
An empty slot is not a failure:
Success is true, Data is empty and Version is 0. Check
Data to tell a new player from a returning one.Write
SaveResult has Success, Version and Error.
You do not pass a version. The SDK remembers the slot’s last version and sends it with the write.
Multiple slots
Slots are independent — use them to separate data that changes at different rates.Concurrency
Writes to one slot are queued: if the game saves again while a write is in flight, the calls are merged into the next write, which carries the newest data. Writes to a slot are at least two seconds apart. If another tab or device saved the slot first, the server answers409 VERSION_CONFLICT. The SDK
then reads the slot to pick up its version and writes again, up to three attempts — the last write
wins. The SDK has no merge hook; if your game can run in two tabs and needs more than
last-write-wins, read before writing and merge in your own code.
Limits
- 500,000 characters per slot
- Larger payloads are refused by the server
When a write fails
Success is false and Error says why. Common causes: the payload is too large, the player’s
session expired, or the page stopped responding. Keep the unsaved state in memory and try again
rather than discarding progress.