Messenger Magician fails to load the Agent (Merlin) after quitting WLM then starting it up again. The problem is that you've nested an event function inside another function:
code:
function OnEvent_Initialize(MessengerStart){
if(MessengerStart==false){
startcharacter();
merlin.Show();
merlin.MoveTo(25,30);
merlin.Play("Announce");
merlin.Speak("Hello. Thanks for installing Messenger Magician");
merlin.Play("Greet");
merlin.Play("RestPose");
merlin.Speak("I'm Merlin and I'll try to help you by telling you when one of your contacts signs into Messenger");
merlin.Speak("I'll disappear now until I'm needed again when a contact signs in");
merlin.Speak("Bye");
merlin.Play("Wave");
merlin.Hide();
}else{
function OnEvent_SigninReady(Email){
startcharacter();
}
}
}
Removing the red text makes the script work fine/as expected.