แอดออน Bedrock เป็นไฟล์ zip และ manifest คือสาเหตุที่มันโหลดไม่ผ่าน
การนำเข้า .mcaddon ที่ถูกปฏิเสธส่วนใหญ่เกิดจากไฟล์ zip ที่ถูกต้องแต่มีหัวข้อผิดเพียงบรรทัดเดียว และข้อความแสดงข้อผิดพลาดก็ไม่เคยบอกชื่อฟิลด์ที่ทำให้พัง
.mcaddon คือไฟล์ zip ที่เปลี่ยนนามสกุล และตัวเกมปฏิเสธมันด้วยเหตุผลที่ไม่เกี่ยวกับตัว zip เลย ตัวการที่พบบ่อยคือ manifest.json — ไฟล์เล็ก ๆ ที่มี UUID ของ header และ UUID ของ module ซึ่งต้องไม่ซ้ำกัน และ 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 เลย
นี่คือจุดแตกต่างที่ทำให้คนที่ย้ายไปมาระหว่างสอง editions สับสน resource pack ของ Java มาพร้อม pack.mcmeta ที่ประกาศรูปแบบที่รองรับ (min_format และ max_format ในเวอร์ชันปัจจุบัน) ส่วน Bedrock มาพร้อม manifest.json ที่มี UUID และรายการ module ไม่มีไฟล์ใดถูกอ่านโดยอีก edition หนึ่ง และไม่สามารถพอร์ตแพ็กได้ด้วยการเปลี่ยนชื่อไฟล์เก็บข้อมูล
ตรวจสอบก่อนนำเข้า
แตกไฟล์เก็บข้อมูลออกมาแล้วดูที่ระดับบนสุด แพ็กที่ซ้อนอยู่ในโฟลเดอร์อีกชั้น — MyPack/manifest.json แทนที่จะเป็น manifest.json — จะนำเข้าไม่ได้เลยโดยไม่มีข้อผิดพลาด manifest ต้องอยู่ที่รากของแต่ละแพ็ก ข้าง ๆ โฟลเดอร์ที่มันอธิบาย
บล็อกโมเดลเป็นรูปแบบแยกต่างหาก
บล็อกโมเดล JSON ของ Java ไม่ใช่ไฟล์ geometry ของ Bedrock และทั้งสองใช้แทนกันไม่ได้ โมเดล Java มักเป็นแค่ parent บวกกับแผนที่ textures — รายการ elements ของ cuboid จำเป็นเฉพาะ เมื่อต้องการรูปร่างแบบกำหนดเอง — ส่วน Bedrock อธิบายรูปร่างในรูปแบบ minecraft:geometry ของตัวเอง ทั้งสองวัดที่ 16 หน่วยต่อหนึ่งบล็อก ซึ่งเป็นเหตุผลว่าทำไมโมเดลถึงดูถูกต้องใน edition หนึ่งแต่ นำเข้าไม่ได้เลยในอีก edition หนึ่ง
ชื่อใน registry ใช้แทนกันไม่ได้
Bedrock และ Java ใช้ตัวระบุไม่ตรงกันสำหรับเนื้อหาเดียวกัน แพ็กที่อ้างอิงชื่อของ Java สำหรับ enchantment, effect หรือ biome จะโหลดได้แต่จะไม่ทำอะไรเลย เพราะชื่อนั้นไม่ตรงกับรายการใด ๆ ตัว registry เองก็มีขนาดต่างกันระหว่าง editions ดังนั้นแพ็กที่เขียนขึ้นจากรายการของ edition หนึ่งจึงไม่อาจถือว่าครบถ้วนในอีก edition หนึ่งได้
ตรวจสอบ manifest ตรวจดูโครงสร้างไฟล์เก็บข้อมูล และสร้างบล็อกโมเดลได้ที่ Bedrock & Pack Tools