location lTarget;
object oTarget;

//Can go on enter of an area or on enter of a tracks trigger.
//Basically you spawn an npc, then after a while they dissapear.
//This script will not spawn an npc if one already exist.
void main()
{
    object oPC = GetEnteringObject(),
           oObject = GetWaypointByTag("WP_tagname_01");

    if (!GetIsObjectValid(GetNearestObjectByTag("tagname", oObject)))
    {
        CreateObject(OBJECT_TYPE_CREATURE, "resrefname", GetLocation(oObject));
    }

oTarget = GetObjectByTag("tagname");

DelayCommand(580.0, DestroyObject(oTarget, 0.0));
}