SwiftPickupMagnetFix

v2.0.0·Updated 2026-09-20

Stops SwiftPickup's magnet from dragging items you cannot carry. Checks free slots, partial stacks and carry weight.

About this mod Author’s original text

SwiftPickup Magnet Fix

SwiftPickup aimante les objets au sol sans jamais vérifier qu'ils peuvent entrer dans

l'inventaire. Quand celui-ci est plein, les objets sont tirés vers le joueur, le

ramassage échoue, puis ils sont réinjectés au scan suivant — ils finissent par suivre

le joueur en permanence.

Ce plugin retire de la liste magnet tout objet que l'inventaire ne peut pas accepter.

Il ne touche ni au ramassage, ni au merge des drops, ni au multiplicateur de loot.

Détail du test

Un objet est écarté si l'une des deux conditions échoue:

  • Inventory.CanAddItem(item) — cases libres ou pile partielle compatible
  • `GetTotalWeight() + item.GetWeight()

Fonctionnement

Prefix Harmony sur SwiftPickup.SwiftPickupPlugin.MoveMagnets, appelée à chaque frame

depuis le postfix de Player.Update. La liste statique MagnetItems est purgée avant

tout déplacement. HandleScan réinjecte les objets au scan suivant (0,15 s par défaut),

le prefix les retire à nouveau avant la frame suivante: déplacement net nul.

Les internes de SwiftPickup sont résolus par reflection. Si une mise à jour renomme

MoveMagnets ou MagnetItems, le plugin logge un avertissement et ne patche rien

plutôt que de casser le jeu.

Configuration

BepInEx/config/saru.swiftpickup.tweaks.cfg

| Clé | Défaut | Effet |

| --- | --- | --- |

| Enabled | true | Active le filtrage de la liste magnet |

Compilation

dotnet build -c Release -p:Deploy=true

Les chemins ValheimDir et BepInExDir sont définis dans le.csproj et peuvent être

surchargés en ligne de commande. Cibler net472 demande soit le package NuGet

Microsoft.NETFramework.ReferenceAssemblies, soit le.NET Framework 4.7.2 Developer Pack.

Testé avec SwiftPickup 1.3.3 et BepInEx 5.

Install & use Install: BepInEx plugin

  1. The archive from playbuff is the mod itself — usually a BepInEx plugin (a .dll or a plugin folder once unzipped).
  2. Recommended: use a community mod manager (such as r2modman) — pick this game, import the mod, and the manager sets up BepInEx and its dependencies for you.
  3. Manual route: install the BepInEx loader in the game folder, then drop the unzipped .dll or plugin folder into BepInEx/plugins/.
  4. Launch the game — the BepInEx console logs every plugin it loads; seeing this mod in the log means it is installed.

Mods with listed dependencies need those installed too, or they will not load. Options are usually changed in-game or in the plugin's config file. In multiplayer, the host and every client need the same mods installed.

Dependencies

Install these first, or the mod will not work:

denikson-BepInExPack_ValheimSoulEmper0r-SwiftPickup

File & checksum

Filename
SwiftPickupMagnetFix-2.0.0.zip
File size
13.3 KiB