Một plugin là một phần mở rộng thêm tính năng hoặc chức năng bổ sung cho Studio. Bạn có thể cài đặt các plugin do cộng đồng tạo ra từ Creator Store, hoặc bạn có thể tạo và xuất bản plugin của riêng mình vào Toolbox để sử dụng trên các trải nghiệm của bạn.
Nếu bạn chọn phân phối các plugin của mình đến Creator Store, bạn có thể cung cấp chúng miễn phí hoặc bán chúng với giá Đô la Mỹ. Roblox cung cấp một tỷ lệ chia sẻ doanh thu hàng đầu cho những khoản bán này, vì chỉ có thuế và phí xử lý thanh toán được trừ. Để biết thêm thông tin về việc bán plugin, xem Creator Store - Phân phối và bán tài sản.
Tạo plugin mới
Bạn có thể tạo các plugin của riêng mình để cải thiện quy trình làm việc trong Studio. Mẫu mã sau đây là một plugin có tên AddEmptyScript chèn một Script trống làm con của một Instance hoặc trong ServerScriptService. Các phần sau đây giải thích các phần chính để tạo plugin này.
Để bắt đầu, bạn nên bật Plugin Debugging Enabled trong phần Studio của cài đặt Studio. Điều này sẽ phơi bày PluginDebugService trong Studio, cung cấp khả năng gỡ lỗi thời gian thực cho mã plugin của bạn và dễ dàng hơn để tải lại và lưu plugin của bạn.
Plugin AddEmptyScript
local ServerScriptService = game:GetService("ServerScriptService")
local Selection = game:GetService("Selection")
-- Tạo một phần mới trong thanh công cụ và thư mục menu Plugins có tiêu đề "Tùy Chỉnh"
local toolbar = plugin:CreateToolbar("Tùy Chỉnh")
-- Thêm một nút thanh công cụ có nhãn "Script Trống"
local newScriptButton = toolbar:CreateButton("Script Trống", "Tạo một script trống", "rbxassetid://14978048121")
-- Làm cho nút có thể nhấn được ngay cả khi viewport 3D bị ẩn
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)
Lưu mã plugin
Để tạo một plugin, trước tiên hãy tạo một Script và lưu nó cục bộ.
Chèn một Script mới vào trong ServerStorage và đổi tên nó thành AddEmptyScript.

Sao chép và dán mã Plugin AddEmptyScript ở trên vào script mới.
Với script mới được chọn trong cửa sổ Explorer, chọn Lưu dưới dạng Plugin Cục Bộ từ menu Plugins của Studio.
Trong cửa sổ popup, nhấp Lưu để chèn mã plugin vào thư mục Plugins cục bộ của cài đặt Studio.
Plugin nên xuất hiện trong PluginDebugService và bắt đầu chạy.
- QUAN TRỌNGXóa script gốc trong ServerStorage và làm việc từ plugin AddEmptyScript bên trong PluginDebugService, nếu không bạn có thể kết thúc việc áp dụng thay đổi cho script sai.

Thêm nút thanh công cụ
Để thêm một nút cho plugin của bạn vào tab Plugins của thanh công cụ Studio, hãy sử dụng các phương thức Plugin:CreateToolbar() và PluginToolbar:CreateButton(). Trong mã cho AddEmptyScript, dòng 5 tạo một phần mới trong thanh công cụ và thư mục menu Plugins có tiêu đề Tùy Chỉnh, trong khi dòng 8 tạo một nút có nhãn Script Trống.

Thực thi mã khi nhấp
Để tạo plugin thực thi mã khi người dùng nhấp vào nút thanh công cụ, hãy kết nối một hàm với sự kiện PluginToolbarButton.Click của nút. Trong mã cho AddEmptyScript, hàm kết nối là onPluginButtonClicked().
Kiểm tra lựa chọn của người dùng
Để sửa đổi hành vi của một plugin dựa trên những gì người dùng đã chọn, hãy sử dụng dịch vụ Selection. Hàm onPluginButtonClicked() kiểm tra xem người dùng có chọn gì không và tạo script mới làm con của nó thay vì trong ServerScriptService. Nếu người dùng không có gì được chọn, nó tạo script mới trong ServerScriptService.

Hỗ trợ hoàn tác và làm lại
Sử dụng ChangeHistoryService để cho phép người dùng hoàn tác và làm lại các thay đổi do một plugin thực hiện trong một trải nghiệm. Trong script của bạn, hãy thiết lập plugin để gọi TryBeginRecording() và lưu lại định danh được gán cho lệnh API trước khi thực hiện các thay đổi. Sau đó, hãy thiết lập plugin để gọi FinishRecording() sau khi thực hiện các thay đổi, để nó ghi lại bất kỳ thay đổi nào được thực hiện trong phiên ghi để hoàn tác và làm lại.
Mẫu mã sau đây tạo ra một plugin ví dụ có thể áp dụng vật liệu neon cho các phần được chọn. Nó sử dụng ChangeHistoryService để ghi lại và quản lý các thay đổi được thực hiện bởi plugin:
Plugin Vật Liệu Ví Dụ với Ghi Nhận Để Hoàn Tác và Làm Lại
local ChangeHistoryService = game:GetService("ChangeHistoryService")
local Selection = game:GetService("Selection")
-- Tạo một plugin ví dụ
local toolbar = plugin:CreateToolbar("Plugin Ví Dụ")
local button = toolbar:CreateButton("Neon nó lên", "", "")
-- Kết nối một hàm với sự kiện nhấp chuột
button.Click:Connect(function()
-- Thử bắt đầu một ghi âm với một định danh cụ thể
local recording = ChangeHistoryService:TryBeginRecording("Đặt lựa chọn thành neon")
-- Kiểm tra xem việc ghi âm có được khởi tạo thành công không
if not recording then
-- Điều này cho thấy rằng plugin của bạn đã bắt đầu một phiên ghi âm trước đó và chưa hoàn thành
-- Bạn chỉ có thể có một phiên ghi âm cho mỗi plugin hoạt động tại một thời điểm
return
end
-- Lặp qua các thể hiện được chọn
for _, instance in Selection:Get() do
-- Kiểm tra xem thể hiện có phải là BasePart không
if instance:IsA("BasePart") then
instance.Material = Enum.Material.Neon -- Đặt vật liệu của phần thành Neon
end
end
-- Hoàn thành ghi âm, cam kết các thay đổi vào lịch sử
ChangeHistoryService:FinishRecording(recording, Enum.FinishRecordingOperation.Commit)
end)
Tải lên plugin
Sau khi bạn hoàn thành việc tạo một plugin, bạn có thể tải nó lên kho của mình để nó có thể truy cập trên tất cả các dự án của bạn.
Để tải lên một plugin:
Trong cửa sổ Explorer, chọn một script plugin.
Điều hướng đến menu Plugins của Studio, sau đó chọn Xuất bản dưới dạng Plugin.
- TÙY CHỌNỞ góc trên bên trái của cửa sổ cấu hình tài sản, nhấp vào hình ảnh mảnh ghép mặc định để tải lên một hình thu nhỏ 512×512 cho plugin của bạn.
Điền vào các trường sau:
- Tên — Một tiêu đề cho plugin của bạn.
- Mô tả — Một mô tả về những gì người dùng tiềm năng có thể mong đợi plugin này thực hiện.
- Người tạo — Người tạo hoặc nhóm mà bạn muốn ghi công là người tạo của plugin.
Nhấp vào nút Gửi. Plugin của bạn bây giờ có sẵn cho bạn trong Toolbox dưới các tab Kho và Tác phẩm.
Phân phối và bán plugin
Bạn có thể công khai phân phối và bán các plugin của riêng mình trên Creator Store cho người khác sử dụng trong việc phát triển trò chơi của họ. Phương pháp kiếm tiền này cho phép bạn kiếm 100% doanh thu ròng từ các giao dịch, bỏ qua phí nền tảng và tỷ lệ DevEx. Để biết thêm thông tin về quy trình này, bao gồm cách thiết lập tài khoản người bán để đặt giá và nhận thanh toán, hãy xem Creator Store - Yêu cầu.