MC Toolkit

가이드 / 문제 해결

mrpack은 자신이 zip이라고 거짓말하는 zip이다

.mrpack의 이름을 .zip으로 바꾸면 매니페스트와 overrides 폴더가 나올 뿐 모드는 나오지 않는다 — jar 파일은 Modrinth의 CDN에 있고 해시로 가져온다.

.mrpack은 ZIP 압축 파일이다. 그래서 이름을 .zip로 바꾸고 압축을 풀면 작동은 한다 — 하지만 쓸모 있는 건 거의 나오지 않는다. modrinth.index.jsonoverrides 폴더만 나오고, 모드는 하나도 없다. jar 파일은 애초에 그 안에 들어 있지 않았다.

모드가 없는 이유

Modrinth 팩은 페이로드가 아니라 매니페스트를 저장한다. modrinth.index.json의 각 항목에는 다운로드 URL과, 그 URL이 반환해야 할 파일의 SHA-1 및 SHA-512 해시가 적혀 있다. 런처는 매니페스트를 읽고, 각 파일을 내려받고, 해시를 검증한 다음에야 인스턴스에 넣는다.

이 설계 덕분에 팩은 작게 유지되고, jar 파일을 전부 다시 업로드하지 않고도 팩을 업데이트할 수 있다. 또한 누군가 한 번이라도 이 과정을 거치기 전까지는 팩이 오프라인에서 무용지물이라는 뜻이기도 하다.

매니페스트에 실제로 들어 있는 것

필드의미
formatVersion매니페스트 스키마 버전
game대상 Minecraft 버전과 로더
filespath, hashes, downloads, env의 배열
dependencies먼저 설치할 로더와 Minecraft 버전

각 파일의 env 필드를 사람들이 놓친다. 이 필드는 파일을 client, server, 또는 둘 다로 표시한다. 클라이언트 전용으로 표시된 모드는 서버의 mods 폴더에 아예 복사해서는 안 된다 — 이렇게 하는 것이 서버가 부팅을 거부하는 흔한 원인이다.

해시 검사는 선택 사항이 아니다

내려받은 파일의 SHA-1이 매니페스트와 일치하지 않으면 그 파일은 잘못된 것이다. 다운로드가 잘렸거나, CDN 오류 페이지가 jar로 저장되었거나, 미러가 변조된 경우다. 검증을 건너뛰는 변환기는 깨진 인스턴스를 아무렇지 않게 만들어낸다. 검증은 이 작업을 아무 리팩이나 믿지 않고 로컬에서 하는 바로 그 이유다.

클라이언트와 서버 출력

같은 매니페스트라도 대상에 따라 서로 다른 두 가지 압축 파일이 나온다.

  • 클라이언트 팩 — 전부에 더해 overrides가 인스턴스 루트에 병합되어, ZIP을 받아들이는 런처에서 바로 쓸 수 있다.
  • 서버 팩env: client 항목은 건너뛰고, env: server와 표시가 없는 항목은 유지하며, overrides에서 클라이언트 전용 설정을 제거한다.

Java Edition 전용이다. Bedrock에는 이에 해당하는 형식이 없다. Bedrock 애드온은 전혀 다른 형태의 manifest.json를 가진 .mcaddon/.mcpack 압축 파일이며, 어떤 Modrinth 팩도 이 형식으로 변환되지 않는다.

overrides는 덮어쓸 뿐, 병합하지 않는다

overrides/ 아래의 파일은 모드가 배치된 뒤 인스턴스 위로 복사된다. overrides에 있는 설정 파일은 모드의 기본값을 통째로 대체한다. 팩이 overrides에 설정을 담아 제공하고 당신이 인스턴스에서 그 설정을 따로 수정하더라도, 다음번 변환 시에는 overrides의 사본이 이긴다.

매니페스트를 변환하고, 모든 해시를 검증하고, MRPACK to ZIP Converter에서 런처용 또는 서버용 ZIP을 받아라.

.mrpack ZIP 변환기 →

더 많은 가이드

모두 보기 →

다른 마인크래프트 도구도 찾고 계신가요?

브라우저에서 바로 쓰는 생성기·뷰어·변환기 모음입니다. 전부 무료입니다.