You are viewing a potentially older version of this package. View all versions.
b0n3-Smartpickup-1.0.9 icon

Smartpickup

Gives Valheim autopickup three modes: Normal, Smart, and Off, with configurable pickup range options.

Date uploaded a week ago
Version 1.0.9
Download link b0n3-Smartpickup-1.0.9.zip
Downloads 1203
Dependency string b0n3-Smartpickup-1.0.9

This mod requires the following mods to function

denikson-BepInExPack_Valheim-5.4.2333 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.2333

README

SmartPickup

SmartPickup is a Valheim mod that adds three autopickup modes:

  • Normal: standard autopickup, with an optional custom range
  • Smart: only picks up items already in your inventory
  • Off: disables autopickup

Compatibility

Version 1.0.9 targets Valheim 1.0 and adds bundled ServerSync support.

Features

  • Uses Valheim's normal autopickup toggle flow
  • Shows the current mode in-game
  • Supports a configurable pickup range from 1 to 100
  • Can apply the custom range in Normal mode as well as Smart

Installation

  1. Install denikson-BepInExPack_Valheim-5.4.2333 or newer.
  2. Install this mod with Thunderstore Mod Manager, r2modman, or manually.
  3. Launch the game once to generate the config file.

Usage

Use Valheim's Auto-Pickup toggle to cycle through Normal, Smart, and Off.

Config

Config file:

BepInEx/config/com.b0n3.smartpickup.cfg

Main settings:

  • DefaultMode
  • PickupRange
  • ApplyCustomRangeInNormalMode

ServerSync

Install SmartPickup on both the server and clients to synchronize PickupRange and ApplyCustomRangeInNormalMode. ServerSync is included in SmartPickup.dll; no separate ServerSync download is needed.

Server.LockConfiguration defaults to true. While locked, only admins can change synchronized settings. DefaultMode and switching between Normal, Smart, and Off remain local player preferences. Your local range settings return when you disconnect. Settings also stay local when playing solo or joining a server without SmartPickup.

Use the same SmartPickup version on server and clients. SmartPickup remains optional: clients without it, including older versions without ServerSync, can still connect. Synchronization does not enforce pickup behavior on those clients. The minimum version for participating ServerSync clients is 1.0.9.

CHANGELOG

1.0.11

  • Fixed decimal pickup ranges resetting to the default during migration by reloading normalized configuration before binding settings.
  • Enforced the whole-number pickup range of 1 through 100 at startup and during runtime changes.
  • Fixed release packaging to select the latest version numerically when copying release documentation.

1.0.10

  • NEW FEATURE: Undiscovered Item Pickup. Added optional General.PickUpUndiscoveredItems so Smart mode can collect item types your character has never discovered. Disabled by default and configurable per player. Thanks to _atlasghost_ on Discord for suggesting this feature!

1.0.9

  • NEW FEATURE: Server Sync. Added bundled support for synchronizing pickup range and the custom range option in Normal mode.
  • Added an admin configuration lock, enabled by default, for synchronized settings.
  • Kept default mode and mode switching local to each player.
  • Local range settings are restored when disconnecting from a synchronized server.

1.0.8

  • Fixed mode switching errors after the Valheim 1.0 update by updating message calls and building against the installed game assemblies.
  • Fixed Smart mode skipping eligible items managed by another player in multiplayer by requesting network ownership before pickup.
  • Release packaging now stops on build failure to prevent packaging an outdated DLL.

1.0.7

  • Restored vanilla Player.AutoPickup handling for Normal mode, including support for expanding the vanilla pickup radius from config.
  • Reworked Smart mode item attraction to mirror Valheim's transform-based pull behavior instead of rigidbody velocity, reducing dangerous (but hilarious) item flinging.
  • Added vanilla autopickup range tracking so mode switches and runtime config changes restore the player's original range outside custom Normal mode.

1.0.6

  • Hardened SmartPickup so only the local player can drive custom autopickup mode changes.
  • Tightened autopickup toggle detection so mode switching only reacts to real vanilla autopickup state changes.
  • Replaced the old per-frame vanilla autopickup resync with targeted lifecycle-based syncing.
  • Optimized the custom pickup hot path with cached field access, squared-distance checks, and reusable item identity storage.
  • Clamped configured pickup range values to a sane runtime range, with support for values up to 100.
  • Added one-time warnings for critical private-field lookup failures and split the mod into focused source files for easier maintenance.
  • Added runtime config hot reload for mode, pickup range, and normal-mode custom range changes.
  • Updated the plugin GUID to com.b0n3.smartpickup and added legacy config migration from com.yourname.valheim.smartautopickup.
  • Switched PickupRange to whole-number values and normalized legacy decimal values for cleaner config editing.
  • Hardened local build and release scripts so MSBuild resolution and release packaging work more reliably across machines.

1.0.5

  • Added General.ApplyCustomRangeInNormalMode so normal autopickup can optionally use SmartPickup's configurable pull range.
  • Reworked custom pickup scanning to share one efficient path, using a reusable non-alloc overlap buffer and a one-pass inventory name lookup for smart mode.
  • Moved mode switching onto Valheim's shared vanilla autopickup toggle flow so controller and keyboard both cycle modes reliably.

1.0.4

  • Updated the mod against the current local Valheim and BepInEx setup.
  • Fixed a smart pickup safety issue around missing ZNetView components.
  • Synchronized assembly and package metadata for cleaner builds and releases.
  • Cleaned up the project layout and added helper scripts for build, deploy, and release packaging.

1.0.3

  • Added more comprehensive error handling via try-catch blocks.
  • Introduced a configuration menu for setting the default autopickup mode and pickup radius.

1.0.2

  • Adjusted on-screen message to display as "Auto-Pickup:On", "Auto-Pickup:Smart", or "Auto-Pickup:Off".

1.0.1

  • Fixed autopickup logic to support keybind changes.

1.0.0

  • Initial release of Smartpickup.