資料包(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識別為一個資料包。
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)及以上 |
資料包模板
原版資料包的檔案結構:
| 列表 |
|---|
|
歷史
| 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欄位,用於按命名空間和正則表達式忽略低優先級資料包中的匹配內容。 | |||
| 1.19.3 | 22w42a | 加入了chat_type子資料夾。
| |||
加入了datapacks子資料夾,包含用於啟用特定功能的原版資料包(功能資料包)。 | |||||
原版世界生成資料包現在在遊戲的jar檔案中可見。故諸如dimension_type、worldgen之類的內容都可見。 | |||||
| Java版(即將到來) | |||||
| 1.19.4 | 23w03a | 資料包版本號變更為11。 | |||
| 23w06a | 加入了damage_type子資料夾。
| ||||
資料包版本號變更為12。 | |||||
參見
| 組件 |
| ||
|---|---|---|---|
| 資料包 | |||
| 教學 | |||
| 版本 | |||||||
|---|---|---|---|---|---|---|---|
| 開發週期 |
| ||||||
| 技術 |
| ||||||
| 多人遊戲 | |||||||
| 遊戲訂製 | |||||||