数据包(Data Pack)系统为玩家进一步定制其Minecraft体验提供了一种新方式。数据包可用于覆盖或添加新的进度、维度、函数、战利品表、谓词、配方、结构、标签、伤害类型、自定义世界生成和生物群系,而不进行任何代码修改。
行为[]
数据包可以放在世界的.minecraft/saves/<世界名称>/datapacks
文件夹中。数据包可以是datapacks
文件夹中的子文件夹或者.zip
文件。将其放入文件夹后,将在加载或重新加载世界时为该世界启用数据包。
数据包将根据加载顺序加载其数据。此顺序储存在level.dat中,可以通过/datapack
命令查看或修改。
在创建新的世界界面中,玩家也可以通过点击数据包按钮并将数据包文件夹或压缩包拖入来选择数据包。与资源包界面类似,玩家可以在世界生成之前启用数据包并轻松自定义加载顺序。
内容[]
文件夹结构[]
- (数据包名字)
- pack.mcmeta
- pack.png
- data
- (命名空间)
- advancements
- (进度名称).json
- chat_type
- (聊天类型).json
- datapacks
- (内置数据包名字)
- ...
- (内置数据包名字)
- functions
- (函数名称).mcfunction
- loot_tables
- (战利品表名称).json
- predicates
- (战利品表谓词名称).json
- structures
- (结构名称).nbt
- recipes
- (配方名称).json
- item_modifiers
- (物品修饰器名称).json
- tags
- blocks
- (标签名称).json
- entity_types
- (标签名称).json
- items
- (标签名称).json
- fluids
- (标签名称).json
- functions
- (标签名称).json
- game_events
- (标签名称).json
- (注册名)
- (标签名称).json
- blocks
- dimension
- (维度名称).json
- dimension_type
- (维度类型名称).json
- worldgen
- biome
- (生物群系).json
- configured_carver
- (雕刻器).json
- configured_feature
- (地物).json
- density_function
- (密度函数).json
- flat_level_generator_preset
- (超平坦预设).json
- noise
- (噪声).json
- noise_settings
- (噪声设置).json
- placed_feature
- (可放置地物).json
- processor_list
- (方块处理器).json
- structure
- (结构).json
- structure_set
- (结构集).json
- template_pool
- (拼图池).json
- world_preset
- (世界预设).json
- biome
- advancements
- (命名空间)
data
目录下也可以有多个不同的(命名空间)
目录。
pack.mcmeta
[]
当根目录中存在一个包含JSON格式数据的pack.mcmeta
文件时才能被Minecraft识别为一个数据包。
- :根对象。
- pack:存放数据包信息。
- description:一段原始JSON文本。在数据包列表下,光标移动到对应的数据包时会显示此处填写的描述。
- pack_format:数据包版本。如果此数值不匹配当前游戏版本需要的数值,玩家会收到警告,且在加载时需要额外确认。有关数据包版本编号的完整列表,请参阅#数据包版本。
- supported_formats: 可選的欄位,描述了資源包和資料包所支援格式的範圍。可用的格式有:
16
、[16,17]
和{"min_inclusive": 16, "max_inclusive": 17}
。pack_format
字段仍是必需的,且格式保持不变,以允许旧版游戏读取包数据。如果supported_formats
存在,则必须包含pack_format
中声明的值。supported_formats
在23w31a加入,對於在此之前的旧版游戏,由于这个新信息会被忽略,因此在旧版中仍会被视为普通的、单版本的包,而没有扩展的兼容性。- min_inclusive:資料包支援的範圍下限,即最舊版本號。
- max_inclusive:資料包支援的範圍上限,即最新版本號。
- filter:包过滤器。
- block:指定要忽略的内容。低优先级数据包的内容若匹配其中指定的内容,则对应内容会被游戏忽略。
- :一段指定内容。可以使用正则表达式。
- namespace:要匹配的命名空间。若省略则匹配所有命名空间。
- path:要匹配的路径。若省略则匹配所有路径。
- :一段指定内容。可以使用正则表达式。
- block:指定要忽略的内容。低优先级数据包的内容若匹配其中指定的内容,则对应内容会被游戏忽略。
- pack:存放数据包信息。
1.19原版数据包里的pack.mcmeta
文件:
{
"pack": {
"pack_format": 10,
"description": "The default data for Minecraft"
}
}
data
[]
此目录内存放一个或多个命名空间目录。命名空间目录内可包含对应的数据包内容文件夹。
这个文件夹可以是advancements
、chat_type
、datapacks
、damage_type
、dimension
、dimension_type
、functions
、loot_tables
、predicates
、recipes
、structures
、tags
和/或worldgen
。其中worldgen
文件夹可以包含biome
、configured_carver
、configured_feature
、density_function
、flat_level_generator_preset
、noise
、noise_settings
、structure
、structure_set
、world_preset
、placed_feature
、configured_structure_feature
、configured_surface_builder
、processor_list
和template_pool
文件夹。
命名空间用于区分数据,且命名时名称只能使用小写英文字母、数字、-
和_
。为了防止数据包之间发生冲突,建议在制作数据包时,尽量不要使用同样的命名空间。同时,仅当你要覆盖原版数据时,才使用minecraft
为数据包的命名空间。
dimension
、dimension_type
和worldgen
文件夹目前是实验性功能。
每个进度、函数、战利品表、谓词、配方、结构、标签和伤害类型可以直接放入到对应的文件夹内,也可以放入到对应的文件夹下的子文件夹内。
数据包版本[]
下表描述了每个数据包版本编号的适用版本范围:
编号 | 版本 |
---|---|
3 |
1.13快照17w43a - 17w47b |
4 |
1.13(17w48a)- 1.14.4(19w46b) |
5 |
1.15(1.15-pre1)- 1.16.1(1.16.2-pre3) |
6 |
1.16.2(1.16.2-rc1)- 1.16.5(20w45a) |
7 |
1.17(20w46a)- 1.17.1(1.18-exp7) |
8 |
1.18(21w37a)- 1.18.1(22w07a) |
9 |
1.18.2(1.18.2-pre1 - 正式版) |
10 |
1.19(22w11a)- 1.19.3 |
11 |
1.19.4快照23w03a - 23w05a |
12 |
1.19.4(23w06a - 正式版) |
13 |
1.20快照23w12a - 23w14a |
14 |
1.20快照23w16a - 23w17a |
15 |
1.20(23w18a)- 1.20.1 |
16 |
1.20.2快照23w31a |
17 |
1.20.2快照23w32a - 23w35a |
18 |
1.20.2(1.20.2-pre1 - 正式版) |
19 |
1.20.3快照23w40a |
20 |
1.20.3快照23w41a |
21 |
1.20.3快照23w42a |
22 |
1.20.3快照23w43a |
23 |
1.20.3(23w44a)及以上 |
数据包模板[]
原版数据包的文件结构:
列表 |
---|
|
历史[]
Java版 | |||||
---|---|---|---|---|---|
1.13 | 17w43a | 加入了数据包。 | |||
17w46a | 加入了/datapack 命令,用于控制加载的数据包。 | ||||
17w48a | 数据包可读取自定义配方。 | ||||
18w01a | 在战利品表中加入了set_name 函数。
| ||||
(重新)加载后的minecraft:load 里的函数现在会运行一次。 | |||||
崩溃报告中现在会列出启用的数据包。 | |||||
1.14 | 18w43a | 加入了实体种类标签。 | |||
1.15 | 19w38a | 加入了predicates 文件夹,可以在此处定义战利品表谓词。 | |||
1.16 | 20w22a | 稍微修改了数据包的加载机制,防止数据包带来的崩溃。 | |||
游戏将会检测严重的数据包问题,比如关键标签的缺失,将会阻止世界的加载。 | |||||
如果数据包加载失败,那么修改将不会被应用,游戏将会使用旧的数据包。 | |||||
数据包列表仅在数据包成功加载后才会更改。 | |||||
服务器添加了--safeMode 选项让游戏只加载原版数据包。 | |||||
pre1 | 现在可以在创建世界之前加载数据包。 | ||||
数据包现在可以添加和修改维度。 | |||||
1.17 | 20w45a | pack_version 被拆分,数据包和资源包现在使用相互独立的版本数字。 | |||
20w46a | 由于MC-204861,数据包版本号更改为7 。 | ||||
1.18.2 | pre1 | 现在可在实验性数据包中添加自定义结构,即游戏现在可生成并存储由数据驱动的配置的结构。 | |||
现在可通过数据包对一些洞穴生成机制进行配置。 | |||||
由于对数据包加入了以上新功能,数据包版本号更改为9 。 | |||||
1.19 | 22w11a | 在pack.mcmeta中加入了filter 字段,用于按命名空间和正则表达式忽略低优先级数据包中的匹配内容。
| |||
由于对数据包加入了以上新功能,数据包版本号更改为10 。 | |||||
1.19.3 | 22w42a | 加入了chat_type 子文件夹。
| |||
加入了datapacks 子文件夹,包含用于启用特定功能的原版数据包(功能数据包)。 | |||||
原版世界生成数据包现在在游戏的jar文件中可见。故诸如dimension_type 、worldgen 之类的内容都可见。 | |||||
1.19.4 | 23w03a | 数据包版本号更改为11 。 | |||
23w06a | 加入了damage_type 子文件夹。
| ||||
数据包版本号更改为12 。 | |||||
1.20 | 23w12a | 数据包版本号更改为13 。 | |||
23w16a | 数据包版本号更改为14 。 | ||||
23w18a | 数据包版本号更改为15 。 | ||||
1.20.2 | 23w31a | 数据包版本号更改为16 。
| |||
数据包现在可以与多个游戏版本兼容。 | |||||
23w32a | 数据包版本号更改为17 。 | ||||
pre1 | 数据包版本号更改为18 。 | ||||
Java版(即将到来) | |||||
1.20.3 | 23w40a | 数据包版本号更改为19 。 | |||
23w41a | 数据包版本号更改为20 。 | ||||
23w42a | 数据包版本号更改为21 。 | ||||
23w43a | 数据包版本号更改为22 。 | ||||
23w44a | 数据包版本号更改为23 。 |
参见[]
组件 |
| ||
---|---|---|---|
数据包 | |||
教程 |
|
版本 | |||||||
---|---|---|---|---|---|---|---|
开发周期 |
| ||||||
技术 |
| ||||||
多人游戏 | |||||||
游戏订制 |
语言