//Put this on action taken in the conversation editor void main() { object oPC = GetPCSpeaker(); object oTarget; oTarget = oPC; DelayCommand(5.0, ActionCastSpellAtObject(SPELL_BANISHMENT, oTarget, METAMAGIC_ANY, TRUE, 0, PROJECTILE_PATH_TYPE_DEFAULT, FALSE)); location lTarget; oTarget = GetWaypointByTag("lokis_way"); lTarget = GetLocation(oTarget); //only do the jump if the location is valid. //though not flawless, we just check if it is in a valid area. //the script will stop if the location isn't valid - meaning that //nothing put after the teleport will fire either. //the current location won't be stored, either if (GetAreaFromLocation(lTarget)==OBJECT_INVALID) return; DelayCommand(7.0, AssignCommand(oPC, ClearAllActions())); DelayCommand(10.0, AssignCommand(oPC, ActionJumpToLocation(lTarget))); effect eEffect; eEffect = EffectVisualEffect(VFX_IMP_UNSUMMON); DelayCommand(7.0, ApplyEffectToObject(DURATION_TYPE_INSTANT, eEffect, oPC)); }