ValheimCraftFromContainers

版本 v1.0.1·更新於 2026-09-12

製作臺直接使用附近箱子裏的材料:工作臺/熔爐/切石機等製作類建築與錘子建造,都能自動從周圍容器取料並扣料,無需把材料背在身上。Craft and build using resources from nearby chests.

模組介紹 作者原文

ValheimCraftFromContainers

讓製作臺直接使用附近箱子裏的材料:打開工作臺 / 熔爐 / 切石機 / 工匠臺 / 黑鍛爐 / 鐵鍋等任意製作類建築時,只要箱子在範圍內,就無需先把材料搬到身上;拿錘子建造時也一樣。扣料順序爲「先背包、後箱子」,材料數量完全按原版計算。

只改變"從哪裏拿材料",不改任何配方、產量或材料數量。

功能

  • 製作臺取料:製作、升級任意物品時,自動把玩家周圍(以及製作臺周圍)容器裏的同種材料計入"可用材料"。材料足夠即可點擊製作。
  • 錘子建造取料:放置建築時,身上的材料不夠會自動從附近箱子扣除。
  • 建造按物體位置判定製作臺:手持錘子放置時,判斷"是否在對應制作臺範圍內"以物體(幽靈)所在位置爲準;只要物體落在某個製作臺範圍內即可建造,即使人站在臺子範圍外。製作臺範圍重疊時兩個都會檢測,其範圍內箱子裏的材料都能用上。
  • 不再誤報材料不足:建造 UI / 製作面板裏,材料其實在箱子裏時不再播放紅色閃爍動畫。
  • 智能扣料:永遠優先扣玩家背包,不足的部分才從箱子補釦,且不會多扣。
  • 多人安全:默認只使用你有權訪問的容器,私人箱子(僅建造者可用)不會被他人誤用。
  • 範圍可調:默認以玩家爲中心 10 米,並額外以當前製作臺、以及"物體所處製作臺"爲中心按其建造半徑搜索;把箱子放在工作臺旁邊即可。

兼容範圍

  • 覆蓋所有 CraftingStation:工作臺、鍛造臺(熔爐)、切石機、工匠臺、黑鍛爐、鐵鍋、以及各類擴展(StationExtension)提升等級後的範圍。
  • 錘子 / 鋤頭等建造工具的放置同樣生效。
  • 不覆蓋冶煉爐 / 炭窯的「放礦、放燃料」操作——那是另一套交互(把礦石裝進熔爐),本 mod 不涉及。
  • 不覆蓋「只取一種材料」類特殊配方(該類配方需要材料在背包中才能判定與消耗,保持原版行爲)。

操作

無需按鍵,裝上即生效。打開製作臺或手持錘子建造時自動從附近箱子取料。

安裝

方式一:r2modman Mod Manager(推薦)

  • 在 mod 管理器裏搜索 ValheimCraftFromContainers 安裝即可(會自動帶入 BepInEx 依賴)。
  • 本地包導入:下載 dist/SuperVikingDepartment-ValheimCraftFromContainers-1.0.0.zip,在 r2modman 中

Settings → Import local mod(或 Install from file)選擇該 zip。

  • 手動放入 profile:把 ValheimCraftFromContainers.dll 放到

%APPDATA%\r2modmanPlus-local\Valheim\profiles\\BepInEx\plugins\ 下(可放在任意子文件夾)。

方式二:手動安裝(直接啓動遊戲)

  • 先安裝 BepInExPack for Valheim(denikson-BepInExPack_Valheim)。
  • 把 ValheimCraftFromContainers.dll 放入遊戲根目錄的 BepInEx/plugins/。
  • 啓動遊戲。

配置

首次啓動後生成 BepInEx/config/SuperVikingDepartment.ValheimCraftFromContainers.cfg:

| 配置項 | 默認值 | 說明 |

| --- | --- | --- |

| Enabled | true | 總開關。關閉後完全恢復原版(材料必須帶在身上)。 |

| Range | 10 | 以玩家爲中心搜索容器的半徑(米)。 |

| UseStationBuildRange | true | 是否額外使用製作臺自身的建造半徑(隨等級/擴展變大)作爲搜索範圍。 |

| RequireAccess | true | 只使用你有權訪問的容器;私人箱子僅其建造者可用。 |

| DebugLogging | false | 輸出補丁細節日誌,用於排查。 |

改完需重啓遊戲。

會不會影響成就

不會。本 mod 不設置 Game.isModded、不觸碰人物的 m_usedCheats、不給物品打作弊標記。材料的判定與扣除完全走遊戲自身的 HaveRequirements / ConsumeResources 管線,只是把"附近容器"也納入統計。若你同時使用控制台作弊命令或其他主動標記 mod 的插件,則屬於那些功能自身的影響。

工作原理(簡述)

  • 需求判定:給 Player.HaveRequirementItems(配方)與 Player.HaveRequirements(Piece, mode)(建造)掛後置補丁。當原版判定"材料不足"時,把附近容器的庫存也算進來;滿足則放行。
  • 建造的製作臺判定:Piece 需要製作臺時,判斷位置改爲"玩家位置或物體位置任一命中",從而支持"人站在臺外、把物體放進臺內";HaveBuildStationInRange 本身會掃過全部同類製作臺,所以範圍重疊時兩個都會命中。
  • 建造 UI 文本:InventoryGui.SetupRequirement 後置補丁在"背包 + 容器"夠數時把材料數量文本恢復爲白色,不再播放紅色閃爍;Hud.SetupPieceInfo 後置補丁在"物體位置"命中製作臺時恢復製作臺指示的顏色與區域標記。
  • 實際扣料:給 Player.ConsumeResources 掛前置+後置補丁。前置記錄"玩家背包缺多少",原版優先從背包扣除(保持原版手感),後置再把剩餘缺口從附近容器里扣除。
  • 容器查找:每 5 秒掃描一次場景中的容器並緩存,同幀內的多次查詢直接複用結果,避免性能開銷。
  • 逐個掛載:補丁逐個手動掛載(而非 PatchAll),某個目標方法若因遊戲版本變動而改名,只會跳過它並記錄日誌,不會導致其餘補丁一起失效。
  • 多人同步:改動容器前若容器歸其他客戶端所有,先 ClaimOwnership,保證扣料會正確同步。

因此材料數量與原版嚴格一致:不會多扣、不會憑空產生,也不會繞過製作臺等級、屋頂、火焰等原版限制。

從源碼構建

  • 安裝.NET SDK(目標 netstandard2.1)與 Node.js(打包腳本用)。
  • 把本倉庫放到 Valheim 安裝目錄下(默認假定.. 就是遊戲根目錄)。
  • 遊戲根目錄需已安裝 BepInEx(BepInEx/core/BepInEx.dll、BepInEx/core/0Harmony.dll)。
  • 構建並生成發佈包:./build-package.sh 你的ThunderstoreTeam名

產物:dist/你的Team名-ValheimCraftFromContainers-版本號.zip

倉庫不在遊戲目錄下時,用屬性覆蓋路徑:

dotnet build -c Release -p:ValheimDir="C:\Steam\steamapps\common\Valheim\"

上傳到

  • 運行./build-package.sh SuperVikingDepartment 生成 dist/SuperVikingDepartment-ValheimCraftFromContainers-1.0.0.zip。
  • 打開,登錄後選擇該 zip 上傳。

zip 內容( 要求):

manifest.json 包元數據

README.md 商店頁正文

CHANGELOG.md 更新日誌

icon.png 256x256 圖標

LICENSE 許可證

plugins/ValheimCraftFromContainers.dll ← 會自動路由到 BepInEx/plugins/

已知問題 / 說明

  • 修改配置後需要重啓遊戲,無法熱插拔。
  • 用 r2modman 啓動時,插件與配置都在 profile 目錄下,遊戲安裝根目錄的 BepInEx 不參與加載。
  • 箱子在範圍內但隔着牆也同樣生效(按距離判定,不做視線檢測),與原版製作臺"看得到看不到都算"的判定一致。
  • 若按鍵/功能無效,把 BepInEx/LogOutput.log 發到問題區。加載成功會有 ValheimCraftFromContainers loaded 一行,並附帶各補丁的 prefix/postfix 計數。

來源與許可

MIT License,詳見倉庫內 LICENSE。歡迎提 issue / PR。

安裝與使用 安裝:BepInEx 外掛

  1. 本站下載的壓縮包就是模組本體,通常是 BepInEx 外掛(解壓後得到 .dll 或外掛資料夾)。
  2. 建議流程:用社群模組管理器(如 r2modman)選中本遊戲後匯入該模組,管理器會自動裝好 BepInEx 前置並處理依賴。
  3. 手動流程:先在遊戲目錄裝好 BepInEx 載入器,再把解壓出的 .dll 或外掛資料夾放進 BepInEx/plugins/。
  4. 啟動遊戲,BepInEx 控制台會列印載入日誌;確認這個模組出現在日誌裡即為安裝成功。

帶「前置依賴」的模組需要一併安裝,否則不會載入。功能開關通常在遊戲內或外掛自帶的設定檔裡調整。 多人連線時,主機與所有用戶端需要安裝一致的模組。

前置依賴

下面這些內容需要先安裝,否則該模組不會生效:

denikson-BepInExPack_Valheim

檔案與校驗

檔案名稱
ValheimCraftFromContainers-1.0.1.zip
檔案大小
23.4 KiB