Bedrock Add-On ليس نسخة مصغرة من Java mod. أنت تعمل غالبًا مع مجلدات وملفات JSON تصف الموارد والسلوك، ويمكنك إضافة Script API عندما تحتاج منطقًا أوسع. هذا الدليل يشرح الأساس الذي يجعل الحزمة تُستورد وتظهر في العالم، ثم يبيّن كيف تنتقل من مثال بسيط إلى مشروع منظم.
ما الفرق بين Resource Pack وBehavior Pack؟
تشرح Microsoft أن Behavior Pack يحتوي ملفات تقود سلوك الكيانات، loot drops، spawn rules، items، recipes، وtrade tables، بينما Resource Pack يهتم بالمظهر والملفات المرئية [1]. يمكن ربط الحزمتين عبر dependencies في manifest، لكن لا تضع كل شيء في مجلد واحد بلا تخطيط.
| الحزمة | تتعامل مع | مثال |
|---|---|---|
| Resource Pack | textures وsounds وmodels | تغيير شكل cow |
| Behavior Pack | سلوك وrecipes وloot | جعل cow يهاجم |
| Script module | منطق JavaScript المدعوم | تفاعل أو حدث مخصص |
1. جهّز مجلدات التطوير
توضح صفحة Microsoft Getting Started أن Minecraft تنشئ مجلد com.mojang، وأن مجلدي التطوير development_behavior_packs وdevelopment_resource_packs مناسبان للتعديل والاختبار لأن اللعبة تحدّث محتواهما عند التشغيل [1]. ضع نسخة احتياطية من عوالمك قبل تجربة ملفات جديدة.
2. manifest.json هو بطاقة الهوية
الـmanifest يخبر Minecraft باسم الحزمة ووصفها وإصدارها ووحداتها واعتمادياتها. توثيق Microsoft يوضح أن format_version يحدد صيغة الملف، وأن header يحتوي بيانات عامة، وأن modules تعرّف نوع المحتوى، وأن كل UUID يجب أن يكون فريدًا [2].
{
"format_version": 2,
"header": {
"name": "Ignis Behavior Pack",
"description": "A small learning behavior pack",
"uuid": "11111111-2222-4333-8444-555555555555",
"version": [1, 0, 0],
"min_engine_version": [1, 21, 0]
},
"modules": [
{
"type": "data",
"uuid": "aaaaaaaa-bbbb-4ccc-8ddd-eeeeeeeeeeee",
"version": [1, 0, 0]
}
]
}الأرقام السابقة مثال تعليمي وليست UUID يجب نسخه في مشروعك. أنشئ UUIDs جديدة لكل pack ولكل module. عند تحديث الحزمة ارفع version بطريقة مفهومة؛ Microsoft تذكر أن الإصدار يساعد اللعبة على معرفة هل تستبدل نسخة مستوردة أم تتجاهلها [2].
3. ابدأ بسلوك واحد
صفحة Microsoft الخاصة بـBehavior Packs تستخدم مثال جعل البقرة عدوانية، وتوضح أن المشروع يحتوي ملف كيان ومكونات سلوك ثم يُختبر في عالم [3]. لا تبدأ بإضافة عشر كيانات. انسخ الفكرة على كيان واحد، ثم تحقق من أن الحزمة تظهر في إعدادات العالم.
ضع ملف الكيان في مجلد يتوافق مع namespace، واستخدم بنية JSON الصحيحة للإصدار. إذا فشل الاستيراد، افتح content logs بدل تعديل عدة أسطر عشوائية.
4. اربط Resource Pack
إذا كانت حزمة السلوك تعتمد على موارد مرئية، أضف dependency بالـUUID الصحيح لحزمة الموارد. dependency ليست اسمًا حرًا؛ يجب أن تطابق UUID الموجود في header للحزمة الأخرى. هذا أحد أسباب ظهور السلوك بلا texture أو عدم تحميل الحزمة.
5. Script API عند الحاجة
إذا احتجت منطقًا لا يكفيه JSON، راجع Script API Reference الرسمية، وتأكد هل الواجهة stable أم experimental. لا تفعل experimental features في عالم اللاعب الأساسي بلا نسخة احتياطية. اجعل الكود صغيرًا، وتحقق من الأحداث والـdimension والكيان قبل استخدامه.
6. الاختبار على Windows والمنصات الأخرى
تشرح Microsoft طريقة استيراد .mcworld و.mcpack على منصات متعددة، وتوضح أن فتح الملف يطلق الاستيراد داخل Minecraft [1]. أثناء التطوير، الأفضل استخدام development folders، ثم تصدير نسخة نظيفة للاختبار خارج بيئة التطوير. هذا يكشف الملفات التي تعتمد بالخطأ على مسار محلي.
أكثر أخطاء Bedrock شيوعًا
| الخطأ | ما يراه اللاعب | التشخيص |
|---|---|---|
| UUID مكرر | الحزمة لا تتحدث أو تتصرف غريبًا | ولّد UUID جديدًا وفريدًا |
| dependency خاطئة | المظهر أو السلوك ناقص | طابق UUID حرفيًا |
| min_engine_version غير مناسب | تحذير أو عدم تحميل | استهدف إصدارًا مدعومًا |
| JSON غير صالح | لا يظهر المحتوى | راجع content logs |
| ملف في مجلد خاطئ | جزء من الحزمة غائب | قارن بنية الحزمة الرسمية |
7. تنظيم مشروع قابل للتوسع
استخدم مجلدًا لكل pack، ومجلدًا واضحًا للكيانات والعناصر والوصفات، وREADME يشرح namespace والإصدار. لا تسمِّ كل الملفات test.json. الاسم الجيد يربط الملف بكيان أو ميزة، ويسهّل البحث عند ظهور log.
احفظ نسخة من worlds قبل أي تجربة، ودوّن الإصدار المستهدف في README. التوثيق الرسمي نفسه يحتوي صفحات stable وexperimental، لذلك يجب أن يعرف القارئ أي مسار اتبعته.
من Add-On تعليمي إلى مشروع حقيقي
- اختر ميزة واحدة.
- أنشئ pack وmanifest جديدين.
- اختبر الاستيراد على عالم مسطح.
- أضف behavior واحدًا.
- اربط resource pack إذا احتجت.
- شغّل content logs واصلح التحذيرات.
- صدّر نسخة نظيفة مع رقم إصدار.
9. صمّم namespace وعملية تحديث
اختر namespace قصيرًا وفريدًا، واستخدمه في أسماء الكيانات والموارد والـcommands. عند إصدار تحديث، ارفع version في manifest، وسجّل ما إذا كان اللاعب يحتاج إعادة تفعيل الحزمة في عالم قديم. لا تغيّر UUID للحزمة نفسها بلا سبب؛ هذا قد يجعل اللعبة تراها كحزمة جديدة بدل تحديث.
10. أنشئ حزمة دعم للاعب
أرفق README يشرح النسخة المستهدفة، مكان التثبيت، طريقة تفعيل Behavior وResource Packs، وما إذا كانت experiments مطلوبة. ضع صورًا من شاشة الإعدادات، واذكر أين يجد اللاعب content logs. الدعم الواضح يقلل رسائل “لا تعمل” ويكشف لك المشكلة الحقيقية.
اختبر pack في عالم مسطح ثم في عالم فيه تضاريس وكيانات أخرى. لا تجعل عالم اللاعب الأساسي مختبرًا للإصدارات التجريبية.
مراجع موثوقة
راجِع هذه الصفحات الرسمية عند اختلاف الإصدار أو تغيّر أسماء الملفات؛ توثيق اللعبة والمنصة يتغير مع الزمن.