olá, estava com o mesmo problema, no meu caso resolvi apenas colocando os scripts dentro dos monstros.
 
	teste meu script no seu servidor e não esqueça de alterar se necessário as posições.
 
	 
 
	 
 
	local config = { 
	         
	timeToRemove = 180,  
	message = "You now have 3 minutes to exit this room through the teleporter. It will bring you to the next room only during his time or the teleporter will disappear", 
	         
	teleportId = 1387, 
	         
	bosses = {  
	["Ushuriel"] = {  pos={ x=33157, y=31725, z=11, stackpos=1 }, aid=1001 }, 
	                 
	["Zugurosh"] = {  pos={ x=33123, y=31689, z=11, stackpos=1 }, aid=1002}, 
	                 
	["Madareth"] = {  pos={ x=33194, y=31768, z=11, stackpos=1 }, aid=1003}, 
	                
	["Annihilon"] = {  pos={ x=33200, y=31704, z=11, stackpos=1 }, aid=1005}, 
	                 
	["Hellgorak"] = {  pos={ x=33107, y=31735, z=11, stackpos=1 }, aid=1006} 
	 }, 
	         
	brothers ={ 
	         
	["Golgordan"] = {pos={ x=33235, y=31734, z=11, stackpos=1 },aid=1004, brother = "Latrivan"}, 
	         
	["Latrivan"] = {pos={ x=33235, y=31734, z=11, stackpos=1 },aid=1004, brother = "Golgordan"}, 
	         
	brothersArea ={ 
	                 
	fromPos = {x = 33224, y = 31722, z = 11}, 
	                 
	toPos = {x = 33240, y = 31734, z = 11}    }    } 
	}
 
	local function removal(position) 
	     
	doRemoveThing(getTileItemById(position, config.teleportId).uid, 1) 
	     
	return TRUE
 
	end
 
	function onKill(cid, target, lastHit) 
	     
	if(config.bosses[getCreatureName(target)]) then 
	         
	local t = config.bosses[getCreatureName(target)] 
	         
	local teleport = doCreateItem(config.teleportId, t.pos) 
	         
	local position = t.pos 
	         
	doItemSetAttribute(teleport, "aid", t.aid) 
	         
	doCreatureSay(cid, config.message, TALKTYPE_ORANGE_1) 
	         
	addEvent(removal, config.timeToRemove * 1000, position) 
	     
	elseif(config.brothers[getCreatureName(target)]) then 
	         
	local t = config.brothers[getCreatureName(target)] 
	         
	local brother = getCreatureByName(t.brother) 
	         
	if(isMonster(brother) == true) then 
	             
	if(isInRange(getCreaturePosition(brother), config.brothers.brothersArea.fromPos, config.brothers.brothersArea.toPos) == true) then 
	                 
	return TRUE 
	             
	end 
	         
	else 
	             
	local teleport = doCreateItem(config.teleportId, t.pos) 
	             
	local position = t.pos 
	             
	doItemSetAttribute(teleport, "aid", t.aid) 
	             
	doCreatureSay(cid, config.message, TALKTYPE_ORANGE_1) 
	             
	addEvent(removal, config.timeToRemove * 1000, position) 
	         
	end 
	     
	end 
	     
	return TRUE
 
	end 
	 
 
	 
 
	local config = { 
	bosses={---actionid, posicao para onde ira, valor que colocara, texto de entrada 
	        [1001] = {pos={x=33069, y=31783, z=13, stackpos=1}, value=1, text="Entering The Crystal Caves"}, 
	        [1002] = {pos={x=33371, y=31613, z=14, stackpos=1}, value=2, text="Entering The Blood Halls"}, 
	        [1003] = {pos={x=33153, y=31781, z=12, stackpos=1}, value=3, text="Entering The Vats"}, 
	        [1004] = {pos={x=33038, y=31753, z=15, stackpos=1}, value=4, text="Entering The Arcanum"}, 
	        [1005] = {pos={x=33199, y=31686, z=12, stackpos=1}, value=5, text="Entering The Hive"}, 
	        [1006] = {pos={x=33111, y=31682, z=12, stackpos=1}, value=6, text="Entering The Shadow Nexus"} 
	        }, 
	mainroom={---actionid, posicao que ira,menor valor de storage que poder entrar, texto de entrada 
	        [2001] = {pos={x=33069, y=31783, z=13, stackpos=1}, value=1, text="Entering The Crystal Caves"}, 
	        [2002] = {pos={x=33371, y=31613, z=14, stackpos=1}, value=2, text="Entering The Blood Halls"}, 
	        [2003] = {pos={x=33153, y=31781, z=12, stackpos=1}, value=3, text="Entering The Vats"}, 
	        [2004] = {pos={x=33038, y=31753, z=15, stackpos=1}, value=4, text="Entering The Arcanum"}, 
	        [2005] = {pos={x=33199, y=31686, z=12, stackpos=1}, value=5, text="Entering The Hive"}    }, 
	portals={---actionid,texto de entrada 
	        [3000] = {pos={x=33163, y=31708, z=14}, text="Entering Inquisition Portals Room"}, 
	        [3001] = {pos={x=33158, y=31728, z=11}, text="Entering The Ward of Ushuriel"}, 
	        [3002] = {pos={x=33169, y=31755, z=13}, text="Entering The Undersea Kingdom"}, 
	        [3003] = {pos={x=33124, y=31692, z=11}, text="Entering The Ward of Zugurosh"}, 
	        [3004] = {pos={x=33356, y=31590, z=11}, text="Entering The Foundry"}, 
	        [3005] = {pos={x=33197, y=31767, z=11}, text="Entering The Ward of Madareth"}, 
	        [3006] = {pos={x=33250, y=31632, z=13}, text="Entering The Battlefield"}, 
	        [3007] = {pos={x=33232, y=31733, z=11}, text="Entering The Ward of The Demon Twins"}, 
	        [3008] = {pos={x=33094, y=31575, z=11}, text="Entering The Soul Wells"}, 
	        [3009] = {pos={x=33197, y=31703, z=11}, text="Entering The Ward of Annihilon"}, 
	        [3010] = {pos={x=33105, y=31734, z=11}, text="Entering The Ward of Hellgorak"}    }, 
	storage=56123,---storage used in boss and mainroom portals 
	e={} }----dunno whats this but have to be like this to make doCreatureSayWithDelay working, DON'T TOUCH} 
	function onStepIn(cid, item, position, fromPosition) 
	if isPlayer(cid) == TRUE then 
	if(config.bosses[item.actionid]) then 
	local t= config.bosses[item.actionid] 
	if getPlayerStorageValue(cid, config.storage)< t.value then 
	setPlayerStorageValue(cid, config.storage, t.value) 
	end 
	doTeleportThing(cid, t.pos) 
	doSendMagicEffect(getCreaturePosition(cid),10) 
	doCreatureSay(cid,t.text,19,1, config.e) 
	elseif(config.mainroom[item.actionid]) then 
	local t= config.mainroom[item.actionid] 
	if getPlayerStorageValue(cid, config.storage)>=t.value then 
	doTeleportThing(cid, t.pos) 
	doSendMagicEffect(getCreaturePosition(cid),10) 
	doCreatureSay(cid,t.text,19,1,config.e) 
	else 
	doTeleportThing(cid, fromPosition) 
	doSendMagicEffect(getCreaturePosition(cid),10) 
	doCreatureSay(cid, 'You don\'t have enough energy to enter this portal', TALKTYPE_ORANGE_1) 
	end 
	elseif(config.portals[item.actionid]) then 
	local t= config.portals[item.actionid] 
	doTeleportThing(cid, t.pos) 
	doSendMagicEffect(getCreaturePosition(cid),10) 
	doCreatureSay(cid,t.text,19,1,config.e) 
	end 
	end 
	end