Minecraft Forge 1.12.2 mcmod.info文件未注册问题求助
解决1.12.2 Forge Mod mcmod.info无法注册的问题
你遇到的情况很典型——Mod能正常运行,但mcmod.info的信息就是不被识别,系统还提示找不到文件。咱们从几个容易忽略的点逐一排查:
1. 先确认文件的「位置和命名」绝对正确
- 务必把
mcmod.info放在项目的resources根目录下,不能丢到任何子文件夹里(比如assets或者config文件夹),Forge只会默认扫描resources根目录找这个文件。 - 检查文件名:必须是全小写的
mcmod.info,不能有拼写错误(比如写成mcmod.json、McMod.info或者多了空格),Linux/macOS系统对文件名大小写敏感,这点尤其要注意。
2. 排查JSON格式的「隐性错误」
你给出的JSON内容看起来没问题,但有些细节肉眼很难发现:
- 确认所有标点都是英文半角:比如引号、逗号、括号,中文标点会直接导致JSON解析失败。
- 可以用本地的JSON编辑器(比如VS Code的JSON校验功能)检查格式,有没有遗漏的逗号、不匹配的括号,或者复制粘贴时带了不可见的特殊字符。你提供的这段JSON我帮你校验过是合法的,但还是建议你自己再确认一遍。
3. 核对Mod注解与Reference常量的一致性
你的Main类里用了useMetadata = true,这个设置是对的,但要确保Reference类里的常量和mcmod.info完全对应:
Reference.MOD_ID必须等于modexperimentationReference.NAME必须等于Mod ExperimentationReference.VERSION必须等于1.0
如果这些常量和mcmod.info里的内容不一致,Forge会无法关联到正确的元数据。
4. 检查构建与打包环节
- 如果你用Gradle构建,一定要重新执行
./gradlew build(Windows是gradlew.bat build),修改mcmod.info后旧的编译产物不会自动更新,游戏读取的还是旧的jar包。 - 打开构建好的jar包(用压缩软件就行),确认根目录下确实有
mcmod.info,而且内容和你写的一致。如果jar包里没有这个文件,那是构建配置的问题——1.12.2 Forge项目默认会打包resources下的文件,但如果自定义了build.gradle的资源配置,可能会漏掉它。
5. 清除测试环境的缓存
IDE运行测试时,Forge可能会缓存旧的Mod数据:
- 删除项目根目录下的
.gradle/caches文件夹,或者用户目录下的.gradle/caches - 删掉游戏运行目录(比如IDE里的run文件夹)下mods文件夹里的测试Mod文件,重新构建运行
如果以上都排查完还是不行,可以试试在PreInit事件里加一段代码,手动获取元数据看看情况:
@Mod.EventHandler public static void PreInit(FMLPreInitializationEvent event){ ModMetadata metadata = event.getModMetadata(); System.out.println("Mod Metadata: " + metadata); System.out.println("Mod ID from metadata: " + metadata.modId); }
如果打印出来是null,说明文件根本没被找到;如果有内容但和mcmod.info不一致,那就是解析或者关联的问题。
内容的提问来源于stack exchange,提问作者Lionmeow




