Balm — 让模组在 Minecraft 不同模组加载器上运行的模组库
Balm 是一个本身不添加任何内容的模组库,它让其他模组能够在 Fabric、Forge 和 NeoForge 上以相同方式运行,无需为每个加载器单独编写代码。
Balm 是一个本身不添加任何内容的模组库,它让其他模组能够在 Fabric、Forge 和 NeoForge 上以相同方式运行,无需为每个加载器单独编写代码。
Balm — 让模组在 Minecraft 不同模组加载器上运行的模组库
本文测试和撰写所使用的 Minecraft 版本:26.1.2
支持的版本范围:1.18.x – 26.2
Balm 是一个其他 Minecraft 模组所依赖的库;它本身不会添加任何方块、物品、生物或游戏机制。单独安装它没有意义:只有当其他模组将 Balm 指定为必需依赖项时才需要它。这个库的作用是为模组作者提供一套通用代码,使其在 Fabric、Forge 和 NeoForge 上以相同方式运行,而无需为每个加载器分别编写版本。
为什么需要 Balm
每个模组加载器的构建方式都不同:物品注册、事件处理、网络通信和设置在 Fabric、Forge 和 NeoForge 中都以不同的方式实现。如果没有中间层,作者就必须为每一个加载器单独编写代码。Balm 承担了这种差异——模组调用库提供的通用工具集,库再将这些调用翻译成特定加载器的语言。
对玩家来说,结果很简单:同一个模组可以同时为三个加载器发布,且行为在各处完全一致。如果你所需模组的依赖列表中包含 Balm,只需下载与你的加载器和 Minecraft 版本相匹配的两个文件,并将它们放入 mods 文件夹即可。
库的版本必须与主模组所构建的 Minecraft 版本及加载器相匹配。Fabric 版的 Balm 文件无法在 Forge 上运行,反之亦然。
该库承担的工作
在游戏之外看不到 Balm,但正是它负责了基于它的模组行为的一部分。该库涵盖以下几个方面:
内容注册——模组的物品、方块和其他对象通过通用机制添加;
游戏事件——模组通过统一的处理器集合响应玩家和世界的动作;
网络——客户端与服务器之间的数据传输,打开带有附加信息的菜单;
设置——一套可以在游戏内单独界面中显示的配置系统。
此外,该库还为配方查看器、信息 HUD 面板和饰品类模组等第三方工具提供了通用接入点。这样一来,作者就无需为每个加载器手动维护每一项此类集成。
通过 Balm 进行模组设置
配置是该库自行实现、而不仅仅是转译给加载器的少数部分之一。基于 Balm 的模组可以将其参数显示在一个可从模组列表访问的独立设置界面中,因此无需手动编辑文件。
玩家能注意到的第二点是同步。部分设置会在连接时由服务器传输给客户端,因此规则对所有参与者都一致生效。该库还会检查网络版本是否匹配:如果客户端和服务器上的模组版本不同,连接会带有提示信息被拒绝,而不是在游戏中导致隐蔽的故障。
结语
Balm 让作者能够用同一套代码同时为 Fabric、Forge 和 NeoForge 发布模组,并向玩家保证在任何加载器上行为都一致。与其他抽象层不同,该库只依赖各加载器的官方工具,不引入第三方依赖。只有当其他模组要求时,安装 Balm 才有意义;在整合包中,它通常已经被自动添加。
安装
一次典型安装大约 5 分钟。流程相同,只是 Loader 和对应构建不同。
- 1Install a mod loader (Forge, Fabric or NeoForge) that matches your Minecraft version.
- 2Download the mod file (.jar) built for that same version.
- 3Place the .jar into your .minecraft/mods folder.
- 4Launch Minecraft with the modded profile and check the mod loads in-game.











