MC Toolkit

Hướng dẫn / Khắc phục sự cố

pack.mcmeta: số pack_format và cảnh báo "không tương thích"

Chỉ một trường sai là Minecraft sẽ làm mờ gói của bạn. Đây là cấu trúc mà 26.x yêu cầu, cách bao quát cả phiên bản cũ lẫn mới trong một tệp, và vị trí bắt buộc của tệp.

Gần như mọi trường hợp "gói của tôi hiện là không tương thích" đều chỉ do một trường trong một tệp nhỏ.

Tệp

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

Đó là gói tài nguyên 26.3; gói dữ liệu 26.3 dùng 121. Kể từ 1.21.9, mọi định dạng vượt quá 64 (tài nguyên) hoặc 81 (dữ liệu) đều phải được khai báo bằng min_format và max_format. Một gói vẫn ghi trần trụi "pack_format": 97 — thứ mà hầu hết hướng dẫn, và hầu hết công cụ tạo, vẫn hiển thị — sẽ bị từ chối và hiện là không tương thích.

Tệp phải có tên chính xác là pack.mcmeta và nằm ở thư mục gốc của tệp zip — cạnh assets/ hoặc data/, chứ không phải bên trong một thư mục nằm trong tệp zip. Nén cả thư mục chứa thay vì nén nội dung bên trong là lỗi phổ biến thứ hai, và nó trông y hệt như sai số định dạng.

Gói tài nguyên và gói dữ liệu dùng số khác nhau

Đây là phần khiến nhiều người mắc: hai bộ đếm này đã tách nhau từ nhiều năm trước và không thể dùng thay thế cho nhau. Một gói dữ liệu dùng số của gói tài nguyên sẽ bị làm mờ dù số đó "đang là số hiện hành".

Thay vì học thuộc một bảng cứ mỗi bản phát hành lại lỗi thời, hãy đọc số từ một gói vanilla của phiên bản bạn nhắm tới — hoặc để công cụ tạo điền giúp.

Một tệp cho cả phiên bản cũ lẫn mới

Ghim một con số duy nhất nghĩa là gói sẽ hỏng ở bản phát hành kế tiếp. Một khoảng thì không — nhưng một khoảng vươn tới 26.x phải được viết cho hai thế hệ game cùng lúc:

{
  "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 là khoảng mà 26.x đọc. pack_format và supported_formats chỉ có mặt cho các client cũ hơn 1.21.9: supported_formats phải kết thúc đúng tại 64 (81 với gói dữ liệu), min_format phải bằng đầu dưới của nó, và pack_format phải nằm trong khoảng đó. Lời khuyên cũ — supported_formats lên tới một số lớn nào đó như 99 — giờ chính là dạng mà 26.x từ chối thẳng. Với một gói chỉ thêm texture hoặc công thức — tức hầu hết các gói — một khoảng rộng là trung thực, vì không có gì trong đó thực sự hỏng giữa các phiên bản.

Phần mô tả nhận text component

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

Mã dấu phân đoạn (§6) vẫn hoạt động, nhưng dạng JSON sống sót qua việc sao chép-dán bằng các công cụ loại bỏ ký tự điều khiển.

Overlay, để hỗ trợ nhiều phiên bản cùng lúc

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

Thư mục older/ ở gốc gói chỉ được dùng cho những định dạng đó. Đây là cách một lượt tải duy nhất hỗ trợ hai phiên bản với định dạng model khác nhau, thay vì phát hành hai tệp zip.

Chẩn đoán nhanh

Triệu chứngNguyên nhân
Bị làm mờ, "được làm cho phiên bản cũ hơn/mới hơn"sai số định dạng, hoặc (1.21.9 trở lên) thiếu min_format/max_format
Gói hoàn toàn không được liệt kêpack.mcmeta không nằm ở gốc tệp zip, hoặc JSON không hợp lệ
Tải được, nhưng thiếu textuređịnh dạng gói ổn; đường dẫn texture sai
Chạy được ở chế độ một người chơi, không chạy trên máy chủgói dữ liệu nằm sai thư mục thế giới

Dấu phẩy thừa là JSON không hợp lệ và tạo ra trường hợp "hoàn toàn không được liệt kê", chứ không phải thông báo lỗi.

Hãy tạo một tệp hợp lệ cho loại gói và phiên bản mục tiêu của bạn — với min_format/max_format, và các trường legacy ở những nơi phiên bản cũ cần đến — bằng pack.mcmeta Generator.

Trình tạo pack.mcmeta →

Hướng dẫn khác

Xem tất cả →