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.
SmartShield
Auto-equips a shield when you switch to a one-handed weapon, including after a bow or crossbow.
| Last updated | 3 days ago |
| Total downloads | 496 |
| Total rating | 0 |
| Categories | |
| Dependency string | cjayride-SmartShield-1.0.11 |
| Dependants | 0 other packages depend on this package |
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.2350README
SmartShield
Automatically equips a shield when you switch to a one-handed weapon. Works after bow/crossbow. No popups, no hotkeys.
Client-side. Drop Cjayride.SmartShield.dll in BepInEx plugins.
Disable AutoEquipShield if both are installed.
Changelog
1.0.11
- Fix: default
UnequipOnSheathis now false so R-sheath shows weapon + shield on your back (vanilla). SetUnequipOnSheath = trueif you prefer weapon-only on the back.
1.0.10
- Fix: first sword draw after spawn now auto-equips the shield (warmup no longer baselines the weapon without applying).
1.0.9
- Fix: hotbar deselect only unequips the shield when you put away a one-handed weapon — manually equipping a shield alone no longer gets yanked away.
- Fix: R sheath no longer unequips the shield in a HideHandItems prefix (that emptied both hands and made R pop weapons back out).
- Fix: drawing with R now triggers shield auto-equip reliably.
1.0.8
UnequipOnHotbarDeselectdefault is now true.
1.0.7
- New:
UnequipOnHotbarDeselect— unequip the shield when you deselect the weapon on the hotbar.UnequipOnSheathstays R-only.
1.0.6
- Fix: sheath retract now unequips the shield before vanilla stashes it on the back, then destroys the back mesh (
UpdateEquipmentVisuals). DefaultUnequipOnSheath = true. - Intentional: hotbar deselect keeps the shield unless you enable
UnequipOnHotbarDeselect. - Note: existing configs may still have
UnequipOnSheath = false— set it to true (or delete the cfg line to pick up the new default).
1.0.5
- Fix:
UnequipOnSheathnow hooks vanillaHideHandItems(sheath) immediately and clears the back-slot shield (SetLeftBackItem). 1.0.4’s poll racedPlayer.Updateand often missed.
1.0.4
- Fix:
UnequipOnSheathwas never applied. Sheathing (R) now retracts the shield when the option is enabled.
Config Values
[Behavior]
Equip a shield whenever a one-handed weapon is equipped. Setting type: Boolean Default value: true AutoEquipOnOneHanded = true
Also equip a shield after switching from a bow/crossbow (or other ranged) to a one-handed weapon. Setting type: Boolean Default value: true EquipAfterRanged = true
Unequip the shield when a two-handed or ranged weapon is equipped. Setting type: Boolean Default value: true UnequipOnTwoHanded = true
Unequip the shield when weapons are sheathed with R (clears the back slot). Setting type: Boolean Default value: true UnequipOnSheath = true
Unequip the shield when you deselect a one-handed weapon on the hotbar (press the same slot again). Does not unequip a manually equipped shield alone. Setting type: Boolean Default value: true UnequipOnHotbarDeselect = true
[Filters]
Comma-separated ItemType, skill, or prefab names. Empty = all one-handed weapons. Setting type: String Default value: AllowedWeaponTypes =
Comma-separated shield prefab names that must never be auto-equipped. Setting type: String Default value: BlacklistShields =
[General]
Master switch. No messages are ever shown. Setting type: Boolean Default value: true Enabled = true
[ShieldSelection]
Best = highest block power. First = first shield in inventory. Preferred = use PreferredShield. Setting type: String Default value: Best SelectionMode = Best
Prefab name used when SelectionMode is Preferred (example: ShieldWood). Setting type: String Default value: PreferredShield =
Contact
𝕏: x.com/cjayride
Discord: discord.gg/cjayride (find me at the top of the user list) "cjayride"
Twitch: twitch.tv/cjayride
AI Generated
This code was AI Generated.