Very simple, though the onhit event is fairly intensive. The script you posted makes very little sense in the way it is written. Distinguishing between right and left handed weapon does nothing here and the onhit event already takes that into account. It tells you what weapon hit the target. Here's essentially what you'd want. Scriptname StaggerOnHit extends activemagiceffect SPELL Property stspell1 Auto SPELL Property stspell2 Auto SPELL Property stspell3 Auto SPELL Property stspell4 Auto SPELL Property stspell5 Auto SPELL Property stspell6 Auto SPELL Property stspell7 Auto SPELL Property stspell8 Auto Keyword Property WeapTypeBattleAxe AutoKeyword Property WeapTypeBow AutoKeyword Property WeapTypeDagger AutoKeyword Property WeapTypeGreatsword AutoKeyword Property WeapTypeMace AutoKeyword Property WeapTypeSword AutoKeyword Property WeapTypeWaraxe AutoKeyword Property WeapTypeWarhammer AutoActor Target Event OnEffectStart(Actor AkTarget, Actor AkCaster)Target = AkTargetEndEvent Event OnHit(ObjectReference akAggressor, Form akSource, Projectile akProjectile, bool abPowerAttack, bool abSneakAttack, bool abBashAttack, bool abHitBlocked) weap = aksource as weaponif weapif weap.haskeyword(WeapTypeBow)stspell1.Cast(akAggressor, target)EndIf if weap.haskeyword(WeapTypeDagger)stspell2.Cast(akAggressor, target)EndIf if weap.haskeyword(WeapTypeSword)stspell3.Cast(akAggressor, target)EndIf if weap.haskeyword(WeapTypeWaraxe)stspell4.Cast(akAggressor, target)EndIf if weap.haskeyword(WeapTypeMace)stspell5.Cast(akAggressor, target)EndIf if weap.haskeyword(WeapTypeGreatsword)stspell6.Cast(akAggressor, target)EndIf if weap.haskeyword(WeapTypeBattleAxe)stspell7.Cast(akAggressor, target)EndIf if weap.haskeyword(WeapTypeWarhammer)stspell8.Cast(akAggressor, target)EndIfEndif EndEvent You'd have to make 8 different spells that have the magnitudes you want and line set the properties correctly. Honestly, instead of stspell1-stspell8, maybe call them stspellBow, stspellDagger, etc. for simplicity's sake.