# Minecraft 1.21.4 資料包筆記 ## 基本結構 ``` my_datapack/(資料包名稱) ├── pack.mcmeta(資料包相關資料) ├── pack.png(可選,資料包圖示) └── data/ ├── minecraft/(特殊命名空間) └── my_namespace/(命名空間資料夾名稱) └── <namespace>/(命名空間) ``` ## pack.mcmeta 在`my_datapack`資料夾中建立`pack.mcmeta`文件,內容如下: ``` { "pack": { "pack_format": 61, "description": "我的資料包" } } ``` - pack_format:對應 Minecraft 1.21.4,應設定為`61` - description:填寫資料包的描述,這段文字會顯示在選單中 ## deta data資料夾內存放各種不同的命名空間資料夾,以儲存不同的資料包內容。命名空間的名稱只能使用小寫英文字母、數字、`-`和`_` ## minecraft `minecraft`是一個特殊的命名空間,用於覆蓋或修改原版遊戲的設定、資源或邏輯。它的作用是直接影響遊戲的內建內容,同時,在這裡你會註冊一些遊戲中的功能,比如物品、方塊、配方、進度、實體等的定義和設置 ## 命名空間 命名空間是一個唯一的標識符,用於區分(分類)資料包中不同類型的資源,以下為常見的命名空間名稱及簡單的介紹 |命名空間|中文名稱|功能|副檔名| |---|---|---|---| |functions|函數|執行一系列預定義的指令,主要作用是讓玩家能執行一系列指令,而不需要手動一條一條輸入|儲存`.mcfunction`檔案| |structure|結構|保存建築、方塊、實體位置等資訊|儲存`.nbt`檔案| |tags|標籤|定義一組對象(例如方塊、物品、生物等)的集合,方便批量處理,可以為多個對象賦予共同的特性,而不需要單獨操作每個對象|儲存`.json`檔案| |advancement|進度|追蹤玩家成就、提供遊戲目標與指引的系統。進度的設計十分靈活,可以根據特定條件觸發事件|儲存`.json`檔案| |loot_tables|戰利品表|定義方塊、實體、釣魚、寶箱等掉落物的系統。它能讓遊戲掉落物更加靈活與可控,並支持自訂掉落規則|儲存`.json`檔案| |predicate|述詞|設定條件判斷,讓遊戲可以根據不同情況執行特定的行動。簡單來說,述詞是用來做「是或否」判斷的工具|儲存`.json`檔案| |recipes|配方|自訂遊戲中物品的製作方式的。這些檔案可以定義工作台、熔爐、熔煉、切石機等製作方式,並支持新增或修改現有的合成配方|儲存`.json`檔案| |item_modifier|物品修改器|用來修改物品屬性的工具,主要應用在戰利品表(loot_tables)中,用來靈活地生成、修改或增強物品。它可以為物品添加自訂名稱、附魔、標籤等,讓遊戲物品生成更加靈活|儲存`.json`檔案| 除此之外還有許多代表不同的功能的命名空間,詳情參考以下連結 https://zh.minecraft.wiki/w/%E6%95%B0%E6%8D%AE%E5%8C%85#pack.mcmeta ## [回到主頁](https://hackmd.io/@Huanyu763/home)