Roblox Guidebook知识库
简体中文 ⌄

Studio / ROBLOX

在 Studio 测试 Roblox 存档:独立 experience 与环境检查

准备不访问正式存档的小型 DataStore 测试。区分新 experience 与新增 place,检查 Studio 访问设置,并记录读取、写入和下一次测试启动的条件。

更新日期:

把测试任务与正式游戏分开 #

先选择一个简单问题:“能否写入练习值,并在下一次测试启动时读取?”不要从真实玩家的背包或货币开始。小型独立原型有助于理解环境和操作结果,不把商店、奖励或数据迁移混在一起。

本文提出的是没有真实用户的练习进度。没有创建测试 experience,没有启用 API 访问,也没有执行 DataStore 读取或写入。以下步骤是用于你独立原型的计划,不证明我们已发布游戏的存档已经通过验证。

理解存储边界 #

同一 experience 内的 places 可以访问它的数据存储。因此,在正式游戏里增加另一个 place,并不会自动创建独立存档环境。名称中写“Test”也不会改变这一边界。先确认打开项目属于哪一个 experience,再选择练习 store 和键名。

本练习需要独立的测试 experience。另一个 store 或键有助于组织测试,但不能代替环境确认:脚本可能仍使用旧名称或另一个配置分支。本文示意图区分两个独立 experience 与同一 experience 中的多个 places,不展示真实账户标识。

Experience 是存储边界打开大图 ↗
原创示意图:同一 experience 的 place 共享其存储;独立 experience 使用自己的存储。

创建小型独立项目 #

如需最小原型,可以在 Studio 打开新的 Baseplate 模板。首次发布的官方步骤包括 File → Publish to Roblox、填写 Publish Experience 信息,再选择 Create。目标应是独立测试游戏,不要覆盖正式 place,也不要把练习作为新 place 加入正式 experience。

创建后在 Creator Dashboard 检查实际 experience、所有者和访问状态。发布到云端与向所有玩家开放是不同操作。本练习不需要公开发行。如果目标显示另一个游戏,或出现覆盖该 place 的提示,应返回项目选择,不要习惯性继续。

保存环境记录 #

写下测试 experience 的名称和 ID、place 名称或 ID、所有者、用途及检查日期。每次启动前比较这些字段。整个 experience 的标识与单个 place 的标识不同;只记录一个项目名称,不能证明两次运行使用相同环境。

再加入练习 store 名称,例如 PracticeProgress_v1,以及虚构键 example_student_01。这些是为练习选择的名字,不是已有 Roblox 记录或真实玩家数据。让真实存档不进入练习,比事后追查哪些结果来自旧数据更简单。

测试环境记录打开大图 ↗
原创环境记录卡。请自行填写真实标识。

只在测试版本中考虑 Studio 访问 #

Studio 的数据存储访问默认未启用。Roblox 提醒,启用后 Studio 会访问与已发布游戏相同的存储。因此修改设置前再次核对独立测试 experience 的记录。把游戏设为私有,不会自动让 Studio 与该 experience 的存储分离。

对于已发布的测试版本,文档路径是 File → Experience Settings → Security → Enable Studio Access to API Services,然后 Save。这是启用 API 服务访问,不是另建一份数据副本。不要为本练习在正式游戏启用它。如果测试目标尚未确认,应先解决项目选择。

检查服务器执行与配置 #

DataStoreService 由服务器脚本使用;从 LocalScript 尝试访问会产生错误。分析读取前,记录脚本路径和执行侧。客户端界面可以显示加载状态,但一条界面标签不能证明服务器访问了正确 store 和键。

对照读取与写入配置:experience、store、键和预期格式必须属于同一练习。代码中有多个存储名时,要找实际使用的那个,而不只是相似字符串。不要同时修改服务器行为、界面和命名,否则难以判断结果由什么产生。

区分缺少记录与读取失败 #

DataStore 请求可能失败,Roblox 使用 pcall 处理操作错误。成功读取但没有存储值,与请求失败是不同结果。测试前决定如何在日志和界面中区分它们。没有完成的操作,不能被标成“没有记录”。

虚构故障案例:加载失败,界面显示零,下一步把零写成新进度。这样没有验证原数据,还可能掩盖错误。应分开“正在加载”“没有练习记录”和“读取失败”。不要仅为了让报错消失就写入默认值。

读取结果下一步
返回数值比较数值与格式
请求成功但没有记录核对练习键和写入计划
请求失败记录错误,不当作记录不存在

安排一次可控练习写入 #

确认环境、服务器侧和成功的初始读取后,可以规划一个独立步骤,写入小型练习值。记录 store、键、格式和操作结果。值应符合原型,不代表真实金钱,也不要求删除他人的键。

随后进行独立读取,与预期练习值比较。写入方式取决于逻辑;多个服务器的冲突需要单独学习 UpdateAsync。本文没有提供完整商店处理器,也不承诺请求一定成功。按钮被按下或标签改变,不能证明值已保存。

用新的测试启动重复 #

结束第一次模拟,在同一已确认测试 experience 中启动下一次测试。再次检查环境记录、store、键和格式,再记录读取结果。Studio 测试中修改普通对象,与通过 DataStore 保存是不同机制;颜色或临时变量不能证明持久化。

数值不同时,先比较条件和请求结果。读取也有文档说明的缓存行为;立刻重复一次不能代替明确测试计划。不要为了结果一致而覆盖正式存档。保存观察结果,并另列仍需要独立验证的解释。

保存结论与范围 #

日志需要环境记录、服务器脚本路径、store、键、格式、操作与结果。分别指出实际确认的步骤:测试目标、成功读取、写入,或下一次启动中的读取。某一步没执行,就不要把所有项目合成“全部正常”。

测试后记录访问设置状态,以及测试版本下一步的用途。本文没有检查负载、多服务器、格式迁移或正式数据恢复;这些需要独立场景。图片和表格是原创教学材料,不声称已经操作真实玩家存档。

检查记录
环境独立 experience 与实际 ID
上下文服务器脚本路径
数据练习存储、键与格式
结果每项操作的实际结果

原始资料

Roblox Creator Hub — Data stores
Roblox Creator Hub — Publish experiences and places