I needed some practice before deep diving into my project, so... Scriptname MySummonScript extends ActiveMagicEffect { The whole idea for the mod was to have a summon eat away at your magicka pool as long as its summoned and then is possible unsummon when your pool is empty but id settle for it to just drain the pool. } Spell Property MyMagicDamageSpell Auto ; alchDamageMagicka Spell Property MySummonSpell Auto Actor MySummon ;Auto Actor caster ;Auto float fCost1 float fCost2 float fCost3 Event OnEffectStart(Actor akTarget, Actor akCaster) MySummon = akTarget caster = akCaster ;MySummonSpell = Self.GetBaseObject() as Spell - cannot cast a magiceffect to a spell, types are incompatible fCost1 = caster.GetActorValue("Magicka") debug.notification("original magicka: " + fCost1 as String) MyMagicDamageSpell.cast(caster, caster) ;caster of the summon spell also casts magic damage on themself fCost3 = caster.GetActorValue("Magicka") fCost2 = fCost1 - fCost3 debug.notification("new magicka: " + fCost3 as String + " magicka cost: " + fCost2 as String) RegisterForSingleUpdate(1.5) EndEvent Event OnUpdate() if ( MySummon == None ) caster.dispelSpell(MySummonSpell) ;to make sure the spell is dispelled when your summon spell has ended debug.notification("spell dispeled - 0") return endif if ( caster.GetActorValue("Magicka") < fCost2 ) MySummon.disable() ; unsummon would be better caster.dispelSpell(MySummonSpell) ;to make sure the spell is dispelled when your summon spell has ended debug.notification("spell dispeled - 1") return endif if ( MySummon.IsDisabled() || MySummon.IsDead() ) caster.dispelSpell(MySummonSpell) ;to make sure the spell is dispelled when your summon spell has ended debug.notification("spell dispeled - 2") return endif if ( caster.GetActorValue("Magicka") >= fCost2 ) if ( MySummon.GetActorValue("Health") > 0 ) MyMagicDamageSpell.cast(caster, caster) ;caster of the summon spell also casts magic damage on themself RegisterForSingleUpdate(1.5) endif endif EndEvent ;Event OnEffectFinish(Actor akTarget, Actor akCaster) ;akCaster.dispelSpell(MyMagicDamageSpell) ;to make sure the spell is dispelled when your summon spell has ended ;EndEvent It's not finished but I'm in a hurry so I post this. (You don't need the debug.notification lines) It basically works but it has some issues. Plugin Usage: help "summon familiar" 0 player.addspell <ID> - it will be sg like xx000d62 Best regards,VikMorroHun