Pardon the possibly really weird parsing. The weapon properties cover the main bow types in the game that bandits and other NPCs possibly use.
What the script is suppose to do is check if any of these bows are equipped, then unequip them and prevent them from re-equipping. But it's not working this way. Upon unequipping they can re-equip and I don't know why.
Spoiler
Scriptname MassUnequip extends activemagiceffect ;=========\;PROPERTIES;=========\Weapon property Bow autoWeapon property Bow2 autoWeapon property Bow3 autoWeapon property Bow4 autoWeapon property Bow5 autoWeapon property Bow6 autoWeapon property Bow7 autoWeapon property Bow8 autoWeapon property Bow9 autoWeapon property Bow10 auto;=========\;EVENTS;=========\Event OnEffectStart(Actor akTarget, Actor akCaster) actor actorRef = akTarget as actor (akTarget as actor).UnequipAll() ; ← This is just for my own humor ;p if (akTarget as actor).IsEquipped(Bow) (akTarget as actor).UnequipItem(Bow, true) elseif (akTarget as actor).IsEquipped(Bow2) (akTarget as actor).UnequipItem(Bow2, true) elseif (akTarget as actor).IsEquipped(Bow3) (akTarget as actor).UnequipItem(Bow3, true) elseif(akTarget as actor).IsEquipped(Bow4) (akTarget as actor).UnequipItem(Bow4, true) elseif(akTarget as actor).IsEquipped(Bow5) (akTarget as actor).UnequipItem(Bow5, true) elseif(akTarget as actor).IsEquipped(Bow6) (akTarget as actor).UnequipItem(Bow6, true) elseif(akTarget as actor).IsEquipped(Bow7) (akTarget as actor).UnequipItem(Bow7, true) elseif(akTarget as actor).IsEquipped(Bow8) (akTarget as actor).UnequipItem(Bow8, true) elseif(akTarget as actor).IsEquipped(Bow9) (akTarget as actor).UnequipItem(Bow9, true) elseif(akTarget as actor).IsEquipped(Bow10) (akTarget as actor).UnequipItem(Bow10, true) endifEndEvent


; which I was kinda hoping isn't the case.