比較
資料包與插件比較
更新於 2026年10月18日
資料包是原版 Minecraft 能讀取的資料夾,裡面是 JSON 和 .mcfunction 檔案:配方、戰利品、進度和指令。插件則是由 Paper 或 Spigot 伺服器執行的 Java 程式碼。很多點子兩種方式都做得到;該選哪一種,取決於它要在哪裡執行,以及邏輯有多複雜。
一個很適合做成資料包的範例。
用 Codexe 產生這個並排比較
| 資料包 | 插件 | |
|---|---|---|
| 需要 | 什麼都不用:原版就夠了 | Paper、Spigot 或其分支 |
| 單人遊戲 | 有 | 沒有 |
| 撰寫語言 | JSON 和 Minecraft 指令 | Java 或 Kotlin |
| 擅長 | 配方、戰利品表、進度、標籤、世界生成、指令機制 | 帶參數的指令、介面、經濟系統、資料庫、事件、權限 |
| 回應事件 | 有限:進度、判斷式,以及每個 tick 執行的函式 | 數百種事件:破壞方塊、聊天、傷害、物品欄點擊等等 |
| 儲存資料 | 世界裡的計分板和 storage NBT | 檔案、SQLite、MySQL,任何 Java 能用的東西 |
| 版本之間 | 格式經常變動;資料包需要更新 | API 穩定;很多插件可以繼續運作 |
| 安裝位置 | world/datapacks/ | plugins/ |
什麼時候選資料包比較好
- 它必須能在單人遊戲或原版伺服器上運作,或者玩家會把它當成世界附加內容來分享。
- 你的點子主要是資料:新配方、修改戰利品、一棵進度樹、自訂世界生成。
- 你完全不想用伺服器軟體,也不想建置 Java。
什麼時候選插件比較好
- 你需要帶參數的指令、權限、介面或商店。
- 資料必須依玩家保存在檔案或資料庫中,或要和網站、Discord 共用。
- 邏輯要回應很多事件,或需要很多每個 tick 都執行的函式,這在資料包裡會消耗效能。
- 你會用到其他插件:Vault、LuckPerms、PlaceholderAPI、WorldGuard。
- 如果你想要伺服器邏輯,又不想寫 Java、不想建置,還有一個折衷的方法:Skript。
在同一台伺服器上同時使用兩者
Paper 和 Spigot 會像原版一樣從世界資料夾載入資料包,所以你不必替整台伺服器二選一。常見的分工是:配方、戰利品表、進度和世界生成放在資料包,它們只是單純的資料,很容易修改;指令、介面、經濟系統和任何依玩家儲存的內容放在插件。要記得,資料包屬於單一世界,而插件會套用到伺服器上的所有世界。
Codexe 兩者都支援
Codexe 兩種都能做。資料包在變成就緒之前,會先載入到真正的 Minecraft 伺服器上,並檢查日誌中的錯誤;插件則會先編譯。兩者都能用你自己的遊戲在私人測試伺服器上試玩,而改變世界生成的資料包會拿到一台有全新生成世界的伺服器,讓你看到它的地形。資料包會在 1.20.1 到 26.3 的版本上測試載入;插件則可以針對 1.8.8 到 26.3。
常見問題
資料包可以加入新物品嗎?
無法加入真正全新的物品。它可以替現有物品設定自訂名稱、元件和模型(搭配資源包),但無法加入超出指令能力範圍的新行為。
資料包能在 Paper 伺服器上使用嗎?
可以。Paper 會像原版一樣從世界資料夾載入資料包,所以你可以在同一台伺服器上同時使用資料包和插件。
哪一種比較快?
小功能的話,兩者都沒問題。每個 tick 都檢查每位玩家的重度 tick 函式,開銷會比只監聽一個事件的插件大。
之後可以把資料包改成插件嗎?
可以,用 Java 重寫它的邏輯就行。配方、戰利品表和進度甚至可以繼續放在插件旁邊的資料包裡,因為 Paper 兩者都會載入。
做成資料包或插件
這則提示詞開啟後即可直接傳送:
“一個 Minecraft 1.21.4 資料包,命名空間為「hunt」:一棵名為「Monster Hunter」的進度樹,包含 6 個進度,分別是擊殺殭屍、骷髏、苦力怕、終界使者、女巫和終界龍,每個都給予經驗值;再加一個新增擊殺計分板的 load 函式。”
用 Codexe 產生這個