

by YouDied
Enemies in Valheim carry weapons — but when they die, those weapons vanish. This mod changes that. Melee and ranged enemies now have a chance to drop the weapon (and shield) they were carrying when they died.
When a supported enemy dies, the mod checks what weapon and shield they had equipped and drops a player-usable equivalent on the ground. Drop chance and item quality scale with enemy star level.
No-star enemies drop weapons at a configurable chance (default 5%).
1-star enemies always drop their weapon at quality level 2.
2-star enemies always drop their weapon at quality level 3.
All of these values are configurable in BepInEx/config/YouDied.CustomWeaponDrops.cfg.
| Enemy | Weapon Drop | Shield Drop |
|---|---|---|
| Skeleton | Bronze Sword or Huntsman Bow | Wood Shield or Bronze Buckler (if equipped) |
| Skeleton (Poison) | Iron Mace | — |
| Goblin | Club, Wolf Fang Spear, Blackmetal Sword, or Torch | Wood Shield (if equipped) |
| Draugr | Iron Axe or Huntsman Bow | Wood Shield or Banded Shield (if equipped) |
| Draugr Elite | Iron Sword | — |
| Draugr Ranged | Huntsman Bow | — |
| Charred Archer | Ashlands Bow | — |
Skeleton, Goblin, and Draugr have randomized loadouts — the mod detects what they were actually carrying at the moment of death, so a bow skeleton drops a bow and a sword skeleton drops a sword.
Some enemies carry weapons that are exclusive to them and cannot exist as pickable world items — they are not registered in the game's item registry and will disappear or become unpickable if spawned directly. This affects:
For enemies whose weapons can be dropped but exist as enemy-only prefabs (Skeleton, Draugr, Goblin, Charred Archer), the mod substitutes the closest player-craftable equivalent. The weapons are thematically appropriate for the enemy's tier but are not identical to what they carry — for example, a Draugr drops an Iron Axe rather than the Draugr's unique axe model.
GoblinBrute, GoblinShaman, Charred Melee, and Troll are excluded by default. However, you can add any valid player weapon prefab name to their config entries to make them drop something on death — for example, adding MaceNeedle to GoblinBrute's config entry. The game's item prefab names can be found on the Valheim wiki.
Note: Dvergr enemy drops are not included in this version.
The config file is generated at BepInEx/config/YouDied.CustomWeaponDrops.cfg on first run.
Global settings:
| Key | Default | Description |
|---|---|---|
NoStarDropChance |
0.05 |
Chance (0.0–1.0) a no-star enemy drops their weapon |
NoStarWeaponQuality |
1 |
Item quality for no-star drops |
OneStarWeaponQuality |
2 |
Item quality for 1-star drops |
TwoStarWeaponQuality |
3 |
Item quality for 2-star drops |
Per-enemy settings (one section per enemy):
Each enemy has NoStar, 1Star, and 2Star entries. Set the value to a valid item prefab name to override the drop, or leave empty to disable drops for that tier. For enemies with randomized loadouts (Skeleton, Goblin, Draugr), leave these empty — the equipped weapon is detected automatically.
skeleton_mace mapping — Skeleton (Poison) now correctly drops Iron Mace instead of Bronze MaceWeaponMap fallback in config path so old enemy prefab names in config auto-translate to correct player equivalentsskeleton_mace, draugr_sword, etc.) are not registered in ZNetScene and cannot be dropped as world itemsWeaponMap dictionary for clean enemy prefab → player prefab translationZNetScene.SpawnObject for networked item spawningObjectDB.GetItemPrefab(string) (which matches on display name) to weapon.m_dropPrefab (direct reference), eliminating "Could not find prefab for equipped weapon 'Dragur axe'" errorsObjectDB.TryGetItemPrefab(SharedData) — failed due to reference equality mismatch between registered and inventory SharedData instances