void Port(object oPC)
{
object oTarget = GetWaypointByTag("wp_abyss_exit");
location lTarget = GetLocation(oTarget);

AssignCommand(oPC, ClearAllActions());
DelayCommand(3.0, AssignCommand(oPC, ActionJumpToLocation(lTarget)));
ApplyEffectAtLocation(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_SUMMON_UNDEAD),lTarget);
}

void main()
{

object oPC = GetPCSpeaker();
effect eEffect = SupernaturalEffect(EffectNegativeLevel(1));
effect eVis = EffectVisualEffect(VFX_IMP_REDUCE_ABILITY_SCORE);

ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oPC);
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oPC);

DelayCommand(1.0,Port(oPC));
}