roblox-data
Skill2 starsChanged 29 days agoMITView on GitHub
Roblox player-save persistence: DataStore, ProfileStore, session locks, schemas, migrations, retries, shutdown, version history, RTBF deletion templates and DataStore limits. Use when writing, changing, debugging or auditing save code: data lost, rolled back, duplicated or not saving; adding a field to the save; changing currency or inventory storage; reviewing a save layer.
3 other projects use a version of this, 1 of them edited.
Adopted by
Most recently taken up by
- TabooHarmony/roblox-brainedited, first seen Sep 23, 2026
- szlay/roblox-basetheir own version, first seen Jul 24, 2026
- luumenlabs/luau-skillstheir own version, first seen Mar 19, 2026
Other versions3 projects use a version of this.
Word for word · 0
None found.
Edited · 1
- TabooHarmony/roblox-brain★ 15010% same
Wrote their own version · 2
- luumenlabs/luau-skills★ 12same name
- szlay/roblox-base★ 1same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository19 other files it gives its agents.
- template/CLAUDE.mdCLAUDE.md
- roblox-lessonsSkill
- audio-designSkill
- game-feelSkill
- game-ui-uxSkill
- level-designSkill
- roblox-creator-store-security-auditSkill
- roblox-debugging-bugfixSkill
- roblox-devSkill
- roblox-monetizationSkill
- roblox-networkingSkill
- roblox-publish-checklistSkill
- roblox-release-operationsSkill
- roblox-security-economySkill
- roblox-securitySkill
- roblox-studio-mcpSkill
- roblox-to-issuesSkill
- roblox-toolingSkill
- save-systemsSkill
The file
Files
Roblox data persistence
Where this conflicts with the roblox-lessons skill, roblox-lessons wins.
When to use
Player saves, migrations, retries, shutdowns, session ownership. Leaderboard stores: see roblox-lessons references/data.md (Leaderboards). Open Cloud data-store access: roblox-lessons references/open-cloud.md.
Our defaults (from roblox-lessons data.md)
- Use ProfileStore (MadStudioRoblox, session locking). The raw-DataStore patterns in
references/full.mdexplain the mechanics and apply to non-profile stores; do not hand-roll a second lock around ProfileStore. - Studio saves to its own store:
NAME .. "_Studio"whenRunService:IsStudio(); suffix leaderboard/ordered stores the same way. With Studio API access off, ProfileStore falls back to its in-memory mock by itself. - Never rename the DataStore to change the save format (a new name is a new, empty store). Store
dataVersionand migrate step by step: pureMigrate(data, target),Steps[v]upgrades v to v+1 on a deep copy, each step inpcall, live data replaced only if every step succeeds, thenReconcile(). A save newer than the code, or a missing/failed step: end the session, leave the save untouched, kick with "please rejoin". - Studio conveniences (starting grants, force-owned passes, test runners) are guarded by
RunService:IsStudio().
Quick reference
- Serializable template plus a version field; deep-copy templates so nested defaults are never shared; migrate, then reconcile missing fields.
UpdateAsyncfor read-modify-write on non-profile stores; bounded retries with backoff; a failed read is not an empty profile.- ProfileStore:
StartSessionAsynccan returnnil(never treat as new data); a customCancelcallback disables the built-in timeout, so add your own deadline;OnSessionEndkicks;EndSessionon leave; noStealin normal joins. PlayerRemovingalone is not enough;BindToClosefinishes pending work.- Store only primitives/arrays/dictionaries. Reject NaN/inf numbers and strings failing
utf8.len; one bad value fails the whole write. - RTBF: keep the user ID as a static substring in keys (
player_<UserId>) so deletion templates can match. GetAsyncserves a 4-second local cache; verify writes withDataStoreGetOptions.UseCache = false.- Poll
GetRequestBudgetForRequestTypefor live headroom instead of guessing quotas. Player.Useris the documented identity for new code;UserIdremains valid. Never mix the two in one key scheme.- Ack a grant only after it is durably persisted; an unknown outcome is retried with the same idempotent operation, never re-granted.
Details, code and limits: references/full.md
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

