工作室插件

*此内容使用人工智能(Beta)翻译,可能包含错误。若要查看英文页面,请点按 此处

一个 插件 是一个扩展,它向工作室添加额外的功能或特性。您可以从创作者商店 安装 社区制作的插件,或者您可以 创建发布 自己的插件到 工具箱,以便在您的体验中使用。

如果您选择将插件分发到创作者商店,您可以选择将其免费提供或以 美元 出售。Roblox 提供市场领先的收入分成,仅扣除税费和支付处理费用。如需有关销售插件的更多信息,请参见 创作者商店 - 分发和销售资产

创建新插件

您可以创建自己的插件来改善您在工作室中的工作流程。以下代码示例是一个名为 AddEmptyScript 的插件,它插入一个空的 Script 作为 Instance 的子项或在 ServerScriptService 中。以下部分将解释创建此插件的主要部分。

首先,您应该在工作室设置的 工作室 部分启用 插件调试启用。这将在工作室中暴露 PluginDebugService,为您的插件代码提供实时调试,并使其更易于重新加载和保存。

AddEmptyScript 插件

local ServerScriptService = game:GetService("ServerScriptService")
local Selection = game:GetService("Selection")
-- 创建一个新的工具栏部分和标题为“自定义”的插件菜单文件夹
local toolbar = plugin:CreateToolbar("自定义")
-- 添加一个标签为“空脚本”的工具栏按钮
local newScriptButton = toolbar:CreateButton("空脚本", "创建一个空脚本", "rbxassetid://14978048121")
-- 使按钮在 3D 视窗隐藏时可点击
newScriptButton.ClickableWhenViewportHidden = true
local function onPluginButtonClicked()
local selectedObjects = Selection:Get()
local parent = selectedObjects[1] or ServerScriptService
local newScript = Instance.new("Script")
newScript.Source = ""
newScript.Parent = parent
end
newScriptButton.Click:Connect(onPluginButtonClicked)

保存插件脚本

要创建插件,首先在本地创建一个 Script 并保存。

  1. ServerStorage 中插入一个新的 Script,并将其重命名为 AddEmptyScript

  2. 将上述 AddEmptyScript 插件 代码复制并粘贴到新脚本中。

  3. 资源管理器 窗口中选中新脚本后,从工作室的 插件 菜单中选择 另存为本地插件

  4. 在弹出窗口中,单击 保存,将插件脚本插入到工作室安装的本地 插件 文件夹中。

  5. 插件应出现在 PluginDebugService 中并开始运行。

  6. 重要
    删除 ServerStorage 中的原始脚本,并从 PluginDebugService 中的 AddEmptyScript 插件中进行工作,否则您可能会将更改应用到错误的脚本上。

添加工具栏按钮

要为您的插件在工作室工具栏的 插件 选项卡中添加一个按钮,请使用 Plugin:CreateToolbar()PluginToolbar:CreateButton() 方法。在 AddEmptyScript 的代码中,第 5 行在工具栏和 插件 菜单文件夹中创建一个名为 自定义 的新部分,而第 8 行创建了一个标签为 空脚本 的按钮。

添加到工作室工具栏的新插件按钮

单击时执行代码

要使插件在用户点击工具栏按钮时执行代码,请将函数连接到按钮的 PluginToolbarButton.Click 事件。在 AddEmptyScript 的代码中,连接的函数是 onPluginButtonClicked()

检查用户选择

要根据用户选择的内容修改插件的行为,请使用 Selection 服务。onPluginButtonClicked() 函数检查用户是否选择了任何内容,并将新脚本作为其子项创建,而不是在 ServerScriptService 中创建。如果用户没有选择任何内容,它将在 ServerScriptService 中创建新脚本。

支持撤销和重做

使用 ChangeHistoryService 允许用户撤销和重做插件在体验中所做的更改。在您的脚本中,设置插件调用 ChangeHistoryService:TryBeginRecording(),并在进行更改之前存储分配给 API 调用的标识符。然后在进行更改后设置插件调用 ChangeHistoryService:FinishRecording(),以便捕获在录制会话期间所做的任何更改,以便进行撤销和重做。

以下代码示例创建了一个示例插件,可以将霓虹材质应用于选定的零件。它使用 ChangeHistoryService 记录和管理插件所做的更改:

带有撤销和重做记录的示例材质插件

local ChangeHistoryService = game:GetService("ChangeHistoryService")
local Selection = game:GetService("Selection")
-- 创建一个示例插件
local toolbar = plugin:CreateToolbar("示例插件")
local button = toolbar:CreateButton("霓虹效果", "", "")
-- 将函数连接到点击事件
button.Click:Connect(function()
-- 尝试使用特定标识符开始录制
local recording = ChangeHistoryService:TryBeginRecording("将选择设置为霓虹")
-- 检查录制是否成功启动
if not recording then
-- 这表明您的插件已开始上一个录制但从未完成
-- 每个插件一次只能激活一个录制
return
end
-- 遍历所选实例
for _, instance in Selection:Get() do
-- 检查实例是否为 BasePart
if instance:IsA("BasePart") then
instance.Material = Enum.Material.Neon -- 将零件的材质设置为霓虹
end
end
-- 完成录制,将更改提交到历史记录
ChangeHistoryService:FinishRecording(recording, Enum.FinishRecordingOperation.Commit)
end)

上传插件

完成插件创建后,您可以将其上传到您的库存,以便在您所有的项目中访问。

要上传插件:

  1. 资源管理器 窗口中,选择一个插件脚本。

  2. 导航到工作室的 插件 菜单,然后选择 发布为插件

  3. 可选
    在资产配置窗口的左上角,单击默认的拼图图标以上传插件的 512×512 图像缩略图。

  4. 填写以下字段:

    • 名称 — 插件的标题。
    • 描述 — 描述潜在用户可以期望插件做什么的描述。
    • 创建者 — 您想要归属为插件创建者的创建者或组。
  5. 点击 提交 按钮。您的插件现在可以在 工具箱库存创作 选项卡下进行访问。

分发和销售插件

您可以在创作者商店公开分发和销售自己的插件,以供其他人在其游戏开发中使用。这种货币化方式使您在交易中获得 100% 的净收益,绕过平台费用和 DevEx 汇率。有关此过程的更多信息,包括如何设置卖家帐户以设置价格和接收付款,请参见 创作者商店 - 要求

©2026 Roblox Corporation、Roblox、Roblox 标志及 Powering Imagination 是我们在美国及其他国家或地区的注册与未注册商标。