An mrpack là một file zip nói dối rằng nó là zip
Đổi tên .mrpack thành .zip sẽ cho bạn một manifest và thư mục overrides, không phải các mod — các file jar nằm trên CDN của Modrinth và được tải về bằng hash.
Một .mrpack là một file lưu trữ ZIP, nên đổi tên nó thành .zip rồi giải nén vẫn hoạt động — và gần như chẳng thu được gì hữu ích. Bạn nhận được một modrinth.index.json, một thư mục overrides, và không có mod nào cả. Các file jar chưa bao giờ nằm trong đó.
Tại sao các mod lại mất tích
Các pack của Modrinth lưu một manifest, không phải dữ liệu thực. Mỗi mục trong modrinth.index.json liệt kê một URL tải xuống kèm hash SHA-1 và SHA-512 cho file mà URL đó phải trả về. Trình khởi chạy đọc manifest, tải từng file, xác minh hash, rồi mới thả nó vào instance.
Thiết kế đó giữ cho pack nhỏ gọn và cho phép cập nhật pack mà không cần tải lại từng file jar. Nó cũng có nghĩa là một pack vô dụng khi ngoại tuyến cho đến khi ai đó đã phân giải nó một lần.
Manifest thực sự chứa gì
| Trường | Ý nghĩa |
|---|---|
formatVersion | Phiên bản schema của manifest |
game | Phiên bản Minecraft đích và loader |
files | Mảng gồm path, hashes, downloads, env |
dependencies | Phiên bản loader và Minecraft cần cài trước |
Trường env trên mỗi file là thứ mọi người hay bỏ qua. Nó đánh dấu một file là client, server, hoặc cả hai. Một mod được đánh dấu chỉ dành cho client thì không nên được sao chép vào thư mục mods của server chút nào — làm vậy là nguyên nhân phổ biến khiến server từ chối khởi động.
Kiểm tra hash không phải là tùy chọn
Nếu SHA-1 của file tải về không khớp với manifest, file đó sai: tải xuống bị cắt ngắn, một trang lỗi CDN được lưu thành jar, hoặc một mirror bị can thiệp. Một công cụ chuyển đổi bỏ qua bước xác minh sẽ vui vẻ đóng gói một instance hỏng. Xác minh chính là toàn bộ lý do để làm việc này cục bộ thay vì tin tưởng một bản repack ngẫu nhiên.
Đầu ra cho client so với server
Cùng một manifest tạo ra hai file lưu trữ khác nhau tùy theo đích:
- Pack cho client — mọi thứ, cộng với
overridesđược hợp nhất tại thư mục gốc của instance, sẵn sàng cho trình khởi chạy chấp nhận ZIP. - Pack cho server — bỏ qua các mục
env: client, giữ lạienv: servervà những mục không được đánh dấu, và loại bỏ config chỉ dành cho client khỏi overrides.
Chỉ dành cho Java Edition. Bedrock không có định dạng tương đương; add-on của Bedrock là các file lưu trữ .mcaddon/.mcpack với một manifest.json có hình dạng hoàn toàn khác, và không có pack Modrinth nào phân giải thành chúng.
Overrides ghi đè, chúng không hợp nhất
Các file trong overrides/ được sao chép đè lên instance sau khi mod được đặt vào. Một file config trong overrides thay thế hoàn toàn config mặc định của mod. Nếu một pack cung cấp config trong overrides và bạn cũng chỉnh sửa config đó trong instance, bản sao trong overrides sẽ thắng ở lần phân giải tiếp theo.
Hãy chuyển đổi một manifest, xác minh mọi hash, và nhận một ZIP sẵn sàng cho trình khởi chạy hoặc server tại MRPACK to ZIP Converter.