roblox-datastore-persistencelisted
Install: claude install-skill ibrohim1234567881717/game-dev-ai-skills
# Roblox DataStore Persistence
## Purpose
Two failure modes dominate Roblox persistence, and both are data-layer bugs
rather than gameplay bugs:
- **Lost progress** — the server shut down before the save completed, or a
failed request was never retried.
- **Item duplication** — the same record was read by two servers, both modified
their copy, and both wrote it back.
Duplication in particular is almost never a flaw in the shop code. It is
non-atomic read-modify-write on the data store. Fixing the shop will not fix it.
## When to use
- Building player data persistence.
- Players report lost progress, rollbacks, or reset inventories.
- Investigating item or currency duplication.
- Adding a field to already-shipped player data.
- Sharing state across servers — trading, global leaderboards, matchmaking.
## When NOT to use
- Designing the save format itself. Use `save-systems` for what to persist,
versioning and migration; this skill is Roblox's storage semantics.
- Purchases. Use `roblox-monetization`, where `ProcessReceipt` and exactly-once
granting dominate.
- Auditing the remote boundary. Use `roblox-security`.
## Required context
| Fact | Why it matters | Where to find it |
|---|---|---|
| Rojo project or Studio-only | Decides whether file edits are usable | `default.project.json` |
| Whether the game has shipped | Shipped data can only be migrated, never reshaped | Release history |
| Current save shape and whether it is versioned | Migration is impossible