Community程式設計與開發github.com

CGRLabs/horizon-content-mod

建構、驗證並安裝 Horizon 內容模組 (.hmod)——這是為 Horizon 遊戲(Minecraft Java Edition 26.3 的 Rust 重製版)設計的資料驅動模組。當使用者想要建立 Horizon 模組、新增配方、方塊、物品、戰利品表、標籤或語言檔案、修復一個在遊戲中無聲無息不出現的模組、打包或檢查 .hmod、或詢問 horizon-mod.toml、能力清單或 Horizon 模組管道時使用。也適用於將 Java 資料包風格的內容移植到 Horizon。即使使用者從未提及「內容模組」,任何「幫我做一個新增 X 的 Horizon 模組」的要求都應觸發此技能。

horizon-content-mod 是什麼?

此技能提供建構、驗證及安裝 Horizon 內容模組 (.hmod) 的完整工作流程。Horizon 內容模組僅包含資料與資產,不包含任何程式碼;.hmod 本質上是一個 ZIP 壓縮檔,包含 manifest 檔案與可選的 assets/ 及 data/ 目錄。技能支援的平台包括使用 Rust 重製的 Horizon 遊戲(對應 Minecraft Java Edition 26.3)。其運作方式結合使用 `cargo horizon-mod` 命令列工具進行腳手架搭建、建構與檢查,再將產生的 .hmod 複製到遊戲的 `horizon-mods/` 目錄;此外,技能內建多個參考文件,詳細說明 manifest 欄位、資料格式、已知的靜默失敗模式以及除錯策略,協助開發者避開常見陷阱,並建議逐步新增內容以維持可除錯性。此技能也會根據請求自動參照相關的參考文件。

相容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/CGRLabs/horizon-ai-skills/tree/HEAD/skills/horizon-content-mod

Installed? Explore more 程式設計與開發 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

Horizon 內容模組 (.hmod)

Horizon 內容模組是僅包含資料與資產——不含程式碼。.hmod 是一個包含 horizon-mod.toml manifest 以及可選的 assets/ 和 data/ 目錄的 ZIP 壓縮檔,在啟動時會疊加在遊戲的基礎資源之上。WebAssembly (mod.wasm) 已廢棄且會被拒絕。如果使用者需要可執行的行為,那是原生模組——請改用 horizon-native-mod 技能。

工作循環

  1. 腳手架搭建 專案資料夾(manifest + data//assets/),或執行 cargo horizon-mod new <path> --name "名稱"。如果使用了腳手架:刪除其產生的範例內容(方塊狀態、物品、模型、方塊宣告、戰利品表和 data/minecraft/ 下的任何內容)後再加入你的內容——這些範例展示了 references/pitfalls.md 中所描述的會靜默失敗的模式。只保留 manifest 和你自己的檔案。
  2. 新增內容 放在模組自己的命名空間下:data/<模組ID>/recipe/...、assets/<模組ID>/lang/...。切勿寫入 data/minecraft/——請將覆蓋內容放在 data/<模組ID>/ 中。
  3. 建構:cargo horizon-mod build → 產生 target/horizon-mod/<ID>.hmod。
  4. 檢查:cargo horizon-mod check target/horizon-mod/<ID>.hmod。
  5. 安裝:將 .hmod 複製到遊戲的 horizon-mods/ 目錄中。該目錄位於 Horizon 安裝資料夾內,與 horizon-client.exe 和 horizon-mods.txt 同層(例如 ...\horizon-windows-x64\horizon-mods\)——這是我們安裝的載入位置。使用者資料目錄(%APPDATA%\Roaming\horizon)是不同位置,且沒有 mods 資料夾。如果全新安裝缺少該資料夾,請自行建立。
  6. 啟用:內容模組僅在啟動時載入一次——完全退出遊戲、重新啟動、選項 → 模組 → 啟用、再次完全退出、重新啟動、載入世界。

執行步驟 3 後,若已安裝該工具,可選用 horizon-inspect target/horizon-mod/<ID>.hmod --json(exit 0 = 有效)取得安全性/manifest 報告。

從已驗證可行的部分開始

使用原版物品 ID 的資料驅動配方是最基本的驗證基準——它們不需要紋理、模型或物品註冊即可運作:

{
  "type": "minecraft:smelting",
  "cookingtime": 200,
  "experience": 0.35,
  "ingredient": "minecraft:rotten_flesh",
  "result": { "id": "minecraft:leather" }
}

(minecraft:blasting 用於高爐;cookingtime 以刻為單位,200 ≈ 10 秒。)

每次只新增一種內容,並在每種內容後重新測試。 Horizon 可能靜默拒絕它不理解的內容,因此一次性加入大量內容的模組將無法除錯。

來之不易的陷阱(已在 Horizon 0.2.97 上驗證)

在設計超越原版物品配对的任何內容之前,請閱讀 references/pitfalls.md——其中的失敗模式是靜默的,並會耗費數小時。重點提示:

  • 新的物品/方塊宣告可能在遊戲中不出現;遊戲可能在不記錄錯誤的情況下拒絕它們。
  • 此版本不支援物品 components。
  • Manifest 使用 deny_unknown_fields;模組 ID 只能使用 [a-z0-9_]。

參考文件——按需閱讀

  • references/manifest-reference.md——完整的 horizon-mod.toml 欄位參考:API 行數、能力清單、side、ID 規則。在撰寫任何 manifest 前閱讀。
  • references/data-and-assets.md——已驗證的資料格式(配方、語言)和資產佈局。在新增超過一個熔煉配方以外的內容時閱讀。
  • references/pitfalls.md——靜默失敗目錄與除錯策略。在測試前以及「模組不出現」時閱讀。
  • references/validation-and-publishing.md——檢查器/驗證器用法、註冊規則(index.json、revoked.toml、MOD-POLICY)、確定性打包。在發布前閱讀。

不可協商的規則

  • 內容模組需宣告能力清單;不要要求超過模組所需的能力——玩家在啟用前會看到這些資訊。
  • Java 模組的 jar 檔無法在 Horizon 中執行;不要嘗試移植 .jar 檔案,而是要移植其資料。
  • Horizon 不包含 Mojang 資產;切勿將 Minecraft 資產捆綁到模組中。全部自行衍生或引用原版 ID。

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

相關技能