プラグインは、スタジオに追加の機能や機能を追加する拡張機能です。コミュニティが作成したプラグインをインストールしたり、自分自身のプラグインを作成して公開し、ツールボックスでゲーム全体で使用することができます。
プラグインをクリエイターストアに配布することを選択した場合、無料で提供するか、米ドルで販売することができます。Robloxは、これらの販売に対して市場をリードする収益分配を提供しており、税金と支払い処理手数料のみが差し引かれます。プラグインの販売に関する詳細は、クリエイターストア - アセットの配布と販売を参照してください。
新しいプラグインを作成する
スタジオでのワークフローを改善するために、自分自身のプラグインを作成できます。以下のコードサンプルは、Instanceの子として、またはServerScriptService内に空のScriptを挿入するAddEmptyScriptというプラグインです。以下のセクションでは、このプラグインを作成するための主要な部分を説明します。
始めるには、スタジオの設定のスタジオセクションでプラグインデバッグを有効にするを有効にする必要があります。これにより、プラグインのコードのリアルタイムデバッグを提供するPluginDebugServiceがスタジオに表示され、プラグインの再読み込みや保存が容易になります。
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 プラグインコードを新しいスクリプトにコピー&ペーストします。
Explorerウィンドウで新しいスクリプトを選択し、スタジオのプラグインメニューからローカルプラグインとして保存を選択します。
ポップアップウィンドウで、保存をクリックして、プラグインスクリプトをスタジオインストールのローカルプラグインフォルダーに挿入します。
プラグインはPluginDebugServiceに表示され、実行を開始します。
- 重要ServerStorage内の元のスクリプトを削除し、PluginDebugService内のAddEmptyScriptプラグインから作業してください。そうしないと、間違ったスクリプトに変更を適用してしまう可能性があります。

ツールバーボタンを追加する
プラグインのボタンをスタジオツールバーのプラグインタブに追加するには、Plugin:CreateToolbar()およびPluginToolbar:CreateButton()メソッドを使用します。AddEmptyScriptのコードでは、5行目でツールバーに新しいセクションとプラグインメニューのフォルダーをCustomというタイトルで作成し、8行目でEmpty Scriptというラベルのボタンを作成します。

クリック時にコードを実行する
ユーザーがツールバーボタンをクリックしたときにプラグインがコードを実行するようにするには、ボタンのPluginToolbarButton.Clickイベントに関数を接続します。AddEmptyScriptのコードでは、接続関数はonPluginButtonClicked()です。
ユーザーの選択を確認する
ユーザーが選択したものに基づいてプラグインの動作を変更するには、Selectionサービスを使用します。onPluginButtonClicked()関数は、ユーザーが何かを選択しているかどうかを確認し、選択されている場合はその子として新しいスクリプトを作成し、選択されていない場合はServerScriptService内に新しいスクリプトを作成します。

元に戻すとやり直しをサポートする
ChangeHistoryServiceを使用して、ゲーム内でプラグインによって行われた変更を元に戻したりやり直したりできるようにします。スクリプト内で、プラグインがChangeHistoryService:TryBeginRecording()を呼び出し、変更を加える前にAPI呼び出しに割り当てられた識別子を保存します。その後、変更を加えた後にChangeHistoryService:FinishRecording()を呼び出して、記録セッション中に行われた変更を元に戻しやり直しのためにキャプチャします。
以下のコードサンプルは、選択したパーツにネオンマテリアルを適用できる例のプラグインを作成します。これは、ChangeHistoryServiceを使用してプラグインによって行われた変更を記録および管理します。
local ChangeHistoryService = game:GetService("ChangeHistoryService")
local Selection = game:GetService("Selection")
-- 例のプラグインを作成
local toolbar = plugin:CreateToolbar("Example Plugin")
local button = toolbar:CreateButton("Neon it up", "", "")
-- クリックイベントに関数を接続
button.Click:Connect(function()
-- 特定の識別子で記録を開始しようとする
local recording = ChangeHistoryService:TryBeginRecording("Set selection to neon")
-- 記録が正常に開始されたか確認
if not recording then
-- これは、プラグインが以前の記録を開始し、完了しなかったことを示します
-- プラグインごとにアクティブな記録は1つだけです
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ウィンドウでプラグインスクリプトを選択します。
スタジオのプラグインメニューに移動し、プラグインとして公開を選択します。
- オプションアセット設定ウィンドウの左上隅で、デフォルトのパズルピース画像をクリックして、プラグイン用の512×512の画像サムネイルをアップロードします。
次のフィールドに入力します:
- 名前 — プラグインのタイトル。
- 説明 — 潜在的なユーザーがプラグインに期待できることを説明する説明。
- クリエイター — プラグインのクリエイターとして帰属させたいクリエイターまたはグループ。
送信ボタンをクリックします。あなたのプラグインは、ツールボックスのインベントリおよび作成物タブで利用可能になります。
プラグインを配布および販売する
自分のプラグインをクリエイターストアで公開して販売し、他の人が自分のゲーム開発に使用できるようにすることができます。この収益化方法では、プラットフォーム手数料やDevExレートを回避し、取引の100%の純利益を得ることができます。このプロセスの詳細、価格設定や支払いを受け取るための販売者アカウントの設定方法については、クリエイターストア - 要件を参照してください。