关于 roblox-server-data
面向 Roblox 开发者的参考技能,涵盖排行榜、跨服务器消息、共享状态与临时协调。它着重说明各服务的适用场景、限制和可靠处理模式。
主要功能
- 01OrderedDataStore 排行榜与分页
- 02MessagingService 跨服务器通信
- 03GlobalDataStore 共享状态
- 04MemoryStoreService 临时协调
- 05用户身份与跨服务器键选择
适用场景
- 01实现跨服务器排行榜
- 02协调限时匹配与服务器租约
- 03管理公会、赛季或共享计数器
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ tabooharmony/ roblox-brain --skill roblox-server-data安装后在 Claude Code 中输入/roblox-server-data确认已加载。
附带文件references/full.md
详细介绍
Roblox 服务端与共享数据
何时加载
用于排行榜、消息传递、MemoryStore 协调、世界状态、赛季或公会。玩家数据持久化:roblox-data;Open Cloud:roblox-cloud。
快速参考
OrderedDataStore(排行榜)
- 可排序的 DataStore:字符串键(
tostring(UserId))、整数排序值;GetSortedAsync→ 分页;BatchGetAsync批量读取多个键(省略缺失的键)。 - 通过
GetRequestBudgetForRequestType(OrderedWrite)分配突发额度(每个服务端:30 + 玩家数×5 次写入/分钟)。 - 仅用于排行榜,绝不可用于玩家存档。将
player_<UserId>保留为静态键子串,以匹配 RTBF 模板。
MessagingService(跨服务端)
SubscribeAsync/PublishAsync;不保证送达或顺序——应设计为幂等。- 请求/响应:使用
{reqId}进行关联 + 确认 + 超时;没有确认 ≠ 未执行——使用相同的 reqId 重放,不要重复发放奖励。 - 预算包括广播接收次数,而不只是发送次数;限制与轮询权衡:见 full.md。
GlobalDataStore(共享状态)
- 持久化非玩家状态(公会、赛季、计数器)。使用
UpdateAsync;绝不用它存储玩家会话数据。
MemoryStoreService(临时协调)
- 使用队列和排序映射存储会过期的匹配、租约和协调信息。
- 仅在成功完成幂等处理后,才移除读取的批次。
- 排序映射分页:最后一项的
{key, sortKey}= 下一个排他的边界。配额为游戏级别(共用一个池):请求单位 1000+120×CCU/分钟,内存 64 KB+1.2 KB/用户,值 ≤32 KB,TTL 45 天;批量调用按项计费。
跨服务端模式
- 使用会过期的心跳注册服务端;通过 MessagingService 通知。
用户身份
- 使用
player.User(User.Id、DomainType、DomainId)识别用户;UserId仍然有效。Domain ID 按体验划分:跨服务端数据应以UserId为键。
常见问题
- MessagingService:即发即弃、无序;不适用于时间要求严格的工作
- GlobalDataStore:速率限制与玩家 DataStore 相同
- 绝不存储 Instances;
SetAsync会覆盖数据——共享计数器应使用UpdateAsync
存储选择和工作流:references/full.md
评论
支持 Markdown