mcpField
R
roblox-api

roblox-api

github.com/luumenlabs开发13188 次安装22 周前更新
代码仓库

关于 roblox-api

roblox-api 是面向 Roblox 开发的技能,用于查找和核实引擎 API 的类、成员、数据类型、枚举、全局项与内置库。它强调确认精确签名及弃用状态,并将架构、安全、数据和云端设计问题交给相关技能处理。

主要功能

  1. 01按类、数据类型、枚举等定位 API
  2. 02核实成员类型与调用签名
  3. 03查阅全局项和内置库行为
  4. 04识别弃用 API 与现代写法
  5. 05将非 API 设计问题转交相关技能

适用场景

  1. 01确认某项能力属于哪个服务或类
  2. 02检查方法参数、返回值或属性类型
  3. 03查找射线检测所需的数据类型和枚举
  4. 04编写代码前核实 API 是否已弃用

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/luumenlabs/luau-skills --skill roblox-api

安装后在 Claude Code 中输入/roblox-api确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
classes-reference.md
datatype-yaml-files.md
datatypes-reference.md
engine-library-yaml-files.md
engine-overview.md
enums-reference.md
globals-reference.md

详细介绍

roblox-api

适用场景

当任务主要是识别或确认正确的 Roblox 引擎接口时,请使用此技能:

  • 查找负责某项功能的类或服务。
  • 检查某个成员是属性、方法、事件还是回调。
  • 确认数据类型构造函数、属性、方法、常量或数学行为。
  • 为某个属性或参数选择正确的枚举类型及其项。
  • 查找 game、workspace、script、plugin 或 Enum 等全局对象。
  • 确认 task、math、string、table、os 或 vector 等内置库的行为。
  • 编写代码前,核实确切的参数形式、返回值和弃用状态。

当任务主要涉及以下内容时,请勿使用此技能:

  • Roblox 项目的整体结构、代码放置位置或客户端与服务器的职责。
  • 远程通信安全、复制架构、持久化设计或 Open Cloud 工作流。
  • API 查找只是次要环节的更广泛系统设计,其中主要工作是结构决策。

决策规则

  • 如果核心问题是“这里应该调用或读取哪个引擎 API?”,请使用此技能。
  • 当已知问题需要确认正确的类、成员、数据类型、枚举、全局对象或库接口时,请使用此技能。
  • 从最贴合问题的接口类型入手:
    • 引擎对象和服务使用类或服务。
    • Vector3、CFrame、RaycastParams 或 TweenInfo 等值对象使用数据类型。
    • Enum.RaycastFilterType.Exclude 等预设值使用枚举。
    • game、workspace、script 或 Enum 等始终可用的名称使用全局对象。
    • task、math、table 或 string 等表下的自由函数使用库。
  • 如果任务实际涉及代码应放在哪里、哪一端负责状态,或系统应如何组织,请转交给 roblox-core。
  • 如果任务核心涉及远程通信、信任边界、复制正确性或服务器权威,请转交给 roblox-networking。
  • 如果任务核心涉及持久化存储、配额、保存设计或跨服务器状态,请转交给 roblox-data。
  • 如果任务核心涉及 Open Cloud、OAuth 或外部集成,请转交给 roblox-cloud 或 roblox-oauth。
  • 如果请求混合了 API 查询与范围外的设计内容,只回答引擎参考部分,并明确排除其余部分。

说明

  1. 搜索前先确定缺少的信息:
    • 由哪个引擎对象或服务负责?
    • 需要哪种成员?
    • API 需要哪种数据类型或枚举?
    • 哪个全局函数或库函数适合处理此问题?
  2. 先选择正确的参考文件:
    • references/engine-overview.md 用于选择接口范围。
    • references/classes-reference.md 用于查找类、服务和成员。
    • references/datatypes-reference.md 用于查找值类型及其用法。
    • references/enums-reference.md 用于查找枚举类别和枚举项。
    • references/globals-reference.md 用于查找 Luau 和 Roblox 全局对象。
    • references/engine-library-yaml-files.md 用于查找内置库。
    • references/datatype-yaml-files.md 用于理解数据类型 YAML 的结构和重载。
  3. 编写代码前,确认准确的 API 契约:
    • 成员名称。
    • 成员类型。
    • 参数顺序和类型。
    • 返回类型。
    • 属性类型。
    • 枚举类别和枚举项名称。
    • 弃用标记或其他标签。
  4. 如果同时存在较旧的全局函数或旧版形式,请优先使用有文档说明的现代接口:
    • 优先使用 task.wait(),而不是 wait()。
    • 优先使用 task.delay(),而不是 delay()。
    • 需要清晰表达服务访问时,优先使用 game:GetService()。
  5. 如果数据类型或库页面列出了多个重载,请先阅读所有重载,再选择调用方式。
  6. 如果参数或属性类型指向另一种数据类型或枚举,请继续查找该依赖并单独确认。
  7. 回答应以参考文档和实现为导向:
    • 指明正确的接口。
    • 写出相关签名或属性类型。
    • 说明重要的枚举值、标签或限制。
    • 不要偏离到架构、持久化或安全系统设计。

使用参考资料

  • 用户只描述了问题、尚未明确引擎接口时,先打开 references/engine-overview.md。
  • 问题涉及类、服务或成员查找时,打开 references/classes-reference.md。
  • 问题涉及值对象或辅助容器时,打开 references/datatypes-reference.md。
  • API 需要预设常量时,打开 references/enums-reference.md。
  • 问题涉及脚本中可用的内置名称时,打开 references/globals-reference.md。
  • 所需 API 属于 task、math、string、table、os、utf8、coroutine、debug、buffer、bit32 或 vector 时,打开 references/engine-library-yaml-files.md。
  • 需要仔细理解构造函数重载、可变与不可变行为、常量或成员列表时,打开 references/datatype-yaml-files.md。

检查清单

  • 已将缺少的信息确定为类、成员、数据类型、枚举、全局对象或库函数查找。
  • 选择的引擎接口范围与问题匹配,且尽可能精确。
  • 使用前已确认成员类型、参数顺序、返回类型和属性类型。
  • 所需的枚举类别和枚举项名称拼写准确。
  • 数据类型构造函数或方法符合文档所述的重载。
  • 除非兼容性需要,否则不推荐使用已弃用的全局函数或旧版形式。
  • 回答以参考文档为导向,不偏离到项目架构、持久化或云工作流。
  • 必要时,将超出范围的系统问题转交给相应的 Roblox 技能。

常见错误

  • 用 roblox-api 回答本应属于 roblox-core 的项目结构问题。
  • 未确认成员是属性、方法、事件还是回调,就猜测成员名称。
  • 需要枚举项时传入原始数字。
  • 把数据类型当作 Instance 类,或反过来。
  • 忽略构造函数重载,导致参数顺序错误。
  • 现代接口已有对应的 task 函数,却仍推荐已弃用的全局函数,例如 wait() 或 delay()。
  • 假定某个全局对象在所有上下文中都存在,尤其是 plugin。
  • 将简单的 API 查询扩展成网络、数据或云系统设计。

示例

为 raycast 选择合适的接口
  • 类或服务:Workspace(通过 WorldRoot 行为)
  • 方法:Workspace:Raycast(origin, direction, raycastParams)
  • 数据类型:RaycastParams
  • 枚举:Enum.RaycastFilterType
  • 结果数据类型:RaycastResult
确认 tween API 调用
  • 类或服务:TweenService
  • 方法:TweenService:Create(instance, tweenInfo, propertyTable)
  • 数据类型:TweenInfo
  • 常涉及的枚举:Enum.EasingStyle、Enum.EasingDirection
区分全局变量、数据类型和枚举用法
local Workspace = game:GetService("Workspace")

local params = RaycastParams.new()
params.FilterType = Enum.RaycastFilterType.Exclude

local cf = CFrame.lookAt(Vector3.new(0, 5, 10), Vector3.zero)
  • game 是 Roblox 全局变量。
  • RaycastParams、CFrame 和 Vector3 是数据类型。
  • Enum.RaycastFilterType.Exclude 是枚举项。

评论

支持 Markdown