指南
如何製作自訂合成配方
更新於 2026年10月18日
自訂配方是改變生存伺服器最簡單的方法:合成鞍、把羊毛拆回線、把腐肉燒成皮革。你可以用資料包加入,原版和單人遊戲都能用;也可以用插件加入,能做的事更多,例如要求用某個特定的自訂物品當材料。
把這些換成你自己的配方。
用 Codexe 產生這個逐步說明
1.選擇資料包還是插件
如果配方只用一般物品,而且要能在任何伺服器或世界使用,就選資料包。如果材料必須是特定的物品(有名稱或標籤),或配方需要權限或其他條件,就選插件。
2.寫下每個配方
類型(有序、無序、熔爐、煙燻爐、高爐、營火、切石機、鍛造台)、格子排列、材料,以及成品和數量。
3.用正確的格式撰寫
資料包的話,每個配方一個 JSON 檔案,放在
data/<namespace>/recipe/(1.21 之前是recipes/)。插件的話,用帶有NamespacedKey的ShapedRecipe或ShapelessRecipe,再透過Bukkit.addRecipe加入。4.決定要不要顯示在配方書裡
配方一載入就能合成。要讓它們顯示在配方書裡,就得用進度解鎖(資料包),或用
player.discoverRecipe(key)解鎖(插件)。5.安裝
資料包:放進
<world>/datapacks/,再執行/reload。插件:把 .jar 放進plugins/,然後重新啟動。6.把每個配方都合成一次
把材料放進工作台(或熔爐)確認成品,也要試試那些不該成功的錯誤擺法。
資料包還是插件
| 功能 | 資料包 | 插件 |
|---|---|---|
| 執行環境 | 原版、單人遊戲、任何伺服器 | Spigot、Paper 及其分支 |
| 材料 | 物品或物品標籤 | 物品、標籤,或帶有名稱、物品描述、資料的特定物品 |
| 成品 | 任何物品,從 1.20.5 起可帶元件 | 任何物品,包括你插件裡的自訂物品 |
| 條件 | 合成時沒有條件 | 透過事件實現權限、世界、冷卻時間等條件 |
JSON 格式在不同版本之間有變動
1.21.4 資料包中的有序配方長這樣:{"type": "minecraft:crafting_shaped", "pattern": ["GGG", "GHG", "GGG"], "key": {"G": "minecraft:gold_ingot", "H": "minecraft:heart_of_the_sea"}, "result": {"id": "minecraft:totem_of_undying", "count": 1}}。
舊版本的寫法不一樣:1.21.2 之前,每個鍵都是一個物件,例如 {"item": "minecraft:gold_ingot"};1.20.5 之前,成品用的是 "item" 而不是 "id"。從其他版本的教學複製配方,是配方載入失敗最常見的原因。寫明你的版本,Codexe 就會使用該版本要求的格式和資料夾名稱。
描述範例
「一個 Minecraft 1.21.4 資料包,命名空間為 extras。有序:上排 3 個皮革,中間一排是線、鐵、線 = 鞍。無序:1 個白色羊毛 = 4 條線。熔爐:腐肉 = 皮革,0.1 經驗值。切石機:1 個石頭 = 4 個石磚。再加一個進度,在玩家撿起皮革時於配方書中解鎖以上所有配方。」
Codexe 會先把資料包載入到真正的 Minecraft 伺服器上,才把它標記為就緒,所以 JSON 或資料夾的錯誤都會被抓出來並修好。之後用「立即試用」,你就能加入裝好這個資料包的伺服器,親手合成每個配方。
常見問題
資料包配方可以要求改過名的物品或自訂物品嗎?
不行:資料包的材料只比對物品類型或物品標籤,不看名稱或資料。這種需求請用插件搭配 RecipeChoice.ExactChoice。
可以移除原版配方嗎?
可以。資料包可以取代 minecraft 命名空間裡的原版配方檔案,插件則可以用 Bukkit.removeRecipe 移除它。
為什麼我的配方沒有出現在配方書裡?
因為那位玩家還沒解鎖它。在合成格裡照樣能合成;用進度或 discoverRecipe 解鎖後就會顯示。
製作你的配方
這則提示詞開啟後即可直接傳送:
“一個 Minecraft 1.21.4 資料包,命名空間為 extras:鞍的有序配方(上排 3 個皮革,中間一排是線、鐵、線),無序配方 1 個白色羊毛 = 4 條線,熔爐配方腐肉 = 皮革,切石機配方 1 個石頭 = 4 個石磚,再加一個在玩家撿起皮革時解鎖所有配方的進度。”
用 Codexe 產生這個