Skip to content

Ship pack.mcmeta on Forge and NeoForge - #39

Merged
Rongmario merged 1 commit into
masterfrom
claude/cleancut-multi-version-refactor-3wpdc3
Aug 6, 2026
Merged

Ship pack.mcmeta on Forge and NeoForge#39
Rongmario merged 1 commit into
masterfrom
claude/cleancut-multi-version-refactor-3wpdc3

Conversation

@Rongmario

Copy link
Copy Markdown
Owner

Reported on Forge 1.20.1: the game stops on the loading-error screen rather than starting. Forge turns every mod jar into a resource pack, and ResourcePackLoader.findPacks does this:

var meta = Pack.readPackMetadata(info, supplier, version);
...
if (pack == null)
    ModLoader.get().addWarning(new ModLoadingWarning(modinfo,
        ModLoadingStage.ERROR, "fml.modloading.brokenresources", file));

readPackMetadata returns null when pack.mcmeta is absent, and Forge raises that at ERROR, which is what halts loading. These jars have never carried one, so this affects every Forge and NeoForge jar the build has published, not only 1.20.1 — building a target only ever proved it compiled.

pack_format comes from a table keyed by Minecraft version. The number decides a compatibility warning and nothing else, on a pack the player never sees, since mod packs are merged into the hidden "Mod resources" entry — so versions missing from the table fall back to the newest known value.

Fabric needs none of this and is untouched.

Claude-Session: https://claude.ai/code/session_01S9bDcjZpEBbtCnt8daJigs

Reported on Forge 1.20.1: the game stops on the loading-error screen rather
than starting. Forge turns every mod jar into a resource pack, and
ResourcePackLoader.findPacks does this:

    var meta = Pack.readPackMetadata(info, supplier, version);
    ...
    if (pack == null)
        ModLoader.get().addWarning(new ModLoadingWarning(modinfo,
            ModLoadingStage.ERROR, "fml.modloading.brokenresources", file));

readPackMetadata returns null when pack.mcmeta is absent, and Forge raises
that at ERROR, which is what halts loading. These jars have never carried
one, so this affects every Forge and NeoForge jar the build has published,
not only 1.20.1 — building a target only ever proved it compiled.

pack_format comes from a table keyed by Minecraft version. The number
decides a compatibility warning and nothing else, on a pack the player never
sees, since mod packs are merged into the hidden "Mod resources" entry — so
versions missing from the table fall back to the newest known value.

Fabric needs none of this and is untouched.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01S9bDcjZpEBbtCnt8daJigs
@Rongmario
Rongmario merged commit 4bc26db into master Aug 6, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant