I am trying to make the special effects for one of my spells in my upcoming map, but it seems to be leaking incredibly badly and I'm not quite sure what I can try next. Thanks in advance for any help guys 

-
Rune SFX
-
Events
-
Unit - A unit Begins casting an ability
-
-
Conditions
-
(Ability being cast) Equal to Rune of Annihilation
-
-
Actions
-
Set RoA_TargetPos = (Target point of ability being cast)
-
For each (Integer A) from 1 to 3, do (Actions)
-
Loop - Actions
-
Set RoA_SFX_RunesPosArray[(Integer A)] = (RoA_TargetPos offset by 250.00 towards ((Real((Integer A))) x 120.00) degrees)
-
Special Effect - Create a special effect at RoA_SFX_RunesPosArray[(Integer A)] using Objects\InventoryItems\runicobject\runicobject.mdl
-
Set RoA_SFX_RunesArray[(Integer A)] = (Last created special effect)
-
Lightning - Create a Finger of Death lightning effect from source RoA_SFX_RunesPosArray[(Integer A)] to target RoA_TargetPos
-
Set RoA_LightningArray[(Integer A)] = (Last created lightning effect)
-
-
-
Wait 2.00 seconds
-
For each (Integer A) from 1 to 3, do (Actions)
-
Loop - Actions
-
Special Effect - Destroy RoA_SFX_RunesArray[(Integer A)]
-
Lightning - Destroy RoA_LightningArray[(Integer A)]
-
Custom script: call RemoveLocation(udg_RoA_SFX_RunesPosArray[GetForLoopIndexA()] )
-
-
-
For each (Integer B) from 1 to 10, do (Actions)
-
Loop - Actions
-
Wait 0.50 seconds
-
Set RoA_10ExplosionsPosArray[(Integer B)] = (RoA_TargetPos offset by 250.00 towards ((Real((Integer B))) x 36.00) degrees)
-
Special Effect - Create a special effect at RoA_10ExplosionsPosArray[(Integer B)] using war3mapImported\NewGroundEX.mdx
-
Set RoA_SFX_ExplosionArray[(Integer B)] = (Last created special effect)
-
-
-
Wait 2.00 seconds
-
Special Effect - Create a special effect at RoA_TargetPos using war3mapImported\NewGroundEX.mdx
-
Set RoA_SFX_Explosion = (Last created special effect)
-
Special Effect - Destroy RoA_SFX_Explosion
-
For each (Integer B) from 1 to 10, do (Actions)
-
Loop - Actions
-
Special Effect - Destroy RoA_SFX_ExplosionArray[(Integer B)]
-
Custom script: call RemoveLocation(udg_RoA_10ExplosionsPosArray[GetForLoopIndexB()] )
-
-
-
Custom script: call RemoveLocation(udg_RoA_TargetPos)
-
-