แอดออน Bedrock เป็นไฟล์ zip และ manifest คือสาเหตุที่มันโหลดไม่ผ่าน
การนำเข้า .mcaddon ที่ถูกปฏิเสธส่วนใหญ่เกิดจากไฟล์ zip ที่ถูกต้องแต่มีหัวไฟล์ผิดหนึ่งบรรทัด และข้อความแสดงข้อผิดพลาดไม่เคยบอกชื่อฟิลด์ที่ทำให้พัง
.mcaddon คือไฟล์ zip ที่เปลี่ยนนามสกุล และตัวเกมปฏิเสธมันด้วยเหตุผลที่ไม่เกี่ยวกับ zip เลย ต้นเหตุที่พบบ่อยคือ manifest.json — ไฟล์เล็ก ๆ ที่มีหัวไฟล์ซึ่ง UUID สองตัวต้องไม่ซ้ำกัน และ format_version ไม่ใช่เวอร์ชันเกมที่คุณต้องการ
UUID สองตัว ห้ามซ้ำกันเด็ดขาด
manifest หนึ่งไฟล์มี header และอาร์เรย์ modules แต่ละอันต้องมี uuid ของตัวเอง และการนำตัวเดียวกันมาใช้ทั้งสองที่คือสาเหตุการถูกปฏิเสธที่พบบ่อยที่สุด:
{
"format_version": 2,
"header": {
"name": "My Pack",
"description": "Example",
"uuid": "aaaaaaaa-0000-0000-0000-000000000000",
"version": [1, 0, 0],
"min_engine_version": [1, 21, 0]
},
"modules": [
{
"type": "data",
"uuid": "bbbbbbbb-0000-0000-0000-000000000001",
"version": [1, 0, 0]
}
]
}
UUID คือค่าขนาด 128 บิต เขียนเป็นเลขฐานสิบหก 32 หลัก แบ่งเป็นห้ากลุ่มคั่นด้วยขีด ตัวสร้างแบบไหนก็ใช้ได้ แต่ตัวซ้ำใช้ไม่ได้ version และ min_engine_version เป็นอาร์เรย์จำนวนเต็มสามตัว ไม่ใช่สตริง — "1.0.0" จะล้มเหลวแบบเงียบ ๆ ในบางบิลด์
Java ไม่มี manifest เลย
นี่คือจุดแบ่งที่ทำให้คนที่ย้ายไปมาระหว่างสองฉบับสับสน Java resource pack มาพร้อม pack.mcmeta ที่มี pack_format เป็นจำนวนเต็ม ส่วน Bedrock มาพร้อม manifest.json ที่มี UUID และรายการโมดูล ไม่มีไฟล์ใดถูกอ่านโดยอีกฉบับหนึ่ง และแพ็กไม่สามารถพอร์ตได้เพียงแค่เปลี่ยนชื่อไฟล์
ตรวจสอบก่อนนำเข้า
แตกไฟล์ zip แล้วดูที่ระดับบนสุด แพ็กที่ซ้อนอยู่ลึกหนึ่งโฟลเดอร์ — MyPack/manifest.json แทนที่จะเป็น manifest.json — จะนำเข้าไม่ได้เลยโดยไม่มีข้อผิดพลาด manifest ต้องวางอยู่ข้างเนื้อหา textures/ หรือ behavior_packs/ ที่มันอธิบาย
บล็อกโมเดลเป็นรูปแบบแยกต่างหาก
บล็อกโมเดล JSON ของ Java ไม่ใช่ไฟล์ geometry ของ Bedrock และทั้งสองใช้แทนกันไม่ได้:
| บล็อกโมเดล Java | geometry ของ Bedrock | |
|---|---|---|
| คีย์ราก | elements | minecraft:geometry |
| พิกัด | 0–16 ต่อบล็อก | 0–16 ต่อบล็อก |
| เท็กซ์เจอร์ | แมป textures | แมป materials |
ทั้งสองแสดงตารางลูกบาศก์ขนาด 16 หน่วยต่อบล็อก ซึ่งเป็นเหตุผลว่าทำไมโมเดลที่สร้างขึ้นจึงดูถูกต้องในฉบับหนึ่งแต่กลับนำเข้าเป็นรูปทรงว่างเปล่าในอีกฉบับ
ชื่อใน registry ใช้แทนกันไม่ได้
Bedrock และ Java ใช้ตัวระบุไม่ตรงกันสำหรับเนื้อหาเดียวกัน แพ็กที่อ้างอิงชื่อแบบ Java สำหรับ enchantment, effect หรือ biome จะโหลดได้แต่ทำงานเงียบ ๆ ไม่มีอะไรเกิดขึ้น เพราะชื่อนั้นไม่ตรงกับรายการใด ๆ registry เองก็มีขนาดต่างกันระหว่างสองฉบับ ดังนั้นแพ็กที่เขียนขึ้นจากรายการของฉบับหนึ่งจึงไม่อาจถือว่าครบถ้วนในอีกฉบับได้
ตรวจสอบ manifest ตรวจดูโครงสร้างไฟล์ zip และสร้างบล็อกโมเดลได้ที่ Bedrock & Pack Tools