SwiftPickupMagnetFix
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
- The archive from playbuff is the mod itself — usually a BepInEx plugin (a .dll or a plugin folder once unzipped).
- 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.
- Manual route: install the BepInEx loader in the game folder, then drop the unzipped .dll or plugin folder into BepInEx/plugins/.
- 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.
Install these first, or the mod will not work: