SmartShield

v1.0.11·Updated 2026-09-29

Auto-equips a shield when you switch to a one-handed weapon, including after a bow or crossbow.

About this mod Author’s original text

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 UnequipOnSheath is now false so R-sheath shows weapon + shield on your back (vanilla). Set UnequipOnSheath = true if 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

  • UnequipOnHotbarDeselect default is now true.

1.0.7

  • New: UnequipOnHotbarDeselect — unequip the shield when you deselect the weapon on the hotbar. UnequipOnSheath stays 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). Default UnequipOnSheath = 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: UnequipOnSheath now hooks vanilla HideHandItems (sheath) immediately and clears the back-slot shield (SetLeftBackItem). 1.0.4’s poll raced Player.Update and often missed.

1.0.4

  • Fix: UnequipOnSheath was 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.

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_Valheim

File & checksum

Filename
SmartShield-1.0.11.zip
File size
134.8 KiB