diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/VarkaKetra.java b/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/VarkaKetra.java
index f499017c51073a24bab2abaad18bb6ef07fc1268..dc2ecc0b0abda334fe9578d389c7818f6a4bc9b9 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/VarkaKetra.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/VarkaKetra.java
@@ -32,9 +32,10 @@ import quests.Q00615_MagicalPowerOfFirePart1.Q00615_MagicalPowerOfFirePart1;
 import quests.Q00616_MagicalPowerOfFirePart2.Q00616_MagicalPowerOfFirePart2;
 import ai.npc.AbstractNpcAI;
 
-import com.l2jserver.gameserver.ai.CtrlIntention;
 import com.l2jserver.gameserver.model.actor.L2Attackable;
+import com.l2jserver.gameserver.model.actor.L2Character;
 import com.l2jserver.gameserver.model.actor.L2Npc;
+import com.l2jserver.gameserver.model.actor.L2Playable;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 import com.l2jserver.gameserver.model.quest.QuestState;
 import com.l2jserver.gameserver.util.Util;
@@ -141,10 +142,10 @@ public class VarkaKetra extends AbstractNpcAI
 	private VarkaKetra()
 	{
 		super(VarkaKetra.class.getSimpleName(), "ai/group_template");
-		addAggroRangeEnterId(KETRA);
-		addAggroRangeEnterId(VARKA);
 		addKillId(KETRA);
 		addKillId(VARKA);
+		addNpcHateId(KETRA);
+		addNpcHateId(VARKA);
 	}
 	
 	@Override
@@ -165,7 +166,7 @@ public class VarkaKetra extends AbstractNpcAI
 		}
 	}
 	
-	private void decreaseAlliance(L2PcInstance player, int[] marks)
+	private final void decreaseAlliance(L2PcInstance player, int[] marks)
 	{
 		for (int i = 0; i < marks.length; i++)
 		{
@@ -181,7 +182,7 @@ public class VarkaKetra extends AbstractNpcAI
 		}
 	}
 	
-	private void exitQuests(L2PcInstance player, String[] quests)
+	private final void exitQuests(L2PcInstance player, String[] quests)
 	{
 		for (String quest : quests)
 		{
@@ -194,24 +195,21 @@ public class VarkaKetra extends AbstractNpcAI
 	}
 	
 	@Override
-	public String onAggroRangeEnter(L2Npc npc, L2PcInstance player, boolean isSummon)
+	public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
 	{
-		if ((Util.contains(KETRA, npc.getId()) && hasAtLeastOneQuestItem(player, KETRA_MARKS)) || (Util.contains(VARKA, npc.getId()) && hasAtLeastOneQuestItem(player, VARKA_MARKS)))
-		{
-			if (((L2Attackable) npc).containsTarget(player))
-			{
-				((L2Attackable) npc).getAggroList().get(player).stopHate();
-			}
-			npc.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
-		}
-		return super.onAggroRangeEnter(npc, player, isSummon);
+		executeForEachPlayer(killer, npc, isSummon, true, false);
+		return super.onKill(npc, killer, isSummon);
 	}
 	
 	@Override
-	public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
+	public boolean onNpcHate(L2Attackable mob, L2Playable playable)
 	{
-		executeForEachPlayer(killer, npc, isSummon, true, false);
-		return super.onKill(npc, killer, isSummon);
+		return stopAttack(playable.getActingPlayer(), mob) ? false : super.onNpcHate(mob, playable);
+	}
+	
+	private final boolean stopAttack(L2PcInstance player, L2Character monster)
+	{
+		return (Util.contains(KETRA, monster.getId()) && hasAtLeastOneQuestItem(player, KETRA_MARKS)) || (Util.contains(VARKA, monster.getId()) && hasAtLeastOneQuestItem(player, VARKA_MARKS));
 	}
 	
 	public static void main(String[] args)