每个附加包作者都有把包弄坏的时候。好消息是,只要你知道去哪里看,Minecraft 就会告诉你哪里出了错。本页教你如何找到错误,并修复最常见的那些。
第 1 步:开启内容日志
内容日志是 Minecraft 在加载你的包时发现的问题列表。开启一次,在制作期间一直保持开启。
- 打开 Minecraft,进入设置。
- 打开创作者部分。
- 开启启用内容日志界面。
- 如果还想把错误保存到文件中,开启启用内容日志文件。
现在,当你加载一个包有问题的世界时,错误就会弹出在屏幕上。你随时可以从暂停菜单打开完整列表,用键盘的话也可以按 Ctrl + H。
如何阅读错误
一行内容日志通常长这样:
[Item][error]-demo:ruby | items/ruby.json | minecraft:item | components | minecraft:max_stack_size | ...从左往右读:
[Item]:是哪个系统在报错(Item、Blocks、Entity、Json、Texture……)。[error]或[warning]:错误通常会让东西坏掉,警告则不一定。- 路径:先是文件,然后是文件中的具体位置。它告诉你该去哪里找。
小贴士
先修复第一个错误。一个小错误,比如少了一个括号,可能会在后面引出一长串错误。修好第一个,往往其余的也就消失了。
包完全没有出现
如果你的包没有出现在世界设置的列表中,说明 Minecraft 无法读取它的清单。
manifest.json中的 JSON 有误。 检查是否缺少逗号、多了逗号或引号不对。参见5 分钟学会 JSON。- 清单放错了位置。 它必须直接位于包文件夹中,比如
development_behavior_packs/MyPack/manifest.json。多嵌套一层文件夹,包就看不见了。 - 模块类型不对。 行为包使用
"type": "data",资源包使用"type": "resources"。放在资源包文件夹里的 BP(或者反过来)不会显示。 - 导入失败。 如果
.mcpack显示“导入失败”,那么清单很可能位于 ZIP 中的某个子文件夹里。要压缩包文件夹里的内容,而不是文件夹本身。参见导出与游玩。
UUID 重复
每个包头部和每个模块都需要自己的 UUID。以下情况会出问题:
- 你从教程或别的包里复制了清单,却保留了它的 UUID
- 你复制了自己 BP 的清单来做 RP,却忘了修改 UUID
- 同一个包的旧副本仍然安装着
症状包括:包拒绝导入、加载了错误的包,或者你的改动始终不出现。解决方法:生成四个新的 UUID,并检查 BP 的 dependencies 条目是否指向 RP 新的头部 UUID。然后从 behavior_packs 和 resource_packs 中删除这个包的旧副本。
改动没有出现
你编辑了文件,但游戏里什么都没变。
- 文件保存了吗? 在编辑器中开启自动保存。
- 你编辑的是正确的副本吗? 如果你是以
.mcpack方式导入的包,游戏使用的是behavior_packs中导入的副本,而不是你的项目文件夹。请改在开发文件夹中工作。 - 提高版本号了吗? 导入更新后的
.mcpack时,要提高清单头部中的version,否则 Minecraft 可能会保留旧版本。 - 重新加载了吗? 退出世界再重新进入。遇到顽固的情况,就彻底关闭 Minecraft。
包已启用,但什么都不起作用
- 只启用了一个包。 打开世界设置,确认行为包和资源包都在已激活下。让 BP 依赖 RP 就能自动做到这一点。
- 需要实验性玩法。 如果你使用的功能是实验性的,必须在世界的实验性玩法设置中开启对应开关。
- format_version 不对。 如果文件写着
"format_version": "1.10",却使用了较新的组件,游戏会按旧规则读取它,忽略或拒绝它不认识的内容。请使用当前版本,比如物品用"1.26.30",并参照本 wiki 中的示例。
物品不在创造模式菜单里
你的物品存在,但在创造模式物品栏里找不到。
没有菜单分类
没有 menu_category 时,分类默认为 none,这会把物品从创造模式菜单中隐藏。把它添加到物品的 description 中:
"description": {
"identifier": "demo:ruby",
"menu_category": {
"category": "items"
}
}可以显示物品的分类有 construction、equipment、items 和 nature。
其他原因
- 文件加载失败。 在内容日志中查找与你的物品名相关的错误。
- 试试命令。 输入
/give @s demo:ruby。如果提示物品不存在,说明行为包没有加载这个文件。如果你拿到了物品,那就只是菜单设置有误。
另外,请查看物品组件参考,确认每个组件名都拼写正确。
纹理丢失或损坏
黑紫色方格
紫黑相间的棋盘格纹理,意味着 Minecraft 找不到它被要求使用的图片。
- 路径错误。 纹理路径不带
.png,并且从包的根目录开始写,比如textures/items/ruby。逐个字母检查。 - 大小写错误。 有些平台(比如 Android)会把
Ruby.png和ruby.png当成两个不同的文件。所有地方都用小写。 - 格式错误。 保存为真正的 PNG。把 JPG 改名为
.png是无法加载的。 - RP 没有启用。 如果资源包关闭了,所有自定义纹理都会丢失。
物品没有图标
如果你的物品显示为隐形或缺少图标:
- 检查 BP 中的
minecraft:icon是否使用了短名称,比如"ruby"。 - 检查同一个短名称是否已在
RP/textures/item_texture.json中注册。 - 检查该文件中的路径是否指向你的 PNG。
{
"resource_pack_name": "my_first_addon",
"texture_name": "atlas.items",
"texture_data": {
"ruby": {
"textures": "textures/items/ruby"
}
}
}奇怪的物品名称
如果物品的名字显示为 item.demo:ruby.name 之类的东西,而不是“Ruby”,说明语言文件中缺少那一行。把它添加到 RP/texts/en_US.lang 中:
item.demo:ruby.name=Ruby快速检查清单
当东西坏了又不知道原因时,按顺序过一遍这个清单:
- 内容日志开了吗?读第一个错误。
- 所有 JSON 都有效吗?
- 清单位置正确、UUID 唯一吗?
- 两个包都在世界中启用了吗?
- 标识符在所有地方拼写一致、全部小写吗?
- 纹理路径正确、没有带
.png吗? - 重新加载世界或重启 Minecraft 了吗?
从一开始就避免错误
这些问题大多来自手工输入:这里一个逗号,那里一个不匹配的 UUID,还有一个错了一个字母的纹理路径。GodCraft 会帮你写好所有这些文件,所以清单、UUID、纹理路径和语言条目总是一致的。如果你总是卡住,试着在 GodCraft 工坊里做同样的东西,然后对比一下。