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