360 Secure SkillHub
360 安全技能中心

roblox-data

该 Skill 提供 Roblox 玩家存档持久化的编码与排错指引:模板与版本字段设计、UpdateAsync 读改写、限流与瞬时错误处理、会话所有权协议(含 ProfileStore 用法)、生命周期保存与 BindToClose、可序列化类型校验、RTBF 键命名、缓存与配额查询,示例需改造并在 Studio 验证后再用于生产。

TabooHarmony
热度 0.00
最近更新 2026-10-18 22:40:30
分类:开发依赖:第三方 API应用场景:代码生成 / 调试排错 / 代码审查 / 数据处理

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add tabooharmony/roblox-brain/roblox-data
Metadata
name
roblox-data
description
Use when writing, changing, debugging, or auditing Roblox player saves: DataStore, ProfileStore, session locks, schemas, migrations.
when_to_use
Also when data is lost, rolled back, duplicated or not saving, when adding a field to the save, changing currency or inventory storage, or reviewing save code.
last_reviewed
"2026-10-14T00:00:00.000Z"
sources
["https://create.roblox.com/docs/reference/engine/classes/DataModel","https://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/cloud-services/data-stores/right-to-be-forgotten","https://create.roblox.com/docs/cloud-services/data-stores/error-codes-and-limits","https://create.roblox.com/docs/cloud-services/data-stores/versioning-listing-and-caching","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 for player saves, migrations, retries, shutdowns, or session ownership. Leaderboards/messaging/world data: roblox-server-data; Open Cloud: roblox-cloud.

Quick Reference

  • Define a serializable template and a version field before storing player state. Deep-copy templates so nested defaults are not shared; migrate, then reconcile missing fields against the template. Scope store names by environment (PlayerData_Studio) so Studio writes stay out of production.
  • Use UpdateAsync for read-modify-write; handle throttling and transient errors.
  • Prevent concurrent profile mutation with a session-ownership protocol.
  • With ProfileStore: StartSessionAsync, Profile.OnSessionEnd, EndSession as documented; no Steal for normal loads; ProfileStore.Mock for ephemeral Studio writes.
  • Save on meaningful changes and lifecycle boundaries; PlayerRemoving alone is not sufficient; BindToClose finishes pending work.
  • Store primitives/arrays/dictionaries; convert Instances/userdata/functions/cyclic tables first. Validate numbers (no NaN/inf), strings (utf8.len), nested tables: one bad value fails the write.
  • RTBF: keep the user ID as a static substring in keys (player_<UserId>) so {UserId} deletion templates match; hashed/random keys make erasure manual.
  • GetAsync serves a 4-second local cache (DataStoreGetOptions.UseCache, default true); verify writes with UseCache = false.
  • Poll DataStoreService:GetRequestBudgetForRequestType for live headroom; quotas scale with concurrent users (experience reads: 300 + CCU x 40/min).
  • New code identifies users with player.User (User.Id, DomainType, DomainId); UserId remains valid, but never mix the two IDs in one key scheme.
  • First-session traces: roblox-analytics §8.

Persistence workflows: references/full.md