ملحق هو إضافة تضيف ميزات أو وظائف إضافية إلى الاستوديو. يمكنك تثبيت الملحقات التي أنشأها المجتمع من متجر المبدعين، أو يمكنك إنشاء ونشر ملحقاتك الخاصة إلى صندوق الأدوات لاستخدامها عبر ألعابك.
إذا اخترت أيضًا توزيع ملحقاتك إلى متجر المبدعين، يمكنك إما تقديمها مجانًا أو بيعها مقابل دولارات الولايات المتحدة. تقدم Roblox حصة ربح رائدة في السوق لهذه المبيعات، حيث يتم خصم الضرائب ورسوم معالجة الدفع فقط. لمزيد من المعلومات حول بيع الملحقات، راجع متجر المبدعين - توزيع وبيع الأصول.
إنشاء ملحقات جديدة
يمكنك إنشاء ملحقاتك الخاصة لتحسين سير العمل الخاص بك في الاستوديو. عينة الكود التالية هي ملحق يسمى AddEmptyScript الذي يقوم بإدراج Script فارغ كطفل لـ Instance أو في ServerScriptService. تشرح الأقسام التالية الأجزاء الرئيسية لإنشاء هذا الملحق.
للبدء، يجب عليك تمكين تمكين تصحيح الملحقات في قسم الاستوديو من إعدادات الاستوديو. سيؤدي ذلك إلى كشف PluginDebugService في الاستوديو الذي يوفر تصحيحًا في الوقت الفعلي لكود ملحقك ويسهل إعادة تحميل وحفظ ملحقك.
local ServerScriptService = game:GetService("ServerScriptService")
local Selection = game:GetService("Selection")
-- إنشاء قسم شريط أدوات جديد ومجلد قائمة الملحقات بعنوان "مخصص"
local toolbar = plugin:CreateToolbar("مخصص")
-- إضافة زر شريط أدوات يحمل عنوان "نص فارغ"
local newScriptButton = toolbar:CreateButton("نص فارغ", "إنشاء نص فارغ", "rbxassetid://14978048121")
-- جعل الزر قابلاً للنقر حتى لو كانت واجهة العرض ثلاثية الأبعاد مخفية
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 أعلاه في النص الجديد.
مع تحديد النص الجديد في نافذة المستكشف، اختر حفظ كملحق محلي من قائمة الملحقات في الاستوديو.
في نافذة المنبثقة، انقر على حفظ لإدراج نص الملحق في مجلد الملحقات المحلي لتثبيت الاستوديو.
يجب أن يظهر الملحق في PluginDebugService ويبدأ في التشغيل.
- هاماحذف النص الأصلي في ServerStorage واعمل من ملحق AddEmptyScript داخل PluginDebugService، وإلا قد ينتهي بك الأمر بتطبيق تغييرات على النص الخطأ.

إضافة زر شريط أدوات
لإضافة زر لملحقك إلى علامة التبويب الملحقات في شريط أدوات الاستوديو، استخدم طرق Plugin:CreateToolbar() و PluginToolbar:CreateButton(). في كود AddEmptyScript، يقوم السطر 5 بإنشاء قسم جديد في شريط الأدوات ومجلد قائمة الملحقات بعنوان مخصص، بينما يقوم السطر 8 بإنشاء زر يحمل عنوان نص فارغ.

تنفيذ الكود عند النقر
لجعل الملحق ينفذ الكود عندما ينقر المستخدم على زر شريط الأدوات، قم بتوصيل دالة بحدث PluginToolbarButton.Click للزر. في كود AddEmptyScript، الدالة المتصلة هي onPluginButtonClicked().
التحقق من اختيار المستخدم
لتعديل سلوك الملحق بناءً على ما اختاره المستخدم، استخدم خدمة Selection. تتحقق دالة onPluginButtonClicked() مما إذا كان لدى المستخدم أي شيء محدد وتقوم بإنشاء النص الجديد كطفل له بدلاً من داخل ServerScriptService. إذا لم يكن لدى المستخدم أي شيء محدد، فإنها تنشئ النص الجديد في ServerScriptService.

دعم التراجع والإعادة
استخدم ChangeHistoryService للسماح للمستخدمين بالتراجع وإعادة التغييرات التي أجراها الملحق داخل اللعبة. في نصك، قم بتعيين الملحق لاستدعاء TryBeginRecording() وتخزين المعرف المخصص الذي تم تعيينه لاستدعاء واجهة برمجة التطبيقات قبل إجراء التغييرات. ثم قم بتعيين الملحق لاستدعاء FinishRecording() بعد إجراء التغييرات، بحيث يتم التقاط أي تغييرات تم إجراؤها خلال جلسة التسجيل للتراجع والإعادة.
عينة الكود التالية تنشئ ملحقًا مثالياً يمكنه تطبيق مادة النيون على الأجزاء المحددة. يستخدم ChangeHistoryService لتسجيل وإدارة التغييرات التي أجراها الملحق:
local ChangeHistoryService = game:GetService("ChangeHistoryService")
local Selection = game:GetService("Selection")
-- إنشاء ملحق مثال
local toolbar = plugin:CreateToolbar("ملحق مثال")
local button = toolbar:CreateButton("اجعلها نيون", "", "")
-- ربط دالة بحدث النقر
button.Click:Connect(function()
-- حاول بدء تسجيل مع معرف محدد
local recording = ChangeHistoryService:TryBeginRecording("تعيين الاختيار إلى نيون")
-- تحقق مما إذا كان التسجيل قد بدأ بنجاح
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)رفع الملحقات
بعد الانتهاء من إنشاء ملحق، يمكنك رفعه إلى مخزونك بحيث يكون متاحًا عبر جميع مشاريعك.
لرفع ملحق:
في نافذة المستكشف، حدد نص ملحق.
انتقل إلى قائمة الملحقات في الاستوديو، ثم اختر نشر كملحق.
- اختياريفي الزاوية العلوية اليسرى من نافذة تكوين الأصل، انقر على صورة قطعة اللغز الافتراضية لرفع صورة مصغرة بحجم 512×512 لملحقك.
املأ الحقول التالية:
- الاسم — عنوان لملحقك.
- الوصف — وصف يوضح ما يمكن أن يتوقعه المستخدم المحتمل من الملحق.
- المنشئ — المنشئ أو المجموعة التي تريد أن تُنسب كمنشئ للملحق.
انقر على زر إرسال. ملحقك متاح الآن لك في صندوق الأدوات تحت علامات التبويب المخزون والإنشاءات.
توزيع وبيع الملحقات
يمكنك توزيع وبيع ملحقاتك الخاصة علنًا على متجر المبدعين ليستخدمها الآخرون في تطوير ألعابهم. تتيح لك هذه الطريقة لتحقيق الدخل كسب 100% من العائدات الصافية من المعاملات، متجاوزًا رسوم المنصة ومعدلات DevEx. لمزيد من المعلومات حول هذه العملية، بما في ذلك كيفية إعداد حساب بائع لتحديد الأسعار واستلام المدفوعات، راجع متجر المبدعين - توزيع وبيع الأصول.