
Inventory Tweaks
Client-side inventory improvements: combine and arrange stacks, pin item slots, filter automatic pickups with Ctrl + middle-click, and save bindings, filters and settings separately for each character.Inventory Tweaks
Combine stacks, reserve inventory slots for your favorite items, and keep a separate setup for each Valheim character.
Client-side only. No dedicated server installation is required. The interface uses Russian when the game language is Russian and English for all other languages.
Features
-
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. Pinned stacks are filled first. -
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.
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.
Русский
Inventory Tweaks — клиентский мод для объединения стопок и закрепления предметов за ячейками. На выделенном сервере установка не требуется.
- Кнопка «Объединить» заполняет одинаковые стопки до максимума. При лимите 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}. В нём нет списка ячеек, поэтому отсутствующие закрепления нужно назначить заново. Существующие корректные раскладки читаются как прежде.
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.