指南
如何製作 Minecraft 小遊戲插件
更新於 2026年10月18日
小遊戲插件以「局」為單位運作:玩家在大廳等待,倒數開始,遊戲依照自己的規則進行,有人獲勝,競技場重置,準備下一局。從掘一死戰(spleef)到床戰,每個小遊戲都是同一套骨架。把骨架做對,遊戲規則就是簡單的部分了。
從這個範例開始,修改規則。
用 Codexe 產生這個逐步說明
1.寫下一局的規則
幾名玩家、一局怎麼開始和結束、怎樣算贏、死亡後會怎樣(淘汰、重生、旁觀),以及玩家開局時拿到什麼。
2.規劃競技場設定
用管理指令建立競技場,並設定它的大廳、重生點和邊界,例如
/mg create <name>和/mg setspawn <name>。競技場會存在檔案裡,重新啟動後依然存在。3.定義遊戲狀態
等待中、即將開始(倒數)、進行中和結束。每個狀態允許的事情不同:在大廳裡誰都不能破壞方塊,進行中的遊戲誰都不能加入。
4.決定競技場怎麼重置
記錄並還原這一局中被改動的方塊,或重新載入一份模板世界的副本。沒有重置的話,第二局就會在一張被破壞的地圖上開始。
5.加上玩家看得到的內容
側邊計分板顯示剩餘玩家和時間,用 Boss 血條或標題顯示倒數,並在聊天欄提示擊殺和獲勝者。
6.產生、建置並玩一局
把它描述給 Codexe,等它編譯完成,再用「立即試用」加入測試伺服器。測試時把最少玩家數設低一點,這樣一局才開得起來。
遊戲狀態
大多數小遊戲的 bug,都是玩家在錯誤的狀態下做了某件事。在需求中寫明各個狀態,AI 就會圍繞它們來打造插件。
| 狀態 | 會發生什麼 | 常見規則 |
|---|---|---|
| 等待中 | 玩家加入大廳 | 沒有傷害、不能破壞方塊,可以用物品或指令離開 |
| 啟動中 | 達到最少人數後開始倒數 | 如果有人離開導致人數低於下限,倒數就會停止 |
| 進行中 | 套用遊戲規則 | 不能加入,死亡會被淘汰或重生,中途退出算輸 |
| 結束 | 宣布獲勝者,發放獎勵 | 幾秒後把玩家送回去,重置競技場 |
重置競技場
- 記錄並還原改動:在這一局中每個方塊被改變之前先保存下來,結束時再放回去。適合玩家只會破壞或放置少量方塊的小型競技場,速度很快。
- 模板世界:保留一份乾淨的地圖副本,一局結束後卸載玩過的世界,再用模板覆蓋它。對會被炸爛的地圖來說,簡單又可靠。
- 不允許改動:像跑酷或 PvP 單挑這類遊戲,直接取消所有方塊改動,就什麼都不用重置。
描述範例
「一個 Paper 1.21.4 掘一死戰(Spleef)小遊戲插件。管理員用 /spleef create <name>、/spleef setlobby 和 /spleef setfloor(雪地板的兩個角)建立競技場。玩家用 /spleef join <arena> 加入。有 2 名玩家加入後 15 秒開始一局,最多 8 人。玩家會拿到一把鑽石鏟,可以瞬間挖掉雪塊,掉到地板以下就淘汰。最後留下的玩家透過 Vault 贏得 50 枚金幣。被淘汰的玩家變成旁觀者。每局結束後還原雪地板。側邊欄顯示剩餘玩家和時間。競技場存在 arenas.yml,最少玩家數和獎勵放在 config.yml。」
測試小遊戲
小遊戲光看程式碼很難判斷好不好:你得實際玩一局。「立即試用」會啟動一台符合你版本的私人 Paper 伺服器並裝好插件,通常是超平坦世界;把朋友加進「伺服器存取權限」後,他們也能加入。免費方案的測試伺服器可容納 2 人,Pro 5 人,Business 10 人,Enterprise 20 人。
要求把最少玩家數放進 config.yml,這樣測試時就能設成 1 或 2。測試玩家也可以加入、執行加入指令和管理指令並檢查訊息,在你親自上場前就能抓出壞掉的指令。
常見問題
一個競技場還是多個?
一開始就要求支援多個競技場。之後再把單一競技場的插件改成多競技場,就得重寫玩家和遊戲狀態的儲存方式。
可以做 1.8 PvP 小遊戲嗎?
可以。在需求中寫明 Spigot 或 Paper 1.8.8:Codexe 會針對那個舊版 API 撰寫程式碼,而測試伺服器支援 1.8 到 26.3 的版本。
小遊戲伺服器群組是怎麼運作的?
大型伺服器群組會把每個遊戲放在各自的伺服器上,前面架一台 BungeeCord 或 Velocity 代理伺服器,再由大廳伺服器把玩家送進有空位的遊戲。這就是一個代理伺服器插件加上一個遊戲插件,分成兩個專案。
打造你的小遊戲
這則提示詞開啟後即可直接傳送:
“一個 Paper 1.21.4 掘一死戰(Spleef)小遊戲插件:用 /spleef create、setlobby 和 setfloor 建立競技場,玩家用 /spleef join 加入,2 名玩家加入後 15 秒開局(最多 8 人),發放鑽石鏟,掉到地板以下就淘汰,最後一名玩家透過 Vault 贏得 50 枚金幣,被淘汰的玩家變成旁觀者,每局結束後還原雪地板,側邊欄顯示剩餘玩家和時間,競技場存在 arenas.yml。”
用 Codexe 產生這個