错误报告 让您查看最新的 Luau 系统错误和警告,包括服务器和客户端的错误。在更新游戏之前和之后监控您的错误报告,以尽早识别潜在问题。
查看您的错误报告
要查看您游戏的错误报告:
- 在 创作者仪表板 的 创作 页面中导航并选择您的游戏。
- 在 监控 下,选择 错误报告。
您可以查看单个或组所有者体验的分析数据。要查看后者,您需要拥有 分析的组权限。
监控错误和警告
您可以对错误报告应用以下过滤器和开关:
- 日期范围 — 过滤为过去 1 小时、过去 1 天、过去 7 天或过去 30 天。
- 地点 — 按地点过滤。
- 显示版本 — 在错误和警告图表中添加地点版本注释。
- 严重性 — 过滤以显示错误、警告或两者。
- 平台 — 过滤以显示来自特定设备的客户端错误。
- 操作系统 — 过滤以显示来自特定操作系统的客户端错误。
- 自某版本以来的新错误 — 过滤仅显示自某一特定版本以来的新错误和警告。
在过滤器和开关下方,图表显示服务器、客户端和总的错误和警告数量。使用此图表查看错误和警告随着时间的推移是否增加。如果您看到错误和警告的激增,请使用错误报告表进行故障排除。

故障排除错误和警告
错误和警告 表格包含以下列:
| 列名 | 描述 |
|---|---|
| 计数 | 错误或警告的数量。 |
| 严重性 | 错误或警告标签。 |
| 类型 | 服务器或客户端标签。 |
| 消息 | 错误或警告消息。 |
| 首次出现于 | 消息的首次出现时间戳。 |
| 首次出现版本 | 仅在选择了地点时可用。显示记录该消息的第一个版本。 |

查看错误或警告的堆栈跟踪
如果您在错误或警告上看到下拉菜单,请单击展开以查看其相应的 堆栈跟踪。堆栈跟踪是您的游戏在抛出异常时执行的调用列表。这可以帮助您弄清楚出现了什么问题。
自定义规则
自定义规则允许您定义正则表达式或精确字符串模式,以自动忽略或分组错误和警告。这有助于您管理错误报告中的信号与噪声比。每个体验最多可以创建 100 个规则。规则按优先顺序从上到下进行评估。一旦错误匹配某个规则,则不再处理后续规则。
规则操作
每个规则有两种操作之一:
| 操作 | 行为 |
|---|---|
| 忽略 | 从图表和表中隐藏匹配的错误。用于永久噪声,如不可避免的引擎声音错误或遗留的打印语句。 |
| 分组 | 将所有匹配的错误合并到一个自定义组名下(例如,“网络问题”、“音频垃圾”)。组名作为一个单行出现在表格中。 |
创建规则
有两种方法可以创建规则:
从错误表(内联):
- 单击任何错误行上的上下文菜单(三个点)。
- 选择 忽略。

从规则选项卡:
- 在错误报告页面上导航到 规则 选项卡。
- 单击 创建规则。
- 输入一个模式(精确字符串或正则表达式)。
- 选择一个操作:忽略 或 分组 → [组名]。
- 保存规则。

规则创建字段
| 字段 | 描述 |
|---|---|
| 模式 | 要与错误消息匹配的精确字符串或正则表达式。 |
| 操作 | 选择 忽略(隐藏错误)或 分组 → 输入自定义组名。 |

规则根据优先顺序从上到下进行评估。一旦错误匹配某个规则,就会执行该规则的操作,而不再为该错误评估其他规则。这可以防止冲突,例如一个规则对错误分组,而后续规则又忽略该错误。
规则仅影响保存后记录的错误。当规则被修改时,图表上会出现注释。
正则表达式基础
正则表达式(regex)是一个匹配文本的模式:
| 语法 | 意义 | 示例 |
|---|---|---|
| . | 任何单个字符 | H.t 匹配 "Hat", "Hit", "Hot" |
| * | 零个或多个前面的字符 | go*d 匹配 "gd", "god", "good" |
| + | 一个或多个前面的字符 | go+d 匹配 "god", "good",但不匹配 "gd" |
| .* | 任何字符序列(通配符) | Failed.*load 匹配 "Failed to load" 和 "Failed xyz load" |
| \d | 任何数字(0-9) | v\d+ 匹配 "v1", "v123", "v4488" |
| \w | 任何单词字符(字母、数字、下划线) | \w+ 匹配 "Player123", "my_var" |
| ^ | 字符串的开始 | ^HTTP 匹配以 "HTTP" 开头的错误 |
| \/ | 转义的斜杠 | rbxassetid:\/\/ 匹配 "rbxassetid://" |
| \[ 和 \] | 转义方括号(文字匹配) | \[Knit\] 匹配 "[Knit]" |
| (a|b) | 匹配 "a" 或 "b" | (Error|Warning):.* 匹配 "Error: ..." 和 "Warning: ..." |
快速提示:
- 如果您只想捕获一个特定错误,请从精确匹配开始(完整错误字符串)。
- 当您想捕获一系列相似错误时,请使用正则表达式(例如,所有声音加载失败,无论资产 ID 为何)。
- 在保存之前,请测试您的模式与一些实际的错误字符串,以确保它捕获您预期的内容。
系统对您的正则表达式模式强加两个规则:
- 您不能在重复组内放置重复符号(+ 或 *)。例如,(a+)* 或 (\w+)+ 会被拒绝。
- 必须以锚定文本开始:模式不能以通配符如 .* 或 .+ 开头。您的模式必须以具体字符或锚(如 ^ 或文字字符串)开始。
组织错误报告的规则示例
将相关错误合并为一个组名,而不是显示数十个单独的错误行:
| 用例 | 示例错误 | 模式 | 操作 |
|---|---|---|---|
| 所有网络错误 | HttpError: ConnectFail, HttpError: Timedout | HttpError:.* | 分组 → "网络问题" |
| 数据存储警告 | DataStore request was added to queue, DataStoreService: ... | DataStore | 分组 → "数据存储警告" |
| 玩家 GUI 错误 | Players.Player1.PlayerGui.Shop:12: attempt to index nil | Players\.\w+\.PlayerGui | 分组 → "玩家 GUI 错误" |
| 自定义 UI 框架 | [UIManager] Button render failed, [UIManager] Layout overflow | \[UIManager\].* | 分组 → "UI 系统" |
错误跟踪限制
该系统最多跟踪 500 个唯一错误和 500 个唯一警告,以及每个版本的前 100 个新错误。该计数每 6 小时重置。为在这些限制内最大化有用的错误跟踪:
- 从错误消息中移除唯一标识符,如用户 ID、坐标或时间戳。错误信息 Player 12345 failed to load 和 Player 67890 failed to load 被视为两个单独的条目。如果您记录它们为 Player failed to load,它们将合并为一个条目,并计数增加。
- 使用自定义规则对仅按动态值不同的相关错误进行分组。
解决错误和警告
在从错误报告页面调查错误时,使用以下方法:
- 查看堆栈跟踪 — 展开错误行以查看调用路径,确定发生错误的确切脚本和行号。
- 检查近期更新 — 监控自您最近更新以来的新错误。
- 使用细分 — 检查错误是否特定于某个平台(桌面、移动、控制台)或操作系统(Windows、macOS、iOS、Android)。
- 收集社区反馈 — 如果您有社区 Discord 或 DevForum 帖子,请检查玩家是否报告该问题以及哪些设备或地区受到影响。