ValheimChestNaming

版本 v1.2.2·更新於 2026-09-22

給箱子起名字:打開箱子按 N(可在遊戲設置裏改鍵),用遊戲原生輸入框改名,名字顯示在懸停提示與箱子界面標題上。Lets you name containers with the games native text dialog; hotkey configurable in-game.

模組介紹 作者原文

ValheimChestNaming

給箱子起名字。

打開箱子後按一個快捷鍵,就會彈出遊戲原生的文字輸入框(和給告示牌、傳送門起名用的是同一個),

輸入什麼,箱子就叫什麼。名字會顯示在準星懸停提示和箱子界面標題上,

準星對着箱子時還能看到一行操作提示,告訴你按哪個鍵改名。

名字存在箱子自己身上,隨存檔保存、多人遊戲自動同步——不需要配置文件,

也不依賴主機或某個玩家在線。

本 mod 只增加「起名」這一件事:不改任何配方、產量、容器容量或遊戲規則。

功能

  • 快捷鍵改名:準星對着箱子按 N(可在遊戲「設置 → 鍵盤與鼠標」裏改鍵)即可改名——

開沒開箱子都行;彈出遊戲原生輸入框,輸入即生效;留空則恢復默認名字。

  • 懸停提示:看着箱子時顯示自定義名字,並在原版「按 E 打開」下方追加一行快捷鍵提示。
  • 界面標題:箱子界面頂部的標題顯示自定義名字。
  • 多人同步:名字寫進箱子的 ZDO,隨存檔與聯機同步,所有玩家都能看到。
  • 私有區域內纔可改名:默認與原版告示牌一致,防止別人給你的箱子亂起名字。

操作

| 按鍵 | 作用 |

| --- | --- |

| E | 打開箱子(原版) |

| N | 打開改名輸入框(開着箱子或準星對着箱子都行;可在遊戲設置裏改鍵) |

| 回車 | 確認改名 |

| Esc | 取消改名 |

準星對着箱子時會看到:

礦石箱

[E] 打開 (長按全部堆疊)

[N] 重命名

安裝

方式一:r2modman Mod Manager(推薦)

  • 在 mod 管理器裏搜索 ValheimChestNaming 安裝(會自動帶上 BepInEx 依賴)。
  • 本地導入:把 dist/SuperVikingDepartment-ValheimChestNaming-.zip 拖進

Settings → Import local mod。

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

  • 先裝好 BepInExPack for Valheim(denikson-BepInExPack_Valheim)。
  • 把 ValheimChestNaming.dll 放進 BepInEx/plugins/。
  • 啓動遊戲。

用 r2modman 啓動時,遊戲根目錄的 BepInEx 會被配置文件的目錄覆蓋,

手動放進根目錄的插件在 r2modman 下不會生效——請裝進對應配置裏。

配置

配置文件:BepInEx/config/SuperVikingDepartment.ValheimChestNaming.cfg

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

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

| Enabled | true | 總開關。關閉後不顯示提示、不能改名,完全恢復原版。 |

| CharacterLimit | 30 | 名字最大長度,同時作爲輸入框的輸入上限。 |

| ShowHoverHint | true | 是否在懸停提示裏顯示快捷鍵那一行。 |

| ShowInContainerTitle | true | 是否把箱子界面頂部標題換成自定義名字。 |

| RequireAccess | true | 是否只在私人區域內才能改名。 |

| DebugLogging | false | 輸出排查日誌,正常遊玩建議關閉。 |

改名快捷鍵不在配置文件裏:它註冊進了遊戲原版鍵位系統,默認 N,

在遊戲內「設置 → 鍵盤與鼠標」列表最下方的「重命名箱子」一行修改,

綁定隨遊戲自動持久化,「重置按鍵」會恢復默認 N。

會不會影響成就

不會。本 mod 不設置 Game.isModded、不觸碰 m_usedCheats,也不改動任何遊戲規則,

只讀寫箱子自身的名字數據。

兼容範圍

  • 所有容器:普通箱子、私人箱子、鐵箱、木桶、手推車(只要它本質上是 Container)。
  • 多人遊戲:名字由 ZDO 同步,所有客戶端可見。
  • 與原版告示牌/傳送門的輸入框共存:複用同一套 UI,行爲一致。

工作原理(簡述)

  • 存名字:把名字寫進箱子自己的 ZDO(遊戲用來存世界對象數據的機制),

做法與原版告示牌 Sign.SetText 完全一致。多人遊戲裏先取得該箱子的所有權再寫,

之後由遊戲自身的 ZDO 同步機制廣播給其他玩家。

  • 改名字:調用原版 TextInput.instance.RequestText(...),傳入本 mod 實現的一個

TextReceiver。玩家按回車後,遊戲回調這個對象,本 mod 再寫進 ZDO。

完全複用原版輸入框,不自己造輪子。

  • 顯示名字:
  • 懸停提示:補丁追加在原版 Container.GetHoverText() 的結果後面。
  • 界面標題:補丁掛在 InventoryGui.UpdateContainer() 上——原版正是在這裏每幀

重寫標題的,補在同一個方法裏才能穩定覆蓋。

  • 不改 Container.m_name:那是 prefab 上的序列化字段,改了不會存進存檔,

還會污染同 prefab 的其它箱子,所以只走 ZDO。

  • 快捷鍵接入原版鍵位系統:啓動時通過反射把按鈕註冊進 ZInput(默認綁 /n,

標記爲可改鍵),並在設置界面 KeyboardMouseSettings.SetupKeys() 後克隆一行原版按鍵行

加進 m_keys 列表,改鍵、衝突提示、重置默認、保存/加載全部複用原版邏輯。

  • 兩條改名觸發路徑,天然互斥:
  • 開着箱子:補丁掛在 InventoryGui.Update 上,檢測到按鍵就彈輸入框(界面開着時才跑);
  • 沒開箱子:插件自身的 Update() 用原版聚合判定 Player.TakeInput() 過濾掉

聊天/控制台/菜單/死亡/傳送等場景,再取準星所指的箱子彈輸入框;

  • 背包界面開着時 TakeInput() 恆爲 false,界面關着時開箱路徑拿不到容器,

所以同一按鍵不會一幀裏彈兩次框。

  • 按鍵提示顯示當前綁定名:走 Localization.GetBoundKeyString,

在設置界面改鍵後,懸停提示會自動顯示新按鍵名。

從源碼構建

需要.NET SDK 與 Node(打包器用 Node 寫)。

cd ValheimChestNaming

dotnet build -c Release # 產物:bin/Release/netstandard2.1/ValheimChestNaming.dll./build-package.sh # 打包:dist/SuperVikingDepartment-ValheimChestNaming-.zip

node tools/make-icon.js # 重新生成 icon.png(可選)

工程默認假定本目錄位於遊戲根目錄下(.. 即 Valheim 安裝目錄)。

若在別處構建,可覆蓋路徑:

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

上傳到

zip 內結構如下( 要求元數據在根目錄、DLL 走 plugins/ 路由):

manifest.json

README.md

CHANGELOG.md

LICENSE

icon.png

plugins/ValheimChestNaming.dll

已知問題 / 說明

  • 手柄玩家:改名快捷鍵默認沒有對應的手柄綁定(提示行會回落顯示鍵鼠鍵名)。

可以在設置界面的改鍵對話框裏給該行綁一個手柄鍵;暫時不用手柄改名的話忽略即可。

  • 若 N 與你的其它 mod 衝突,在遊戲「設置 → 鍵盤與鼠標」裏改鍵即可,無需重啓。
  • 名字過長會擠佔懸停提示的寬度,建議保持在 30 字符以內。

排查

改裝後沒反應時,看 BepInEx/LogOutput.log:

  • 啓動時會打印每個補丁掛載情況,例如

[ChestNaming][diag] Container.GetHoverText: prefix=0, postfix=1。

postfix=1 表示補丁已生效;若爲 0 或出現 未找到... 的錯誤,說明遊戲版本不兼容。

  • 把 DebugLogging 設爲 true 可看到改名讀寫的細節日誌。

來源與許可

MIT License,詳見倉庫內 LICENSE。

安裝與使用 安裝:BepInEx 外掛

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

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

前置依賴

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

denikson-BepInExPack_Valheim

檔案與校驗

檔案名稱
ValheimChestNaming-1.2.2.zip
檔案大小
23.4 KiB