.mrpackにはMod自体がほとんど含まれていません

ファイル自体はZIPですが、jarは内部に含まれていません。SHA-512ハッシュ付きのダウンロードURLのマニフェストを含んでいるため、40 KBのパックで400メガバイトをインストールできる一方、オフラインでは失敗します。
任意を名前変更 .mrpack to .zip, open it, and the surprise is how
little is there. A pack with two hundred mods is often under 100 KB. The mods are not
missing — they were never included.
実際の内部構造
| エントリ | 必須 | 内容 |
|---|---|---|
modrinth.index.json | はい | マニフェスト:全ファイルとその パス、サイズ、ハッシュ、ダウンロードURL |
overrides/ | いいえ | そのままコピーされる実ファイル — config、 スクリプト、リソースパック |
client-overrides/, server-overrides/ | いいえ | 同じ仕組みで、その側のみに適用 |
マニフェストに含まれるもの: formatVersion, a dependencies map
naming the loader and Minecraft version, and a files array. Each file entry
holds the destination path, a fileSize, a hashes
object with sha1 and sha512, an env block marking it
required or optional per side, and one or more downloads URLs.
このような構造になっている理由
再配布の問題です。パックの作者がリスト内の全Modを再ホストする許可を得ていることはほぼありませんが、作者自身のファイルを参照することは常に可能です。jarではなくURLを含めることで、パックを合法的に共有でき、チャットで送信できるほど軽量に保てます。
ハッシュ値がもう一方の要です。URLは明日には別のファイルを配信する可能性がありますが、 SHA-512は変わりません。ダウンロード後にハッシュを検証するランチャーは、 受信したファイルがパック作者がテストしたものとバイト単位で一致しているかを確認しています。
失敗する3つのパターン
- ネットワークがなければ、パックも利用不可。 ある
.mrpackis an installer, not an archive. Offline it produces a folder of configs and nothing else. - リンク切れのURLは致命的で、スキップできません。 Modが公開停止になった場合、エントリは 404エラーとなり、必須指定されたファイルでインストールが停止します。
- サーバー専用およびクライアント専用ファイル。 展開したクライアントインスタンスをサーバーに
コピーすると、読み込みを拒否するクライアント側Modを持ち込むことになります —
envflags exist precisely to keep those apart.
通常のフォルダーに変換する
変換とはランチャーと同じ処理を行うことです。マニフェストを読み取り、各ファイルを指定された path, verify each hash, then lay the overrides on top.
What comes out is an ordinary mods/ tree you can drop into any launcher or
upload to a host that has never heard of Modrinth.
手動で行う際に留意すべき2つの点があります。次の点を尊重してください: env flags
so a server build does not inherit client mods. And check the hash rather than the file
size — a truncated download and a redirected HTML error page can both land at a plausible
size, and only the hash catches them.