Player data · cloud save · shared state

Store game state as versioned documents, not one irreversible save blob.

Crux gives each player scoped JSON documents plus separate project-scoped documents for shared state. Writes carry versions so concurrent clients can detect conflicts instead of silently overwriting progress.

Document contract
player/{player_id}/documents/profile
{
  "schema": 4,
  "level": 18,
  "loadout": ["bow", "torch"]
}

version: 27
next write: version=27
conflict: reject + reload
Verify before you integrate

Inspect the storage contract before trusting it with saves.

The public OpenAPI specification exposes the document endpoints and concurrency fields. The useful test is to write real state, then deliberately create a stale-version conflict.

Live API status

A live check of the hosted API right now. No made-up uptime percentage and no hidden demo environment.

Check current status

Public API contract

The hosted HTTP surface is documented as OpenAPI. Inspect the wire format before choosing an SDK or writing an adapter.

Open the spec

MIT client SDKs

The JavaScript, Godot, Unity, and Roblox client SDK source is public. The hosted backend itself remains a managed proprietary service.

Inspect the SDK source

Documented exit path

Read what is exportable today and the written commitment for advance notice plus an export window if the hosted service winds down.

Read the exit guarantee

Cloud-save decision guide

Compare the managed document model with a database you own, including schema evolution, concurrency and operational burden.

Compare cloud-save architectures
01

Player documents

Split profile, progression, settings and inventory-shaped state into separate JSON documents instead of rewriting one monolith.

02

Optimistic concurrency

Every document has a monotonic version. Conditional writes fail when the caller is stale, giving your game a real conflict path.

03

Shared project state

Use project-scoped documents for state shared across players or servers without pretending it belongs to one player account.

What this is not

A game-data API, not an unrestricted database.

Crux does not expose arbitrary SQL, relational joins or your own database schema. Keep analytics warehouses, complex relational queries and workloads that require direct database ownership outside Crux. The fit is durable game state with explicit player/project scope.