Roblox Studio Eklenti Geliştirme: DockWidget UI, Araç Tasarımı ve Creator Store Geliri

DopaBrain Game Dev Lab • Güncellendi: Eylül 2026 • Okuma Süresi: 9 dk

Geliştirici & Mantık Araçları

Çoğu geliştirici sadece oyuncular için deneyim üretirken, vizyoner geliştiriciler diğer yapımcılara yönelik eklentiler (Studio Plugins) tasarlayarak Roblox Creator Store üzerinden gerçek dolar (USD) ve Robux kazanmaktadır.

Kullanışlı bir Studio eklentisi yapmak için özel API'leri bilmek gerekir: pencereler için DockWidgetPluginGui, Ctrl+Z geri alma işlemleri için ChangeHistoryService ve seçili parçaları yönetmek için Selection API. Bu rehber tüm adımları öğretir.

1. Eklenti Mimarisi ve Güvenlik İzinleri

Eklentiler Studio içinde özel yetkilerle çalışır:

2. DockWidgetPluginGui ile Yerleşik Panel Tasarımı

Studio pencerelerine tam oturan paneller tasarlamak:

3. ChangeHistoryService ile Güvenli Geri Alma (Undo)

Amatör eklentilerin en büyük hatası kullanıcının Ctrl+Z geçmişini bozmasıdır:

4. Eksiksiz Eklenti Kodu: Toplu Parça İyileştirici

Araç çubuğu butonu, pencere ve model optimizasyonu yapan çalışan script:

Studio Eklenti Kodunun Tamamı (Toolbar & DockWidget)
local ChangeHistoryService = game:GetService("ChangeHistoryService")
local Selection = game:GetService("Selection")

local toolbar = plugin:CreateToolbar("Optimization Tools")
local button = toolbar:CreateButton("Optimizer", "Open Batch Part Optimizer", "rbxassetid://4458901886")

local widgetInfo = DockWidgetPluginGuiInfo.new(
    Enum.InitialDockState.Float,
    false, false, 260, 180, 200, 140
)

local widget = plugin:CreateDockWidgetPluginGui("BatchOptimizerGui", widgetInfo)
widget.Title = "Mesh Optimizer"

local btnOptimize = Instance.new("TextButton")
btnOptimize.Size = UDim2.new(1, -20, 0, 44)
btnOptimize.Position = UDim2.new(0, 10, 0, 10)
btnOptimize.Text = "Secili Parcalari Iyilestir"
btnOptimize.BackgroundColor3 = Color3.fromRGB(16, 185, 129)
btnOptimize.TextColor3 = Color3.fromRGB(255, 255, 255)
btnOptimize.Parent = widget

button.Click:Connect(function()
    widget.Enabled = not widget.Enabled
end)

btnOptimize.MouseButton1Click:Connect(function()
    local selected = Selection:Get()
    local count = 0
    for _, obj in ipairs(selected) do
        if obj:IsA("BasePart") then
            obj.CastShadow = false
            if obj:IsA("MeshPart") then
                obj.CollisionFidelity = Enum.CollisionFidelity.Box
            end
            count = count + 1
        end
    end
    ChangeHistoryService:SetWaypoint("Optimized " .. count .. " Parts")
end)

Çalışma Mantığı: Üst menüde buton oluşturur, pencere açar ve seçilen modellerin gölgelerini kapatıp çarpışmalarını Box yaparak güvenli geri alma noktası oluşturur.

5. Creator Store'da Dolar ($USD) ile Satış

Eklentinizi küresel pazara sunma rehberi:

Mühendislik ve Analitik Düşünce Gücünüzü Ölçün

Yazılım araçları tasarlamak derin bir mantıksal odak gerektirir. Ücretsiz testlerimizle zihinsel güçlü yönlerinizi keşfedin.

Ücretsiz Beyin Tipi Testi Yap

Sıkça Sorulan Sorular (Roblox Studio Eklenti Geliştirme)

Eklentiyi yüklemeden bilgisayarımda nasıl test edebilirim?

Dosyayı Studio'nun yerel eklenti klasörüne kaydetmeniz yeterlidir; eklenti anında çalışacaktır.

Eklentiler gerçek para (dolar) karşılığı satılabilir mi?

Evet, kimlik doğrulaması yapmış geliştiriciler Creator Store'da dolar ile satış yapabilir.

ChangeHistoryService neden bu kadar önemlidir?

Kullanıcının yaptığı işlemleri Ctrl+Z ile güvenle geri alabilmesini sağlar.

Açık ve koyu temaya arayüz nasıl uyarlanır?

settings().Studio.Theme:GetColor() fonksiyonu ile sistemin resmi renkleri dinamik olarak alınır.