
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.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; реальная проверка двумя игроками и на выделенном сервере ещё нужна.