指南

如何製作自訂合成配方

更新於 2026年10月18日

自訂配方是改變生存伺服器最簡單的方法:合成鞍、把羊毛拆回線、把腐肉燒成皮革。你可以用資料包加入,原版和單人遊戲都能用;也可以用插件加入,能做的事更多,例如要求用某個特定的自訂物品當材料。

把這些換成你自己的配方。

用 Codexe 產生這個

逐步說明

  1. 1.選擇資料包還是插件

    如果配方只用一般物品,而且要能在任何伺服器或世界使用,就選資料包。如果材料必須是特定的物品(有名稱或標籤),或配方需要權限或其他條件,就選插件。

  2. 2.寫下每個配方

    類型(有序、無序、熔爐、煙燻爐、高爐、營火、切石機、鍛造台)、格子排列、材料,以及成品和數量。

  3. 3.用正確的格式撰寫

    資料包的話,每個配方一個 JSON 檔案,放在 data/<namespace>/recipe/(1.21 之前是 recipes/)。插件的話,用帶有 NamespacedKey 的 ShapedRecipe 或 ShapelessRecipe,再透過 Bukkit.addRecipe 加入。

  4. 4.決定要不要顯示在配方書裡

    配方一載入就能合成。要讓它們顯示在配方書裡,就得用進度解鎖(資料包),或用 player.discoverRecipe(key) 解鎖(插件)。

  5. 5.安裝

    資料包:放進 <world>/datapacks/,再執行 /reload。插件:把 .jar 放進 plugins/,然後重新啟動。

  6. 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 產生這個
如何在 Minecraft 中製作自訂合成配方 | Codexe