格式版本¶
基岩版附加包系统中,几乎每种JSON文件的顶层都有一行类似这样的字段:
它不是游戏版本号,而是告诉游戏"用哪一套规则来解析这个文件"。选错格式版本是新手最常见的问题之一,有必要单独理解它。
格式版本存在的意义¶
基岩版附加包系统历史上经历了多次结构性改动。如果没有格式版本字段,Mojang每次更新文件格式时都必须同时修改所有已发布的附加包,否则旧包就会失效。
有了格式版本,就可以做到:
- 旧版附加包继续用旧规则解析,保持正常运行;
- 新附加包声明新格式版本,获得新功能;
- 同一款游戏同时兼容不同时期编写的附加包。
一个附加包内的每个文件都可以独立声明格式版本,因此在同一个附加包里混用不同格式版本是完全正常的做法。
格式版本与游戏版本的区别¶
格式版本不等于游戏版本,而且按文件类型独立管理。
例如,资源包的客户端实体文件常用1.10.0,行为包的服务端实体文件常用1.16.0,配方文件则常用1.12——这几个数字彼此没有关联,分别代表各自子系统的版本。
不要随意换成最新游戏版本
如果你看到某个教程里的RP实体文件用的是1.10.0,不要擅自把它改成当前游戏版本(比如1.21.0)。游戏在遇到不认识的格式版本时,通常会将其"降级"到最近的合法版本,但这种自动修正并不稳定,不要依赖它。
实验性格式版本¶
某些格式版本需要在世界设置中开启对应的实验性玩法开关才能生效。以物品系统为例:
1.10是稳定版,不需要额外的实验开关;1.16.100是实验性版本,需要启用对应的实验开关;- 部分功能(比如刷怪蛋的实体类型配置)需要
1.19.80或更高的实验性格式版本。
如果照着教程写好了文件却什么都没发生,先确认文件的格式版本,再确认测试世界是否开启了对应的实验开关。
如何选择合适的格式版本¶
最可靠的方法是参考原版游戏中同类型文件所使用的格式版本:
- 下载原版行为包或资源包(可以从Mojang官方GitHub获取)。
- 找到与你要编写的文件类型相同的原版文件。
- 查看顶层的
format_version字段,选择出现频率最高或最新的稳定版本。 - 在你的文件中使用相同的版本。
如果你明确需要使用实验性功能,则选择对应的实验性格式版本,并在测试世界中开启相应的实验开关。
常见文件类型的格式版本参考¶
下表列出了原版游戏中各类文件实际使用的格式版本,★标注推荐版本。
资源包¶
| 文件类型 | 格式版本 | 说明 |
|---|---|---|
| 客户端实体 | 1.10.0 ★ | 主流版本 |
| 客户端实体 | 1.8.0 | 旧版,仍被大量原版文件使用 |
| 动画控制器 | 1.10.0 ★ | |
| 动画 | 1.8.0 | 旧版,多数原版动画文件使用 |
| 动画 | 1.10.0 ★ | 推荐新文件使用 |
| 附着物 | 1.10.0 ★ | |
| 几何体 | 1.8.0 | 旧版,兼容写法 |
| 几何体 | 1.12.0 ★ | 推荐新模型使用 |
| 粒子特效 | 1.10.0 ★ | |
| 渲染控制器 | 1.10.0 ★ |
行为包¶
| 文件类型 | 格式版本 | 说明 |
|---|---|---|
| 服务端实体 | 1.16.0 ★ | 推荐稳定版本 |
| 服务端实体 | 1.12.0 | 旧版,仍有大量原版文件使用 |
| 物品(稳定) | 1.10 ★ | 不需要实验开关 |
| 物品(实验性) | 1.16.100 | 需开启实验 |
| 物品(实验性) | 1.20.40 | 较新实验性格式 |
| 配方 | 1.12 | 多数原版配方文件使用 |
| 配方 | 1.16 ★ | 推荐新配方使用 |
| 生成规则 | 1.8.0 ★ |
版本表会随游戏更新而变化
这张表反映的是某一时期的原版游戏数据,不保证始终最新。如果发现某个格式版本不再被支持,或已有更新的推荐版本,以文档和最新原版样例文件为准。