數據包(Data Pack)系統為玩家進一步客製化其Minecraft體驗提供了一種新方式。數據包可用於覆蓋或新增的進度、維度、函數、戰利品表、述詞、配方、結構、標籤、自訂世界生成和生物羣落,而不進行任何程式碼修改。
行為
數據包可以放在世界的.minecraft/saves/<世界名称>/datapacks資料夾中。數據包可以是datapacks資料夾中的子資料夾或者.zip檔案。將其放入資料夾後,將在載入或重新載入世界時為該世界啟用數據包。
數據包將根據載入順序載入其資料。此順序儲存在level.dat中,可以透過/datapack命令查看或修改。
在建立新的世界界面中,玩家也可以透過點擊數據包按鈕並將數據包資料夾或壓縮包拖入來選擇數據包。與資源包界面類似,玩家可以在世界生成之前啟用數據包並輕鬆自訂載入順序。
內容
資料夾結構
- (數據包名字)
- pack.mcmeta
- pack.png
- data
- (命名空間)
- advancements
- (進度名稱).json
- 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識別為一個數據包。
1.19原版數據包裡的pack.mcmeta檔案:
{
"pack": {
"pack_format": 10,
"description": "The default data for Minecraft"
}
}
data
此目錄記憶體放一個或多個命名空間目錄。命名空間目錄內可包含對應的數據包內容資料夾。
這個資料夾可以是advancements、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 |
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 - 1.18.2-rc1) |
10 |
1.19(22w11a及以上) |
數據包模板
原版數據包的檔案結構:
| 列表 |
|---|
|
歷史
| 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 | 由於204861,數據包版本號變更為7。 | ||||
| 1.18.2 | pre1 | 現在可在實驗性數據包中加入自訂結構,即遊戲現在可生成並儲存由數據驅動的配置的結構。 | |||
| 現在可透過數據包對一些洞穴生成機制進行配置。 | |||||
由於對數據包加入了以上新功能,數據包版本號變更為9。 | |||||
| 1.19 | 22w11a | 在pack.mcmeta中加入了filter字段,用於按命名空間和正則表達式忽略低優先級數據包中的匹配內容。 | |||
參見
| 組件 |
| ||
|---|---|---|---|
| 數據包 | |||
| 教學 | |||
| 版本 | |||||||
|---|---|---|---|---|---|---|---|
| 開發週期 |
| ||||||
| 技術 |
| ||||||
| 多人遊戲 | |||||||
| 遊戲訂製 | |||||||