一個 插件 是一種擴展,它為 Studio 增加附加功能或特性。您可以從創作者商店 安裝 社區製作的插件,或者您可以 創建 和 發布 自己的插件到 工具箱 以便在您的體驗中使用。
如果您還選擇將插件分發到創作者商店,您可以選擇免費提供它們或以 美國美元 出售。Roblox 提供市場領先的收入分成,這些銷售僅扣除稅金和支付處理費用。要了解有關銷售插件的更多信息,請參見 創作者商店 - 分發和銷售資產。
創建新插件
您可以創建自己的插件來改善您在 Studio 的工作流程。以下代碼示例是一個名為 AddEmptyScript 的插件,將一個空的 Script 插入到 Instance 的子項中或 ServerScriptService 中。以下部分解釋了創建此插件的主要部分。
首先,您應該在 Studio 設置的 Studio 部分啟用 插件調試啟用。這將在 Studio 中顯示 PluginDebugService,提供實時調試您的插件代碼,並使重新加載和保存插件變得更容易。
AddEmptyScript Plugin
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 並將其本地保存。
在 ServerStorage 中插入一個新的 Script 並將其重命名為 AddEmptyScript。

將上述 AddEmptyScript Plugin 代碼複製並粘貼到新的腳本中。
在 Explorer 窗口中選擇新腳本,然後從 Studio 的 Plugins 菜單中選擇 另存為本地插件。
在彈出窗口中,單擊 保存 將插件腳本插入到您的本地 Studio 安裝的 Plugins 文件夾中。
此插件應該會出現在 PluginDebugService 中,並開始運行。
添加工具欄按鈕
要在 Studio 工具欄的 Plugins 標籤中為您的插件添加一個按鈕,使用 Plugin:CreateToolbar() 和 PluginToolbar:CreateButton() 方法。在 AddEmptyScript 的代碼中,第 5 行創建了一個名為 Custom 的工具欄新區域和 Plugins 菜單文件夾,而第 8 行創建了一個標籤為 Empty Script 的按鈕。

點擊時執行代碼
為了使插件在用戶點擊工具欄按鈕時執行代碼,將一個函數連接到按鈕的 PluginToolbarButton.Click 事件。在 AddEmptyScript 的代碼中,連接的函數是 onPluginButtonClicked()。
檢查用戶選擇
要根據用戶選擇的內容修改插件的行為,使用 Selection 服務。onPluginButtonClicked() 函數檢查用戶是否有選擇任何內容,並將新腳本作為其子項創建,而不是在 ServerScriptService 中。如果用戶沒有選擇任何內容,則在 ServerScriptService 中創建新腳本。

支持撤銷和重做
使用 ChangeHistoryService 允許用戶撤銷和重做插件在體驗中所做的更改。在您的腳本中,設置插件調用 TryBeginRecording() 並在進行更改之前存儲分配給 API 調用的標識符。然後在進行變更後設置插件調用 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)
上傳插件
完成創建插件後,您可以將其上傳到您的庫中,以便它在您所有的項目中都可以訪問。
要上傳插件:
在 Explorer 窗口中,選擇一個插件腳本。
瀏覽到 Studio 的 Plugins 菜單,然後選擇 發布為插件。
- 選擇性在資產配置窗口的左上角,單擊默認的拼圖塊圖像以上傳一個 512×512 的插件縮略圖。
填寫以下字段:
- 名稱 — 您插件的標題。
- 描述 — 描述潛在用戶可以期望該插件執行的描述。
- 創建者 — 您希望作為該插件創建者歸屬的創建者或團體。
單擊 提交 按鈕。您的插件現在在 工具箱 的 庫 和 創建物 標籤下可用。
分發和出售插件
您可以在創作者商店公開分發和銷售自己的插件,供他人用於自己的遊戲開發。這種獲利方法讓您在交易中獲得 100% 的淨收益,繞過平台費用和 DevEx 費率。要了解有關此過程的更多信息,包括如何設置賣家帳戶以設置價格和接收付款,請參見 創作者商店 - 要求。
