Before we even get to the triggering, first comes the usage and implementation of the spells themselves.
- No hotkeys. The spells description indecates their is one, but there isnt.
- No Spell Description past "Your enemies flee in fear." Well umm DUH
How about including in there maybe the DURATION, MAX Number of Units, If there is a chance for it to not work.... Get my point?
- Your "Blink" spell isnt even a new spell, you basically changed the animation to his death animation.... umm who were you hoping to kid?
ummmm wow... Now i just looked at the triggers. BAD!! BAD Triggers!! Using waits like that!! Shame on you, you bad bad triggers.
The "Wait" actions keep most triggers from being MUI (meaning more than one unit can cast this at a time). Imagine if you had put 2 Dreadlords in your test map ( And i recommend doing this to everyone when they release a spell by the way) and they both cast this spell within half a second of each other. well then one of them is locked inside the trigger and it can cause problems.
Next
-
Actions
-

Set CASTER_UNIT[25] = (Casting unit) <=== MAKE USE OF THIS ARRAY HERE TO DISTINGUISH BETWEEN CASTERS
-

Unit Group - Pick every unit in (Units in (Playable map area)) and do (Actions)
-


Loop - Actions
-



If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-




If - Conditions
-





((Owner of (Picked unit)) is an enemy of (Owner of CASTER_UNIT[25])) Equal to True
-





((Picked unit) has buff Fear ) Equal to True
-





((Picked unit) is alive) Equal to True
-




Then - Actions
-





Wait 0.50 seconds
-





Cinematic - Turn cinematic mode On for (Player group((Picked player)))
-





Cinematic - Turn cinematic mode Off for (Player group((Picked player))) over 6.00 seconds
-




Else - Actions
-

For each (Integer A) from 1 to 11, do (Actions)
-


Loop - Actions
-



Unit Group - Pick every unit in (Units within 500.00 of (Position of CASTER_UNIT[25])) and do (Actions)
-




Loop - Actions
-





If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-






If - Conditions
-







((Owner of (Picked unit)) is an enemy of (Owner of CASTER_UNIT[25])) Equal to True
-







((Picked unit) has buff Fear ) Equal to True
-







((Picked unit) is alive) Equal to True
-






Then - Actions
-







Unit - Order (Picked unit) to Move To ((Position of CASTER_UNIT[25]) offset by 750.00 towards (Angle from (Position of CASTER_UNIT[25]) to (Position of (Picked unit))) degrees)
-






Else - Actions
-



Wait 0.50 seconds
You gave the casting unit an array, thats good, or atleast it can be if you actually utilize the array. At the end of the trigger needs to be an action that sets the array as an integer EQUAL to the Array PLUS 1, then the next time someone casts it they are considered as a seperate caster and dont take over the spot of CASTER_UNIT[25]. Because otherwise if say you cast the spell and fear a bunch of guys then i come over and fear them guys, well now theyre all afraid of me and not you.
Also it shouldnt be set to only work on an enemy=true factor. How does that affect neutral creeps??? It should be set to ALLY=FALSE.
Nice use of loops though.

Just get the rest of this cleaned up and work on making things MUI
By the way if you dont know what leaks are, you're leaking a point when you order the unit to move to POINT 750Distance away at angle from caster to unit. that point which they are ordered to be moved to isn't removed automatically, YOU have to do this manually. Such as
-
Then - Actions
-

Set point = ((Position of (Triggering unit)) offset by 750.00 towards (Angle from (Position of (Triggering unit)) to (Position of (Picked unit))) degrees)
-

Unit - Order (Picked unit) to Move To point
At least this way the point is recycled and it doesnt leave a bunch of invisible points all over the map that have to be dumped after the game ends. This is the reason for the scoreboard taking so long to load at the end of some games.