Dyls123-ItemPull icon

ItemPull

Client-side chest search, locate, pull, deposit and group sorting. Lock items and craft or build with nearby resources. Configurable range, shortcuts, item groups and optional biome sorting.

By Dyls123
Last updated a day ago
Total downloads 314
Total rating 1 
Categories Tweaks Crafting Client-side Utility Building AI Generated
Dependency string Dyls123-ItemPull-0.4.1
Dependants 0 other packages depend on this package

This mod requires the following mods to function

denikson-BepInExPack_Valheim-5.4.2350 icon
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.2350

README

ItemPull

Search, locate, pull and deposit items, and craft or build with resources in nearby chests.

Client-side only: install ItemPull on your own client. The server and other players do not need it. Search results and Locate markers are visible only to you. BepInEx process filters allow the game client and exclude the dedicated-server executable.

Using ItemPull

  1. Open your inventory and select ItemPull above the player inventory.
  2. Type part of an item's name. Search is case-insensitive and uses the game's translated item names. An empty search lists all available item types.
  3. Each result shows its total quantity and the number of matching chests. Quality and appearance variants have separate results. Use Previous/Next for additional pages.
  4. Select Locate to close the inventory and show cyan chest outlines with chest names, item quantities and distances. The markers show through walls and expire after 4 seconds by default. Off-screen labels appear at the edge of the screen.
  5. Enter a positive Pull amount, or select All, then select the result's Pull button. Items are taken from matching chests nearest first. Full inventories accept only what fits; remaining items stay in storage.

Deposit: with your inventory open, hover an item in your personal inventory and click the scroll wheel (middle mouse). The clicked, unequipped stack moves into accessible chests containing that exact item first, nearest first, then chests containing only items in the same configured group. It can spread across several chests when needed. Other stacks in your inventory remain untouched. The ItemPull panel does not need to be open. If no eligible chest is nearby, nothing happens. Full chests leave the remainder in your inventory. Contents and group settings are checked again after access is granted.

Middle-click also works while a container is open. Your own open, owned chest can receive items without a second access request and stays open afterwards. Chests being used by another player are skipped. Hover your personal inventory, rather than an item inside the container.

Deposit All: select the button beside ItemPull above your inventory. It applies the same exact-first, then group routing to each unlocked stack. Locked, equipped, quest and unmatched items stay in your inventory, along with anything that cannot fit. Empty chests are never seeded. Closing inventory cancels the remaining batch.

Group sorting: enabled by default. For example, Fine Wood can enter a chest containing only Wood and Core Wood even when it has no Fine Wood yet. A chest containing Wood and Stone is mixed, so it accepts exact matches only. An unrecognised item in a chest also prevents inferring its group. Seed an empty chest manually with one item from your intended group. The mod deposits personal stock; it does not rearrange existing chest contents.

Item locks: hover a stack and press Alt + middle-click to lock or unlock it. A gold [L] marker and tooltip identify locked stacks. Locks block both Deposit All and middle-click deposit. They follow the item through saves, moves, splits, merges and upgrades; when locked and unlocked stacks merge, the combined stack is locked. The lock protects against automatic deposits; it does not prevent ordinary manual item movement or resource consumption.

Crafting and building: use the normal crafting, upgrade and build controls. Nearby chest materials count toward the requirements using the same configured radius. Personal resources are consumed first, followed by the exact shortage from nearby accessible chests, nearest first. Ingredients do not need spare inventory slots, but crafted results still need normal inventory space. Recipe discovery, station levels, placement rules, stamina, durability and output amounts follow the native game.

Chest access is checked before completing an action; denied, busy or unavailable chests cannot provide materials. Keep the placement target steady while access is pending. Moving or rotating the target cancels that build; click again at the new target. Closing inventory or pressing Craft Cancel cancels pending crafting. You can disable chest crafting and chest building separately in the config.

Deposit ignores other UI covering an inventory item, typing, item dragging and split dialogs. Exact matches compare item name, quality, appearance variant and world level. Group membership is based on item identity/type; native transfers preserve stack metadata and only merge compatible items. The shortcut supports keyboard keys, mouse buttons and modifiers; rebinding left/right click gives Deposit priority over native drag/equip for that gesture.

Search refreshes after typing and when transfers finish. Refresh updates results after another player changes a chest. Pull and Locate recheck results when selected. Closing the inventory cancels pending transfers; already transferred items remain where they were moved. Closing only the ItemPull panel leaves an authorised transfer running.

Pull follows normal inventory stacking and weight behaviour. It can encumber your character. Item properties are cloned by the game's native transfer method; merging compatible stacks follows the game's normal rules.

Installation

Requires BepInEx 5 for Valheim. The package declares denikson-BepInExPack_Valheim-5.4.2350, the pack used for runtime testing. Jötunn is not required.

Mod manager: install ItemPull in your Valheim profile and launch the game through your mod manager. Its declared BepInEx dependency is installed automatically. To try the upload ZIP before publication, use your manager's local-mod import option with ItemPull-0.4.1-thunderstore.zip.

Manual installation: close Valheim and install BepInEx for Valheim. Extract the Dyls123-ItemPull folder from ItemPull-0.4.1.zip into BepInEx/plugins/. The resulting DLL path should be BepInEx/plugins/Dyls123-ItemPull/ItemPull.dll. The Thunderstore upload ZIP instead contains ItemPull.dll at its root; for manual use, place that DLL in the same plugin folder. Replace the previous DLL and keep only one copy in your profile; remove any old plugins/ItemPull/ItemPull.dll or nested copy when migrating to the new folder. The plugin GUID and existing config remain Dyls123.ItemPull; the example config is documentation and is not installed as an active config.

Install on your client only. Server installation is unnecessary. The release contains no game assemblies or test plugins.

Configuration

First launch creates BepInEx/config/Dyls123.ItemPull.cfg.

Setting Default Range
Search / Radius 60 metres 1–100 metres
Locate / Duration 4 seconds 3–120 seconds
Controls / DepositItem Mouse2 (middle click) KeyboardShortcut; None disables
Controls / LockItem Mouse2 + LeftAlt KeyboardShortcut; None disables
Resources / CraftFromChests true Enable/disable chest crafting and upgrades
Resources / BuildFromChests true Enable/disable chest building
Grouping / Enabled true False restores exact-item-only deposits
Grouping / UseBiomeGroups false True replaces standard categories with biome presets
Grouping / ApplyToMiddleClick true False keeps single-stack shortcut deposits exact-item-only

For example, DepositItem = F6 deposits the hovered stack with F6; DepositItem = Mouse2 + LeftControl requires Ctrl and middle click. LockItem = F7 changes the lock toggle to F7. If both shortcuts match, locking takes priority. The same radius applies to search, pull, deposit, crafting and building.

Editing groups

All groups are in the same BepInEx/config/Dyls123.ItemPull.cfg. The included Dyls123.ItemPull.cfg.example contains every default list. Existing configs gain the new sections on first launch; existing settings are preserved.

  • 20 standard categories: Wood; Stone and Minerals; Ore and Scrap; Metal Bars; Hides and Leather; Creature Materials; Seeds and Planting; Cooking Ingredients; Mead Bases; Mead and Potions; Prepared Food; Textiles and Fibres; Fuel and Resin; Valuables; Trophies; Tools and Utility; Weapons and Shields; Ammunition; Armour and Clothing; Special Materials.
  • Nine optional biome presets: Meadows, Black Forest, Swamp, Mountains, Plains, Mistlands, Ashlands, Deep North and Ocean. These describe item origin/progression, independent of where you put the chest. They are editable starting lists, not an exhaustive classification of every item or mod. Shared items use the first matching preset. Deep North entries use IDs present in the installed game; unavailable IDs on older versions simply never match.
  • Five blank custom groups: CustomGroups.01 through CustomGroups.05. Fill in both Name and Items to activate one. Custom groups work with either standard or biome mode and have priority over both.

Each section has an editable Name and comma-separated Items. A blank name or item list disables that group. Keep section headers unchanged. Members use internal prefab IDs, not translated display names: for example, RoundLog is Core Wood and ElderBark is Ancient Bark. Matching ignores case and spaces around entries. Semicolons also separate entries.

Example custom group:

[CustomGroups.01]
Name = My Building Materials
Items = Wood, FineWood, RoundLog, Stone, MyModMaterial*

The * wildcard matches any characters in a prefab ID. type:Trophy, type:Tool and similar native ItemType selectors match whole item types, including modded items of that type. Invalid type selectors are ignored. Standard presets use these selectors for food, equipment and other broad categories; clear or replace them when you want explicit membership only.

An item belongs to one group: custom slots in number order first, followed by the active mode's groups in number order. This lets a custom group override a built-in rule without editing that rule. For example, the custom group above groups Stone with Wood instead of the usual mineral category. Items without any matching rule still deposit into exact-match chests. Renaming a group does not change its priority.

Set UseBiomeGroups = true to choose biome sorting instead of standard categories. Set Enabled = false to disable all group routing, including custom and biome groups. These settings affect deposits only; crafting, building, searching and pulling retain their existing behaviour.

On the first 0.2.0 launch, previous default settings of 30 metres and 20 seconds automatically change to 60 metres and 4 seconds. Other custom values are preserved. This migration happens once; later edits remain unchanged.

The radius is a three-dimensional distance from your character, not the camera. Only loaded, accessible static chests are searched. Increasing the radius does not load distant areas. Private chest permissions and wards are respected. Graves, dropped bags, carts and ship holds are excluded.

Use your mod manager's config editor while the game is closed, or a compatible in-game config editor. Loaded changes apply to the next relevant action; group changes also invalidate the cached membership rules. Editing the file directly while the game is running requires a config reload or restart.

Multiplayer and compatibility

The mod is designed for client installation and uses the game's normal chest-open permission/ownership exchange, so it does not introduce custom server RPCs. Busy, denied, destroyed or out-of-range chests are skipped. Transfers only run after the game grants access and the client owns the chest, with contents refreshed first. Late responses to cancelled requests are consumed without transferring items or unexpectedly opening the inventory.

Other inventory, ward or container mods can change these behaviours.

Valheim Plus: when its CraftFromChest section is enabled, ItemPull automatically defers all chest crafting, upgrades, building and requirement counts to Valheim Plus. Those actions use Valheim Plus's range and rules; ItemPull search, locate, pull, deposits, locks and grouping still work normally. Disable Valheim Plus's CraftFromChest section and restart the game to use ItemPull's chest crafting/building instead. Reading the live Valheim Plus configuration also respects server-synchronised settings. If a loaded Valheim Plus version has an unreadable resource configuration, ItemPull defers these resource features and logs a warning.

Version 0.4.1 fixes a conflict where an item could be produced before resource consumption threw an exception, leaving the native crafting timer active and repeatedly producing output. A failed completion now stops the timer. Already produced items or consumed ingredients are not retroactively changed.

Building and testing

Requires the .NET 9 SDK and a local Valheim installation. This release is built against the installed Valheim 1.0.17 assemblies.

dotnet build ./src/ItemPull/ItemPull.csproj -c Release
./scripts/Test-Unity.ps1
./scripts/Test-Unity.ps1 -CapturePreview
./scripts/Test-Unity.ps1 -ValheimPlusDll "path/to/ValheimPlus.dll"
./scripts/Package.ps1
./scripts/Validate-Package.ps1 -Path ./dist/ItemPull-0.4.1-thunderstore.zip

For another installation, pass -p:ValheimDir="path" to dotnet or -ValheimDir "path" to the scripts. The build may report the game's System.Net.Http / System.IO.Compression reference-version conflicts with netstandard; these APIs are not used by ItemPull.

Packaging creates both a manual archive containing the explicit Dyls123-ItemPull folder and dist/ItemPull-0.4.1-thunderstore.zip. The upload ZIP has manifest.json, a 256x256 icon.png, this README and ItemPull.dll at its root. Publish under the Dyls123 team so the mod manager creates BepInEx/plugins/Dyls123-ItemPull/. The packaging script checks the exact file list, current source hashes, matching versions, manifest fields, image format/dimensions and documentation encoding before finalising the upload ZIP. Publishing instructions are in docs/THUNDERSTORE.md in the source workspace.

The runtime smoke script launches an isolated headless Valheim process with separate saves and plugins. It needs a BepInEx core in .local/smoke/BepInEx/core/ or the supplied game installation. It exercises real Unity UI prefabs and native inventory transfers, with synthetic chest fixtures. It does not join or edit your existing worlds, and does not replace a real multiplayer or visual gameplay test. See docs/TESTING.md for the gameplay checklist.