MC Toolkit

คู่มือ / การแก้ไขปัญหา

pack.mcmeta: หมายเลข pack_format และคำเตือน "incompatible"

ฟิลด์เดียวที่ผิดทำให้ Minecraft ขึ้นแพ็กของคุณเป็นสีเทา นี่คือรูปแบบที่ 26.x ต้องการ วิธีรองรับทั้งเวอร์ชันเก่าและใหม่ในไฟล์เดียว และตำแหน่งที่ไฟล์ต้องอยู่

เกือบทุกเคส "แพ็กของฉันขึ้นว่า incompatible" เกิดจากฟิลด์เดียวในไฟล์เล็ก ๆ ไฟล์เดียว

ตัวไฟล์

{
  "pack": {
    "min_format": 97,
    "max_format": 97,
    "description": "My pack"
  }
}

นั่นคือ resource pack สำหรับ 26.3 ส่วน data pack สำหรับ 26.3 ใช้ 121 ตั้งแต่ 1.21.9 เป็นต้นมา ฟอร์แมตใดที่เกิน 64 (resource) หรือ 81 (data) ต้องประกาศด้วย min_format และ max_format แพ็กที่ยังเขียน "pack_format": 97 เปล่า ๆ — ซึ่งเป็นสิ่งที่บทสอนส่วนใหญ่และตัวสร้างไฟล์ส่วนใหญ่ยังแสดงอยู่ — จะถูกปฏิเสธและขึ้นว่า incompatible

ไฟล์ต้องมีชื่อว่า pack.mcmeta เป๊ะ ๆ และอยู่ที่ root ของ zip — ข้าง ๆ assets/ หรือ data/ ไม่ใช่ซ้อนอยู่ในโฟลเดอร์ภายใน zip การ zip โฟลเดอร์ที่ครอบอยู่แทนที่จะ zip เนื้อหาข้างใน เป็นความผิดพลาดที่พบบ่อยเป็นอันดับสอง และหน้าตาเหมือนกับกรณีหมายเลขฟอร์แมตผิดทุกประการ

Resource pack กับ data pack ใช้หมายเลขคนละชุด

นี่คือส่วนที่ทำให้คนพลาด: ตัวนับสองตัวนี้แยกออกจากกันตั้งแต่หลายปีก่อนและใช้แทนกันไม่ได้ data pack ที่ใช้หมายเลขของ resource pack จะขึ้นสีเทาแม้ว่าหมายเลขนั้นจะเป็นหมายเลข "ปัจจุบัน" ก็ตาม

แทนที่จะท่องจำตารางที่ล้าสมัยทุกครั้งที่มีรีลีส ให้อ่านหมายเลขจาก vanilla pack ของเวอร์ชันที่คุณต้องการแทน — หรือปล่อยให้ตัวสร้างไฟล์เติมให้

ไฟล์เดียวสำหรับทั้งเวอร์ชันเก่าและใหม่

การล็อกหมายเลขเดียวหมายความว่าแพ็กจะพังในรีลีสถัดไป แต่ช่วงหมายเลขไม่พัง — อย่างไรก็ตาม ช่วงที่ลากไปถึง 26.x ต้องเขียนให้รองรับเกมสองรุ่นพร้อมกัน:

{
  "pack": {
    "pack_format": 46,
    "supported_formats": { "min_inclusive": 46, "max_inclusive": 64 },
    "min_format": 46,
    "max_format": 97,
    "description": "My pack"
  }
}

min_format/max_format คือช่วงที่ 26.x อ่าน ส่วน pack_format และ supported_formats มีไว้สำหรับไคลเอนต์ที่เก่ากว่า 1.21.9 เท่านั้น: supported_formats ต้องจบที่ 64 พอดี (81 สำหรับ data pack) min_format ต้องเท่ากับค่าต่ำสุดของช่วง และ pack_format ต้องอยู่ภายในช่วงนั้น คำแนะนำเก่า ๆ ที่ว่า supported_formats ไปจนถึงเลขมาก ๆ อย่าง 99 ตอนนี้กลายเป็นรูปแบบเดียวที่ 26.x ปฏิเสธ outright สำหรับแพ็กที่แค่เพิ่มเท็กซ์เจอร์หรือสูตรคราฟต์ — ซึ่งคือแพ็กส่วนใหญ่ — ช่วงกว้าง ๆ เป็นคำตอบที่ตรงไปตรงมา เพราะไม่มีอะไรในนั้นพังจริงระหว่างเวอร์ชัน

Description รับ text component

"description": [
  { "text": "My pack ", "color": "gold" },
  { "text": "v2", "color": "gray", "italic": true }
]

โค้ดเครื่องหมายเซกชัน (§6) ก็ยังใช้ได้ แต่รูปแบบ JSON ทนต่อการคัดลอก-วางผ่านเครื่องมือที่ตัดอักขระควบคุมได้ดีกว่า

Overlays สำหรับรองรับหลายเวอร์ชันพร้อมกัน

"overlays": { "entries": [
  { "formats": { "min_inclusive": 42, "max_inclusive": 45 }, "directory": "older" }
] }

โฟลเดอร์ older/ ที่ root ของแพ็กจะถูกใช้เฉพาะกับฟอร์แมตเหล่านั้น นี่คือวิธีที่ดาวน์โหลดเดียวรองรับสองเวอร์ชันที่มีรูปแบบโมเดลต่างกัน แทนที่จะแจกสอง zip

วินิจฉัยเร็ว ๆ

อาการสาเหตุ
ขึ้นสีเทา "made for an older/newer version"หมายเลขฟอร์แมตผิด หรือ (1.21.9 เป็นต้นไป) ไม่มี min_format/max_format
แพ็กไม่ขึ้นในลิสต์เลยpack.mcmeta ไม่ได้อยู่ที่ root ของ zip หรือ JSON ไม่ถูกต้อง
โหลดได้ แต่เท็กซ์เจอร์หายฟอร์แมตแพ็กโอเค แต่ พาธ ของเท็กซ์เจอร์ผิด
ใช้ได้ในโหมดผู้เล่นคนเดียว แต่ไม่ทำงานบนเซิร์ฟเวอร์data pack อยู่ในโฟลเดอร์โลกผิดที่

เครื่องหมายจุลภาคเกินมาทำให้ JSON ไม่ถูกต้อง และทำให้เกิดกรณี "ไม่ขึ้นในลิสต์เลย" ไม่ใช่ข้อความ error

สร้างไฟล์ที่ถูกต้องสำหรับประเภทแพ็กและเวอร์ชันเป้าหมายของคุณ — พร้อม min_format/max_format และฟิลด์แบบเก่าในจุดที่เวอร์ชันเก่าต้องการ — ได้ที่ pack.mcmeta Generator

ตัวสร้าง pack.mcmeta →

คู่มือเพิ่มเติม

ดูทั้งหมด →