Cloud Saves
Cloud Saves let players save their game state to the server and restore it on any device. Quest Data automatically handles versioning and conflict resolution.
See the SDK Cloud Saves guide for GDScript integration with save_game(), load_game(), and conflict handling.
Saving to Cloud
Section titled “Saving to Cloud”# Save current game statevar save_data = { "level": 5, "health": 100, "inventory": ["sword", "shield", "potion"], "playtime_seconds": 3600}
var save_id = await QuestData.save_game(save_data, { "device": "mobile", "timestamp": Time.get_ticks_msec()})
print("Save uploaded: " + save_id)Loading from Cloud
Section titled “Loading from Cloud”# Load latest savevar save = await QuestData.load_game()
if save != null: level = save["level"] health = save["health"] inventory = save["inventory"]else: # No save found, start new game start_new_game()
# Load specific versionvar old_save = await QuestData.load_game("save_v5")Version History
Section titled “Version History”Every save creates a new version. Dashboard shows all versions with:
| Column | Shows |
|---|---|
| Version | save_v1, save_v2, etc. |
| Timestamp | When it was saved |
| Device | Where it was saved from |
| Size | Bytes of save data |
Conflict Resolution
Section titled “Conflict Resolution”If a player has multiple saves from different devices:
- Latest timestamp wins by default
- Or manually select which save to keep
- Previous saves are archived (not deleted)
# Get all available saves for manual selectionvar saves = await QuestData.list_saves()# Player picks which version to usevar chosen = saves[0]await QuestData.restore_save(chosen["id"])Offline Fallback
Section titled “Offline Fallback”If the server is unreachable:
- SDK saves to local disk
- When connection restored, uploads queued saves
- Server detects duplicates, keeps latest
# This works even offlineawait QuestData.save_game(data) # Queued locally# Later, when online, automatically uploadsDashboard Browser
Section titled “Dashboard Browser”- Go to Players > Cloud Saves
- Search for a player
- View all their save versions
- See creation date, device, size
- Download/restore manually if needed
API Reference
Section titled “API Reference”# Save gamecurl -X POST "https://api.questdata.io/v1/saves" \ -H "x-game-api-key: YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "player_id": "player123", "data": {"level": 5, "health": 100}, "metadata": {"device": "mobile"} }'
# Load latest savecurl "https://api.questdata.io/v1/saves/player123?latest=true" \ -H "x-game-api-key: YOUR_API_KEY"Response:
{ "id": "save_v3", "player_id": "player123", "data": {"level": 5, "health": 100}, "created_at": "2026-04-06T10:30:00Z", "device": "mobile"}