# Cloud Services

Essential Kit's Cloud Services feature lets Unity teams sync player data across devices without maintaining platform-specific code. This tutorial walks you through setup, key APIs, testing, and troubleshooting so you can add cloud save functionality with confidence.

{% hint style="info" %}
Using PlayMaker? See the PlayMaker guide: [PlayMaker](/features/cloud-services/playmaker.md).
{% endhint %}

{% hint style="info" %}
Looking for a working reference? Open the demo scene at `Assets/Plugins/VoxelBusters/EssentialKit/Examples/Scenes/CloudServicesDemo.unity` and the companion script at `Assets/Plugins/VoxelBusters/EssentialKit/Examples/Scripts/CloudServicesDemo.cs` to see the full API in action.
{% endhint %}

## What You'll Learn

* Store and retrieve game data using simple key-value pairs
* Sync player progress across devices with automatic conflict detection
* Handle cross-device data consistency with change events
* Choose between local-only storage and cloud synchronization

## Why Cloud Services Matters

* **Player retention**: Let players seamlessly continue progress on any device
* **Cross-device experience**: Single game state across phone, tablet, and reinstalls
* **Simple data persistence**: Replace PlayerPrefs with cloud-backed storage
* **No backend required**: Built on free platform services (iCloud, Google Play)

## Tutorial Roadmap

1. [Setup](/features/cloud-services/setup.md) - Enable the feature and configure platform settings.
2. [Usage](/features/cloud-services/usage.md) - Store data, sync with cloud, and handle conflicts.
3. [Testing](/features/cloud-services/testing.md) - Verify cloud sync across devices and reinstalls.
4. [FAQ](/features/cloud-services/faq.md) - Troubleshoot common issues and limitations.

## Key Use Cases

* **Save player progress**: Store game state, achievements, and unlocked content (within 1MB iOS / 3MB Android limits)
* **Cross-device sync**: Let players switch between devices without losing progress
* **Offline-first storage**: Use as enhanced PlayerPrefs that works locally without cloud sync
* **Conflict resolution**: Automatically detect and resolve data conflicts from simultaneous device usage

## Prerequisites

* Unity project with Essential Kit v3 installed and Cloud Services feature enabled
* iOS builds require iCloud capability configuration (handled automatically during build)
* Android builds require Google Play Services integration (handled automatically during build)
* Test devices with active iCloud (iOS) or Google Play account (Android) for cloud sync validation

{% content-ref url="/pages/-MJnxN9oTl3dJNZIoRwH" %}
[Setup](/features/cloud-services/setup.md)
{% endcontent-ref %}

{% content-ref url="/pages/-MK4y5srzt8nAjC6UTM8" %}
[Usage](/features/cloud-services/usage.md)
{% endcontent-ref %}

{% content-ref url="/pages/-MK9dSnbA6gd8M9vUAya" %}
[Testing](/features/cloud-services/testing.md)
{% endcontent-ref %}

{% content-ref url="/pages/-MKAGrToRtcUvi2u9vic" %}
[FAQ](/features/cloud-services/faq.md)
{% endcontent-ref %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://assetstore.essentialkit.voxelbusters.com/features/cloud-services.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
