ValheimDepositAll
在制作台界面添加「分发」按钮:一键把身上的物品分发到范围内的所有箱子中,箱子满了就留在身上。Adds a Deposit button to the crafting panel that distributes your inventory into nearby chests.ValheimDepositAll
在制作台界面里添加一个「分发」按钮:点一下就把身上的物品自动分发到范围内的所有箱子中。箱子满了就留在身上,不会丢东西。
适合「工作台旁边摆了一排分类箱子」的基地布局——做完东西不用再一个个开箱手动归类,一键把背包清空进箱子。
功能
- 一键分发:打开工作台 / 熔炉 / 切石机 / 工匠台 / 黑锻炉 / 铁锅等任意制作类建筑的界面,点击「分发」按钮即可。按钮就位于原版制作按钮的正下方。
- 自动找箱子:以玩家为中心(打开制作台时还额外以制作台为中心,按台子自身的建造半径)搜索范围内的所有容器,把物品分发进去。
- 只进同类箱子:只把物品放进「已经收着同类物品」的箱子。不会把全新种类的东西随口塞进恰好有空位的箱子,从而保持你自己给箱子分的类。如果附近没有对应分类的箱子,物品就留在身上。
- 保留装备与快捷栏:默认不碰身上已穿戴的武器、护甲、腰带、工具,也不碰快捷栏(按键 1-8 切换的背包第一行)里的物品——方便保留常用的食物、药水、工具。两者均可在配置里改成参与分发。
- 满了就留在身上:所有同类箱子都放不下的物品留在背包里,绝不丢弃。完成后在屏幕中央提示结果,并区分原因:
已分发 20 件到 2 个箱子,5 件没有对应分类的箱子,3 件因箱子已满,留在身上。 - 可拆分堆叠:一个箱子能塞多少塞多少,剩下的继续尝试下一个箱子,不浪费任何剩余空间。
- 就近优先:优先填充离玩家最近的箱子。
- 精确计算容量:按物品名称 + 品质 + 世界等级判断箱子的剩余空间,不会出现"算着能放、实际放不进"的情况。
- 多人安全:默认只分发到你有权访问的容器,私人箱子(仅建造者可用)不会被他人误塞;写入前会先取得容器所有权,保证改动正确同步。
兼容范围
- 覆盖所有
CraftingStation:工作台、锻造台(熔炉)、切石机、工匠台、黑锻炉、铁锅,以及各类扩展(StationExtension)提升等级后的范围。 - 目标容器是游戏里所有
Container:普通箱子、木箱、铁箱、推车等。 - 与 ValheimCraftFromContainers 互补:那个 mod 是"从箱子里取材料做东西",本 mod 是"把身上的东西放回箱子",范围判定逻辑一致,可同时使用。
- 不涉及冶炼炉 / 炭窑的放矿放燃料操作。
操作
打开任意制作台界面,点击「分发」按钮即可。无需快捷键,也无需逐个打开箱子。
配置
配置文件:BepInEx/config/SuperVikingDepartment.ValheimDepositAll.cfg
| 配置项 | 默认值 | 说明 |
|---|---|---|
General.Enabled |
true |
总开关,关闭后按钮不再出现。 |
General.Range |
10 |
以玩家为中心搜索容器的半径(米)。 |
General.UseStationBuildRange |
true |
额外以当前制作台为中心、按台子建造半径搜索。 |
General.RequireAccess |
true |
只分发到你有权访问的容器(私人箱子仅建造者可用)。 |
General.KeepEquipped |
true |
保留已装备的物品,不放进箱子。 |
General.SkipHotbar |
true |
保留快捷栏(按键 1-8 对应的背包第一行)里的物品,不放进箱子。 |
General.AddButton |
true |
是否添加「分发」按钮(关闭后本 mod 不改动界面)。 |
General.ButtonLabel |
空 | 按钮文字。留空 = 中文界面显示「分发」,其他语言显示「Deposit」。 |
General.ShowMessage |
true |
完成后是否在屏幕中央提示结果。 |
Diagnostics.DebugLogging |
false |
输出分发细节日志,排查问题用。 |
安装
方式一:r2modman / Thunderstore Mod Manager(推荐)
- 在 r2modman 中安装
ValheimDepositAll。 - 确保已安装依赖
BepInExPack_Valheim。 - 启动游戏。
方式二:手动安装
- 安装 BepInExPack for Valheim。
- 把
ValheimDepositAll.dll放到Valheim/BepInEx/plugins/。 - 启动游戏。
启动后在 BepInEx/LogOutput.log 里可见:
Loading [ValheimDepositAll 1.0.1]
[DepositAll] 已挂载补丁 InventoryGui.UpdateRecipe
[DepositAll] ValheimDepositAll loaded (v1.0.1)
从源码构建
需要 .NET SDK。仓库放在 Valheim 安装目录下的子文件夹里,直接构建即可:
dotnet build -c Release
若在其他位置构建:
dotnet build -c Release -p:ValheimDir="C:\...\steamapps\common\Valheim\"
打包发布 zip:
./build-package.sh
常见问题
按钮没出现?
确认 General.AddButton 与 General.Enabled 都是 true,并检查日志里是否有 InventoryGui.UpdateRecipe 的挂载记录。游戏大版本更新可能改变该方法签名,届时日志会明确报出。
箱子就在旁边,但没被分发到?
分两步看:一是 General.Range(默认 10 米)与箱子隐私设置——私人箱子只有建造者本人能分发进去,General.RequireAccess 关闭后会尝试所有箱子,但原版对 Group 权限的箱子本身也不可访问;二是该箱子里是否已经有同类物品——本 mod 只往同类箱子里放,新种类不会开新分类。提示信息会告诉你是哪一类原因。
有些东西没进箱子? 屏幕提示会区分「没有对应分类的箱子」和「同类箱子已满」两种情况。无论哪种,物品都安全地留在你身上,不会丢失。
许可
MIT
