Plugin

*Konten ini diterjemahkan menggunakan AI (Beta) dan mungkin mengandung kesalahan. Untuk melihat halaman ini dalam bahasa Inggris, klik di sini.

Sebuah plugin adalah ekstensi yang menambahkan fitur atau fungsi tambahan ke Studio.Anda dapat instal plugin yang dibuat komunitas dari Toko Toko Kreator, atau Anda dapat buat dan publikasikan plugin Anda sendiri ke Toolbox untuk digunakan di seluruh pengalaman Anda.

Jika Anda memilih untuk juga mendistribusikan plugin Anda ke Toko Pencipta, Anda dapat menawarkannya secara gratis atau menjualnya seharga Dolar Amerika Serikat (harga minimum adalah $4,99).Roblox menawarkan bagian pendapatan teratas untuk penjualan ini, karena hanya pajak dan biaya pemrosesan pembayaran yang dikurangi.Untuk informasi lebih lanjut tentang menjual plugin, lihat Menjual di Toko Pencipta.

Buat plugin baru

Anda dapat membuat plugin sendiri untuk meningkatkan alur kerja Anda di Studio.Contoh kode berikut adalah plugin bernama EmptyScriptAdder yang menyisipkan skrip kosong sebagai anak dari objek atau di ServerScriptService .Bagian berikut menjelaskan bagian utama untuk membuat plugin ini.

Untuk memulai, Anda harus mengaktifkan Debugging Plugin Diaktifkan di bagian Studio dari pengaturan Studio.Ini akan mengekspos PluginDebugService di Studio yang memberikan debugging waktu nyata untuk kode plugin Anda dan memudahkan untuk memuat ulang dan menyimpan plugin Anda.

Plugin Pengisi Skrip Kosong

local ChangeHistoryService = game:GetService("ChangeHistoryService")
local Selection = game:GetService("Selection")
-- Buat bagian bilah alat baru berjudul "Alat Skrip Kustom"
local toolbar = plugin:CreateToolbar("Custom Script Tools")
-- Tambahkan tombol bilah alat bernama "Buat Skrip Kosong"
local newScriptButton = toolbar:CreateButton("Create Empty Script", "Create an empty script", "rbxassetid://14978048121")
-- Buat tombol dapat diklik bahkan jika viewport 3D tersembunyi
newScriptButton.ClickableWhenViewportHidden = true
local function onNewScriptButtonClicked()
local selectedObjects = Selection:Get()
local parent = game:GetService("ServerScriptService")
if #selectedObjects > 0 then
parent = selectedObjects[1]
end
local newScript = Instance.new("Script")
newScript.Source = ""
newScript.Parent = parent
ChangeHistoryService:SetWaypoint("Added new empty script")
end
newScriptButton.Click:Connect(onNewScriptButtonClicked)

Simpan skrip plugin

Plugin dimulai dari skrip.Untuk membuat plugin, buat Script dan simpan sebagai plugin menggunakan Explorer.Sebagai contoh, untuk membuat Plugin EmptyScriptAdder :

  1. Sisipkan baru Script di dalam ServerStorage dan ganti namanya menjadi EmptyScriptAdder .

  2. Salin dan tempel kode EmptyScriptAdder Plugin ke dalam skrip baru.

  3. Di jendela Explorer , klik kanan pada skrip dan pilih Simpan sebagai Plugin Lokal .

  4. Di jendela popup, klik Simpan untuk menyisipkan skrip plugin ke dalam folder lokal Plugin dari instalasi Studio.

  5. Plugin harus muncul di PluginDebugService dan mulai berjalan.

Muat ulang dan simpan perubahan

Dengan Plugin di dalam PluginDebugService , Anda dapat dengan mudah memperbarui plugin dengan mengklik kanan dan kemudian memilih Simpan dan Muat Ulang Plugin dari menu konteks.Jika Anda hanya ingin memuat ulang plugin, misalnya untuk melalui bagian kode menggunakan titik istirahat tanpa menyimpan plugin, Anda dapat secara alternatif memilih Memuat Ulang Plugin .

Tambahkan tombol bilah alat

Untuk menambahkan tombol untuk plugin Anda ke tab Plugins dari bilah alat Studio, gunakan metode Plugin:CreateToolbar() dan PluginToolbar:CreateButton().Dalam kode untuk EmptyScriptAdder , baris 5 membuat bagian baru di bilah alat bernama Alat Skrip Kustom dan baris 8 membuat tombol bernama Buat Skrip Kosong .

New plugin button added to toolbar in Studio

Jalankan kode saat klik

Untuk membuat plugin mengeksekusi kode saat pengguna mengklik tombol bilah alat, hubungkan fungsi ke acara tombol PluginToolbarButton.Click pengguna.Dalam kode untuk EmptyScriptAdder , fungsi penghubung adalah onNewScriptButtonClicked().

Periksa pemilihan pengguna

Untuk memodifikasi perilaku plugin berdasarkan apa yang telah dipilih pengguna, gunakan layanan Selection.Fungsi onNewScriptButtonClicked() memeriksa apakah pengguna memiliki sesuatu yang dipilih dan membuat skrip baru sebagai anaknya bukan di dalam ServerScriptService .Jika pengguna tidak memiliki apa pun yang dipilih, itu membuat skrip baru di ServerScriptService .

Dukungan membatalkan dan memulai ulang

Gunakan ChangeHistoryService untuk memungkinkan pengguna membatalkan dan mengulangi perubahan yang dilakukan oleh plugin dalam pengalaman.Di skrip Anda, atur plugin untuk memanggil ChangeHistoryService:TryBeginRecording() dan menyimpan identifikator yang ditugaskan ke panggilan API sebelum melakukan perubahan.Kemudian atur plugin untuk memanggil ChangeHistoryService:FinishRecording() setelah melakukan perubahan, sehingga dapat menangkap semua perubahan yang dilakukan selama sesi perekaman untuk dibatalkan dan diulangi.

Contoh kode berikut membuat plugin contoh yang dapat menerapkan material neon ke bagian yang dipilih.Ini menggunakan ChangeHistoryService untuk merekam dan mengelola perubahan yang dilakukan oleh plugin:

Contoh Plugin Bahan dengan Rekaman untuk Membatalkan dan Memperbaiki

local ChangeHistoryService = game:GetService("ChangeHistoryService")
local Selection = game:GetService("Selection")
-- Buat plugin contoh
local toolbar = plugin:CreateToolbar("Example Plugin")
local button = toolbar:CreateButton("Neon it up", "", "")
-- Hubungkan fungsi ke acara klik
button.Click:Connect(function()
local parts = {}
for _, part in Selection:Get() do
if part:IsA("BasePart") then
parts[#parts + 1] = part
end
end
if #parts < 1 then
-- Tidak ada yang perlu dilakukan.
return
end
-- Coba mulai rekaman dengan identifikasi spesifik
local recording = ChangeHistoryService:TryBeginRecording("Set selection to neon")
-- Periksa apakah perekaman berhasil dimulai
if not recording then
-- Tangani kesalahan di sini. Ini menunjukkan bahwa plugin Anda memulai sebelumnya
-- merekam dan tidak pernah menyelesaikannya. Anda mungkin hanya memiliki satu rekaman
-- per plugin aktif pada satu waktu.
return
end
-- Berulang melalui bagian yang dipilih
for _, part in parts do
part.Material = Enum.Material.Neon -- Tetapkan material bagian ke Neon
end
-- Selesaikan perekaman, mengkomitkan perubahan ke histori
ChangeHistoryService:FinishRecording(recording, Enum.FinishRecordingOperation.Commit)
end)

Upload, distribusikan, dan monetarisasi plugin

Seperti dengan model , meshes , gambar , dan animasi , Anda dapat mendistribusikan plugin ke Roblox untuk membuatnya mudah digunakan kembali dari Toolbox .Anda dapat memilih untuk menyediakannya secara publik kepada semua pencipta lain di Toko Pencipta, atau untuk mendistribusikannya secara pribadi untuk penggunaan Anda sendiri.Jika Anda memilih untuk mendistribusikan plugin Anda secara publik, Anda dapat menetapkan harga di mana untuk menjualnya kepada pencipta lain.

Untuk mendistribusikan plugin:

  1. Di jendela Explorer , klik kanan skrip plugin, lalu pilih Terbitkan sebagai Plugin dari menu konteks.

  2. (Opsi) Di sudut kiri atas jendela konfigurasi aset, klik gambar untuk mengunggah gambar 512×512.

  3. Isi bidang berikut:

    • Nama : Judul untuk plugin Anda.
    • Deskripsi : Deskripsi yang menjelaskan apa yang pengguna potensial harapkan plugin lakukan.
    • Pencipta : Pencipta yang ingin Anda atribusikan sebagai pencipta plugin.
  4. Klik tombol Kirim .Plugin Anda sekarang tersedia untuk Anda di tab Inventaris dan Kreasi dari Toolbox.

  5. Klik tautan ke Dashboard Pencipta untuk mengkonfigurasi distribusi.