@tabooharmony/roblox-data

@tabooharmony/roblox-data — AI coding skill

View in AI SkillSafe app
0 downloads
0 stars
0 demos
SKILL.md
nameroblox-data
descriptionUse when implementing player data persistence with DataStore, session ownership, schemas, migrations, or save and load flows.
last_reviewed2026-08-31
sourceshttps://create.roblox.com/docs/cloud-services/data-stores, https://create.roblox.com/docs/cloud-services/data-stores-vs-memory-stores, https://create.roblox.com/docs/cloud-services/memory-stores, https://create.roblox.com/docs/cloud-services/data-stores/data-stores-manager, https://create.roblox.com/docs/reference/engine/classes/DataStoreService, https://raw.githubusercontent.com/MadStudioRoblox/ProfileStore/main/README.md, https://madstudioroblox.github.io/ProfileStore/api/, https://devforum.roblox.com/t/profilestore/3190543, original

roblox data persistence

When to Load

Load when designing player saves, schema migrations, retries, shutdown handling, or session ownership. Use roblox-server-data for ordered leaderboards, messaging, and global world data; roblox-cloud for Open Cloud and external API access.

Quick Reference

  • Define a serializable template and a version field before storing player state. Deep-copy templates so nested defaults are not shared between profiles, and run migrations before stamping the version.
  • Use UpdateAsync for read-modify-write operations and handle throttling or transient errors.
  • Prevent two servers from mutating the same player's profile at once, either with a well-understood wrapper or an equivalent session protocol.
  • If using ProfileStore, use StartSessionAsync, Profile.OnSessionEnd, and EndSession as documented. Do not use its Steal option for normal player loading.
  • Use ProfileStore.Mock for Studio tests that must not write live DataStore keys.
  • Save on meaningful changes and on lifecycle boundaries, but do not assume PlayerRemoving alone is sufficient.
  • Use BindToClose to finish pending work within Roblox's shutdown window.
  • Store primitives, arrays, and dictionaries. Convert Instances, userdata, functions, and cyclic tables first. Before persisting client-influenced values: numbers must not be NaN or infinity, strings must pass utf8.len, and any nested table must be re-validated, since one unsaveable value fails the whole key write.

Need the details? Load references/full.md for a framework-neutral persistence design.

Embed badges

Add these to your README to show the skill's verification status.

SkillSafe verified badge
Verified badge
[![SkillSafe verified badge](https://api.skillsafe.ai/v1/badge/@tabooharmony/roblox-data/verified)](https://skillsafe.ai/skill/@tabooharmony/roblox-data/)
Installs badge
Installs badge
[![Installs badge](https://api.skillsafe.ai/v1/badge/@tabooharmony/roblox-data/installs)](https://skillsafe.ai/skill/@tabooharmony/roblox-data/)
Scan badge
Scan badge
[![Scan badge](https://api.skillsafe.ai/v1/badge/@tabooharmony/roblox-data/scan)](https://skillsafe.ai/skill/@tabooharmony/roblox-data/)
Eval pass rate badge
Eval pass rate
[![Eval pass rate badge](https://api.skillsafe.ai/v1/badge/@tabooharmony/roblox-data/eval)](https://skillsafe.ai/skill/@tabooharmony/roblox-data/)