Please disclose if any significant portion of your mod was created using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
Inventory Tweaks
Craft and build using nearby chests. Combine stacks, pin slots, filter automatic pickups and deposit nearby. Separate settings per character and crafting station. Network chest features require the mod on clients and server.
| Date uploaded | 2 weeks ago |
| Version | 2.2.2 |
| Download link | Xtasy-Inventory_Tweaks-2.2.2.zip |
| Downloads | 139 |
| Dependency string | Xtasy-Inventory_Tweaks-2.2.2 |
This mod requires the following mods to function
denikson-BepInExPack_Valheim
BepInEx pack for Valheim. Preconfigured with the correct entry point for mods and preferred defaults for the community.
Preferred version: 5.4.2351README
Inventory Tweaks
2.2.2 restores native ingredient/fuel loading effects, removes duplicate chest serialization on station transfers, checks item presence before chest permissions, and reads the live ward registry without scene-wide searches. Owner-side validation and receipt deduplication remain in place; no forced character saves are added. In-game performance and audible effects still require testing.
2.2.2: восстановлены штатные эффекты и звуки добавления сырья и топлива. Убраны повторная сериализация сундука и поиск защитных зон по всей сцене; наличие ресурса проверяется до прав доступа к сундуку. Проверки владельцем объекта и защита от повторной доставки сохранены. Принудительных сохранений персонажа нет. Скорость и воспроизведение звуков ещё нужно проверить в игре.
2.2.2 adds a scrollable large pickup filter, prefers newer timestamped character bindings over an older local file, and shares one resource-count snapshot per recipe-list refresh.
Uncertain network requests are suspended after 15 seconds or a world change, allowing unrelated chests to work. The affected chest cannot start another operation until its prior receipt is resolved. Recovery retries in the original world when the chest is available; no speculative duplicate refunds are issued. Station destruction is handled by its owner: delivered inputs are not refunded, while proven undelivered reservations return to their chest.
On death, confirmed escrow joins the normal grave. Late refunds create an additional grave at the original death position when the character visits within 40 m; keep/delete-on-death rules are respected. No forced character saves are introduced. A crash before normal saves, source-chest destruction during uncertain delivery, or loss of its owner before acknowledgment can still require recovery; these cases are not loss-proof.
Изменения 2.2.2: большие фильтры прокручиваются; более новые настройки закреплений и фильтра в сохранении персонажа имеют приоритет над старым локальным файлом. Иконки рецептов используют общий снимок количества ресурсов на одно обновление.
Зависшие сетевые запросы после 15 секунд или смены мира откладываются, не блокируя работу с другими сундуками. Спорный сундук исключён из новых операций до подтверждения старой; восстановление повторяется при возвращении в исходный мир к доступному сундуку. Ресурсы без подтверждения не выдаются повторно. Разрушение станции обрабатывается её владельцем: подтверждённая доставка не возвращается, недоставленный резерв возвращается в сундук.
При смерти подтверждённые остатки ресурсов уходят в обычную могилу. Поздние возвраты создают дополнительную могилу в месте смерти, когда персонаж находится в пределах 40 м; правила сохранения/удаления инвентаря при смерти учитываются. Принудительных сохранений персонажа нет. Аварийный выход до штатного сохранения, разрушение исходного сундука во время неопределённой доставки или потеря владельца до подтверждения всё ещё могут потребовать восстановления; гарантии от потерь при этих событиях нет.
Crafting and building from chests do not force character or Steam Cloud saves. Pending transfers and unused ingredients follow normal character saves and logout. A crash before saving can roll the character back relative to the world; recovery of an unsaved transfer is not guaranteed.
Крафт и строительство из сундуков не вызывают принудительное сохранение персонажа или Steam Cloud. Состояние переноса и остатки ингредиентов записываются при обычном сохранении персонажа и выходе. После аварийного завершения до сохранения возможен откат персонажа относительно мира; восстановление такой несохранённой операции не гарантируется.
Building icons refresh immediately when changing resource mode or radius, preserving menu selection and scroll.
Manual station loading from chests — 2.2.2
The Ingredients and Food checkboxes beside the radius allow manual station interactions to use nearby chest resources. Both default off and are saved per character. They do not load anything in the background. Press/hold the station's normal interaction key to add one item per accepted interaction; carried items retain vanilla priority, then compatible chest inputs are selected in the station's recipe order, searching nearest chests first. Ingredients covers Smelter processors and their fuel. Food covers roasting stands/ovens and their own fuel; finished food collection and fire requirements remain vanilla. Cauldrons, fermenters and campfires are not included.
The radius field controls which loaded, accessible chests can supply resources. [AutoFeed] Enabled retains its existing config name for compatibility but now controls manual loading only. New station transfers, both local and remote, go directly from the source chest to the station, without saving the character or uploading it to Steam Cloud. A pending remote item and its receipt are kept in world object data; rejection refunds the source chest (or waits there for space). Nearby chest candidates are cached; carried-item interactions bypass chest and ward searches. All clients and the server need 2.2.2. Legacy transfers already saved by 2.0.0 retain their recovery path. Object destruction before acknowledgment or partial world rollback can leave a pending transfer requiring recovery; no blind duplicate refund is issued. In-game multiplayer testing is still required.
Ручная загрузка станций из сундуков — 2.2.2
Чекбоксы Ингредиенты и Еда справа от радиуса разрешают брать ресурсы из сундуков при ручном взаимодействии со станцией. Оба по умолчанию выключены и сохраняются у персонажа. Фоновой загрузки нет. Нажатие или удержание обычной кнопки взаимодействия добавляет одну единицу за принятое действие. Сначала используются предметы героя по обычным правилам, затем подходящие ресурсы из сундуков: виды сырья выбираются в порядке рецептов станции, сундуки — от ближайшего к дальнему.
«Ингредиенты» охватывает переработчики Smelter и их топливо. «Еда» — жарочные стойки, печи и их собственное топливо. Снятие готовой еды и необходимость огня сохраняются. Котёл, бродильные бочки и костры не затрагиваются. Радиус задаёт поиск доступных загруженных сундуков. Имя секции [AutoFeed] Enabled сохранено для совместимости конфига, но теперь она включает только ручную загрузку.
Новые передачи в станции — локальные и удалённые — идут напрямую из исходного сундука, без сохранения персонажа и загрузки его данных в Steam Cloud. Незавершённый удалённый перенос хранится в данных объектов мира; если станция отказала, предмет возвращается в исходный сундук или ждёт там появления места. Список ближайших сундуков кэшируется; обычная загрузка предмета из инвентаря героя не запускает поиск сундуков и защитных зон. Версия 2.2.2 нужна всем игрокам и серверу. Для уже сохранённых передач 2.0.0 оставлен старый путь восстановления. Разрушение объекта до подтверждения или частичный откат мира могут оставить незавершённую передачу; автоматическое дублирующее возмещение не выполняется. Проверка мультиплеера в игре ещё необходима.
Combine stacks, reserve inventory slots for your favorite items, and keep a separate setup for each Valheim character.
Nearby-chest crafting/building and remote deposits require 2.2.2 on all clients and the dedicated server. Inventory-only features remain client-side; MultiUserChest is optional. The interface uses Russian when the game language is Russian and English for all other languages.
Crafting and building from chests — 2.2.2
The hammer menu's controls sit below the selection window, outside its scroll viewport. In Chests mode the selected building's material labels show available / required, including accessible chest resources. Inventory mode restores vanilla labels; the station indicator is unchanged.
Crafting-station and building menus now have an Inventory / Chests toggle and an editable radius, default 50 m. Inventory is the default and keeps vanilla resource use. Chests spends carried ingredients first, then retrieves missing ingredients from the nearest accessible loaded stationary chests, including occupied chests. Required station levels, known recipes, item quality, world level and output space still apply. Pinned ingredients remain usable for crafting/building, as in vanilla.
The recipe's available / required count includes found chest resources. No additional recipe popups are added. Mode and radius are saved per character and per physical station, with a separate setting for building. Players sharing a station keep independent preferences; a newly rebuilt station starts with defaults.
[CraftFromChests] Enabled = false disables only this feature and hides its controls, retaining saved preferences. DefaultRadius = 50 sets the initial radius. Configuration applies live.
The action waits for confirmed ingredients. Changing the station, recipe, mode, radius or building position cancels the waiting action; it also cancels after 15 seconds. Outstanding network requests continue recovery. Unused received ingredients return to the inventory; a full inventory retains the remainder in character escrow until space opens. No items are dropped. Do not delete pending records if a peer or a requested chest becomes unavailable. As with deposits, independently rolled-back world and character saves cannot guarantee transaction consistency.
Features
-
Startup notice: a native main-menu warning about mods with overlapping functionality, once per launch. Check Don't show again and click Got it to save a profile-wide opt-out. Re-enable it with
[Startup] ShowCompatibilityNotice = true. -
Combine stacks: a small button beneath the inventory fills matching stacks to their maximum size. For example,
45 / 25 / 50 / 20becomes50 / 50 / 40when the stack limit is 50. Selected ammunition is filled first to preserve its selection; other groups prefer pinned stacks. -
Selected ammunition: selected arrows and bolts can merge despite the game marking them equipped. Manual stacking, automatic pickup and Combine work with compatible ammunition. Consolidation fills the selected stack first up to its maximum, preserving its item object and blue selection. Other equipped item types remain excluded; metadata compatibility still applies.
-
Arrange on Combine: pressing Combine also places matching items into their pinned cells. Foreign occupants move to free ordinary or matching cells. Safe swaps can use the source item's vacated cell, including full-inventory cycles. If no valid layout is available, that move is left unchanged. Correctly placed items stay in place.
-
Pin slots: middle-click an item to bind its type to that cell. Middle-click again, including an empty pinned cell, to remove the binding.
-
Pickup filter: Ctrl + middle-click drops the selected stack and blocks that prefab from automatic pickup. A native inventory cell with the full-size item icon and a thin red cross appears below the buttons (without quantity, quality or durability labels); left-click it to remove the filter. Filters ignore quality, durability and crafter, remain separate for each character, and survive rejoining. Refused drops do not add a filter. Manual pickup and chest transfers remain available.
-
Hide filter / Show filter: the button beside Reset hides or shows pickup-filter icons while filtering stays active. The preference is saved per character. Default: shown; configurable live with ShowPickupFilter.
-
Reset: clear all bindings and the automatic pickup filter for the active character with one click. The empty layout is saved immediately; items, mode settings and other characters are unaffected.
-
Visible bindings: a small golden lock at the top center and a thin yellow border mark pinned cells. The lock leaves the quality label at the top-right unobstructed. ShowPinnedSlotBorder (default true) controls only the border; disabling it keeps the lock and binding. The preference applies live and is saved per character. Empty pinned cells show a translucent grayscale item icon.
-
Wrong-item indicator: a small yellow exclamation mark at the bottom-left of a pinned cell indicates that its occupant does not match the binding. It has the same size as the lock icon, respects crafter/quality rules and does not intercept clicks.
-
Crafted items: bindings match the prefab and crafter. Quality matching is optional and disabled by default. Durability is always ignored for binding. Other items are bound by prefab.
-
Control hints: white middle-click and Ctrl + middle-click hints appear below the buttons in the same font and size. They hide when the pickup filter contains any item, even if its icons are hidden, and return when it becomes empty. They also hide for storage windows. ShowControlHints (default true) enables them, applies live and saves per character.
-
Border toggle: the square beside A/M switches yellow slot borders. Yellow fill means enabled; inventory-brown fill means disabled. It uses the same ShowPinnedSlotBorder setting, saves per character and has Russian/English tooltips. Lock icons and bindings remain.
-
A / M toggle: the square button to the left of Combine switches between automatic consolidation after picking up items (A, default) and manual consolidation (M).
-
Strict / Free toggle: strict automatic placement reserves pinned cells for matching items. Free placement allows other incoming items to occupy them. Matching items still prefer their available pinned cells.
-
Manual placement: by default, you can manually place another item into a pinned cell without removing its binding. This can be disabled independently of Strict / Free.
-
Move items freely: manually moved items stay where you place them until you explicitly press Combine. Ordinary clicks, saving and automatic A mode do not trigger pinned-cell arrangement.
-
Expandable inventory: buttons follow the lower edge of the inventory panel when its size changes. Bindings use cell coordinates and retain out-of-bounds cells if the inventory temporarily shrinks.
-
Separate characters: every character has its own bindings, pickup filter, modes, quality policy, manual placement policy and interface settings. Changes are saved immediately.
-
Live configuration: edit settings without restarting the game.
-
Storage windows: the six buttons and pickup-filter strip hide while a chest or another storage container is open, and reappear when it closes. Bindings, filters and settings are retained.
-
Keep pinned supplies: holding Use (E by default) or clicking Move similar items skips whole stacks in their matching pinned cells. Crafter and optional quality criteria apply; durability is ignored. Foreign occupants and matching items in other cells still follow normal transfer rules. Manual transfers remain available, independently of Strict/Free and A/M.
Installation
Install with Thunderstore Mod Manager, r2modman, or another compatible mod manager. BepInExPack Valheim is the only required dependency.
For manual installation, install BepInExPack Valheim, then place InventoryTweaks.dll in BepInEx/plugins/InventoryTweaks/.
When upgrading from a manually installed test build, replace that DLL rather than keeping duplicate copies in different plugin folders.
Controls
| Control | Action |
|---|---|
| Middle mouse button on a cell | Pin or unpin the slot |
| Combine | Consolidate compatible stacks and arrange items by slot bindings |
| Ctrl + middle mouse button on an item | Drop the selected stack and block its prefab from automatic pickup |
| Left mouse button on a crossed-out icon | Remove that prefab from the automatic pickup filter |
| Hide filter / Show filter | Toggle icon visibility while automatic pickup filtering stays active |
| Reset | Clear every binding and the pickup filter for the current character |
| Square beside A/M | Toggle pinned-cell borders: yellow on, inventory brown off |
| A / M | Automatic combining after pickups / manual combining |
| Strict / Free | Restrict automatic placement / allow other pickups in pinned cells |
All six buttons and the filter anchor directly to the inventory window bottom-left corner; background image bounds do not affect their position. Filter icons appear below them on the inventory panel background, retain the native cell tint and wrap to another row as needed. Hover over buttons and filter icons for tooltips.
Automatic consolidation runs after an actual ground pickup completes and waits while an item is being dragged. It does not produce repeated status messages. In M mode, Valheim's normal stacking of newly added items remains active; the mod's additional consolidation runs only when you click Combine.
Pinned-cell arrangement is a manual action on the Combine button in either A or M mode. It respects the current crafter and quality binding criteria, uses space freed by consolidation, and never sends a foreign item into another unrelated pinned cell.
Nearby chest deposits
Opening a stationary chest shows a Here / Nearby mode button and a radius input with localized tooltips. Default: Here, 50 m. The controls sit outside the top-right edge of the chest window, with the mode above the radius. Their placement is independent of the chest grid size. Carts, ship cargo and graves do not receive these controls.
- Here: keep the native Move similar items / hold-Use action for the open chest.
- Nearby: the same actions deposit into loaded, accessible chests within the player radius, nearest first. A chest must already contain the item's prefab. Compatible partial stacks fill first, then empty cells in that same chest. An empty or unrelated chest does not receive that item.
- Items in matching pinned slots, equipped items and quest items remain with the player. Different quality, crafter, variant and custom data are retained in separate stacks.
- Enter a radius from 1 to 1000 metres and press Enter or leave the field. Both decimal points and commas are accepted. Mode and radius are saved separately for each character, and old saves default to Here / 50 m.
- Another owner's chest receives an idempotent deposit request; ownership is not transferred. Occupied chests are included. Access and ward permissions are checked for the sender. Only currently loaded chests are searched.
- Disabling the feature or changing mode/radius stops new work. Deposits already sent continue settling through their saved pending transaction and receipts.
[NearbyStorage]
Enabled = true
Mode = Open
Radius = 50
Enabled = false hides only these two storage settings and restores normal deposits. The rest of Inventory Tweaks continues working, including protection of matching pinned items during bulk deposits. This switch is global to the profile; mode and radius belong to the active character. Configuration applies without restarting.
Configuration
The configuration file is generated automatically:
BepInEx/config/com.xtasy.InventoryTweaks.cfg
Default values for a new character:
[Combining]
AutoCombineOnPickup = true
[Pinning]
UseCraftedItemQualityForPinning = false
AllowManualPlacementIntoOtherPinnedSlots = true
StrictAutoPickup = true
[Interface]
ShowPickupFilter = true
ShowPinnedSlotBorder = true
ShowControlHints = true
CombineButtonOffset = {"x":-5.0,"y":-10.0}
GhostOpacity = 0.35
| Setting | Effect |
|---|---|
| AutoCombineOnPickup | true: A mode; false: M mode. The A/M button saves this setting. |
| UseCraftedItemQualityForPinning | Also match the quality of crafted items. Durability is still ignored. |
| AllowManualPlacementIntoOtherPinnedSlots | Allow manual placement of other items while retaining the cell's original binding. |
| StrictAutoPickup | true: Strict; false: Free. The placement-mode button saves this setting. |
| ShowControlHints | Show white control hints below the buttons when the pickup filter is empty (default true). Matches button font/size; applies live and saves per character. |
| ShowPinnedSlotBorder | Show yellow borders on pinned cells (default true). Disabling keeps locks and bindings. Applies live; saved per character. |
| ShowPickupFilter | Show pickup-filter icons (default true). Hiding them does not disable filtering. Saved per character. |
| CombineButtonOffset | Offset of the buttons and filter from the panel's outer bottom-left edge. Defaults: X=-5, Y=-10. Positive X moves right; negative Y moves down. |
| GhostOpacity | Empty pinned icon opacity, from 0.05 to 0.8. |
Saved configuration edits are normally detected within 0.75 seconds. Compatible configuration managers can apply changes immediately.
Character persistence
Each character is identified by its stable numeric character ID, not its name or account. Its setup is saved immediately to:
BepInEx/config/InventoryTweaks/pins/<character-ID>.json
A .bak file retains the previous saved revision. Bindings, pickup filters and settings are also mirrored into the character's save data. Existing bindings from older versions are imported when no separate file exists.
The .cfg file reflects the active character. Editing it or using the mode buttons changes that character's settings. Selecting another character restores that character's own values, including A/M and Strict/Free. New characters start with the defaults above.
Empty pinned cells, pickup filters and explicitly cleared bindings/filters are preserved after rejoining.
Stacking and compatibility
Consolidation preserves differences in prefab, crafter, quality, variant, world level, cheat state, durability of durable items and custom item data. Items with different metadata are not collapsed into a single stack. Ignoring quality for binding does not erase item quality during stacking.
Other mods that replace inventory UI, stacking or placement rules may require additional compatibility work. This package was built against the locally installed Valheim assemblies; compatibility with every inventory mod or future game update is not guaranteed.
Upgrading from 1.0.3
Version 1.0.4 fixes an initialization failure when an older character save contains only {"version":1}. This legacy format has no cell bindings, so any missing bindings need to be assigned again. Existing valid layouts remain readable. A binding-load error no longer blocks the Combine action.
Русский
В главном меню один раз за запуск показывается предупреждение о других модах с похожими функциями. «Понял» закрывает окно. Галочка «Не показывать больше» сохраняется при подтверждении для всего профиля мода. Вернуть окно: [Startup] ShowCompatibilityNotice = true.
Крафт и строительство из сундуков — 2.2.2
В меню молота переключатель и радиус находятся под окном выбора построек, вне области прокрутки. В режиме «Сундуки» материалы выбранной постройки показывают «доступно / требуется» с учётом сундуков; «Инвентарь» возвращает обычные подписи. Указатель необходимой станции не меняется.
В меню крафтстанции и строительства появились «Инвентарь / Сундуки» и поле радиуса, по умолчанию 50 м. Начальный режим «Инвентарь» оставляет обычную механику. «Сундуки» сначала расходует ресурсы персонажа, затем получает недостающее из ближайших доступных загруженных сундуков, включая занятые. Проверки рецепта, уровня станции, качества, уровня мира и места под результат сохраняются. Закреплённые ингредиенты расходуются как в обычной игре.
В рецепте число «доступно / требуется» учитывает найденные ресурсы, без дополнительных всплывающих окон. Выбор и радиус сохраняются отдельно для каждого персонажа и конкретного экземпляра станции, а для строительства — отдельно. Настройки игроков у общей станции не влияют друг на друга. После повторной установки станции её настройки будут начальными.
В отдельной секции [CraftFromChests] параметр Enabled = false отключает только эту функцию и её интерфейс, сохраняя индивидуальный выбор. DefaultRadius = 50 задаёт начальный радиус. Конфиг обновляется без перезапуска.
Нужна 2.2.2 у всех игроков и на сервере. Действие ожидает подтверждённые ресурсы; смена станции, рецепта, режима, радиуса или позиции постройки отменяет его, как и ожидание дольше 15 секунд. Начатый сетевой запрос продолжает восстановление. Неиспользованные полученные материалы возвращаются в инвентарь; при нехватке места остаток сохраняется у персонажа до освобождения ячеек. На землю предметы не выбрасываются. При недоступном узле/сундуке не удаляйте запись ожидающей операции. Независимый откат мира и персонажа имеет те же ограничения, что сетевой перенос.
Inventory Tweaks — мод для объединения стопок, закрепления ячеек и переноса по сундукам. Для сетевого переноса нужна эта обновлённая сборка у всех игроков и на выделенном сервере. MultiUserChest необязателен.
- Кнопка «Объединить» заполняет одинаковые стопки до максимума. При лимите 50 набор
45 / 25 / 50 / 20превращается в50 / 50 / 40. Выбранные для стрельбы боеприпасы заполняются в первую очередь, сохраняя выбранную стопку; у остальных групп приоритет закреплённых ячеек. - Выбранные стрелы и болты объединяются, несмотря на игровой признак экипировки. Ручное объединение, подбор и кнопка работают с совместимыми боеприпасами. При объединении модом выбранная стопка получает приоритет до лимита; сохраняется её объект и выбор для стрельбы. Другие экипированные предметы остаются защищены.
- При нажатии «Объединить» предметы также занимают свои закреплённые ячейки, а чужие освобождают их, если есть подходящее место. Поддерживаются безопасные обмены. Если места нет, невозможное перемещение не выполняется. Эта расстановка не запускается от обычных щелчков и автоматического объединения A.
- Средняя кнопка мыши закрепляет тип предмета за ячейкой. Повторное нажатие снимает закрепление, в том числе с пустой ячейки.
- Ctrl + СКМ выбрасывает выбранную стопку и запрещает автоматический подбор предметов этого префаба, без учёта качества, прочности и создателя. На подложке с текстурой панели инвентаря под кнопками появляется штатная ячейка с полноразмерной иконкой и тонким красным крестом, без количества, качества и прочности; ЛКМ по ней удаляет запись из фильтра. Фильтр сохраняется после перезахода отдельно для каждого персонажа. При отказе выброса новая запись не создаётся; ручной подбор и перенос из сундуков доступны.
- «Скрыть фильтр» / «Показать фильтр» справа от «Сброс» управляет только иконками; фильтр автоподбора продолжает работать. Состояние сохраняется отдельно для персонажа. В конфиге — ShowPickupFilter, по умолчанию true, с применением без перезапуска.
- «Сброс» снимает все закрепления и очищает фильтр автоподбора активного персонажа, сразу сохраняя результат. Предметы, остальные настройки и другие персонажи не изменяются.
- Закрепление отмечено замком сверху по центру и тонкой жёлтой рамкой. Значок не закрывает качество предмета справа вверху. Параметр Interface/ShowPinnedSlotBorder (по умолчанию true) отключает только рамку, сохраняя замок и закрепление. Применяется без перезапуска и сохраняется отдельно для персонажа. Пустая ячейка показывает серую полупрозрачную иконку.
- Если в закреплённой ячейке лежит другой предмет, слева внизу появляется маленький жёлтый «!», размером с замок. Знак исчезает, когда ячейка освобождается, закрепление снимается или предмет соответствует условиям закрепления.
- Для созданных предметов учитываются префаб и создатель. Учёт качества включается отдельно и по умолчанию выключен. Прочность при закреплении не учитывается. Для остальных предметов достаточно префаба.
- Белые подсказки под кнопками показывают управление СКМ и Контрол + СКМ. Шрифт и размер совпадают с кнопками. При добавлении первого предмета в фильтр подсказки исчезают, после удаления последнего или «Сброса» возвращаются. Непустой фильтр скрывает подсказки, даже если иконки выключены; при открытом контейнере подсказки тоже скрыты. Параметр Interface/ShowControlHints (по умолчанию true) полностью отключает подсказки, применяется без перезапуска и сохраняется для персонажа.
- Квадрат справа от A/M включает или выключает обводку закреплённых ячеек: жёлтый — включена, коричневый в цвет инвентаря — выключена. Меняет тот же ShowPinnedSlotBorder, сохраняется для персонажа, подсказка переведена. Значки закрепления остаются.
- Квадратная кнопка A/M слева от «Объединить» переключает автоматическое объединение после подбора и ручное объединение. По умолчанию включён A. В M штатное добавление новых предметов в стопки игры сохраняется.
- «Строго» резервирует закреплённые ячейки для подходящих автоматически добавляемых предметов. «Свободно» позволяет занимать их другими предметами, сохраняя само закрепление.
- Разрешение вручную класть другой предмет в закреплённую ячейку настраивается отдельно и по умолчанию включено.
- Перемещённый вручную предмет остаётся на новом месте до явного нажатия «Объединить». Кнопки и фильтр привязаны напрямую к нижнему левому краю окна и следуют за расширением инвентаря. Границы фонового изображения больше не вызывают смещение за край экрана.
- У каждого персонажа свои закрепления, фильтр автоподбора и настройки, включая A/M, Строго/Свободно, качество, ручное размещение, положение кнопок и прозрачность иконок. Изменения сохраняются сразу по уникальному ID персонажа.
- Правки файла конфигурации применяются без перезапуска, обычно в течение 0,75 секунды. Конфиг отображает настройки активного персонажа.
При открытом сундуке или другом объекте с окном хранения шесть кнопок мода и фильтр скрываются, чтобы не перекрывать его интерфейс. После закрытия контейнера они появляются снова; данные сохраняются.
Удержание кнопки использования (по умолчанию E) и «Переместить похожее» не забирают стопки из закреплённых за ними ячеек. Учитываются создатель и настройка качества; прочность игнорируется. Чужие предметы в закреплении и подходящие предметы в других ячейках переносятся по обычным правилам игры. Ручной перенос доступен; режимы A/M и Строго/Свободно не влияют на защиту.
Установка: через менеджер модов либо вручную — InventoryTweaks.dll в BepInEx/plugins/InventoryTweaks/. Требуется только BepInExPack Valheim. При обновлении тестовой сборки замените прежнюю DLL, чтобы не оставить две копии мода.
Конфиг: BepInEx/config/com.xtasy.InventoryTweaks.cfg. Отдельные настройки персонажей: BepInEx/config/InventoryTweaks/pins/<ID-персонажа>.json.
При русском языке игры интерфейс русский; для остальных языков — английский. Подсказки кнопок переведены.
Обновление с 1.0.3: исправлена блокировка закрепления и объединения при чтении старого формата {"version":1}. В нём нет списка ячеек, поэтому отсутствующие закрепления нужно назначить заново. Существующие корректные раскладки читаются как прежде.
Перенос в сундуки рядом
При открытии стационарного сундука появляются переключатель «Сюда / Рядом» и поле радиуса с подсказками. По умолчанию — «Сюда», 50 м. Элементы располагаются снаружи справа у верхнего края окна сундука: сверху режим, ниже радиус. Расположение не зависит от размера сетки сундука. В телегах, кораблях и могилах эти настройки не появляются.
- Сюда: обычное действие «Переместить похожее» или удержание кнопки использования (по умолчанию E) для открытого сундука.
- Рядом: эти действия переносят вещи во все доступные загруженные сундуки в радиусе от игрока, начиная с ближайших. Для каждого типа предмета выбираются только сундуки, где этот тип уже есть. Сначала заполняются совместимые неполные стопки, затем свободные ячейки того же сундука. Пустые сундуки и сундуки без подходящего типа предмета не заполняются этим предметом.
- Предметы в своих закреплённых ячейках, экипированные и квестовые предметы остаются у персонажа. Качество, создатель, вариант и данные других модов сохраняются: несовместимые по метаданным предметы занимают отдельные стопки.
- Радиус — от 1 до 1000 м. Ввести число и нажать Enter либо выйти из поля; можно использовать точку или запятую. Режим и радиус сохраняются отдельно для каждого персонажа. Старые сохранения получают «Сюда» и 50 м.
- Владелец сундука обрабатывает запрос переноса без передачи владения. Занятые сундуки включаются в поиск. Доступ и разрешения оберегов проверяются для отправителя. Поиск учитывает только загруженные сундуки.
- Отключение функции и изменение режима/радиуса останавливают новые операции. Уже отправленные операции завершаются по сохранённым подтверждениям; после смены персонажа незавершённый перенос продолжится при возвращении исходного персонажа.
[NearbyStorage]
Enabled = true
Mode = Open
Radius = 50
Mode = Open — «Сюда», Mode = Nearby — «Рядом». Enabled = false отключает только перенос по сундукам рядом и его два элемента управления. Остальные функции Inventory Tweaks продолжают работать, включая защиту подходящих предметов в закреплённых ячейках при массовом переносе. Переключатель Enabled общий для профиля, режим и радиус — для активного персонажа. Конфиг применяется без перезапуска.
License
MIT. See LICENSE.
The default button/filter offset is X=-5, Y=-10. Saved custom offsets are preserved; live configuration edits and resetting this setting to its defaults remain supported.
Occupied chests and MultiUserChest
Install 2.2.2 on all players and the dedicated server for network chest features. MultiUserChest is optional. Inventory-only features remain local. An older build without the appropriate protocol will not accept a remote request.
Nearby includes occupied chests. The owner applies each request to its current inventory without transferring network ownership or closing anyone's window. Here targets only the selected chest; holding Use for at least half a second on an occupied chest starts the deposit even when vanilla cannot open it. With MultiUserChest, the open shared chest's Move similar items button also works.
Access and ward permissions are checked for the requesting player. Matching pinned items, equipped items and quest items remain with the sender. Compatible stacks fill first, then free cells only in chests that already contain that item type. The owner recalculates available capacity when processing the request.
Items awaiting confirmation are tracked in character customData before sending and persisted on normal character saves, without forced profile or Steam Cloud saves. Unsaved transfers are not crash-durable. Duplicate requests use the chest's stored receipt. Unaccepted items return to inventory; if it is full, the remainder stays in the pending transfer until space becomes available. Disabling the feature or changing modes stops new work but allows already-sent transfers to settle. A network timeout does not automatically refund an uncertain deposit. Return to the original world and chest to resolve it; an unavailable or destroyed destination can require manual recovery. Keep the mod installed while a transfer is pending. Normal world/character save rollback limitations still apply after crashes or restored backups.
MultiUserChest 0.6.2 reservations are detected automatically. Combining, Ctrl+middle-click dropping and new bulk deposits wait while relevant inventory slots are reserved. This build passed automated tests with simulated network, profile storage and MultiUserChest boundaries; a real two-player/dedicated-server test is still required.
Занятые сундуки и MultiUserChest
Для сетевых функций сундуков установите 2.2.2 у всех игроков и на выделенном сервере. MultiUserChest необязателен. Локальные функции инвентаря работают на клиенте. Старая сборка без соответствующего протокола не обработает сетевой запрос.
«Рядом» учитывает занятые сундуки. Предметы добавляет владелец сундука, без смены сетевого владения и закрытия чужого окна. «Сюда» направляет вещи только в выбранный сундук. Удержание кнопки использования не менее половины секунды на занятом сундуке запускает перенос, даже когда обычная игра не позволяет открыть его. С MultiUserChest работает и кнопка «Переместить похожее» в совместно открытом сундуке.
Доступ и разрешения оберега проверяются для отправителя. Совпадающие с закреплением предметы, экипировка и квестовые вещи остаются у персонажа. Сначала заполняются совместимые стопки, затем свободные ячейки сундуков, где уже есть этот тип предмета. Владелец заново проверяет свободное место при обработке запроса.
До отправки предметы учитываются в данных персонажа как незавершённый перенос. Запись на диск происходит при обычном сохранении персонажа, без принудительного сохранения и Steam Cloud. Восстановление несохранённого переноса после аварийного закрытия не гарантируется. Повторный запрос получает сохранённый результат, без повторного добавления. Непринятый остаток возвращается; если места нет, он хранится в незавершённом переносе до освобождения ячейки. Выключение функции и смена режима прекращают новые операции, но уже отправленные завершаются. При задержке ответа автоматического возврата неопределённого переноса нет: это могло бы создать копии. Вернитесь в исходный мир к тому же сундуку. Недоступный или уничтоженный сундук может потребовать ручного восстановления. Не удаляйте мод при незавершённом переносе. При аварийном завершении игры или восстановлении резервных копий остаются обычные ограничения раздельного сохранения мира и персонажа.
Резервы ячеек MultiUserChest 0.6.2 определяются автоматически. Объединение, выброс через Ctrl+СКМ и новый массовый перенос ждут завершения соответствующих сетевых операций. Автоматические проверки выполнены с имитацией сети, сохранения персонажа и MultiUserChest; реальная проверка двумя игроками и на выделенном сервере ещё нужна.
CHANGELOG
2.3.2
- Added a final confirmed-resource check before building placement; isolated building resource context and corrected no-cost consumption handling.
2.3.1
- Removed chest loading for cooking stations and the Food toggle; processor ingredients and recipe crafting remain available.
2.3.0
-
Enlarged the compatibility notice and matched its text to the gold checkbox label font.
-
Fixed access to private game members in shared chest handling.
-
Compatibility notice returns after a version change; simplified English and Russian documentation.
-
Added simultaneous multiplayer chest access, enabled by default in its own configuration section.
-
Added owner-validated shared chest operations, duplicate-request protection and pending-operation recovery.
-
Updated the Russian and English startup compatibility warning.
Changelog
2.2.2
- Restore native ore, fuel and food loading effects once per successful delivery. Replayed receipts do not replay sounds.
- Remove duplicate chest serialization from station transfers; use the live ward registry and skip permission checks for chests without the requested item.
- Preserve owner-side permissions, capacity checks, network deduplication and normal game saving.
2.2.1
- Suspend unresolved network transfers without blocking unrelated chests or another world; retain their receipts and prevent uncertain refunds.
- Settle station destruction using confirmed delivery receipts.
- Route confirmed escrow and late refunds through death rules instead of returning items after respawn.
- Add scrolling to large pickup filters, prefer newer timestamped character settings, and reuse resource counts while refreshing recipe icons.
- Retain normal game saving only; no forced character or Steam Cloud saves.
2.2.0
-
Refresh recipe-list icons and labels while using chest resources, on source/radius changes and as resources change. Use single-craft availability without resetting selection or scroll.
-
Remove remaining forced profile saves from remote chest deposits and legacy station-transfer recovery; pending state follows normal character saves.
-
Remove forced character/Steam Cloud saves from chest crafting and building withdrawals, consumption and refunds. Keep transaction state in customData for normal character saves; retain receipt deduplication. Unsaved transfers are not crash-durable.
-
Use «сундук/сундуки» consistently throughout the Russian interface, tooltips and documentation.
2.1.0
-
Do not force character/Steam Cloud saves when opening hammer or crafting menus. Mode, checkbox and radius changes apply immediately and persist with normal character saves, without forced saves on interaction.
-
Send manually requested station resources directly from chests, including remote owners, without character/Steam Cloud saves per item. Keep pending items and deduplication receipts in world objects; refund rejected resources to their source chest.
-
Cache nearby chest candidates and bypass chest/access searches when carried items can be used. Preserve manual-only loading, one item per accepted interaction, and legacy 2.0.0 recovery.
-
Refresh building icon availability immediately when changing Inventory / Chests or the search radius, without rebuilding or reopening the menu.
-
Require 2.1.0 on clients and server for the new direct transfer protocol.
2.0.0
-
Detect the current game's inventory serialization version instead of requiring format 109; support format 110 and previous compact saves when recovering chest transfers and automatic loading.
-
Fix local-owner packet reading for chest withdrawals and automatic station loading: read fresh packets from the beginning for requests and replies. Add coverage for all four local/remote chest and station ownership combinations.
-
Add per-character Ingredients / Food checkboxes (off by default) for manual station interactions using chest resources, one item per action. No background loading; local transfers avoid character/Steam Cloud saves.
-
Position crafting/building mode and radius tooltips below the controls with a gap; split long hints into readable lines.
-
Add a localized native main-menu compatibility notice once per launch, with Don't show again and Got it. Persist the opt-out for the mod profile via Startup/ShowCompatibilityNotice.
-
Keep the building-mode toggle and radius below the left edge of the visible hammer selection window, outside its clipped viewport. Anchor to the window frame rather than the full-screen BuildUi root. Show available / required materials in the building HUD using the building setting, including pieces that use the crafting-cost world modifier.
-
Add crafting at stations and building using nearby accessible chests, including occupied chests with owner-confirmed withdrawals and MultiUserChest reservation support.
-
Add Inventory / Chests and a radius field to both menus. Default to Inventory and 50 m. Save mode and radius per character, per physical station, and separately for building.
-
Include chest resources in the recipe's available / required count without extra recipe popups. Spend carried ingredients first, then nearest chests; retain vanilla recipe and placement checks.
-
Add an independent live CraftFromChests configuration section. Disabling it hides only its controls and restores vanilla crafting/building, retaining other mod features and saved choices.
-
Save pending withdrawals and unused ingredients with the character; deduplicate owner replies, cancel changed actions and retain refunds when inventory space is unavailable. Requires 2.0.0 on all clients and the server.
1.2.0
-
Deposit into occupied chests through their owner without changing ownership or closing another player's window. Requires this build on all clients and the server; MultiUserChest is optional.
-
Save pending deposits with the character, deduplicate retries using chest receipts, and retain unaccepted items until inventory space is available.
-
Respect sender permissions and MultiUserChest 0.6.2 slot reservations. Add held-Use deposits on occupied chests, even without opening them.
-
Add simulated network/relogin/conservation, reservation and occupied-hold checks.
-
Add Here / Nearby chest-deposit modes and a radius field with localized tooltips; default to Here and 50 m. Place the controls outside the top-right edge of the chest window, with the mode above the radius, for every chest size.
-
Nearby deposits target loaded accessible chests that already contain each item type, filling compatible stacks then free cells, nearest first.
-
Retain matching pinned, equipped and quest items; respect sender privacy and ward permissions, with owner-handled requests for occupied chests.
-
Save mode and radius per character. Add a global NearbyStorage/Enabled switch that disables only this feature and hides its settings.
-
Add randomized planning, persistence, input validation and production coordinator tests, including denied/late ownership responses and cancellation.
-
Label the modes Here / Nearby (Сюда / Рядом in Russian) and explain the destination, stack and free-cell rules, and transfer controls in the tooltip.
1.1.2
- Fix manual stacking, pickup stacking and Combine for selected arrows and bolts marked equipped by the game.
- Fill selected ammunition first up to its stack maximum, retaining the selected item object and its selection.
- Keep other equipped item types protected and preserve metadata compatibility and stack limits.
- Add selected-ammo regression checks, including 500 randomized inventories.
1.1.1
- Move the pin lock icon to the top center of inventory cells so it no longer covers the item quality label. Keep its size and top padding.
1.1.0
-
Add white localized control hints below the buttons, matching their font and font size.
-
Show hints only when the pickup filter is empty; restore them when its last entry is removed or Reset is used. Hide them for storage windows.
-
Add ShowControlHints (default true), with live configuration and per-character persistence.
-
Add a square border toggle beside A/M: yellow when enabled, inventory brown when disabled. Uses ShowPinnedSlotBorder, retains locks/bindings and includes localized tooltips.
-
Add ShowPinnedSlotBorder (default true) to toggle yellow slot borders while retaining lock icons and bindings. Applies live and saves per character.
-
Add Hide filter / Show filter beside Reset to toggle icon visibility while automatic pickup filtering remains active.
-
Save filter visibility per character and support live configuration changes with ShowPickupFilter (default true).
-
Keep matching items in their pinned cells when holding Use or clicking Move similar items to deposit into storage.
-
Protect complete stacks before any partial merge, respecting crafter identity and the active quality setting while ignoring durability.
-
Preserve normal transfer rules for foreign occupants and items outside their matching pinned cells, and keep manual transfers available.
-
Add production-hook regression checks for matching criteria, destination/source scope and nested or failed operations.
1.0.8
- Hide the mod buttons and pickup-filter strip while a chest or another storage container is open.
- Restore them when the container closes, preserving bindings, filters and settings.
- Refresh visibility immediately on opening and closing, and after the native storage panel updates.
1.0.7
- Add an automatic pickup filter: Ctrl + middle-click drops the selected stack and blocks automatic pickup of that item type.
- Show filtered items below the inventory buttons with crossed-out icons; left-click an icon to remove its filter.
- Save filters separately for each character. Reset clears both slot bindings and the pickup filter.
1.0.6
- Make the manual Combine button also arrange items into their pinned cells after consolidating stacks.
- Move foreign pinned-cell occupants to available ordinary or matching cells.
- Support safe swaps and displacement cycles, including full inventories; roll back impossible chains without overwrites or item loss.
- Keep correctly placed items in place and preserve all item instances and metadata.
- Keep automatic A mode limited to consolidation; ordinary clicks and manual moves do not trigger arrangement.
- Add arrangement checks covering 500 randomized inventories, full-inventory cycles, unavailable space, crafting criteria and expanded grids.
1.0.5
- Add a small yellow exclamation mark at the bottom-left of pinned cells occupied by nonmatching items.
- Match the marker's size to the lock icon and keep mouse input unobstructed.
- Respect crafter identity and the active quality-matching setting when deciding whether to show the marker.
1.0.4
- Fix migration of legacy saves containing only
{"version":1}, which prevented pinning and combining in 1.0.3. - Define explicit JSON data contracts and restore defaults for omitted optional fields.
- Keep stack consolidation available when binding data cannot be read, preserving unreadable data.
- Add Reset to clear the active character's bindings and persist the empty layout without changing modes or other characters.
- Avoid repeated configuration reloads after the reload itself updates the file timestamp.
1.0.3
- Save slot bindings and all mod settings separately for each character's unique ID.
- Write changes immediately to per-character files and mirror them into character save data.
- Preserve empty pinned cells and explicitly cleared layouts across sessions.
- Add atomic file replacement, backup recovery and migration of legacy embedded bindings.
- Guard the complete character-loading process against premature initialization.
1.0.2
- Restrict button actions to direct pointer clicks to prevent slot clicks and shared Submit input from activating Combine.
- Remove forced relocation of manually moved items.
- Add a square A/M toggle to the left of Combine, with automatic combining enabled by default.
- Consolidate after actual ground pickups, deferring work while an item is being dragged.
- Add Russian and English tooltips for the new mode.
1.0.1
- Add a thin yellow border to pinned cells, alongside the lock icon.
- Initialize button tooltips with native game templates to fix hover exceptions.
1.0.0
- Add stack consolidation across any number of compatible stacks.
- Add persistent slot bindings, middle-click pinning and translucent grayscale icons for empty pinned cells.
- Add Strict/Free automatic placement modes and optional crafted-item quality matching.
- Add configurable manual placement into pinned cells and live configuration reload.
- Add Russian UI with English fallback for other game languages.
- Anchor inventory buttons to the panel so they follow inventory expansion.