If you want to do this through scripting, alternatively to CharacterEnteredRegion, you can use the
CharacterStatusApplied((CHARACTERGUID)<Summon>, "SUMMONING", NULL_00000000-0000-0000-0000-000000000000) event. That will probably reduce the need to filter your results a bit.

However, this can also be done through stats, and personally I think it's a cleaner solution.
First, make a new status (a CONSUME-type status works). Let's call it LOSECONTROL.
The only important entry for this status is the "LoseControl", which should be "Yes", because that's what makes the character not controlled by the player.
Then, in your summon skill, under SkillProperties, add TARGET:LOSECONTROL,100,-1.

The LOSECONTROL status will make your summon uncontrollable (and let AI take over for it), and the above syntax means that the status LOSECONTROL will be applied with a likelihood of 100%, permanently, to the summon.

Last edited by LarIlya; 28/02/18 08:54 PM.