इस गाइड में आप एक खाली ऐड-ऑन बनाएँगे जिसे Minecraft पहचानता है। अभी यह कुछ नहीं जोड़ेगा, लेकिन आगे आप जो भी आइटम, ब्लॉक और मॉब बनाएँगे, उन सबकी नींव यही है। इसमें करीब दस मिनट लगते हैं।
फ़ोल्डर लेआउट
कहीं भी एक project फ़ोल्डर बनाएँ, जैसे अपने desktop पर। उसके अंदर दो फ़ोल्डर बनाएँ: एक बिहेवियर पैक के लिए और एक रिसोर्स पैक के लिए।
my_first_addon/
BP/
manifest.json
pack_icon.png
items/
RP/
manifest.json
pack_icon.png
textures/
texts/BP और RP नाम बस एक आदत है जो ज़्यादातर creators अपनाते हैं। Minecraft को बाहरी फ़ोल्डरों के नाम से कोई फ़र्क नहीं पड़ता। उसे सिर्फ़ इस बात से मतलब है कि उनके अंदर क्या है, और सबसे ज़रूरी फ़ाइल है manifest.json।
Manifest क्या करता है
हर पैक के सबसे ऊपरी फ़ोल्डर में एक manifest.json होना ज़रूरी है। यह Minecraft को बताता है:
- पैक का नाम और विवरण
- एक unique ID (UUID), ताकि गेम पैक्स को अलग-अलग पहचान सके
- पैक का version
- यह किस तरह का पैक है (behavior या resource)
- इसे किन दूसरे पैक्स की ज़रूरत है
अगर manifest नहीं है या टूटा हुआ है, तो Minecraft पैक को दिखाएगा ही नहीं।
UUIDs
UUID एक लंबी random ID होती है जो कुछ ऐसी दिखती है: 7da910dc-081d-41d2-84e6-fcd9e04cbffb। हर पैक को अपने खुद के UUIDs चाहिए, और दुनिया में कोई भी दो पैक कभी एक ही UUID शेयर नहीं करने चाहिए।
BP + RP वाले ऐड-ऑन के लिए आपको चार UUIDs चाहिए:
- बिहेवियर पैक header
- बिहेवियर पैक module
- रिसोर्स पैक header
- रिसोर्स पैक module
इन्हें पाने के लिए अपने browser में "UUID generator" सर्च करें और चार नए UUIDs कॉपी कर लें। VS Code में Bedrock के extensions भी इन्हें बना सकते हैं।
किसी tutorial से कभी UUIDs कॉपी न करें
इस पेज पर दिए UUIDs सिर्फ़ उदाहरण हैं। अगर आपने इन्हें कॉपी किया और किसी और ने भी किया, तो आपके पैक आपस में टकराएँगे और उनमें से एक लोड नहीं होगा। हमेशा अपने खुद के UUIDs बनाएँ।
बिहेवियर पैक का manifest
BP/manifest.json बनाएँ और इसमें यह पेस्ट करें, फिर UUIDs को अपने UUIDs से बदल दें:
{
"format_version": 2,
"header": {
"name": "My First Add-on",
"description": "My very first behavior pack",
"uuid": "7da910dc-081d-41d2-84e6-fcd9e04cbffb",
"version": [1, 0, 0],
"min_engine_version": [1, 26, 50]
},
"modules": [
{
"type": "data",
"uuid": "92b4a8c1-cbc4-4b82-85bd-e36e922d0621",
"version": [1, 0, 0]
}
],
"dependencies": [
{
"uuid": "f67430fa-ef89-4f40-802d-9574599c764d",
"version": [1, 0, 0]
}
]
}रिसोर्स पैक का manifest
RP/manifest.json बनाएँ। ध्यान दें कि module का type अलग है, और इसका header UUID बिहेवियर पैक की dependencies वाले UUID से मेल खाता है:
{
"format_version": 2,
"header": {
"name": "My First Add-on",
"description": "My very first resource pack",
"uuid": "f67430fa-ef89-4f40-802d-9574599c764d",
"version": [1, 0, 0],
"min_engine_version": [1, 26, 50]
},
"modules": [
{
"type": "resources",
"uuid": "654e78d1-0b0d-4f13-9a3b-6336f0ceab13",
"version": [1, 0, 0]
}
]
}हर field की जानकारी
format_version
यह खुद manifest फ़ॉर्मेट का version है। 2 इस्तेमाल करें, यही Mojang के अपने vanilla पैक्स इस्तेमाल करते हैं। यह एक सादा नंबर है, quotes में लिखा टेक्स्ट नहीं।
नोट
एक नया manifest format_version 3 भी है, जिसमें versions arrays की जगह "1.0.0" जैसे टेक्स्ट में लिखे जाते हैं। Version 2 अब भी पूरी तरह supported है और यह wiki उसी का इस्तेमाल करती है।
header
पूरे पैक के बारे में जानकारी।
name: गेम में पैक की लिस्ट में दिखता है।description: नाम के नीचे दिखने वाला छोटा टेक्स्ट।uuid: पैक की unique ID।version: तीन नंबर: major, minor, patch। जब आप कोई update रिलीज़ करें तो इसे बढ़ाएँ, जैसे[1, 0, 0]से[1, 0, 1]। इसी से Minecraft जानता है कि पैक नया है।min_engine_version: Minecraft का वह सबसे पुराना version जिसके लिए आपका पैक लिखा गया है। इससे यह भी तय होता है कि गेम आपकी कुछ फ़ाइलों को कैसे पढ़ेगा, इसलिए इसे उसी version पर सेट करें जिस पर आप टेस्ट कर रहे हैं, जैसे[1, 26, 50]।
modules
पैक के अंदर क्या है। एक पैक में कम से कम एक module होना चाहिए, और हर module का अपना UUID होता है।
| Module type | कहाँ इस्तेमाल होता है | इसमें क्या होता है |
|---|---|---|
data | बिहेवियर पैक | आइटम, ब्लॉक, entities, रेसिपी, loot tables, functions |
resources | रिसोर्स पैक | Textures, मॉडल, साउंड, texts |
script | बिहेवियर पैक | Script API इस्तेमाल करने वाली JavaScript फ़ाइलें |
dependencies
उन दूसरे पैक्स की लिस्ट जिनकी इस पैक को ज़रूरत है। हर entry में दूसरे पैक के header का uuid और version होता है।
यहाँ बिहेवियर पैक, रिसोर्स पैक पर निर्भर है। इस जुड़ाव का एक अच्छा फ़ायदा है: जब आप किसी world में बिहेवियर पैक चालू करते हैं, तो Minecraft आपके लिए रिसोर्स पैक भी चालू कर देता है। इसके बिना प्लेयर सिर्फ़ BP चालू कर सकते हैं और उन्हें बिना texture वाले आइटम दिखेंगे।
टिप
Dependency को RP के header UUID की ओर इशारा करना चाहिए, उसके module UUID की ओर नहीं। यह शुरुआती लोगों की सबसे आम गलतियों में से एक है।
पैक icons
हर पैक फ़ोल्डर के सबसे ऊपर, manifest के बगल में, एक pack_icon.png रखें। यही तस्वीर पैक की लिस्ट में दिखती है।
- इसे चौकोर बनाएँ। 128x128 या 256x256 pixels, दोनों अच्छे लगते हैं।
- इसे PNG में सेव करें।
- दोनों पैक्स के लिए एक ही तस्वीर इस्तेमाल कर सकते हैं।
अगर icon नहीं है, तो भी पैक काम करता है, लेकिन उसकी जगह एक खाली placeholder तस्वीर दिखती है।
एक language फ़ाइल जोड़ें
गेम में दिखने वाले नाम रिसोर्स पैक की language फ़ाइलों से आते हैं। ये दो फ़ाइलें अभी बना लें ताकि आगे की गाइड्स के लिए तैयार रहें:
["en_US"]pack.name=My First Add-on
pack.description=My very first add-onबाद में आप यहाँ item.demo:ruby.name=Ruby जैसी लाइनें जोड़ेंगे।
टेस्ट करें कि यह लोड होता है
BPफ़ोल्डर कोcom.mojang/development_behavior_packsमें कॉपी करें।RPफ़ोल्डर कोcom.mojang/development_resource_packsमें कॉपी करें।- Minecraft खोलें और एक नया world बनाएँ।
- World settings में Behavior Packs खोलें और Available के नीचे देखें। आपका पैक अपने icon के साथ वहाँ होना चाहिए।
- उसे चालू करें। Dependency की वजह से रिसोर्स पैक अपने-आप चालू हो जाना चाहिए।
अगर पैक नहीं दिखता, तो जब कुछ टूट जाए देखें। सबसे संभावित वजह manifest में कोई typo है, इसलिए आगे 5 मिनट में JSON पढ़ें।
आसान तरीका
Manifests लिखना और UUIDs हाथ से बनाना हर project में एक बार का काम है, लेकिन यहीं छोटे-छोटे typos सब कुछ बिगाड़ देते हैं। GodCraft यह हिस्सा आपके लिए करता है: Workshop में आप जो भी ऐड-ऑन बनाते हैं, उसे अपने नए UUIDs, दोनों manifests और दोनों पैक्स के बीच dependency link मिल जाता है। आपको बस पैक settings में अपनी पसंद की details भरनी होती हैं।
अगले कदम
आपका खाली ऐड-ऑन काम कर रहा है। अब इसे कुछ करने को दें:
- आपका पहला custom आइटम
- Custom ब्लॉक
- Export करें और खेलें, दोस्तों के साथ शेयर करने के लिए