更好的物品

更好的物品

无需编码即可将自定义物品添加到Minecraft —— 只需将PNG图像放入配置文件夹并重启即可。支持名称、提示文本、动画纹理和自定义模型。可在支持自动客户端同步的服务器上运行。

BetterItem

BetterItem 是一个针对 Minecraft 1.20.1 的 Minecraft Forge 模组,让你无需编写一行代码即可向游戏添加自定义物品 —— 只需将纹理文件拖入配置文件夹并启动游戏即可。

所有物品在启动时动态注册,会出现在专属的 BetterItem 创造模式标签页中,并可通过标准语言文件支持自定义显示名称和提示文字。


工作原理

每次游戏启动时,BetterItem 会扫描以下文件夹:

.minecraft/config/betteritem/textures/

其中找到的每个 .png 文件都会成为一个已注册的物品。物品的注册名称直接取自文件名(转为小写,特殊字符替换为 _)。

如果首次启动时纹理文件夹为空,模组会自动创建一个占位的 dummy 物品,以确保模组能够无错误启动。


配置文件夹结构

.minecraft/
└── config/
    └── betteritem/
        ├── textures/          ← 物品纹理(必需)
        │   ├── my_item.png
        │   └── my_item.png.mcmeta   ← 可选的动画元数据
        ├── models/            ← 可选的物品自定义模型
        │   └── my_item.json
        └── lang/              ← 可选的显示名称和提示文字
            ├── en_us.json
            └── ru_ru.json

支持的文件

textures/ - 物品纹理 (必需)

文件 描述
<物品名称>.png 物品纹理。文件名(不含 .png)成为物品的注册 ID。
<物品名称>.png.mcmeta (可选) 用于动画纹理的动画元数据(标准 Minecraft .mcmeta 格式)。

文件命名规则:

  • 只允许小写拉丁字母、数字、.、_、/ 和 -。
  • 其他字符会自动替换为 _。
  • 文件名必须唯一 —— (净化处理后的)重复名称会导致启动错误。

models/ - 物品模型 (可选)

文件 描述
<物品名称>.json 自定义物品模型 JSON。如果缺失,则会自动生成一个标准的 item/generated 模型,并使用 textures/ 中的纹理。

自动生成的模型(未提供 .json 时使用):

{
  "parent": "minecraft:item/generated",
  "textures": {
    "layer0": "betteritem:item/<物品名称>"
  }
}

lang/ - 翻译文件 (可选)

文件 描述
en_us.json 英文显示名称和提示文字。
ru_ru.json 俄文显示名称和提示文字(或其他任何地区设置)。

格式:

{
  "item.betteritem.<物品名称>": "显示名称",
  "tooltip.item.betteritem.<物品名称>": "鼠标悬停时显示的提示文字"
}

字符串中支持 Minecraft 颜色/格式化代码(§c、§6、§7 等)。

示例:

{
  "item.betteritem.ancient_rune": "§6远古符文",
  "tooltip.item.betteritem.ancient_rune": "§7比时间本身还要古老……"
}

如果某个物品未提供翻译,Minecraft 会以原始翻译键作为备用显示。


逐步添加新物品

  1. 准备纹理 - 创建一个 PNG 图像(建议为 16×16 或 32×32 像素)。

  2. 命名文件 - 只使用小写字母、数字和下划线,例如 solar_crystal.png。

  3. 放置纹理:

   .minecraft/config/betteritem/textures/solar_crystal.png
  1. (可选) 添加自定义模型:
   .minecraft/config/betteritem/models/solar_crystal.json

跳过此步骤将使用自动生成的平面 2D 模型。

  1. (可选) 添加显示名称和提示文字 到相应的语言文件中:
   .minecraft/config/betteritem/lang/en_us.json
   {
     "item.betteritem.solar_crystal": "太阳水晶",
     "tooltip.item.betteritem.solar_crystal": "§7散发着温暖的光芒。"
   }
  1. (可选) 添加动画 - 在纹理旁边放置一个 .mcmeta 文件:
   .minecraft/config/betteritem/textures/solar_crystal.png.mcmeta
   {
     "animation": {
       "frametime": 4
     }
   }
  1. 启动(或重启)Minecraft。 该物品将出现在 BetterItem 创造模式标签页中。

多人游戏 / 服务器

BetterItem 会在登录时同步服务器与客户端之间的物品列表。双方必须拥有完全相同的纹理,否则连接将被拒绝,并会在详细信息中列出客户端或服务器缺失的具体物品。


注意事项

  • 物品默认仅作为展示用途 —— 它们除了出现在物品栏中以及可通过创造模式或命令(/give @s betteritem:<物品名称>)获取外,没有特殊功能。
  • 如果 textures/ 文件夹不存在,模组会在首次启动时自动创建。
  • 删除纹理文件并重启游戏将注销该物品。