integer intSysChannel = -#####;
integer intSysHandle;
default
{
state_entry() {
llOwnerSay("Checking..."

intSysHandle = llListen(intSysChannel, "", NULL_KEY, ""

llRegionSay(intSysChannel, "Hello"

llSetTimerEvent(45.0);
}
listen (integer intChannel, string strName, key keySpeaker, string strMessage) {
list lstTokens = llParseString2List(strMessage, ["|"], []);
vector vecPos = (vector)llList2String(lstTokens, 0);
rotation rotAtion = (rotation)llList2String(lstTokens, 1);
llSetRot(rotAtion);
llSetPos(vecPos);
llRegionSay(intSysChannel, "Done"

llRemoveInventory(llGetScriptName());
}
timer () {
llOwnerSay("No response."

llDie();
}
on_rez (integer intStartParam) {
llOwnerSay("Rezzed...."

llResetScript();
}
}
Edit: OK, sometimes it doesn't work even on a manual reset.