附加包管理(Add-ons)
在 Minecraft 基岩版中,服主常常需要引入社区第三方行为包(BP)与资源包(RP)(如玩法机制、载具系统、材质光影等)。
SFMC 提供了附加包导入目录与 CurseForge 更新支持,通过 packs(或别名 addon)命令管理生命周期。
概念辨析:模块 vs 附加包
- SFMC 业务模块(
modules/):采用 TypeScript 编写的平台轻量级功能包,由 SFMC 动态编译聚合为单一行为包,与 Node 伴生服务深度互通。 - 第三方附加包(
packs/):现成的.mcpack、.mcaddon或.zip游戏扩展包,由收件箱直接分发至指定游戏世界的包目录中。 :::
1. 附加包目录结构
将下载好的扩展包放入 <SFMC_ROOT>/packs/ 即可自动识别与分发:
2. 常用管理指令
在 sfmc 控制台内输入命令:
扫描与安装
启停、诊断与卸载
存档实验性开关(Experiments)诊断与配置
许多现代基岩版附加包(如使用自定义方块几何、实体相机、原生脚本或最新特性的包)依赖世界存档 level.dat 中的实验性功能。packs doctor 支持对以下已知实验性特性的安全读写:
修改时会自动创建 level.dat.bak 备份,校验 8 字节小端序文件头部,并通过临时文件原子替换,保证存档完整性。
:::warning 游戏生效机制 由于 Minecraft BDS 资源包清单在进程初始化时读取,任何附加包的安装、启停或卸载操作,均需重启 BDS 服务端方可生效。
3. 冲突与版本覆盖策略
当目标世界中已存在相同 UUID 或文件夹名的附加包时,处理规则如下:
4. CurseForge 扩展包更新与源绑定
SFMC 支持连接 CurseForge 基岩版资源库。配置 API Key 后,可检索扩展包并检查升级:
关联配置文件
- 全局策略 (
configs/pack-update.json):配置 CurseForge API Key、开服时是否静默检查以及名称匹配模糊阈值。 - 本地映射 (
packs/pack-sources.json):维护每个本地包与远端工程的绑定关系,可通过packs unbind <id>解除关联。
强制客户端材质刷新(RP Bump)
在修改或升级资源包(RP)后,基岩版客户端有时会因本地贴图缓存而未即时加载最新材质。
执行以下指令,可自动将指定资源包的 patch 版本号自增 1:
客户端在下次连接服务器时,检测到 RP 版本号变更,将自动重新下载并应用新材质。