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.
NearbyStore
Stack carried items onto matching existing stacks in nearby chests. Unmatched items and overflow stay carried. Alt+F protects favorites.
| Date uploaded | a week ago |
| Version | 1.1.0 |
| Download link | Jarki-NearbyStore-1.1.0.zip |
| Downloads | 29 |
| Dependency string | Jarki-NearbyStore-1.1.0 |
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
NearbyStore 1.1.0
An inventory Stack nearby button fills existing item stacks in nearby placed chests. Left Alt + F favorites the hovered inventory stack so it stays with you. Client-side; no Jotunn dependency or server installation.
1.1.0 changes storage to stacking only. Unlike 1.0.0, it never fills empty chest slots. Stack-only gameplay passed isolated native-client checks with actual inventory/button input and character favorite save/reload before the version bump. Multiplayer and modpack compatibility remain unverified. Try a separate profile and disposable saves first; inventory automation moves real items, so keep backups.
Use
- Open your inventory. Hover a stack and press Left Alt + F to toggle its favorite marker. A gold F identifies favorites.
- Close any open chest, then click Stack nearby below the player inventory.
- Chests within 10 metres are visited nearest first. Items fill compatible existing stacks only: stone goes onto stone, wood onto wood. No new stacks are created, even when a chest has empty slots.
- If no matching stack has room, the item stays carried. Partial transfers leave the remainder in its original inventory slot.
Favorites, equipped items, queued-for-equip items and quest items stay carried. Unequipped hotbar items are eligible unless favorited. Empty chests receive nothing. Vanilla stack limits and quality/world-level compatibility apply. Private ownership, wards, busy containers and the vanilla ownership handshake are checked; tombstones, dropped loot and non-Piece containers are excluded. Search is spherical, including through walls and between floors.
Favorites belong to stacks, not slots, using vanilla item custom data. Moving or splitting a stack retains its marker. Manual merging keeps the destination stack's marker: merging a favorite into an unmarked stack can remove protection. Re-favorite the merged stack if needed. NearbyStore never deposits a favorite source stack. Favorite persistence was verified through an actual disposable character-file save and reload in the running game.
Dragging, splitting, chat, menus, death and teleportation disable storage. Closing inventory cancels remaining transfers without undoing completed transfers. A missing network response stops the operation after five seconds; late responses from this operation are intercepted rather than running vanilla stack-all on favorites.
After a timeout, open the affected chest normally, close it, then retry. Already-owned chests can be used without another network request. A still-remote chest with an unanswered request is deliberately skipped until ownership arrives or the container reloads: vanilla replies have no request ID, so overlapping retries cannot safely be distinguished from late replies. A hover-stack request on that same quarantined chest can also be consumed by the late-response guard; opening the chest normally avoids that RPC path. No automatic retry is attempted.
Requirements and installation
Requires Valheim and denikson-BepInExPack_Valheim 5.4.2351. Native-client checks used Valheim l-1.0.20, Unity 6000.0.75f1.
- Mod manager: install
Jarki-NearbyStorein a separate Valheim profile and accept its BepInEx dependency. Launch modded using your normal loader route. - Manual: with Valheim closed and a working OS-appropriate BepInEx loader,
copy
plugins/NearbyStore/intoBepInEx/plugins/, resulting inBepInEx/plugins/NearbyStore/NearbyStore.dll. KeepLICENSE; remove duplicate NearbyStore DLLs. Native Linux uses Linux Doorstop, not Proton DLL overrides.
Configuration
First load creates BepInEx/config/jarki.nearbystore.cfg. Edit while the game is
closed:
[Storage]
Radius = 10
[Controls]
FavoriteShortcut = F + LeftAlt
Radius is in metres, constrained to 1–50. The current favorite shortcut appears below the button. Favorites can be toggled in the player inventory even while a chest is open; storing requires the chest to be closed.
Uninstall, compatibility and troubleshooting
Close Valheim and remove BepInEx/plugins/NearbyStore/NearbyStore.dll; remove its
config separately if desired. No custom item prefabs or world objects are added.
Favorite custom-data markers are inert without the plugin. Already deposited items
remain where they were stored. Uninstall/reinstall and cross-version behavior
have not been runtime-tested.
Other inventory, chest, UI, controller and sorting mods have not been compatibility tested. Multiplayer, real remote-owner concurrency and denied wards remain unverified. Private/busy/out-of-range exclusion was exercised locally. This is not a claim that the plugin is safe on a live server.
For missing UI or errors, include game/mod versions, reproduction steps and relevant
redacted BepInEx/LogOutput.log entries in a report. Never post private saves,
passwords or tokens.
Verification, license and credits
The stack-only Release build succeeds with two existing MSB3277 framework-reference conflicts. 12/12 standalone cases and 3/3 adversarial groups pass: 320 deterministic seeds, 8 rounds and 10,240 checked deposits, plus fixed-point repeats. These use handwritten inventory API doubles to check matching-only merges, unchanged empty cells, protection, metadata, conservation and source-position stability. A disposable production-core smoke also confirmed partial stone merging, unmatched items staying carried, and favorite protection.
The stack-only gameplay DLL passed 74 native-client checks, including fixture assertions, on Valheim l-1.0.20 / Unity 6000.0.75f1 / BepInExPack 5.4.2351, before the release version was changed to 1.1.0. No gameplay code changed afterward; the version-bumped DLL and release ZIP were not separately launched in-game. Real Tab/Alt+F/button input verified partial matching merges across chests, overflow/unmatched/full-stack items remaining carried, untouched empty slots, favorites, repeated-click no-ops, and later transfers after matching stacks were seeded. Private/busy/range exclusion, character-file favorite save/reload and injected ownership-delay/late-response/quarantine cases passed. Screenshots of the button and favorite marker were inspected at default, 70% and 130% UI scale. The client logged out cleanly; successful-run logs contained no plugin exception.
Initial automation was blocked by a focus-stealing Steam dialog. A later run found an unexpectedly empty second fixture chest; its precise cause was not proven. Disabling structural/weather wear on floating test chests and checking their contents before clicking produced the passing run without changing the production DLL. These are isolated local checks, not multiplayer or release-ZIP verification. No live profile or server deployment was performed.
Historical published 1.0.0 evidence, not verification of the stack-only change: An isolated native client completed 38 checks, including fixture assertions: real Tab/Alt+F/button input, favorites retained while 32 wood/stone units were stored, unfavorite then storing 8 food units, matching-first/overflow behavior, private/busy/range exclusions, actual character-file favorite save/reload, and clean logout. Screenshots were inspected at default, 70% and 130% UI scale.
A granted-before-ownership-update race was reproduced before the fix and passed afterward using injected ownership transitions on real local game containers. Late canceled responses and already-owned quarantine recovery were also exercised. These are not two-client network tests. The candidate DLL was installed from the release ZIP into a fresh isolated profile; mod-manager local-import UI was not tested.
One earlier automation run failed the second-storage destination assertion before its quantities were logged. Two instrumented runs of the identical DLL, in fresh and reused disposable worlds, passed with zero food left carried and eight units in the intended chest. The earlier assertion's cause is unconfirmed; its evidence is retained rather than treated as proof of a fixed production defect.
Original code and programmatic package icon: MIT, copyright 2026 Jarki, see
LICENSE. Valheim, BepInEx and Harmony belong to their respective owners; no game,
loader, library binaries or extracted assets are included. Developed with
OpenAI Codex assistance: earlier release work used gpt-6.1-sol; this
stack-only update and release preparation used gpt-6-astra.
Categorized AI Generated.
Project repository · Report issues. NearbyStore source is public; this release preparation does not push the 1.1.0 changes to GitHub.
CHANGELOG
Changelog
1.1.5
- Replace the gold F favorite marker with a small bottom-left padlock: rounded metal shackle, beveled brass body and native-style shading, above stack quantities and durability bars. Alt+F, favorite save data, native indicators and Epic Loot rarity frames are unchanged.
- Verify the padlock with Epic Loot 0.15.6 in native single-player: 142 fixture/compatibility checks, all six rarity pairs, equipped magic armor, food, Alt+F toggles, inventory reopen and item-slot swaps. Rarity colors/sprites and magic metadata remain unchanged. One untraced Unity scene-loading error precedes badge creation; multiplayer and other UI configurations remain unverified.
- Replace the old screenshots with a fresh native after-stacking capture showing the final padlocks. The release-version DLL also passes 60 isolated checks including actual Alt+F, a real wand click storing 24 wood and 18 stone, favorite retention and chest conservation.
1.1.4
- Skip native insertion and inventory notifications for guaranteed no-capacity destinations, while retaining matching overflow, useful partial transfers and native restriction hooks.
- Keep inventory mutations on the main thread, spread work across frames with a cooperative 2 ms budget and at most 32 candidates/productive transfers per frame, and allow up to four active ownership/transfer slots. Cheap rejected items do not force extra frames.
- Request nearest candidates first, while allowing ready chests to finish before nearer chests still waiting for ownership.
- Continue past individual five-second ownership timeouts and bound each operation to 15 seconds. Stop admitting work once the original carried-stack snapshot has no transferable items.
- Process favorite input before advancing transfers. Recheck source membership, protection, access and ownership before each step; newly added stacks wait for the next click.
- Prevent overlapping vanilla and mod stack requests to the same loaded chest. Retain unresolved response guards after cancellation/timeouts; vanilla stacking waits until the original response arrives.
- Prune destroyed-container references and clear stale favorite markers on native grid rebuild.
- Verify 16 standalone cases, three adversarial groups, 36 workload oracles, and a native smoke plus 11 scenario groups. Native controlled-delay/full-chest improvements and limitations are recorded in the development README; real multiplayer remains unverified.
- Preserve the plugin ID, DLL name, configuration and favorite save keys.
1.1.3
- Stop before chest discovery when no carried stacks are transferable; stop visiting further chests after the last transferable stack is stored.
- Stop safely if all remaining stacks become protected while ownership is pending. Preserve late-response suppression, favorites/equipment/quest protection and vanilla ownership handshakes.
- Native controlled-ownership experiments: first-chest-completes storage across 50 chests drops from 50 requests to one (median 5.78 s to 132 ms at injected 100 ms arrival). Empty/all-favorite inventories issue zero requests.
- Verify 24 scenarios with three reset samples each, plus smoke and five safety transitions; conservation, cancellation, timeout/quarantine, late replies and recovery pass. These are native ownership injections, not real multiplayer measurements. Full-chest insertion cost is unchanged.
1.1.2
- Install under
plugins/Jarki-NearbyStore/; remove the previous NearbyStore DLL when upgrading to avoid duplicate copies. Plugin ID, DLL name and config path stay unchanged. - Refresh the player-facing page with concise core features and before/after stacking screenshots.
- Place a square 56×56 magic-wand icon button to the right of inventory. Remove all button captions and shortcut hints; Alt+F favoriting remains available.
- Reuse Valheim's native border and hover/pressed states around original gold wand artwork; no extracted game assets bundled.
- Hide the wand while a container, crafting station, active crafting operation, inventory dialog or blocking overlay is open; restore it in standalone inventory. The ordinary basic crafting list remains allowed.
- Cancel pending transfers when a blocking UI opens, retaining late-response protection. Favorite shortcuts in chest inventory and vanilla-style stacking remain unchanged.
- Square-wand DLL passed 102 native-client checks with OdinsFoodBarrels 1.4.0 loaded: text-free square layout, nonblocking icon graphics, actual Alt+F, hover/click, three UI scales, prior visibility transitions and overflow stacking. Multiplayer and other UI mods remain unverified.
1.1.1
- Correct 1.1.0's overly restrictive stacking to match vanilla Stack items. Chests containing an item accept it through native inventory insertion: fill compatible stacks, then create another stack in a free slot. No fallback into unrelated or empty chests.
- Reuse the native movement path, including quality/world-level merge rules and slot placement, rather than maintaining custom merge logic. Favorites, equipment/quest protection, nearest-first discovery and access/ownership guards remain intact.
- Verify OdinsFoodBarrels 1.4.0 with all 36 restricted container types: eligibility, overflow, partial merging, favorites and prohibited-item rejection. No new dependency or restriction bypass.
- 12 standalone cases and 3 adversarial groups pass, including 10,240 generated deposits. The exact 1.1.1 DLL passed 673 native-client checks including fixtures, six comparisons against vanilla StackAll, and actual Tab/button transfers. Build retains two existing MSB3277 warnings. Multiplayer/custom barrel settings remain unverified.
1.1.0
- Replace automatic storage with stacking into compatible existing chest stacks only, nearest chest first.
- Never create new stacks or fill empty slots. Absent item types, full/incompatible stacks and overflow stay carried.
- Rename the button to Stack nearby and update result messages. Favorites, equipment/quest protection and chest-access checks remain unchanged.
- 12 standalone cases, 3 adversarial groups (10,240 generated deposits) and a disposable transfer smoke pass with inventory API doubles. Release build passes with two existing MSB3277 warnings.
- Stack-only gameplay passed 74 native-client checks before the release-version bump, including fixture assertions: real Tab/Alt+F/button input, matching-only transfers, overflow/unmatched/full-stack retention, empty-slot preservation, repeated-click no-op, favorite save/reload, access exclusions and injected ownership transitions. Default/70%/130% screenshots inspected. Initial focus/setup failures and verification limits are recorded in the README. No live deployment; multiplayer remains unverified.
1.0.0
- Initial NearbyStore: inventory Store nearby button, 10m configurable search, matching-chest priority and free-space fallback.
- Left Alt + F favorites hovered player-inventory stacks; gold F markers; favorites, equipped, queued-for-equip and quest items stay carried.
- Uses vanilla chest ownership requests with privacy, ward and busy checks; skips tombstones and dropped loot.
- Waits for ownership synchronization after access grants; already-owned chests need no request. Timed-out remote requests remain safely quarantined; normal-open recovery is documented.
- Native-font UI initialization avoids loading missing default font assets. Removed an unused tooltip component without its required prefab.
- 13 standalone cases, 3 adversarial groups (20,480 generated deposits) and 38 native-client checks pass. Real keyboard/mouse workflow, character-file favorite persistence and 70%/130% UI scale were exercised.
- Multiplayer, denied wards, uninstall/reinstall and mod-manager ZIP-import UI remain unverified.