ปลั๊กอิน (plugin) คือส่วนขยายที่เพิ่มฟีเจอร์หรือฟังก์ชันการทำงานเพิ่มเติมให้กับ Studio คุณสามารถ ติดตั้ง ปลั๊กอินที่สร้างโดยชุมชนจาก Creator Store หรือคุณสามารถ สร้าง และ เผยแพร่ ปลั๊กอินของคุณเองไปยัง Toolbox เพื่อใช้ในประสบการณ์ของคุณ
หากคุณเลือกที่จะจัดจำหน่ายปลั๊กอินของคุณไปยัง Creator Store คุณสามารถเสนอให้ใช้ฟรีหรือขายในราคา ดอลลาร์สหรัฐ Roblox มีการแบ่งรายได้ที่นำเสนอเป็นตลาดชั้นนำสำหรับการขายเหล่านี้ โดยมีเพียงภาษีและค่าธรรมเนียมการประมวลผลการชำระเงินที่ถูกหักออก สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการขายปลั๊กอิน ดูที่ Creator Store - จัดจำหน่ายและขายสินทรัพย์
สร้างปลั๊กอินใหม่
คุณสามารถสร้างปลั๊กอินของคุณเองเพื่อปรับปรุงการทำงานของคุณใน Studio ตัวอย่างโค้ดต่อไปนี้คือปลั๊กอินที่เรียกว่า AddEmptyScript ที่แทรก Script ว่างเป็นลูกของ Instance หรือใน ServerScriptService ส่วนถัดไปจะอธิบายส่วนที่สำคัญในการสร้างปลั๊กอินนี้
เริ่มต้น คุณควรเปิดใช้งาน Plugin Debugging Enabled ในส่วน Studio ของการตั้งค่า Studio นี่จะทำให้ PluginDebugService สามารถใช้ได้ใน Studio ซึ่งให้การดีบักแบบเรียลไทม์สำหรับโค้ดของปลั๊กอินของคุณและทำให้สะดวกในการโหลดใหม่และบันทึกปลั๊กอินของคุณ
AddEmptyScript Plugin
local ServerScriptService = game:GetService("ServerScriptService")
local Selection = game:GetService("Selection")
-- สร้างส่วนใหม่ในแถบเครื่องมือและโฟลเดอร์เมนู Plugins ชื่อ "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 ใหม่และบันทึกไว้ในเครื่อง
แทรก Script ใหม่ภายใน ServerStorage และเปลี่ยนชื่อเป็น AddEmptyScript.

คัดลอกและวางโค้ด AddEmptyScript Plugin ข้างต้นลงในสคริปต์ใหม่
เมื่อเลือกสคริปต์ใหม่ในหน้าต่าง Explorer ให้เลือก บันทึกเป็นปลั๊กอินท้องถิ่น จากเมนู Plugins ของ Studio
ในหน้าต่างป๊อปอัพ คลิก บันทึก เพื่อแทรกสคริปต์ปลั๊กอินลงในโฟลเดอร์ Plugins ของการติดตั้ง Studio ของคุณ
ปลั๊กอินควรปรากฏใน PluginDebugService และเริ่มทำงาน
- IMPORTANTลบสคริปต์ต้นฉบับใน ServerStorage และทำงานจากปลั๊กอิน AddEmptyScript ใน PluginDebugService มิฉะนั้นคุณอาจลงท้ายด้วยการเปลี่ยนแปลงสคริปต์ที่ไม่ถูกต้อง

เพิ่มปุ่มแถบเครื่องมือ
ในการเพิ่มปุ่มสำหรับปลั๊กอินของคุณในแถบ Plugins ของแถบเครื่องมือ Studio ให้ใช้เมธอด Plugin:CreateToolbar() และ PluginToolbar:CreateButton() ในโค้ดสำหรับ AddEmptyScript บรรทัดที่ 5 สร้างส่วนใหม่ในแถบเครื่องมือและโฟลเดอร์เมนู Plugins ชื่อ Custom ขณะที่บรรทัดที่ 8 สร้างปุ่มที่มีชื่อว่า Empty Script

ประมวลผลโค้ดเมื่อคลิก
เพื่อให้ปลั๊กอินประมวลผลโค้ดเมื่อผู้ใช้คลิกที่ปุ่มแถบเครื่องมือ เชื่อมต่อฟังก์ชันเข้ากับเหตุการณ์ PluginToolbarButton.Click ของปุ่ม ในโค้ดสำหรับ AddEmptyScript ฟังก์ชันที่เชื่อมต่อนั้นคือ onPluginButtonClicked()
ตรวจสอบการเลือกของผู้ใช้
ในการเปลี่ยนพฤติกรรมของปลั๊กอินตามที่ผู้ใช้เลือก ใช้บริการ Selection ฟังก์ชัน onPluginButtonClicked() ตรวจสอบว่าผู้ใช้มีการเลือกอะไรอยู่หรือไม่และสร้างสคริปต์ใหม่เป็นลูกของมันแทนที่จะอยู่ภายใน ServerScriptService หากผู้ใช้ไม่มีการเลือกอะไร มันจะสร้างสคริปต์ใหม่ใน ServerScriptService

รองรับการเลิกทำและทำซ้ำ
ใช้ ChangeHistoryService เพื่อให้ผู้ใช้สามารถเลิกทำและทำซ้ำการเปลี่ยนแปลงที่ทำโดยปลั๊กอินภายในประสบการณ์ ในสคริปต์ของคุณ ตั้งค่าปลั๊กอินเพื่อเรียก TryBeginRecording() และเก็บรหัสประจำตัวที่กำหนดให้กับการเรียก API ก่อนทำการเปลี่ยนแปลง จากนั้นตั้งค่าปลั๊กอินให้เรียก FinishRecording() หลังจากทำการเปลี่ยนแปลง เพื่อให้บันทึกการเปลี่ยนแปลงใด ๆ ที่ทำระหว่างเซสชันการบันทึกสำหรับการเลิกทำและทำซ้ำ
ตัวอย่างโค้ดต่อไปนี้สร้างปลั๊กอินตัวอย่างที่สามารถใช้วัสดุเนออนกับส่วนที่เลือก มันใช้ ChangeHistoryService ในการบันทึกและจัดการการเปลี่ยนแปลงที่ทำโดยปลั๊กอิน:
Example Material Plugin with Recordings for Undo and Redo
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
-- หมายถึงว่าปลั๊กอินของคุณเริ่มการบันทึกก่อนหน้านี้และไม่เคยเสร็จสิ้น
-- คุณจะมีการบันทึกเพียงหนึ่งชุดต่อปลั๊กอินในเวลานี้
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 ให้เลือกสคริปต์ปลั๊กอิน
ไปที่เมนู Plugins ของ Studio จากนั้นเลือก เผยแพร่เป็นปลั๊กอิน
- OPTIONALในมุมซ้ายบนของหน้าต่างการกำหนดค่าสินทรัพย์ ให้คลิกที่ภาพปริศนาชิ้นปกติเพื่ออัปโหลดภาพขนาดย่อ 512×512 สำหรับปลั๊กอินของคุณ
กรอกข้อมูลในช่องต่อไปนี้:
- ชื่อ — ชื่อสำหรับปลั๊กอินของคุณ
- คำอธิบาย — คำอธิบายที่บอกว่าสิ่งที่ผู้ใช้ที่อาจเป็นไปได้สามารถคาดหวังว่าปลั๊กอินจะทำอะไร
- ผู้สร้าง — ผู้สร้างหรือกลุ่มที่คุณต้องการจะให้เครดิตว่าเป็นผู้สร้างปลั๊กอิน
คลิกปุ่ม ส่ง ปลั๊กอินของคุณจะพร้อมใช้งานใน Toolbox ภายใต้แท็บ สินค้าคงคลัง และ สิ่งสร้าง
จัดจำหน่ายและขายปลั๊กอิน
คุณสามารถจัดจำหน่ายและขายปลั๊กอินของคุณใน Creator Store เพื่อให้คนอื่นใช้งานในกระบวนการพัฒนาเกมของพวกเขา วิธีการทำเงินนี้ช่วยให้คุณได้รับ 100% ของรายได้สุทธิจากการทำธุรกรรม โดยไม่ต้องเสียค่าธรรมเนียมแพลตฟอร์มหรืออัตรา DevEx สำหรับข้อมูลเพิ่มเติมเกี่ยวกับกระบวนการนี้ รวมถึงวิธีการตั้งค่าบัญชีผู้ขายเพื่อกำหนดราคาและรับการจ่ายเงิน ดูที่ Creator Store - ข้อกำหนด