Studio 插件

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

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

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

创建新插件

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

首先,您应该在 Studio 设置的 Studio 部分启用 插件调试启用。这将使 PluginDebugService 在 Studio 中可用,提供实时调试您的插件代码的功能,并使重新加载和保存插件变得更容易。

AddEmptyScript 插件
local ServerScriptService = game:GetService("ServerScriptService")
local Selection = game:GetService("Selection")
-- 创建一个新的工具栏部分和名为 "Custom" 的插件菜单文件夹
local toolbar = plugin:CreateToolbar("Custom")
-- 添加一个标签为 "Empty Script" 的工具栏按钮
local newScriptButton = toolbar:CreateButton("Empty Script", "创建一个空脚本", "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. 资源管理器 窗口中选择新脚本,从 Studio 的 插件 菜单中选择 另存为本地插件

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

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

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

添加工具栏按钮

要为您的插件在 Studio 工具栏的 插件 选项卡中添加按钮,请使用 Plugin:CreateToolbar()PluginToolbar:CreateButton() 方法。在 AddEmptyScript 的代码中,第 5 行创建了工具栏中的一个新部分和 插件 菜单文件夹,标题为 Custom,而第 8 行创建了一个标签为 Empty Script 的按钮。

新插件按钮添加到 Studio 工具栏

点击时执行代码

要使插件在用户点击工具栏按钮时执行代码,请将一个函数连接到按钮的 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. 导航到 Studio 的 插件 菜单,然后选择 发布为插件

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

  4. 填写以下字段:

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

分发和销售插件

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

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