Guides / Troubleshooting

pack.mcmeta:pack_format 数字与“不兼容”警告

一个错误的整数会让 Minecraft 禁用你的材质包。这里是格式与版本号的对应关系,避免此问题的 supported_formats 范围,以及文件必须放置的位置。

几乎所有“我的材质包显示不兼容”的问题都源于一个小文件中的一个数字。

文件

{
  "pack": {
    "pack_format": 46,
    "description": "My pack"
  }
}

它必须被精确命名为 pack.mcmeta,并位于 zip 文件的根目录——与 assets/data/ 同级,而不是在 zip 文件内的某个文件夹中。压缩包含文件夹而不是其内容是第二常见的失败原因,其表现与错误的格式数字完全相同。

资源包和数据包使用不同的数字

这是让人们困惑的地方:这两个计数器多年前就已分道扬镳,不能互换。即使数字“当前有效”,使用资源包数字的数据包也会被禁用。

与其记住一个每发布一个新版本就过时的表格,不如从你目标版本的原版包中读取数字——或者让生成器为你填写。

supported_formats 才是真正的解决方案

固定一个整数意味着材质包会在下一个版本中失效。而一个范围则不会:

{
  "pack": {
    "pack_format": 46,
    "supported_formats": { "min_inclusive": 42, "max_inclusive": 99 },
    "description": "My pack"
  }
}

pack_format 仍是主要声明;supported_formats 拓宽了游戏在不发出警告的情况下接受的范围。对于只添加纹理或配方的材质包——这占据了大多数——一个宽泛的范围是诚实的,因为其中的内容在版本之间实际上并没有损坏。

description 接受文本组件

"description": [
  { "text": "My pack ", "color": "gold" },
  { "text": "v2", "color": "gray", "italic": true }
]

节号代码 (§6) 仍然有效,但 JSON 形式在通过会剥离控制字符的工具进行复制粘贴时能更好地保留。

叠加层,用于同时支持多个版本

"overlays": { "entries": [
  { "formats": { "min_inclusive": 42, "max_inclusive": 45 }, "directory": "older" }
] }

包根目录下的 older/ 文件夹仅用于那些格式。这样,一个下载就能支持两个具有不同模型格式的版本,而不是发布两个 zip 文件。

快速诊断

症状原因
灰色显示,“为旧/新版本制作”错误的 pack_format
材质包根本未列出pack.mcmeta 不在 zip 根目录,或 JSON 无效
加载成功,纹理缺失包格式正确;纹理路径错误
在单人模式下有效,但在服务器上无效数据包在错误的存档文件夹中

末尾的逗号是无效的 JSON,会导致“根本未列出”的情况,而不是错误消息。

使用 pack.mcmeta 生成器 为你的包类型和目标版本生成一个有效的文件——其中 supported_formats 已填写。

pack.mcmeta 生成器 →

More guides

Browse all →

还想找别的我的世界工具?

一整套在浏览器里运行的生成器、查看器和转换器,全部免费。