diff --git a/L2J_DataPack_BETA/dist/game/data/html/default/32049.htm b/L2J_DataPack_BETA/dist/game/data/html/default/32049.htm
new file mode 100644
index 0000000000000000000000000000000000000000..8266807a96fb1522c555e24dd554903d76a51e91
--- /dev/null
+++ b/L2J_DataPack_BETA/dist/game/data/html/default/32049.htm
@@ -0,0 +1,4 @@
+<html><body>Blacksmith of Wind Rooney:<br>
+I'm Rooney. I came here with my older brother, Vulcan, looking for the ultimate flames in this Forge of the Gods! But I just can't stand in one place like a stone, you know, like Vulcan does! So I'm just stretching my legs a little... Ha!<br>
+<a action="bypass -h npc_%objectId%_Quest">Quest</a>
+</body></html>
\ No newline at end of file
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts.cfg b/L2J_DataPack_BETA/dist/game/data/scripts.cfg
index 3fc037ad14df913835ede3e7a8a2dfd0bc03223c..c139ffbbd523828a7c299456c0c2d97d43554af7 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts.cfg
+++ b/L2J_DataPack_BETA/dist/game/data/scripts.cfg
@@ -12,6 +12,9 @@ handlers/MasterHandler.java
 
 # Npc
 ai/npc/DragonVortex/DragonVortex.java
+ai/npc/ForgeOfTheGods/ForgeOfTheGods.java
+ai/npc/ForgeOfTheGods/Rooney.java
+ai/npc/ForgeOfTheGods/TarBeetle.java
 ai/npc/NpcBuffers/BirthdayCake.java
 ai/npc/NpcBuffers/CabaleBuffer.java
 ai/npc/NpcBuffers/ChristmasTree.java
@@ -637,7 +640,7 @@ quests/613_ProveYourCourage_Varka/__init__.py
 quests/614_SlayTheEnemyCommander_Varka/__init__.py
 quests/615_MagicalPowerOfFirePart1/__init__.py
 quests/616_MagicalPowerOfFirePart2/__init__.py
-quests/617_GatherTheFlames/__init__.py
+quests/Q00617_GatherTheFlames/Q00617_GatherTheFlames.java
 quests/618_IntoTheFlame/__init__.py
 quests/619_RelicsOfTheOldEmpire/__init__.py
 quests/620_FourGoblets/__init__.py
@@ -687,6 +690,7 @@ quests/699_GuardianOfTheSkies/__init__.py
 quests/700_CursedLife/__init__.py
 quests/701_Proof_Of_Existence/__init__.py
 quests/Q00702_ATrapForRevenge/Q00702_ATrapForRevenge.java
+quests/Q00901_HowLavasaurusesAreMade/Q00901_HowLavasaurusesAreMade.java
 quests/998_FallenAngelSelect/__init__.py
 quests/999_T1Tutorial/__init__.py
 quests/Q10267_JourneyToGracia/Q10267_JourneyToGracia.java
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/ForgeOfTheGods/ForgeOfTheGods.java b/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/ForgeOfTheGods/ForgeOfTheGods.java
new file mode 100644
index 0000000000000000000000000000000000000000..96f624de2797d767bb4d9265d031f8ae64168d4f
--- /dev/null
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/ForgeOfTheGods/ForgeOfTheGods.java
@@ -0,0 +1,199 @@
+/*
+ * This program is free software: you can redistribute it and/or modify it under
+ * the terms of the GNU General Public License as published by the Free Software
+ * Foundation, either version 3 of the License, or (at your option) any later
+ * version.
+ * 
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
+ * details.
+ * 
+ * You should have received a copy of the GNU General Public License along with
+ * this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+package ai.npc.ForgeOfTheGods;
+
+import ai.npc.AbstractNpcAI;
+
+import com.l2jserver.gameserver.ai.CtrlIntention;
+import com.l2jserver.gameserver.model.actor.L2Attackable;
+import com.l2jserver.gameserver.model.actor.L2Npc;
+import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
+
+/**
+ * Forge of the Gods AI
+ * @author nonom, malyelfik
+ */
+public class ForgeOfTheGods extends AbstractNpcAI
+{
+	// NPCs
+	private static final int[] FOG_MOBS =
+	{
+		22634, // Scarlet Stakato Worker
+		22635, // Scarlet Stakato Soldier
+		22636, // Scarlet Stakato Noble
+		22637, // Tepra Scorpion
+		22638, // Tepra Scarab
+		22639, // Assassin Beetle
+		22640, // Mercenary of Destruction
+		22641, // Knight of Destruction
+		22642, // Lavastone Golem
+		22643, // Magma Golem
+		22644, // Arimanes of Destruction
+		22645, // Balor of Destruction
+		22646, // Ashuras of Destruction
+		22647, // Lavasillisk
+		22648, // Blazing Ifrit
+		22649  // Magma Drake
+	};
+	
+	private static final int[] LAVASAURUSES =
+	{
+		18799, // Newborn Lavasaurus
+		18800, // Fledgling Lavasaurus
+		18801, // Adult Lavasaurus
+		18802, // Elderly Lavasaurus
+		18803  // Ancient Lavasaurus
+	};
+	
+	private static final int REFRESH = 15;
+	
+	private static final int MOBCOUNT_BONUS_MIN = 3;
+	
+	private static final int BONUS_UPPER_LV01 = 5;
+	private static final int BONUS_UPPER_LV02 = 10;
+	private static final int BONUS_UPPER_LV03 = 15;
+	private static final int BONUS_UPPER_LV04 = 20;
+	private static final int BONUS_UPPER_LV05 = 35;
+	
+	private static final int BONUS_LOWER_LV01 = 5;
+	private static final int BONUS_LOWER_LV02 = 10;
+	private static final int BONUS_LOWER_LV03 = 15;
+	
+	private static final int FORGE_BONUS01 = 20;
+	private static final int FORGE_BONUS02 = 40;
+	
+	private static int _npcCount = 0;
+	// private static int _npcsAlive = 0; TODO: Require zone spawn support
+	
+	@Override
+	public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
+	{
+		switch (event)
+		{
+			case "suicide":
+				if (npc != null)
+				{
+					npc.doDie(null);
+				}
+				break;
+			case "refresh":
+				_npcCount = 0;
+				break;
+		}
+		return null;
+	}
+	
+	@Override
+	public String onKill(L2Npc npc, L2PcInstance killer, boolean isPet)
+	{
+		int rand = getRandom(100);
+		L2Npc mob = null;
+		_npcCount++;
+		
+		// For monsters at Forge of the Gods - Lower level
+		if (npc.getSpawn().getLocz() < -5000) // && (_npcsAlive < 48)) 
+		{
+			if ((_npcCount > BONUS_LOWER_LV03) && (rand <= FORGE_BONUS02))
+			{
+				mob = addSpawn(LAVASAURUSES[4], npc, true);
+			}
+			else if (_npcCount > BONUS_LOWER_LV02)
+			{
+				mob = spawnLavasaurus(npc, rand, LAVASAURUSES[4], LAVASAURUSES[3]);
+			}
+			else if (_npcCount > BONUS_LOWER_LV01)
+			{
+				mob = spawnLavasaurus(npc, rand, LAVASAURUSES[3], LAVASAURUSES[2]);
+			}
+			else if (_npcCount >= MOBCOUNT_BONUS_MIN)
+			{
+				mob = spawnLavasaurus(npc, rand, LAVASAURUSES[2], LAVASAURUSES[1]);
+			}
+		}
+		else // if (_npcsAlive < 32)
+		{
+			if ((_npcCount > BONUS_UPPER_LV05) && (rand <= FORGE_BONUS02))
+			{
+				mob = addSpawn(LAVASAURUSES[1], npc, true);
+			}
+			else if (_npcCount > BONUS_UPPER_LV04)
+			{
+				mob = spawnLavasaurus(npc, rand, LAVASAURUSES[4], LAVASAURUSES[3]);
+			}
+			else if (_npcCount > BONUS_UPPER_LV03)
+			{
+				mob = spawnLavasaurus(npc, rand, LAVASAURUSES[3], LAVASAURUSES[2]);
+			}
+			else if (_npcCount > BONUS_UPPER_LV02)
+			{
+				mob = spawnLavasaurus(npc, rand, LAVASAURUSES[2], LAVASAURUSES[1]);
+			}
+			else if (_npcCount > BONUS_UPPER_LV01)
+			{
+				mob = spawnLavasaurus(npc, rand, LAVASAURUSES[1], LAVASAURUSES[0]);
+			}
+			else if ((_npcCount >= MOBCOUNT_BONUS_MIN) && (rand <= FORGE_BONUS01))
+			{
+				mob = addSpawn(LAVASAURUSES[0], npc, true);
+			}
+		}
+		if (mob != null)
+		{
+			((L2Attackable) mob).addDamageHate(killer, 0, 9999);
+			mob.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK);
+		}
+		return super.onKill(npc, killer, isPet);
+	}
+	
+	@Override
+	public final String onSpawn(L2Npc npc)
+	{
+		startQuestTimer("suicide", 60000, npc, null);
+		return super.onSpawn(npc);
+	}
+	
+	private L2Npc spawnLavasaurus(L2Npc npc, int rand, int... mobs)
+	{
+		if (mobs.length < 2)
+		{
+			return null;
+		}
+		
+		L2Npc mob = null;
+		if (rand <= FORGE_BONUS01)
+		{
+			mob = addSpawn(mobs[0], npc, true);
+		}
+		else if (rand <= FORGE_BONUS02)
+		{
+			mob = addSpawn(mobs[1], npc, true);
+		}
+		return mob;
+	}
+	
+	public ForgeOfTheGods(String name, String descr)
+	{
+		super(name, descr);
+		addKillId(FOG_MOBS);
+		addSpawnId(LAVASAURUSES);
+		
+		startQuestTimer("refresh", REFRESH * 1000, null, null, true);
+	}
+	
+	public static void main(String[] args)
+	{
+		new ForgeOfTheGods(ForgeOfTheGods.class.getSimpleName(), "ai/npc/");
+	}
+}
\ No newline at end of file
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/ForgeOfTheGods/Rooney.java b/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/ForgeOfTheGods/Rooney.java
new file mode 100644
index 0000000000000000000000000000000000000000..8ba9ec6c7c708c29bbef31a2643b68393521c076
--- /dev/null
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/ForgeOfTheGods/Rooney.java
@@ -0,0 +1,126 @@
+/*
+ * This program is free software: you can redistribute it and/or modify it under
+ * the terms of the GNU General Public License as published by the Free Software
+ * Foundation, either version 3 of the License, or (at your option) any later
+ * version.
+ * 
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
+ * details.
+ * 
+ * You should have received a copy of the GNU General Public License along with
+ * this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+package ai.npc.ForgeOfTheGods;
+
+import ai.npc.AbstractNpcAI;
+
+import com.l2jserver.gameserver.model.Location;
+import com.l2jserver.gameserver.model.actor.L2Npc;
+import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jserver.gameserver.network.NpcStringId;
+import com.l2jserver.gameserver.network.clientpackets.Say2;
+
+/**
+ * Rooney AI
+ * @author malyelfik
+ */
+public class Rooney extends AbstractNpcAI
+{
+	// Rooney ID
+	private static final int NPC_ID = 32049;
+	
+	// Locations
+	private static final Location[] LOCATIONS =
+	{
+		new Location(175937, -112167, -5550),
+		new Location(178896, -112425, -5860),
+		new Location(180628, -115992, -6135),
+		new Location(183010, -114753, -6135),
+		new Location(184496, -116773, -6135),
+		new Location(181857, -109491, -5865),
+		new Location(178917, -107633, -5853),
+		new Location(178804, -110080, -5853),
+		new Location(182221, -106806, -6025),
+		new Location(186488, -109715, -5915),
+		new Location(183847, -119231, -3113),
+		new Location(185193, -120342, -3113),
+		new Location(188047, -120867, -3113),
+		new Location(189734, -120471, -3113),
+		new Location(188754, -118940, -3313),
+		new Location(190022, -116803, -3313),
+		new Location(188443, -115814, -3313),
+		new Location(186421, -114614, -3313),
+		new Location(185188, -113307, -3313),
+		new Location(187378, -112946, -3313),
+		new Location(189815, -113425, -3313),
+		new Location(189301, -111327, -3313),
+		new Location(190289, -109176, -3313),
+		new Location(187783, -110478, -3313),
+		new Location(185889, -109990, -3313),
+		new Location(181881, -109060, -3695),
+		new Location(183570, -111344, -3675),
+		new Location(182077, -112567, -3695),
+		new Location(180127, -112776, -3698),
+		new Location(179155, -108629, -3695),
+		new Location(176282, -109510, -3698),
+		new Location(176071, -113163, -3515),
+		new Location(179376, -117056, -3640),
+		new Location(179760, -115385, -3640),
+		new Location(177950, -119691, -4140),
+		new Location(177037, -120820, -4340),
+		new Location(181125, -120148, -3702),
+		new Location(182212, -117969, -3352),
+		new Location(186074, -118154, -3312)
+	};
+	
+	@Override
+	public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
+	{
+		switch (event)
+		{
+			case "checkArea":
+				if (!npc.getKnownList().getKnownPlayersInRadius(300).isEmpty())
+				{
+					cancelQuestTimers("checkArea");
+					broadcastNpcSay(npc, Say2.NPC_ALL, NpcStringId.WELCOME);
+					startQuestTimer("say1", 60000, npc, null);
+				}
+				break;
+			case "say1":
+				broadcastNpcSay(npc, Say2.NPC_ALL, NpcStringId.HURRY_HURRY);
+				startQuestTimer("say2", 60000, npc, null);
+				break;
+			case "say2":
+				broadcastNpcSay(npc, Say2.NPC_ALL, NpcStringId.I_AM_NOT_THAT_TYPE_OF_PERSON_WHO_STAYS_IN_ONE_PLACE_FOR_A_LONG_TIME);
+				startQuestTimer("say3", 60000, npc, null);
+				break;
+			case "say3":
+				broadcastNpcSay(npc, Say2.NPC_ALL, NpcStringId.ITS_HARD_FOR_ME_TO_KEEP_STANDING_LIKE_THIS);
+				startQuestTimer("say4", 60000, npc, null);
+				break;
+			case "say4":
+				broadcastNpcSay(npc, Say2.NPC_ALL, NpcStringId.WHY_DONT_I_GO_THAT_WAY_THIS_TIME);
+				startQuestTimer("teleport", 60000, npc, null);
+				break;
+			case "teleport":
+				npc.teleToLocation(LOCATIONS[getRandom(LOCATIONS.length)], false);
+				startQuestTimer("checkArea", 1000, npc, null, true);
+				break;
+		}
+		return null;
+	}
+	
+	public Rooney(String name, String descr)
+	{
+		super(name, descr);
+		final L2Npc npc = addSpawn(NPC_ID, LOCATIONS[getRandom(LOCATIONS.length)], false, 0);
+		startQuestTimer("checkArea", 1000, npc, null, true);
+	}
+	
+	public static void main(String[] args)
+	{
+		new Rooney(Rooney.class.getSimpleName(), "ai/npc/");
+	}
+}
\ No newline at end of file
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/ForgeOfTheGods/TarBeetle.java b/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/ForgeOfTheGods/TarBeetle.java
new file mode 100644
index 0000000000000000000000000000000000000000..29b48f43af1c6dab7e0a9c2954d96683ba0456c2
--- /dev/null
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/ForgeOfTheGods/TarBeetle.java
@@ -0,0 +1,109 @@
+/*
+ * This program is free software: you can redistribute it and/or modify it under
+ * the terms of the GNU General Public License as published by the Free Software
+ * Foundation, either version 3 of the License, or (at your option) any later
+ * version.
+ * 
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
+ * details.
+ * 
+ * You should have received a copy of the GNU General Public License along with
+ * this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+package ai.npc.ForgeOfTheGods;
+
+import ai.npc.AbstractNpcAI;
+
+import com.l2jserver.gameserver.model.actor.L2Npc;
+import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jserver.gameserver.model.effects.L2Effect;
+import com.l2jserver.gameserver.model.holders.SkillHolder;
+import com.l2jserver.gameserver.model.skills.L2Skill;
+
+/**
+ * Tar Beetle AI
+ * @author nonom, malyelfik
+ */
+public class TarBeetle extends AbstractNpcAI
+{
+	// NPC
+	private static final int TAR_BEETLE = 18804;
+	
+	// Skills
+	private static final int SKILL_ID = 6142;
+	private static SkillHolder[] SKILLS =
+	{
+		new SkillHolder(SKILL_ID, 1),
+		new SkillHolder(SKILL_ID, 2),
+		new SkillHolder(SKILL_ID, 3)
+	};
+	
+	private static final TarBeetleSpawn spawn = new TarBeetleSpawn();
+	
+	@Override
+	public String onAggroRangeEnter(L2Npc npc, L2PcInstance player, boolean isPet)
+	{
+		if ((spawn.getBeetle(npc).getNumShotValue() > 0) && canCastSkill(npc))
+		{
+			int level = 0;
+			final L2Effect effect = player.getFirstEffect(SKILL_ID);
+			if (effect != null)
+			{
+				level = effect.getSkill().getAbnormalLvl();
+			}
+			if (level < 3)
+			{
+				
+				npc.setTarget(player);
+				npc.doCast(SKILLS[level].getSkill());
+			}
+		}
+		return super.onAggroRangeEnter(npc, player, isPet);
+	}
+	
+	@Override
+	public String onSpellFinished(L2Npc npc, L2PcInstance player, L2Skill skill)
+	{
+		if ((skill != null) && (skill.getId() == SKILL_ID))
+		{
+			int val = spawn.getBeetle(npc).getNumShotValue() - 1;
+			if ((val <= 0) || (SKILLS[0].getSkill().getMpConsume() > npc.getCurrentMp()))
+			{
+				spawn.removeBeetle(npc);
+			}
+			else
+			{
+				spawn.getBeetle(npc).setNumShotValue(val);
+			}
+		}
+		return super.onSpellFinished(npc, player, skill);
+	}
+	
+	private boolean canCastSkill(L2Npc npc)
+	{
+		for (SkillHolder holder : SKILLS)
+		{
+			if (npc.isSkillDisabled(holder.getSkill()))
+			{
+				return false;
+			}
+		}
+		return true;
+	}
+	
+	public TarBeetle(String name, String descr)
+	{
+		super(name, descr);
+		addAggroRangeEnterId(TAR_BEETLE);
+		addSpellFinishedId(TAR_BEETLE);
+		
+		spawn.startTasks();
+	}
+	
+	public static void main(String[] args)
+	{
+		new TarBeetle(TarBeetle.class.getSimpleName(), "ai/npc/");
+	}
+}
\ No newline at end of file
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/ForgeOfTheGods/TarBeetleSpawn.java b/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/ForgeOfTheGods/TarBeetleSpawn.java
new file mode 100644
index 0000000000000000000000000000000000000000..7e05a78b5c1f222015fbf4d0a7d96f6783500e71
--- /dev/null
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/ForgeOfTheGods/TarBeetleSpawn.java
@@ -0,0 +1,295 @@
+/*
+ * This program is free software: you can redistribute it and/or modify it under
+ * the terms of the GNU General Public License as published by the Free Software
+ * Foundation, either version 3 of the License, or (at your option) any later
+ * version.
+ * 
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
+ * details.
+ * 
+ * You should have received a copy of the GNU General Public License along with
+ * this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+package ai.npc.ForgeOfTheGods;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import org.w3c.dom.NamedNodeMap;
+import org.w3c.dom.Node;
+
+import com.l2jserver.gameserver.GeoData;
+import com.l2jserver.gameserver.ThreadPoolManager;
+import com.l2jserver.gameserver.datatables.NpcTable;
+import com.l2jserver.gameserver.engines.DocumentParser;
+import com.l2jserver.gameserver.model.L2Spawn;
+import com.l2jserver.gameserver.model.L2Territory;
+import com.l2jserver.gameserver.model.actor.L2Npc;
+import com.l2jserver.util.Rnd;
+
+/**
+ * Tar Beetle zone spawn
+ * @author malyelfik
+ */
+public class TarBeetleSpawn extends DocumentParser
+{
+	private static final Map<Integer, SpawnZone> _spawnZoneList = new HashMap<>();
+	private static final Map<Integer, Beetle> _spawnList = new HashMap<>();
+	
+	public static List<Integer> lowerZones = new ArrayList<>();
+	public static List<Integer> upperZones = new ArrayList<>();
+	
+	public static int lowerNpcCount = 0;
+	public static int upperNpcCount = 0;
+	
+	public TarBeetleSpawn()
+	{
+		load();
+	}
+	
+	@Override
+	public void load()
+	{
+		_spawnZoneList.clear();
+		_spawnList.clear();
+		parseDatapackFile("data/spawnZones/tar_bettle.xml");
+		_log.info(TarBeetleSpawn.class.getSimpleName() + ": Loaded " + _spawnZoneList.size() + " spawn zones.");
+	}
+	
+	@Override
+	protected void parseDocument()
+	{
+		final Node n = getCurrentDocument().getFirstChild();
+		for (Node d = n.getFirstChild(); d != null; d = d.getNextSibling())
+		{
+			if (d.getNodeName().equals("spawnZones"))
+			{
+				for (Node r = d.getFirstChild(); r != null; r = r.getNextSibling())
+				{
+					if (r.getNodeName().equals("zone"))
+					{
+						NamedNodeMap attrs = r.getAttributes();
+						int id = parseInt(attrs, "id");
+						int minZ = parseInt(attrs, "minZ");
+						int maxZ = parseInt(attrs, "maxZ");
+						String type = parseString(attrs, "type");
+						if (type.equals("upper"))
+						{
+							upperZones.add(id);
+						}
+						else if (type.equals("lower"))
+						{
+							lowerZones.add(id);
+						}
+						
+						int[] bZones = null;
+						String bZonesStr = parseString(attrs, "bZones");
+						if (!bZonesStr.isEmpty())
+						{
+							String[] str = bZonesStr.split(";");
+							bZones = new int[str.length];
+							for (int i = 0; i < str.length; i++)
+							{
+								bZones[i] = Integer.parseInt(str[i]);
+							}
+						}
+						
+						SpawnZone zone = new SpawnZone(id, bZones);
+						for (Node c = r.getFirstChild(); c != null; c = c.getNextSibling())
+						{
+							if (c.getNodeName().equals("point"))
+							{
+								attrs = c.getAttributes();
+								int x = parseInt(attrs, "x");
+								int y = parseInt(attrs, "y");
+								zone.add(x, y, minZ, maxZ, 0);
+							}
+						}
+						_spawnZoneList.put(id, zone);
+					}
+				}
+			}
+		}
+	}
+	
+	public void removeBeetle(L2Npc npc)
+	{
+		npc.deleteMe();
+		_spawnList.remove(npc.getObjectId());
+		if (npc.getSpawn().getLocz() < -5000)
+		{
+			lowerNpcCount--;
+		}
+		else
+		{
+			upperNpcCount--;
+		}
+	}
+	
+	public void spawn(List<Integer> zone)
+	{
+		try
+		{
+			Collections.shuffle(zone);
+			int[] loc = getSpawnZoneById(zone.get(0)).getRandomPoint();
+			
+			final L2Spawn spawn = new L2Spawn(NpcTable.getInstance().getTemplate(18804));
+			spawn.setHeading(Rnd.get(65535));
+			spawn.setLocx(loc[0]);
+			spawn.setLocy(loc[1]);
+			spawn.setLocz(GeoData.getInstance().getSpawnHeight(loc[0], loc[1], loc[2], loc[3], null));
+			
+			final L2Npc npc = spawn.doSpawn();
+			npc.setIsNoRndWalk(true);
+			npc.setIsImmobilized(true);
+			npc.setIsInvul(true);
+			npc.disableCoreAI(true);
+			
+			_spawnList.put(npc.getObjectId(), new Beetle(npc));
+		}
+		catch (Exception e)
+		{
+			_log.warning(TarBeetleSpawn.class.getSimpleName() + ": Could not spawn npc! Error: " + e.getMessage());
+		}
+	}
+	
+	public void startTasks()
+	{
+		ThreadPoolManager.getInstance().scheduleGeneralAtFixedRate(new SpawnTask(), 1000, 60000);
+		ThreadPoolManager.getInstance().scheduleGeneralAtFixedRate(new NumShotTask(), 300000, 300000);
+	}
+	
+	public SpawnZone getSpawnZoneById(int id)
+	{
+		return _spawnZoneList.get(id);
+	}
+	
+	public Beetle getBeetle(L2Npc npc)
+	{
+		return _spawnList.get(npc.getObjectId());
+	}
+	
+	public static Map<Integer, Beetle> getSpawnList()
+	{
+		return _spawnList;
+	}
+	
+	public class Beetle
+	{
+		private int _numShotValue = 5;
+		private final L2Npc _npc;
+		
+		public Beetle(L2Npc npc)
+		{
+			_npc = npc;
+		}
+		
+		public L2Npc getNpc()
+		{
+			return _npc;
+		}
+		
+		public void setNumShotValue(int numShotValue)
+		{
+			_numShotValue = numShotValue;
+		}
+		
+		public int getNumShotValue()
+		{
+			return _numShotValue;
+		}
+	}
+	
+	private class SpawnZone extends L2Territory
+	{
+		private int[] _bZones;
+		
+		public SpawnZone(int terr, int[] bZones)
+		{
+			super(terr);
+			_bZones = bZones;
+		}
+		
+		@Override
+		public int[] getRandomPoint()
+		{
+			int[] loc = super.getRandomPoint();
+			while (isInsideBannedZone(loc))
+			{
+				loc = super.getRandomPoint();
+			}
+			return loc;
+		}
+		
+		private boolean isInsideBannedZone(int[] loc)
+		{
+			if (_bZones != null)
+			{
+				for (int i : _bZones)
+				{
+					if (getSpawnZoneById(i).isInside(loc[0], loc[1]))
+					{
+						return true;
+					}
+				}
+			}
+			return false;
+		}
+	}
+	
+	public class SpawnTask implements Runnable
+	{
+		@Override
+		public void run()
+		{
+			while (lowerNpcCount < 4)
+			{
+				spawn(lowerZones);
+				lowerNpcCount++;
+			}
+			
+			while (upperNpcCount < 12)
+			{
+				spawn(upperZones);
+				upperNpcCount++;
+			}
+		}
+	}
+	
+	public class NumShotTask implements Runnable
+	{
+		@Override
+		public void run()
+		{
+			Iterator<Beetle> iterator = getSpawnList().values().iterator();
+			while (iterator.hasNext())
+			{
+				Beetle b = iterator.next();
+				int val = b.getNumShotValue();
+				if (val == 5)
+				{
+					b.getNpc().deleteMe();
+					iterator.remove();
+					if (b.getNpc().getSpawn().getLocz() < -5000)
+					{
+						lowerNpcCount--;
+					}
+					else
+					{
+						upperNpcCount--;
+					}
+				}
+				else
+				{
+					b.setNumShotValue(val + 1);
+				}
+			}
+		}
+	}
+}
\ No newline at end of file
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/617_GatherTheFlames/31231-02.htm b/L2J_DataPack_BETA/dist/game/data/scripts/quests/617_GatherTheFlames/31231-02.htm
deleted file mode 100644
index 2a91ac280a8dc84bf7093a178a9b46729b2f2b31..0000000000000000000000000000000000000000
--- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/617_GatherTheFlames/31231-02.htm
+++ /dev/null
@@ -1,5 +0,0 @@
-<html><body>Blacksmith Hilda:<br>
-I've a tale to interest you. Have you heard tell of  <font color="LEVEL">Vulcan</font>, the blacksmith? Now, all us blacksmiths have much to say about fire ... we depend on it for our livelihood. Vulcan, though, he spoke of nothing else, and his talk was the marvel of all who heard it. He said that the fire was the actual life of the blacksmith, and could think of nothing but ways to make his fire hotter and fiercer.<br>
-Eventually, he followed his notions right into the deeps of the <font color="LEVEL">Gods' Forge</font>, where he said he could collect and use all the fire he could want. It's a horribly dangerous place, and he's looking for those who can accompany him, adventurers who are not shy of danger and who can help him collect the flames. Do you reckon to be interested? <br>
-<a action="bypass -h Quest 617_GatherTheFlames 31231-03.htm">Express interest in the venture.</a>
-</body></html>
\ No newline at end of file
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/617_GatherTheFlames/31231-04.htm b/L2J_DataPack_BETA/dist/game/data/scripts/quests/617_GatherTheFlames/31231-04.htm
deleted file mode 100644
index 18ac95331dcc84c63b60f2f395ce71ef596f662b..0000000000000000000000000000000000000000
--- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/617_GatherTheFlames/31231-04.htm
+++ /dev/null
@@ -1,3 +0,0 @@
-<html><body>Blacksmith Hilda:<br>
-So you met with Vulcan, did you?  Did he give you an earful of his madness?  Well, he's mad about flame, but the rewards he offers are real. Defeat the <font color="LEVEL">monsters in the Gods' Forge</font>, collect the flames you find, and go to him; he will give you an S-grade weapon recipe if you bring him <font color="LEVEL">1000 flames</font>.<br> If you gather even more flames, you might see about meeting Vulcan's younger brother <font color="LEVEL">Rooney</font>.  He's as mad as his brother, and he's engaged in the same quest.  <font color="LEVEL">Bring him 1200 flames and he will give you an S-grade weapon recipe.</font>. Rooney wanders from here to there, so he's not easy to find...but it might be worth your while to deal with him.
-</body></html>
\ No newline at end of file
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/617_GatherTheFlames/31539-03.htm b/L2J_DataPack_BETA/dist/game/data/scripts/quests/617_GatherTheFlames/31539-03.htm
deleted file mode 100644
index c387e53e4793f045d725a174a9cce4aec09bdd33..0000000000000000000000000000000000000000
--- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/617_GatherTheFlames/31539-03.htm
+++ /dev/null
@@ -1,2 +0,0 @@
-<html><body>Flame Blacksmith Vulcan:<br>
-You can get flames from monsters in<font color="LEVEL"> Forge of the Gods</font>. Collect<font color="LEVEL"> 1000 flames</font> and I'll give you a grade S weapon recipe.</body></html>
\ No newline at end of file
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/617_GatherTheFlames/31539-04.htm b/L2J_DataPack_BETA/dist/game/data/scripts/quests/617_GatherTheFlames/31539-04.htm
deleted file mode 100644
index 570f50ea0c6b2122b3ddac54c196931dac9d39c3..0000000000000000000000000000000000000000
--- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/617_GatherTheFlames/31539-04.htm
+++ /dev/null
@@ -1,5 +0,0 @@
-<html><body>Flame Blacksmith Vulcan:<br>
-You brought me one thousand flames as I asked! So, do you want to exchange them for a Grade S weapon recipe?<br>
-<a action="bypass -h Quest 617_GatherTheFlames 31539-06.htm">"I don't want to trade now."</a><br>
-<a action="bypass -h Quest 617_GatherTheFlames 31539-05.htm">"Yes, I'll trade now."</a>
-</body></html>
\ No newline at end of file
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/617_GatherTheFlames/31539-05.htm b/L2J_DataPack_BETA/dist/game/data/scripts/quests/617_GatherTheFlames/31539-05.htm
deleted file mode 100644
index 79075ea99a4f51b99ae92bf8606fe3c88bc14daa..0000000000000000000000000000000000000000
--- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/617_GatherTheFlames/31539-05.htm
+++ /dev/null
@@ -1,4 +0,0 @@
-<html><body>Flame Blacksmith Vulcan:<br>
-You don't have 1000 flames yet. Get them from<font color="LEVEL"> monsters in Forge of the Gods</font>. Bring me<font color="LEVEL"> 1000 flames</font> and I'll give you a grade S weapon recipe.<br>
-<a action="bypass -h Quest 617_GatherTheFlames 31539-06.htm">"I'll keep at it."</a><br>
-<a action="bypass -h Quest 617_GatherTheFlames 31539-08.htm">"I want to quit."</a></body></html>
\ No newline at end of file
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/617_GatherTheFlames/31539-06.htm b/L2J_DataPack_BETA/dist/game/data/scripts/quests/617_GatherTheFlames/31539-06.htm
deleted file mode 100644
index c501a0a37f52fe895b676700c5f00011c80f6696..0000000000000000000000000000000000000000
--- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/617_GatherTheFlames/31539-06.htm
+++ /dev/null
@@ -1,2 +0,0 @@
-<html><body>Flame Blacksmith Vulcan:<br>
-Continue gathering flames from<font color="LEVEL"> monsters in Forge of the Gods</font>.</body></html>
\ No newline at end of file
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/617_GatherTheFlames/31539-07.htm b/L2J_DataPack_BETA/dist/game/data/scripts/quests/617_GatherTheFlames/31539-07.htm
deleted file mode 100644
index ea333fb759ae7d57037968605716f6a2721d6ad4..0000000000000000000000000000000000000000
--- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/617_GatherTheFlames/31539-07.htm
+++ /dev/null
@@ -1,3 +0,0 @@
-<html><body>Flame Blacksmith Vulcan:<br>
-Sorry if this isn't for the weapon you wanted, but a grade S weapon recipe is hard to get and very valuable!<br>
-</body></html>
\ No newline at end of file
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/617_GatherTheFlames/31539-08.htm b/L2J_DataPack_BETA/dist/game/data/scripts/quests/617_GatherTheFlames/31539-08.htm
deleted file mode 100644
index d644ecec3e3eebdb606ed3af8364005ab1131528..0000000000000000000000000000000000000000
--- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/617_GatherTheFlames/31539-08.htm
+++ /dev/null
@@ -1,2 +0,0 @@
-<html><body>Flame Blacksmith Vulcan:<br>
-Come back anytime if you change your mind, I'll be here.</body></html>
\ No newline at end of file
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/617_GatherTheFlames/32049-01.htm b/L2J_DataPack_BETA/dist/game/data/scripts/quests/617_GatherTheFlames/32049-01.htm
deleted file mode 100644
index d6b6d0db60a0b7c05d3d7283d457a84ee553e07e..0000000000000000000000000000000000000000
--- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/617_GatherTheFlames/32049-01.htm
+++ /dev/null
@@ -1,13 +0,0 @@
-<html><body>Blacksmith of Wind Rooney:<br>
-You brought 1200 flames!!! Choose your recipe from the list: (remember all these are 60%)<br>
-<a action="bypass -h Quest 617_GatherTheFlames 6881">"Forgotten Blade"</a><br>
-<a action="bypass -h Quest 617_GatherTheFlames 6883">"Basalt Battlehammer"</a><br>
-<a action="bypass -h Quest 617_GatherTheFlames 6885">"Imperial Staff"</a><br>
-<a action="bypass -h Quest 617_GatherTheFlames 6887">"Angel Slayer"</a><br>
-<a action="bypass -h Quest 617_GatherTheFlames 6891">"Dragon Hunter Axe"</a><br>
-<a action="bypass -h Quest 617_GatherTheFlames 6893">"Saint Spear"</a><br>
-<a action="bypass -h Quest 617_GatherTheFlames 6895">"Demon Splinter"</a><br>
-<a action="bypass -h Quest 617_GatherTheFlames 6897">"Heavens Divider"</a><br>
-<a action="bypass -h Quest 617_GatherTheFlames 6899">"Arcana Mace"</a><br>
-<a action="bypass -h Quest 617_GatherTheFlames 7580">"Draconic Bow"</a>
-</body></html>
\ No newline at end of file
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/617_GatherTheFlames/32049-02.htm b/L2J_DataPack_BETA/dist/game/data/scripts/quests/617_GatherTheFlames/32049-02.htm
deleted file mode 100644
index 5b7fd8ab7fb3592b5a1b9928bdd45bb43480bdeb..0000000000000000000000000000000000000000
--- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/617_GatherTheFlames/32049-02.htm
+++ /dev/null
@@ -1,3 +0,0 @@
-<html><body>Blacksmith of Wind Rooney:<br>
-You don't have 1200 flames yet. Get them from<font color="LEVEL"> monsters in Forge of the Gods</font>. Bring me<font color="LEVEL"> 1200 flames</font> and I'll give you an S-grade weapon recipe.
-</body></html>
\ No newline at end of file
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/617_GatherTheFlames/__init__.py b/L2J_DataPack_BETA/dist/game/data/scripts/quests/617_GatherTheFlames/__init__.py
deleted file mode 100644
index dac7218f041aeed0aa06c57f4ad942516e86a0fe..0000000000000000000000000000000000000000
--- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/617_GatherTheFlames/__init__.py
+++ /dev/null
@@ -1,137 +0,0 @@
-# Created by t0rm3nt0r
-# Drop rates and last reorganization by DrLecter
-# for the Official L2J Datapack Project.
-# Visit http://www.l2jdp.com/forum/ for more details.
-import sys
-from com.l2jserver import Config
-from com.l2jserver.gameserver.model.quest import State
-from com.l2jserver.gameserver.model.quest import QuestState
-from com.l2jserver.gameserver.model.quest.jython import QuestJython as JQuest
-
-qn = "617_GatherTheFlames"
-
-TORCH = 7264
-
-HILDA = 31271
-VULCAN = 31539
-ROONEY = 32049
-
-DROPLIST = {21381:51,21653:51,21387:53,21655:53,21390:56,21656:69,21389:55,21388:53,\
-            21383:51,21392:56,21382:60,21654:52,21384:64,21394:51,21395:56,21385:52,\
-            21391:55,21393:58,21657:57,21386:52,21652:49,21378:49,21376:48,21377:48,\
-            21379:59,21380:49}
-
-REWARDS = [ 6881,6883,6885,6887,6891,6893,6895,6897,6899,7580 ]
-REWARDS2= [ 6882,6884,6886,6888,6892,6894,6896,6898,6900,7581 ]
-
-#Change this value to 1 if you wish 100% recipes, default 60%
-ALT_RP100=0
-
-class Quest (JQuest) :
-
- def __init__(self,id,name,descr):
-     JQuest.__init__(self,id,name,descr)
-     self.questItemIds = [TORCH]
-
- def onEvent (self,event,st) :
-     htmltext = event
-     torches = st.getQuestItemsCount(TORCH)
-     if event == "31539-03.htm" :
-       if st.getPlayer().getLevel() >= 74 :
-         st.set("cond","1")
-         st.setState(State.STARTED)
-         st.playSound("ItemSound.quest_accept")
-       else :
-         htmltext = "31539-02.htm"
-         st.exitQuest(1)
-     elif event == "31231-03.htm" :
-       st.set("cond","1")
-       st.setState(State.STARTED)
-       st.playSound("ItemSound.quest_accept")
-     elif event == "31539-05.htm" and torches >= 1000 :
-       htmltext = "31539-07.htm"
-       st.takeItems(TORCH,1000)
-       if ALT_RP100 == 1:
-         st.giveItems(REWARDS2[self.getRandom(len(REWARDS2))],1)
-       else:
-         st.giveItems(REWARDS[self.getRandom(len(REWARDS))],1)
-     elif event == "31539-08.htm" :
-       st.takeItems(TORCH,-1)
-       st.exitQuest(1)
-     elif event.isdigit() and int(event) in REWARDS :
-       if torches >= 1200 :
-          st.takeItems(TORCH,1200)
-          if ALT_RP100 == 1:
-            st.giveItems(int(event)+1,1)
-          else:
-            st.giveItems(int(event),1)
-          htmltext = None
-       else :
-          htmltext = "Incorrect item count"
-     return htmltext    
-
- def onTalk (self,npc,player):
-     htmltext = Quest.getNoQuestMsg(player)
-     st = player.getQuestState(qn)
-     if not st : return htmltext
-     id = st.getState()
-     cond = st.getInt("cond")
-     torches = st.getQuestItemsCount(TORCH)
-     npcId = npc.getNpcId()
-     if npcId == VULCAN :
-       if id == State.CREATED :
-         if player.getLevel() < 74 :
-            st.exitQuest(1)
-            htmltext = "31539-02.htm"
-         else :
-            htmltext = "31539-01.htm"
-       elif torches < 1000 :
-         htmltext = "31539-05.htm"
-       else :
-         htmltext = "31539-04.htm"
-     elif npcId == HILDA :
-       if id == State.CREATED :
-         if player.getLevel() < 74 :
-            st.exitQuest(1)
-            htmltext = "31231-01.htm"
-         else :
-            htmltext = "31231-02.htm"
-       else:
-         htmltext = "31231-04.htm"
-     elif npcId == ROONEY and id == State.STARTED :
-       if torches >= 1200 :
-          htmltext = "32049-01.htm"
-       else :
-          htmltext = "32049-02.htm"
-     return htmltext
-
- def onKill(self,npc,player,isPet):
-     partyMember = self.getRandomPartyMemberState(player, State.STARTED)
-     if not partyMember: return
-     st = partyMember.getQuestState(qn)
-     if not st : return
-     torches = st.getQuestItemsCount(TORCH)
-     chance = DROPLIST[npc.getNpcId()]
-     drop = self.getRandom(100)
-     qty,chance = divmod(chance*Config.RATE_QUEST_DROP,100)
-     if drop < chance : qty += 1
-     qty = int(qty)
-     if qty :
-        st.giveItems(TORCH,qty)
-        if divmod(torches+1,1000)[1] == 0  or divmod(torches+1,1200)[1] == 0 :
-          st.playSound("ItemSound.quest_middle")
-        else :
-          st.playSound("ItemSound.quest_itemget")
-     return
-
-QUEST       = Quest(617, qn, "Gather The Flames")
-
-QUEST.addStartNpc(VULCAN)
-QUEST.addStartNpc(HILDA)
-
-QUEST.addTalkId(VULCAN)
-QUEST.addTalkId(ROONEY)
-QUEST.addTalkId(HILDA)
-
-for mob in DROPLIST.keys() :
-  QUEST.addKillId(mob)
\ No newline at end of file
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00617_GatherTheFlames/31271-01.htm b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00617_GatherTheFlames/31271-01.htm
new file mode 100644
index 0000000000000000000000000000000000000000..7776937ca54121cd7d42756655e7e04d1261c870
--- /dev/null
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00617_GatherTheFlames/31271-01.htm
@@ -0,0 +1,5 @@
+<html><body>Blacksmith Hilda:<br>
+I've a tale to interest you. Have you heard tell of <font color="LEVEL">Vulcan</font>, the blacksmith? Now, all us blacksmiths have much to say about fire — we depend on it for our livelihood. Vulcan, though, he spoke of nothing else, and his talk was the marvel of all who heard it. He said that the fire was the actual life of the blacksmith, and could think of nothing but ways to make his fire hotter and fiercer.<br>
+Eventually, he followed his notions right into the deeps of the <font color="LEVEL">Gods' Forge</font>, where he said he could collect and use all the fire he could want. It's a horribly dangerous place, and he's looking for those who can accompany him, adventurers who are not shy of danger and who can help him collect the flames. Do you reckon to be interested?<br>
+<a action="bypass -h Quest Q00617_GatherTheFlames 31271-03.htm">Express interest in the venture.</a>
+</body></html>
\ No newline at end of file
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/617_GatherTheFlames/31231-01.htm b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00617_GatherTheFlames/31271-02.htm
similarity index 79%
rename from L2J_DataPack_BETA/dist/game/data/scripts/quests/617_GatherTheFlames/31231-01.htm
rename to L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00617_GatherTheFlames/31271-02.htm
index 4a53f4ca70b4e2df395133bf501563556bf4c85f..5e2de66709fc5dfc02731434a635426e32f03601 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/617_GatherTheFlames/31231-01.htm
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00617_GatherTheFlames/31271-02.htm
@@ -1,5 +1,5 @@
 <html><body>Blacksmith Hilda:<br>
-Ho, there! I'm Hilda the Blacksmith, and if you want good, solid work done, there's none better here.<br>
-Don't pay any attention to the claims of that crackpot <font color="LEVEL">Vulcan</font>. He's mad through and through. Fire is his obsession ... he's forever searching for ways to make fire hotter and fiercer. I care for my fire, as does any competent blacksmith, but there are limits. Anyway, he won't live long enough to help you with anything; he's in the habit of venturing into the <font color="LEVEL">Forge of the Gods</font>, and one day its dangers will claim him - and his eternal fire too! <br>
+Ho, there! I'm Hilda the Blacksmith, and if you want good, solid work done, there's none better here.<br> 
+Don't pay any attention to the claims of that crackpot <font color="LEVEL">Vulcan</font>. He's mad through and through. Fire is his obsession — he's forever searching for ways to make fire hotter and fiercer. I care for my fire, as does any competent blacksmith, but there are limits. Anyway, he won't live long enough to help you with anything; he's in the habit of venturing into the <font color="LEVEL">Forge of the Gods</font>, and one day its dangers will claim him - and his eternal fire too!<br>
 I've heard he is looking for adventurers to help him collect flames, but take my advice: leave that job to tougher adventurers, or wait until you yourselves are tougher. If you accompany him now, you'll die right alongside him.
-</body></html> 
\ No newline at end of file
+</body></html>
\ No newline at end of file
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/617_GatherTheFlames/31231-03.htm b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00617_GatherTheFlames/31271-03.htm
similarity index 67%
rename from L2J_DataPack_BETA/dist/game/data/scripts/quests/617_GatherTheFlames/31231-03.htm
rename to L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00617_GatherTheFlames/31271-03.htm
index 9e49f19ddfe174b89a407bcc2665254a072d9a89..fcc35df8428148901dfccf0c78343ea09fc6bb72 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/617_GatherTheFlames/31231-03.htm
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00617_GatherTheFlames/31271-03.htm
@@ -1,4 +1,4 @@
 <html><body>Blacksmith Hilda:<br>
 Very well, then. Defeat the <font color="LEVEL">monsters in the Gods' Forge</font>, collect the flames you find there, and bring them to Vulcan. He's mad, but he's a canny blacksmith; he'll give you an S-grade weapon recipe if you can bring him <font color="LEVEL">1000 flames</font>.<br>
-You may have heard tell of Vulcan's younger brother <font color="LEVEL">Rooney</font>. No? Well, he's as mad as his brother is, and perhaps even cannier as a blacksmith. He's a wandering lad, but he has a lot of different S-grade weapon recipes.   <font color="LEVEL">Give Rooney 1200 flames, and he'll reward you with an S-grade weapon recipe.</font> If you can find him in his wanderings, it might be a good idea for you to meet with him too.
+You may have heard tell of Vulcan's younger brother <font color="LEVEL">Rooney</font>. No? Well, he's as mad as his brother is, and perhaps even cannier as a blacksmith. He's a wandering lad, but he has a lot of different S-grade weapon recipes. <font color="LEVEL">Give Rooney 1200 flames, and he'll reward you with an S-grade weapon recipe.</font> If you can find him in his wanderings, it might be a good idea for you to meet with him too.
 </body></html>
\ No newline at end of file
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00617_GatherTheFlames/31271-04.html b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00617_GatherTheFlames/31271-04.html
new file mode 100644
index 0000000000000000000000000000000000000000..400d64f814dead5b6af9183bb1bdda01db284e68
--- /dev/null
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00617_GatherTheFlames/31271-04.html
@@ -0,0 +1,4 @@
+<html><body>Blacksmith Hilda:<br>
+So you met with Vulcan, did you? Did he give you an earful of his madness? Well, he's mad about flame, but the rewards he offers are real. Defeat the <font color="LEVEL">monsters in the Gods' Forge</font>, collect the flames you find, and go to him; he will give you an S-grade weapon recipe if you bring him <font color="LEVEL">1000 flames</font>.<br>
+If you gather even more flames, you might see about meeting Vulcan's younger brother <font color="LEVEL">Rooney</font>. He's as mad as his brother, and he's engaged in the same quest. <font color="LEVEL">Bring him 1200 flames and he will give you an S-grade weapon recipe.</font>. Rooney wanders from here to there, so he's not easy to find...but it might be worth your while to deal with him.
+</body></html>
\ No newline at end of file
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/617_GatherTheFlames/31539-01.htm b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00617_GatherTheFlames/31539-01.htm
similarity index 53%
rename from L2J_DataPack_BETA/dist/game/data/scripts/quests/617_GatherTheFlames/31539-01.htm
rename to L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00617_GatherTheFlames/31539-01.htm
index 5d3320a007e8b4d74fb90bef9bf91803ae1e6d3d..2e34d3d683f76911f19ede1b5d7739702cafd55e 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/617_GatherTheFlames/31539-01.htm
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00617_GatherTheFlames/31539-01.htm
@@ -1,3 +1,4 @@
-<html><body>Flame Blacksmith Vulcan:<br>
+<html><body>Vulcan, Blacksmith of the Flame:<br>
 Fire is the lifeblood of a blacksmith. I need a hotter fire to make this high quality weapon. I'm gathering flames from Forge of the Gods, can you help me?<br>
-<a action="bypass -h Quest 617_GatherTheFlames 31539-03.htm">Quest</a></body></html>
\ No newline at end of file
+<a action="bypass -h Quest Q00617_GatherTheFlames 31539-03.htm">Quest</a>
+</body></html>
\ No newline at end of file
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/617_GatherTheFlames/31539-02.htm b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00617_GatherTheFlames/31539-02.htm
similarity index 77%
rename from L2J_DataPack_BETA/dist/game/data/scripts/quests/617_GatherTheFlames/31539-02.htm
rename to L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00617_GatherTheFlames/31539-02.htm
index f02ff3dae5abdea98a1012318bd4d51c247df874..fe3dce82d2136967505d9d4c2b50155b60cd446d 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/617_GatherTheFlames/31539-02.htm
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00617_GatherTheFlames/31539-02.htm
@@ -1,3 +1,4 @@
-<html><body>Flame Blacksmith Vulcan:<br>
+<html><body>Vulcan, Blacksmith of the Flame:<br>
 Fire is the lifeblood of a blacksmith. I need a hotter fire to make this high quality weapon. I'm gathering flames from Forge of the Gods. You don't want to get burned, do you?<br>
-(This quest may only be undertaken by a charachter level 74 or above.)</body></html>
\ No newline at end of file
+(This quest may only be undertaken by a charachter level 74 or above.)
+</body></html>
\ No newline at end of file
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00617_GatherTheFlames/31539-03.htm b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00617_GatherTheFlames/31539-03.htm
new file mode 100644
index 0000000000000000000000000000000000000000..9838cd828f6a45fb56e1e4b1f252264428adf72c
--- /dev/null
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00617_GatherTheFlames/31539-03.htm
@@ -0,0 +1,4 @@
+<html><body>Vulcan, Blacksmith of the Flame:<br>
+Very well! Let me ask you a favor! Bring me <font color="LEVEL">1000 Flames</font> from the <font color="LEVEL">monsters inside the Forge of the Gods</font>. I'll give you a Weapon Recipe: Grade S that I have.<br>
+Oh, I just remembered that my younger brother, <font color="LEVEL">Rooney</font>, also collects Flames in the Forge of the Gods. He's a wanderer, that boy! I've heard that <font color="LEVEL">he gives a Weapon Recipe: Grade S to anyone who brings him 1200 Flames</font>, but he probably won't be easy to find!
+</body></html>
\ No newline at end of file
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00617_GatherTheFlames/31539-04.html b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00617_GatherTheFlames/31539-04.html
new file mode 100644
index 0000000000000000000000000000000000000000..c78330c7f36577ab6b809b3f24671cc1f92ef94b
--- /dev/null
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00617_GatherTheFlames/31539-04.html
@@ -0,0 +1,6 @@
+<html><body>Vulcan, Blacksmith of the Flame:<br>
+Oh! You brought 1000 flames! What do you think? Do you want to trade the 1000 flames for my Weapon Recipe: Grade S?<br>
+I just remembered that my younger brother, <font color="LEVEL">Rooney</font>, also collects Flames in the Forge of the Gods. He's a wanderer, that boy! I've heard that <font color="LEVEL">he gives a Weapon Recipe: Grade S to anyone who brings him 1200 Flames</font>, but he probably won't be easy to find!<br>
+<a action="bypass -h Quest Q00617_GatherTheFlames 31539-06.html">"I don't want to trade right now."</a><br>
+<a action="bypass -h Quest Q00617_GatherTheFlames 31539-07.html">"Let's trade."</a>
+</body></html>
\ No newline at end of file
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00617_GatherTheFlames/31539-05.html b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00617_GatherTheFlames/31539-05.html
new file mode 100644
index 0000000000000000000000000000000000000000..d8a67f1b864d9ad85e229295b4fb3cb9e464accb
--- /dev/null
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00617_GatherTheFlames/31539-05.html
@@ -0,0 +1,6 @@
+<html><body>Vulcan, Blacksmith of the Flame:<br>
+Hey, are you gathering Flames? Alas, you have not gotten 1000 of them yet. You do realize that you can get them from the <font color="LEVEL">Monsters located within the Forge of the Gods</font>. If you so happen to bring me <font color="LEVEL">1000 Flames</font>, I'll give you something special in return.<br>
+It might also be useful for me to mention that my younger brother, <font color="LEVEL">Rooney</font>, also collects these Flames in the Forge of the Gods. Aye, that lad... he be a wanderer no doubt! He's mentioned that <font color="LEVEL">he will part with one of his belongings to anyone who delivers 1200 Flames to him</font>. He is not someone easy to locate however!<br>
+<a action="bypass -h Quest Q00617_GatherTheFlames 31539-06.html">"I want to continue to collect Flames."</a><br>
+<a action="bypass -h Quest Q00617_GatherTheFlames 31539-08.html">"I want to stop collecting Flames."</a>
+</body></html>
\ No newline at end of file
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00617_GatherTheFlames/31539-06.html b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00617_GatherTheFlames/31539-06.html
new file mode 100644
index 0000000000000000000000000000000000000000..dc324303bc27d4b12203172ab2b831403f31e477
--- /dev/null
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00617_GatherTheFlames/31539-06.html
@@ -0,0 +1,3 @@
+<html><body>Vulcan, Blacksmith of the Flame:<br>
+Continue gathering flames from <font color="LEVEL">monsters in Forge of the Gods</font>.
+</body></html>
\ No newline at end of file
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00617_GatherTheFlames/31539-07.html b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00617_GatherTheFlames/31539-07.html
new file mode 100644
index 0000000000000000000000000000000000000000..d10665ee9c86a8beead9edd2285a56f60fe487e7
--- /dev/null
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00617_GatherTheFlames/31539-07.html
@@ -0,0 +1,5 @@
+<html><body>Blacksmith of Flame Vulcan:<br>
+Now. Here it is.<br>
+What do you think? This S-grade weapon recipe is not easy to obtain. Whether it pleases you or not, you should recognize that it is a precious item. Even if it is not the weapon recipe that you wanted, an S-grade weapon recipe is valuable enough in and of itself...<br>
+<a action="bypass -h Quest Q00617_GatherTheFlames 31539-04.html">Receive reward again.</a>
+</body></html>
\ No newline at end of file
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00617_GatherTheFlames/31539-08.html b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00617_GatherTheFlames/31539-08.html
new file mode 100644
index 0000000000000000000000000000000000000000..91d566d3b187f98bc194d288587ea936b2855d43
--- /dev/null
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00617_GatherTheFlames/31539-08.html
@@ -0,0 +1,3 @@
+<html><body>Vulcan, Blacksmith of the Flame:<br>
+Come back anytime if you change your mind, I'll be here.
+</body></html>
\ No newline at end of file
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00617_GatherTheFlames/32049-01.html b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00617_GatherTheFlames/32049-01.html
new file mode 100644
index 0000000000000000000000000000000000000000..1258ee2dc67ae24219d3e0a391a9ae3aad799e25
--- /dev/null
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00617_GatherTheFlames/32049-01.html
@@ -0,0 +1,3 @@
+<html><body>Blacksmith of Wind Rooney:<br>
+I'm collecting Flames like my brother Vulcan does. Unlike Vulcan, I wander around occasionally, so I was able to get various S-grade Weapon Recipes. If you <font color="LEVEL">collect and bring me 1200 Flames, I'll give you a recipe.</font>
+</body></html>
\ No newline at end of file
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00617_GatherTheFlames/32049-02.html b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00617_GatherTheFlames/32049-02.html
new file mode 100644
index 0000000000000000000000000000000000000000..1b5c2be1bdbab79493f6a03b02428897866d026f
--- /dev/null
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00617_GatherTheFlames/32049-02.html
@@ -0,0 +1,13 @@
+<html><body>Blacksmith of Wind Rooney:<br>
+Um, look here. You have a lot of Flames here! If you give me 1200 Flames, I will exchange them for the S-Grade weapon recipe. I am taking more than Vulcan? Well, this recipe contains my effort, sweat and blood, so I can't take any less...<br>
+<a action="bypass -h Quest Q00617_GatherTheFlames 6881">Recipe: Forgotten Blade (60%)</a><br>
+<a action="bypass -h Quest Q00617_GatherTheFlames 6883">Recipe: Basalt Battlehammer (60%)</a><br>
+<a action="bypass -h Quest Q00617_GatherTheFlames 6885">Recipe: Imperial Staff (60%)</a><br>
+<a action="bypass -h Quest Q00617_GatherTheFlames 6887">Recipe: Angel Slayer (60%)</a><br>
+<a action="bypass -h Quest Q00617_GatherTheFlames 7580">Recipe: Draconic Bow (60%)</a><br>
+<a action="bypass -h Quest Q00617_GatherTheFlames 6891">Recipe: Dragon Hunter Axe (60%)</a><br>
+<a action="bypass -h Quest Q00617_GatherTheFlames 6893">Recipe: Saint Spear (60%)</a><br>
+<a action="bypass -h Quest Q00617_GatherTheFlames 6895">Recipe: Demon Splinter (60%)</a><br>
+<a action="bypass -h Quest Q00617_GatherTheFlames 6897">Recipe: Heaven's Divider (60%)</a><br>
+<a action="bypass -h Quest Q00617_GatherTheFlames 6899">Recipe: Arcana Mace (60%)</a>
+</body></html>
\ No newline at end of file
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00617_GatherTheFlames/32049-03.html b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00617_GatherTheFlames/32049-03.html
new file mode 100644
index 0000000000000000000000000000000000000000..53ff7169c1da415c71ceff5fa5172366f5149728
--- /dev/null
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00617_GatherTheFlames/32049-03.html
@@ -0,0 +1,4 @@
+<html><body>Blacksmith of Wind Rooney:<br>
+Here it is. I'll exchange with you again if you bring back some more.<br>
+<a action="bypass -h Quest Q00617_GatherTheFlames 32049-02.html">Receive reward again.</a>
+</body></html>
\ No newline at end of file
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00617_GatherTheFlames/32049-04.html b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00617_GatherTheFlames/32049-04.html
new file mode 100644
index 0000000000000000000000000000000000000000..f262857e8e4ea343ebdaf4d4c76625d700078c49
--- /dev/null
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00617_GatherTheFlames/32049-04.html
@@ -0,0 +1,3 @@
+<html><body>Blacksmith of Wind Rooney:<br>
+Here it is. Bring me more Flames and I'll trade for them.
+</body></html>
\ No newline at end of file
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00617_GatherTheFlames/Q00617_GatherTheFlames.java b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00617_GatherTheFlames/Q00617_GatherTheFlames.java
new file mode 100644
index 0000000000000000000000000000000000000000..49f0fc6f7ef26dac7aefc3f309a2874654bda57a
--- /dev/null
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00617_GatherTheFlames/Q00617_GatherTheFlames.java
@@ -0,0 +1,224 @@
+/*
+ * This program is free software: you can redistribute it and/or modify it under
+ * the terms of the GNU General Public License as published by the Free Software
+ * Foundation, either version 3 of the License, or (at your option) any later
+ * version.
+ * 
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
+ * details.
+ * 
+ * You should have received a copy of the GNU General Public License along with
+ * this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+package quests.Q00617_GatherTheFlames;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import com.l2jserver.gameserver.model.actor.L2Npc;
+import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jserver.gameserver.model.quest.Quest;
+import com.l2jserver.gameserver.model.quest.QuestState;
+
+/**
+ * Gather the Flames (617)
+ * @author malyelfik
+ */
+public class Q00617_GatherTheFlames extends Quest
+{
+	// NPCs
+	private static final int HILDA = 31271;
+	private static final int VULCAN = 31539;
+	private static final int ROONEY = 32049;
+	
+	// Item
+	private static final int TORCH = 7264;
+	
+	// Reward
+	private static final int[] REWARD =
+	{
+		6881,
+		6883,
+		6885,
+		6887,
+		6891,
+		6893,
+		6895,
+		6897,
+		6899,
+		7580
+	};
+	
+	// Monsters
+	private static final Map<Integer, Integer> MOBS = new HashMap<>();
+	
+	static
+	{
+		MOBS.put(22634, 639);
+		MOBS.put(22635, 611);
+		MOBS.put(22636, 649);
+		MOBS.put(22637, 639);
+		MOBS.put(22638, 639);
+		MOBS.put(22639, 645);
+		MOBS.put(22640, 559);
+		MOBS.put(22641, 588);
+		MOBS.put(22642, 537);
+		MOBS.put(22643, 618);
+		MOBS.put(22644, 633);
+		MOBS.put(22645, 550);
+		MOBS.put(22646, 593);
+		MOBS.put(22647, 688);
+		MOBS.put(22648, 632);
+		MOBS.put(22649, 685);
+	}
+	
+	@Override
+	public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
+	{
+		final QuestState st = player.getQuestState(getName());
+		if (st == null)
+		{
+			return getNoQuestMsg(player);
+		}
+		
+		String htmltext = event;
+		switch (event)
+		{
+			case "31539-03.htm":
+			case "31271-03.htm":
+				st.startQuest();
+				break;
+			case "32049-02.html":
+			case "31539-04.html":
+			case "31539-06.html":
+				break;
+			case "31539-07.html":
+				if (st.getQuestItemsCount(TORCH) < 1000 || !st.isStarted())
+				{
+					return getNoQuestMsg(player);
+				}
+				st.giveItems(REWARD[getRandom(REWARD.length)], 1);
+				st.takeItems(TORCH, 1000);
+				break;
+			case "31539-08.html":
+				st.exitQuest(true, true);
+				break;
+			case "6883":
+			case "6885":
+			case "7580":
+			case "6891":
+			case "6893":
+			case "6895":
+			case "6897":
+			case "6899":
+				if (st.getQuestItemsCount(TORCH) < 1200 || !st.isStarted())
+				{
+					return getNoQuestMsg(player);
+				}
+				giveItem(st, event);
+				htmltext = "32049-04.html";
+				break;
+			case "6887":
+			case "6881":
+				if (st.getQuestItemsCount(TORCH) < 1200 || !st.isStarted())
+				{
+					return getNoQuestMsg(player);
+				}
+				giveItem(st, event);
+				htmltext = "32049-03.html";
+				break;
+			default:
+				htmltext = null;
+				break;
+		}
+		return htmltext;
+	}
+	
+	@Override
+	public String onTalk(L2Npc npc, L2PcInstance player)
+	{
+		String htmltext = getNoQuestMsg(player);
+		final QuestState st = player.getQuestState(getName());
+		if (st == null)
+		{
+			return htmltext;
+		}
+		
+		switch (npc.getNpcId())
+		{
+			case ROONEY:
+				if (st.isStarted())
+				{
+					htmltext = (st.getQuestItemsCount(TORCH) >= 1200) ? "32049-02.html" : "32049-01.html";
+				}
+				break;
+			case VULCAN:
+				if (st.isCreated())
+				{
+					htmltext = (player.getLevel() >= 74) ? "31539-01.htm" : "31539-02.htm";
+				}
+				else
+				{
+					htmltext = (st.getQuestItemsCount(TORCH) >= 1000) ? "31539-04.html" : "31539-05.html";
+				}
+				break;
+			case HILDA:
+				if (st.isCreated())
+				{
+					htmltext = (player.getLevel() >= 74) ? "31271-01.htm" : "31271-02.htm";
+				}
+				else
+				{
+					htmltext = "31271-04.html";
+				}
+				break;
+		}
+		return htmltext;
+	}
+	
+	@Override
+	public String onKill(L2Npc npc, L2PcInstance player, boolean isPet)
+	{
+		final L2PcInstance partyMember = getRandomPartyMember(player, "1");
+		if (partyMember == null)
+		{
+			return super.onKill(npc, player, isPet);
+		}
+		
+		final QuestState st = partyMember.getQuestState(getName());
+		
+		if (getRandom(1000) < MOBS.get(npc.getNpcId()))
+		{
+			st.giveItems(TORCH, 2);
+		}
+		else
+		{
+			st.giveItems(TORCH, 1);
+		}
+		st.playSound(QuestSound.ITEMSOUND_QUEST_ITEMGET);
+		return super.onKill(npc, player, isPet);
+	}
+	
+	private void giveItem(QuestState st, String itemId)
+	{
+		st.giveItems(Integer.valueOf(itemId), 1);
+		st.takeItems(TORCH, 1200);
+	}
+	
+	public Q00617_GatherTheFlames(int questId, String name, String descr)
+	{
+		super(questId, name, descr);
+		addStartNpc(HILDA, VULCAN);
+		addTalkId(ROONEY, HILDA, VULCAN);
+		addKillId(MOBS.keySet());
+		
+		registerQuestItems(TORCH);
+	}
+	
+	public static void main(String[] args)
+	{
+		new Q00617_GatherTheFlames(617, Q00617_GatherTheFlames.class.getSimpleName(), "Gather the Flames");
+	}
+}
\ No newline at end of file
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00901_HowLavasaurusesAreMade/32049-01.htm b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00901_HowLavasaurusesAreMade/32049-01.htm
new file mode 100644
index 0000000000000000000000000000000000000000..4c6dcc573a1ef789fd82bac6ba71136bfeebda17
--- /dev/null
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00901_HowLavasaurusesAreMade/32049-01.htm
@@ -0,0 +1,6 @@
+<html><body>Blacksmith of the Wind Rooney:<br>
+Do you know about the Lavasauruses?<br>
+We don't know who made them, but they are believed to contain the power of dragons.<br>
+If i research the Lavasauruses, I think I would be able to discover the dragon's power...<br>
+<a action="bypass -h Quest Q00901_HowLavasaurusesAreMade 32049-03.htm">"Can I do anything to help?"</a>
+</body></html>
\ No newline at end of file
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00901_HowLavasaurusesAreMade/32049-02.htm b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00901_HowLavasaurusesAreMade/32049-02.htm
new file mode 100644
index 0000000000000000000000000000000000000000..cd8193c23fe42d32e3f816642579c084ae7101fe
--- /dev/null
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00901_HowLavasaurusesAreMade/32049-02.htm
@@ -0,0 +1,3 @@
+<html><body>Blacksmith of the Wind Rooney:<br>
+(Only characters above level 76 can perform this quest.)
+</body></html>
\ No newline at end of file
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00901_HowLavasaurusesAreMade/32049-03.htm b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00901_HowLavasaurusesAreMade/32049-03.htm
new file mode 100644
index 0000000000000000000000000000000000000000..7d1bc1a82ee163847c183c8b8fcea2815c8ff577
--- /dev/null
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00901_HowLavasaurusesAreMade/32049-03.htm
@@ -0,0 +1,5 @@
+<html><body>Blacksmith of the Wind Rooney:<br>
+Oh! You'll be more then adequate.<br>
+Can you bring me some Lavasaurus head, body, horn, and powerstone fragments? They can be found here in the Forge of the Gods.<br>
+<a action="bypass -h Quest Q00901_HowLavasaurusesAreMade 32049-04.htm">Say that you will get them for him</a>
+</body></html>
\ No newline at end of file
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00901_HowLavasaurusesAreMade/32049-04.htm b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00901_HowLavasaurusesAreMade/32049-04.htm
new file mode 100644
index 0000000000000000000000000000000000000000..a203cf90a8535e5978b7678d8a4da10732f500c1
--- /dev/null
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00901_HowLavasaurusesAreMade/32049-04.htm
@@ -0,0 +1,3 @@
+<html><body>Blacksmith of the Wind Rooney:<br>
+I'm truly thankful for your help. Once you have collected 10 each of the "Lavasaurus head fragments, body fragments, horn fragments and powerstone fragments," bring them to me.
+</body></html>
\ No newline at end of file
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00901_HowLavasaurusesAreMade/32049-05.html b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00901_HowLavasaurusesAreMade/32049-05.html
new file mode 100644
index 0000000000000000000000000000000000000000..7c9270883f36c0186b9acdd53912d8463edcd6fe
--- /dev/null
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00901_HowLavasaurusesAreMade/32049-05.html
@@ -0,0 +1,3 @@
+<html><body>Blacksmith of the Wind Rooney:<br>
+Looks like you haven't collected all the Lavasaurus fragments yet. You need to bring 10 each of the Lavasaurus head fragments, body fragments, horn fragments and powerstone fragments.
+</body></html>
\ No newline at end of file
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00901_HowLavasaurusesAreMade/32049-06.html b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00901_HowLavasaurusesAreMade/32049-06.html
new file mode 100644
index 0000000000000000000000000000000000000000..ca8a7e15b3993d9b570585cc2d15c9ae09de565a
--- /dev/null
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00901_HowLavasaurusesAreMade/32049-06.html
@@ -0,0 +1,6 @@
+<html><body>Blacksmith of Wind Rooney:<br>
+Incredible! You managed to get them all!<br>
+Now lets see if we can discover the secret of the dragons through the Lavasaurus fragments...<br>
+Hmmm.... If I put this here, and it goes like... no, that doesn't fit. Maybe if I... no...<br>
+Huh... This might take more time than I thought. Please come back later and I SHOULD have the research results.
+</body></html>
\ No newline at end of file
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00901_HowLavasaurusesAreMade/32049-07.html b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00901_HowLavasaurusesAreMade/32049-07.html
new file mode 100644
index 0000000000000000000000000000000000000000..0c735bf722bc8fae625b37c4018a521761714e2a
--- /dev/null
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00901_HowLavasaurusesAreMade/32049-07.html
@@ -0,0 +1,10 @@
+<html><body>Blacksmith of Wind Rooney:<br>
+What interesting research!<br>
+I tried various things with the fragments, and was able to make a totem containing the power of the dragons.<br>
+The effect differs, depending on how the fragments are combined. There is also a problem with range of output, so it can only be used where the power of the dragons can be felt. But still, the effect is... well... startling.<br>
+There are four types of totems.<br>
+<a action="bypass -h Quest Q00901_HowLavasaurusesAreMade 32049-08.html">Totem of Body</a><br>
+<a action="bypass -h Quest Q00901_HowLavasaurusesAreMade 32049-09.html">Totem of Spirit</a><br>
+<a action="bypass -h Quest Q00901_HowLavasaurusesAreMade 32049-10.html">Totem of Fortitude</a><br>
+<a action="bypass -h Quest Q00901_HowLavasaurusesAreMade 32049-11.html">Totem of Courage</a>
+</body></html>
\ No newline at end of file
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00901_HowLavasaurusesAreMade/32049-08.html b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00901_HowLavasaurusesAreMade/32049-08.html
new file mode 100644
index 0000000000000000000000000000000000000000..f16917718f4ecdd35fb8a3155de14a4453f5d082
--- /dev/null
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00901_HowLavasaurusesAreMade/32049-08.html
@@ -0,0 +1,9 @@
+<html><body>Blacksmith of Wind Rooney:<br>
+The Totem of Body represents the dragon's physical regeneration.<br>
+If you are within range of the totem's effect, your physical regeneration will increase.<br>
+Are you curious about the other totems<br>
+<a action="bypass -h Quest Q00901_HowLavasaurusesAreMade 32049-09.html">Totem of Spirit</a><br>
+<a action="bypass -h Quest Q00901_HowLavasaurusesAreMade 32049-10.html">Totem of Fortitude<br><br>
+<a action="bypass -h Quest Q00901_HowLavasaurusesAreMade 32049-11.html">Totem of Courage</a><br>
+<a action="bypass -h Quest Q00901_HowLavasaurusesAreMade 32049-12.html">Totem of Body, please.</a>
+</body></html>
\ No newline at end of file
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00901_HowLavasaurusesAreMade/32049-09.html b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00901_HowLavasaurusesAreMade/32049-09.html
new file mode 100644
index 0000000000000000000000000000000000000000..cdf359dbe3630061af4d0e68d2a8b37d55547f8d
--- /dev/null
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00901_HowLavasaurusesAreMade/32049-09.html
@@ -0,0 +1,9 @@
+<html><body>Blacksmith of Wind Rooney:<br>
+The Totem of Spirit represents the dragon's spirit regeneration.<br>
+If you are within range of the totem's effect, your mana regeneration will increase.<br>
+Are you curious about the other totems<br>
+<a action="bypass -h Quest Q00901_HowLavasaurusesAreMade 32049-08.html">Totem of Body</a><br>
+<a action="bypass -h Quest Q00901_HowLavasaurusesAreMade 32049-10.html">Totem of Fortitude<br><br>
+<a action="bypass -h Quest Q00901_HowLavasaurusesAreMade 32049-11.html">Totem of Courage</a><br>
+<a action="bypass -h Quest Q00901_HowLavasaurusesAreMade 32049-13.html">Totem of Spirit, please.</a>
+</body></html>
\ No newline at end of file
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00901_HowLavasaurusesAreMade/32049-10.html b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00901_HowLavasaurusesAreMade/32049-10.html
new file mode 100644
index 0000000000000000000000000000000000000000..8d6aa7ffab0b5f69ba0f55280f24259e8b4efa5f
--- /dev/null
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00901_HowLavasaurusesAreMade/32049-10.html
@@ -0,0 +1,9 @@
+<html><body>Blacksmith of Wind Rooney:<br>
+The Totem of Fortitude is a physical representation of the dragon's body.<br>
+If you are within range of the totem's effect, your P. Def. will increase.<br>
+Are you curious about the other totems<br>
+<a action="bypass -h Quest Q00901_HowLavasaurusesAreMade 32049-08.html">Totem of Body</a><br>
+<a action="bypass -h Quest Q00901_HowLavasaurusesAreMade 32049-09.html">Totem of Spirit<br><br>
+<a action="bypass -h Quest Q00901_HowLavasaurusesAreMade 32049-11.html">Totem of Courage</a><br>
+<a action="bypass -h Quest Q00901_HowLavasaurusesAreMade 32049-14.html">Totem of Fortitude, please.</a>
+</body></html>
\ No newline at end of file
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00901_HowLavasaurusesAreMade/32049-11.html b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00901_HowLavasaurusesAreMade/32049-11.html
new file mode 100644
index 0000000000000000000000000000000000000000..03d20d63b00420b5ecfabeac4fe5d49602128c97
--- /dev/null
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00901_HowLavasaurusesAreMade/32049-11.html
@@ -0,0 +1,8 @@
+<html><body>Blacksmith of Wind Rooney:<br>
+The Totem of Courage is a physical representation of the dragon's spirit.<br>
+If you are within range of the totem's effect, your magic resistance will increase.<br>
+<a action="bypass -h Quest Q00901_HowLavasaurusesAreMade 32049-08.html">Totem of Body</a><br>
+<a action="bypass -h Quest Q00901_HowLavasaurusesAreMade 32049-09.html">Totem of Spirit</a><br>
+<a action="bypass -h Quest Q00901_HowLavasaurusesAreMade 32049-10.html">Totem of Fortitude</a><br>
+<a action="bypass -h Quest Q00901_HowLavasaurusesAreMade 32049-15.html">Totem of Courage, please.</a>
+</body></html>
\ No newline at end of file
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00901_HowLavasaurusesAreMade/32049-12.html b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00901_HowLavasaurusesAreMade/32049-12.html
new file mode 100644
index 0000000000000000000000000000000000000000..471a6a9a39121273b919db2879091c640682616f
--- /dev/null
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00901_HowLavasaurusesAreMade/32049-12.html
@@ -0,0 +1,3 @@
+<html><body>Blacksmith of Wind Rooney:<br>
+Good! I'll give you a totem of body. It'll help you a lot.
+</body></html>
\ No newline at end of file
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00901_HowLavasaurusesAreMade/32049-13.html b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00901_HowLavasaurusesAreMade/32049-13.html
new file mode 100644
index 0000000000000000000000000000000000000000..ba4508daa8cd1fc9a4f8927f4ad2c685fe0f2b6d
--- /dev/null
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00901_HowLavasaurusesAreMade/32049-13.html
@@ -0,0 +1,3 @@
+<html><body>Blacksmith of Wind Rooney:<br>
+Good! I'll give you a totem of spirit. It'll help you a lot.
+</body></html>
\ No newline at end of file
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00901_HowLavasaurusesAreMade/32049-14.html b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00901_HowLavasaurusesAreMade/32049-14.html
new file mode 100644
index 0000000000000000000000000000000000000000..5bc4909dd9e6f7c4bd638148dbfe534a6c2bfdb8
--- /dev/null
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00901_HowLavasaurusesAreMade/32049-14.html
@@ -0,0 +1,3 @@
+<html><body>Blacksmith of Wind Rooney:<br>
+Good! I'll give you a totem of fortitude. It'll help you a lot.
+</body></html>
\ No newline at end of file
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00901_HowLavasaurusesAreMade/32049-15.html b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00901_HowLavasaurusesAreMade/32049-15.html
new file mode 100644
index 0000000000000000000000000000000000000000..49f1fec56e0ad602cf99ecf605297cc62f07273a
--- /dev/null
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00901_HowLavasaurusesAreMade/32049-15.html
@@ -0,0 +1,3 @@
+<html><body>Blacksmith of Wind Rooney:<br>
+Good! I'll give you a totem of bravery. It'll help you a lot.
+</body></html>
\ No newline at end of file
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00901_HowLavasaurusesAreMade/32049-16.html b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00901_HowLavasaurusesAreMade/32049-16.html
new file mode 100644
index 0000000000000000000000000000000000000000..e7dfe4120548967b88da4bcc2dd97667be39147b
--- /dev/null
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00901_HowLavasaurusesAreMade/32049-16.html
@@ -0,0 +1,5 @@
+<html><body>Blacksmith of the Wind Rooney:<br>
+Thanks for obtaining the Lavasaurus fragments.<br>
+If you obtain more fragments, please bring them to me.<br>
+(This can can be completed once a day. This quest gets initialized everyday at 6:30 am.)
+</body></html>
\ No newline at end of file
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00901_HowLavasaurusesAreMade/Q00901_HowLavasaurusesAreMade.java b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00901_HowLavasaurusesAreMade/Q00901_HowLavasaurusesAreMade.java
new file mode 100644
index 0000000000000000000000000000000000000000..9c584e1bc49b40d599a6eb379c3474a2c737bde0
--- /dev/null
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00901_HowLavasaurusesAreMade/Q00901_HowLavasaurusesAreMade.java
@@ -0,0 +1,203 @@
+/*
+ * This program is free software: you can redistribute it and/or modify it under
+ * the terms of the GNU General Public License as published by the Free Software
+ * Foundation, either version 3 of the License, or (at your option) any later
+ * version.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
+ * details.
+ *
+ * You should have received a copy of the GNU General Public License along with
+ * this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+package quests.Q00901_HowLavasaurusesAreMade;
+
+import com.l2jserver.gameserver.model.actor.L2Npc;
+import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jserver.gameserver.model.quest.Quest;
+import com.l2jserver.gameserver.model.quest.QuestState;
+import com.l2jserver.gameserver.model.quest.QuestState.QuestType;
+import com.l2jserver.gameserver.model.quest.State;
+
+/**
+ * How Lavasauruses Are Made (901)
+ * @author UnAfraid, nonom, malyelfik
+ */
+public class Q00901_HowLavasaurusesAreMade extends Quest
+{
+	// NPC
+	private static final int ROONEY = 32049;
+	
+	// Monsters
+	private static final int LAVASAURUS_NEWBORN = 18799;
+	private static final int LAVASAURUS_FLEDGIING = 18800;
+	private static final int LAVASAURUS_ADULT = 18801;
+	private static final int LAVASAURUS_ELDERLY = 18802;
+	
+	// Items
+	private static final int FRAGMENT_STONE = 21909;
+	private static final int FRAGMENT_HEAD = 21910;
+	private static final int FRAGMENT_BODY = 21911;
+	private static final int FRAGMENT_HORN = 21912;
+	
+	// Rewards
+	private static final int TOTEM_OF_BODY = 21899;
+	private static final int TOTEM_OF_SPIRIT = 21900;
+	private static final int TOTEM_OF_COURAGE = 21901;
+	private static final int TOTEM_OF_FORTITUDE = 21902;
+	
+	public Q00901_HowLavasaurusesAreMade(int questId, String name, String descr)
+	{
+		super(questId, name, descr);
+		addStartNpc(ROONEY);
+		addTalkId(ROONEY);
+		addKillId(LAVASAURUS_NEWBORN, LAVASAURUS_FLEDGIING, LAVASAURUS_ADULT, LAVASAURUS_ELDERLY);
+		
+		registerQuestItems(FRAGMENT_STONE, FRAGMENT_HORN, FRAGMENT_HEAD, FRAGMENT_BODY);
+	}
+	
+	@Override
+	public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
+	{
+		final QuestState st = player.getQuestState(getName());
+		if (st == null)
+		{
+			return getNoQuestMsg(player);
+		}
+		
+		String htmltext = event;
+		switch (event)
+		{
+			case "32049-03.htm":
+			case "32049-08.html":
+			case "32049-09.html":
+			case "32049-10.html":
+			case "32049-11.html":
+				break;
+			case "32049-04.htm":
+				st.startQuest();
+				break;
+			case "32049-12.html":
+				st.giveItems(TOTEM_OF_BODY, 1);
+				st.exitQuest(QuestType.DAILY, true);
+				break;
+			case "32049-13.html":
+				st.giveItems(TOTEM_OF_SPIRIT, 1);
+				st.exitQuest(QuestType.DAILY, true);
+				break;
+			case "32049-14.html":
+				st.giveItems(TOTEM_OF_FORTITUDE, 1);
+				st.exitQuest(QuestType.DAILY, true);
+				break;
+			case "32049-15.html":
+				st.giveItems(TOTEM_OF_COURAGE, 1);
+				st.exitQuest(QuestType.DAILY, true);
+				break;
+			default:
+				htmltext = null;
+				break;
+		}
+		return htmltext;
+	}
+	
+	@Override
+	public String onTalk(L2Npc npc, L2PcInstance player)
+	{
+		String htmltext = getNoQuestMsg(player);
+		final QuestState st = player.getQuestState(getName());
+		if (st == null)
+		{
+			return htmltext;
+		}
+		
+		switch (st.getState())
+		{
+			case State.CREATED:
+				htmltext = (st.getPlayer().getLevel() >= 76) ? "32049-01.htm" : "32049-02.htm";
+				break;
+			case State.STARTED:
+				if (st.isCond(1))
+				{
+					htmltext = "32049-05.html";
+				}
+				else if (st.isCond(2))
+				{
+					if (gotAllQuestItems(st))
+					{
+						st.takeItems(FRAGMENT_STONE, -1);
+						st.takeItems(FRAGMENT_HEAD, -1);
+						st.takeItems(FRAGMENT_BODY, -1);
+						st.takeItems(FRAGMENT_HORN, -1);
+						htmltext = "32049-06.html";
+					}
+					else
+					{
+						htmltext = "32049-07.html";
+					}
+				}
+				break;
+			case State.COMPLETED:
+				if (st.isNowAvailable())
+				{
+					st.setState(State.CREATED);
+					htmltext = (st.getPlayer().getLevel() >= 76) ? "32049-01.htm" : "32049-02.html";
+				}
+				else
+				{
+					htmltext = "32049-16.html";
+				}
+				break;
+		}
+		return htmltext;
+	}
+	
+	@Override
+	public String onKill(L2Npc npc, L2PcInstance player, boolean isPet)
+	{
+		final QuestState st = player.getQuestState(getName());
+		if ((st != null) && st.isCond(1))
+		{
+			switch (npc.getNpcId())
+			{
+				case LAVASAURUS_NEWBORN:
+					giveQuestItems(st, FRAGMENT_STONE);
+					break;
+				case LAVASAURUS_FLEDGIING:
+					giveQuestItems(st, FRAGMENT_HEAD);
+					break;
+				case LAVASAURUS_ADULT:
+					giveQuestItems(st, FRAGMENT_BODY);
+					break;
+				case LAVASAURUS_ELDERLY:
+					giveQuestItems(st, FRAGMENT_HORN);
+					break;
+			}
+		}
+		return super.onKill(npc, player, isPet);
+	}
+	
+	public boolean gotAllQuestItems(QuestState st)
+	{
+		return (st.getQuestItemsCount(FRAGMENT_STONE) >= 10) && (st.getQuestItemsCount(FRAGMENT_HEAD) >= 10) && (st.getQuestItemsCount(FRAGMENT_BODY) >= 10) && (st.getQuestItemsCount(FRAGMENT_HORN) >= 10);
+	}
+	
+	public void giveQuestItems(QuestState st, int itemId)
+	{
+		if (st.getQuestItemsCount(itemId) < 10)
+		{
+			st.giveItems(itemId, 1);
+			st.playSound(QuestSound.ITEMSOUND_QUEST_ITEMGET);
+		}
+		else if (gotAllQuestItems(st))
+		{
+			st.setCond(2, true);
+		}
+	}
+	
+	public static void main(String[] values)
+	{
+		new Q00901_HowLavasaurusesAreMade(901, Q00901_HowLavasaurusesAreMade.class.getSimpleName(), "How Lavasauruses Are Made");
+	}
+}
\ No newline at end of file
diff --git a/L2J_DataPack_BETA/dist/game/data/spawnZones/tar_bettle.xml b/L2J_DataPack_BETA/dist/game/data/spawnZones/tar_bettle.xml
new file mode 100644
index 0000000000000000000000000000000000000000..e1688bb3d1942f86470ca4a69388f685ef2bbc96
--- /dev/null
+++ b/L2J_DataPack_BETA/dist/game/data/spawnZones/tar_bettle.xml
@@ -0,0 +1,493 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<list xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../xsd/tar_bettle.xsd">
+	<spawnZones>
+		<!-- Forge of the Gods lower level - Spawn Zones -->
+		<zone id="1" minZ="-5565" maxZ="-5365" type="lower">
+			<point x="175828" y="-111714" />
+			<point x="175528" y="-111346" />
+			<point x="175204" y="-111434" />
+			<point x="175064" y="-111990" />
+			<point x="175224" y="-112854" />
+			<point x="176132" y="-112826" />
+			<point x="176376" y="-111850" />
+		</zone>
+		<zone id="2" minZ="-5876" maxZ="-5676" type="lower">
+			<point x="177666" y="-112338" />
+			<point x="178118" y="-111838" />
+			<point x="178330" y="-112266" />
+			<point x="179262" y="-111942" />
+			<point x="179446" y="-113082" />
+			<point x="178806" y="-114178" />
+			<point x="177990" y="-113862" />
+			<point x="178126" y="-113266" />
+			<point x="177678" y="-113122" />
+		</zone>
+		<zone id="3" minZ="-6170" maxZ="-5970" type="lower">
+			<point x="181013" y="-115006" />
+			<point x="180393" y="-114762" />
+			<point x="179989" y="-115202" />
+			<point x="179605" y="-114830" />
+			<point x="179009" y="-115374" />
+			<point x="179389" y="-116918" />
+			<point x="179781" y="-116826" />
+			<point x="180633" y="-117142" />
+			<point x="181181" y="-116262" />
+		</zone>
+		<zone id="4" minZ="-6174" maxZ="-5974" type="lower" bZones="10">
+			<point x="183192" y="-115568" />
+			<point x="184072" y="-114860" />
+			<point x="183688" y="-113956" />
+			<point x="182848" y="-113888" />
+			<point x="181556" y="-114412" />
+			<point x="181908" y="-115220" />
+			<point x="181708" y="-115980" />
+			<point x="182476" y="-115908" />
+			<point x="182544" y="-115452" />
+			<point x="182952" y="-115396" />
+		</zone>
+		<zone id="5" minZ="-6182" maxZ="-5982" type="lower" bZones="11">
+			<point x="184908" y="-118019" />
+			<point x="185328" y="-117263" />
+			<point x="184756" y="-115907" />
+			<point x="184036" y="-115735" />
+			<point x="183016" y="-116807" />
+			<point x="183856" y="-118115" />
+		</zone>
+		<zone id="6" minZ="-5894" maxZ="-5694" type="lower" bZones="12">
+			<point x="182031" y="-111122" />
+			<point x="182679" y="-110114" />
+			<point x="181971" y="-108898" />
+			<point x="180651" y="-109022" />
+			<point x="180367" y="-109346" />
+			<point x="180639" y="-111170" />
+		</zone>
+		<zone id="7" minZ="-5886" maxZ="-5686" type="lower">
+			<point x="179604" y="-108013" />
+			<point x="179592" y="-107193" />
+			<point x="178728" y="-106757" />
+			<point x="178192" y="-107437" />
+			<point x="177804" y="-107465" />
+			<point x="177580" y="-108377" />
+			<point x="177836" y="-108765" />
+			<point x="178728" y="-108877" />
+			<point x="178716" y="-108093" />
+		</zone>
+		<zone id="8" minZ="-5896" maxZ="-5676" type="lower">
+			<point x="178913" y="-110527" />
+			<point x="179358" y="-110192" />
+			<point x="178971" y="-109536" />
+			<point x="178300" y="-109836" />
+			<point x="177846" y="-110174" />
+			<point x="177941" y="-110441" />
+			<point x="178203" y="-110941" />
+			<point x="178678" y="-110925" />
+		</zone>
+		<zone id="9" minZ="-6101" maxZ="-5901" type="lower">
+			<point x="181981" y="-105685" />
+			<point x="180989" y="-105901" />
+			<point x="180745" y="-106253" />
+			<point x="181213" y="-106477" />
+			<point x="180725" y="-106965" />
+			<point x="181521" y="-107913" />
+			<point x="182501" y="-107669" />
+			<point x="182453" y="-107281" />
+			<point x="183121" y="-107189" />
+			<point x="183445" y="-106453" />
+			<point x="182797" y="-105761" />
+		</zone>
+		<!-- Forge of the Gods lower level - Banned Zones -->
+		<zone id="10" minZ="-6244" maxZ="-5744" type="bZone">
+			<point x="183260" y="-114708" />
+			<point x="183460" y="-114708" />
+			<point x="183460" y="-114508" />
+			<point x="183260" y="-114508" />
+		</zone>
+		<zone id="11" minZ="-6184" maxZ="-5684" type="bZone">
+			<point x="184140" y="-117188" />
+			<point x="184340" y="-117188" />
+			<point x="184340" y="-116988" />
+			<point x="184140" y="-116988" />
+		</zone>
+		<zone id="12" minZ="-5912" maxZ="-5412" type="bZone">
+			<point x="181064" y="-109780" />
+			<point x="181548" y="-110184" />
+			<point x="181656" y="-109952" />
+			<point x="181180" y="-109564" />
+		</zone>
+		<!-- Forge of the Gods upper level - Spawn Zones-->
+		<zone id="13" minZ="-3647" maxZ="-3447" type="upper">
+			<point x="179651" y="-116994" />
+			<point x="179519" y="-116706" />
+			<point x="179231" y="-116702" />
+			<point x="178791" y="-116826" />
+			<point x="178799" y="-117082" />
+			<point x="179143" y="-117374" />
+			<point x="179679" y="-117146" />
+		</zone>
+		<zone id="14" minZ="-3675" maxZ="-3475" type="upper">
+			<point x="180621" y="-115487" />
+			<point x="180461" y="-115247" />
+			<point x="180181" y="-114811" />
+			<point x="179561" y="-114695" />
+			<point x="179229" y="-114915" />
+			<point x="179117" y="-115287" />
+			<point x="179373" y="-116223" />
+			<point x="180349" y="-116003" />
+		</zone>
+		<zone id="15" minZ="-4165" maxZ="-3965" type="upper">
+			<point x="178529" y="-119994" />
+			<point x="178734" y="-119409" />
+			<point x="177546" y="-119205" />
+			<point x="177326" y="-119735" />
+			<point x="177614" y="-120055" />
+			<point x="178102" y="-120227" />
+		</zone>
+		<zone id="16" minZ="-4148" maxZ="-3948" type="upper" bZones="42">
+			<point x="176164" y="-121387" />
+			<point x="177436" y="-121403" />
+			<point x="177544" y="-120827" />
+			<point x="177068" y="-120007" />
+			<point x="176824" y="-119927" />
+			<point x="176092" y="-120371" />
+		</zone>
+		<zone id="17" minZ="-3710" maxZ="-3510" type="upper">
+			<point x="181328" y="-119542" />
+			<point x="181328" y="-119542" />
+			<point x="180572" y="-119854" />
+			<point x="180392" y="-120578" />
+			<point x="180860" y="-121058" />
+			<point x="181336" y="-120926" />
+			<point x="181792" y="-120418" />
+			<point x="181600" y="-119602" />
+		</zone>
+		<zone id="18" minZ="-3382" maxZ="-3182" type="upper">
+			<point x="182415" y="-117705" />
+			<point x="182059" y="-117521" />
+			<point x="181819" y="-117529" />
+			<point x="181439" y="-117973" />
+			<point x="181791" y="-118273" />
+			<point x="181987" y="-118193" />
+			<point x="182307" y="-118405" />
+			<point x="182567" y="-118041" />
+		</zone>
+		<zone id="19" minZ="-3329" maxZ="-3129" type="upper" bZones="43">
+			<point x="185977" y="-118936" />
+			<point x="186445" y="-118884" />
+			<point x="186637" y="-118496" />
+			<point x="187157" y="-117612" />
+			<point x="186797" y="-116776" />
+			<point x="186141" y="-117316" />
+			<point x="185537" y="-118260" />
+		</zone>
+		<zone id="20" minZ="-3124" maxZ="-2924" type="upper" bZones="44">
+			<point x="184154" y="-118553" />
+			<point x="184534" y="-119217" />
+			<point x="184262" y="-119741" />
+			<point x="184022" y="-120049" />
+			<point x="183410" y="-120093" />
+			<point x="182942" y="-119373" />
+			<point x="183138" y="-118873" />
+		</zone>
+		<zone id="21" minZ="-3136" maxZ="-2936" type="upper" bZones="45">
+			<point x="185916" y="-120861" />
+			<point x="185920" y="-120505" />
+			<point x="185592" y="-119957" />
+			<point x="184656" y="-120029" />
+			<point x="184440" y="-120325" />
+			<point x="184384" y="-121241" />
+			<point x="185336" y="-121453" />
+		</zone>
+		<zone id="22" minZ="-3136" maxZ="-2936" type="upper" bZones="46">
+			<point x="187906" y="-121665" />
+			<point x="188526" y="-121049" />
+			<point x="188438" y="-120549" />
+			<point x="187718" y="-120037" />
+			<point x="187106" y="-120665" />
+			<point x="186926" y="-120909" />
+			<point x="187190" y="-121453" />
+		</zone>
+		<zone id="23" minZ="-3134" maxZ="-2934" type="upper" bZones="47">
+			<point x="190497" y="-120846" />
+			<point x="190353" y="-120154" />
+			<point x="189941" y="-119750" />
+			<point x="189273" y="-119714" />
+			<point x="188885" y="-120602" />
+			<point x="189037" y="-120946" />
+			<point x="189737" y="-121322" />
+		</zone>
+		<zone id="24" minZ="-3352" maxZ="-3152" type="upper" bZones="48">
+			<point x="189260" y="-119154" />
+			<point x="189252" y="-118574" />
+			<point x="188992" y="-118366" />
+			<point x="188596" y="-118238" />
+			<point x="187748" y="-118642" />
+			<point x="187552" y="-119134" />
+			<point x="188156" y="-119758" />
+			<point x="188876" y="-119542" />
+		</zone>
+		<zone id="25" minZ="-3332" maxZ="-3132" type="upper" bZones="49">
+			<point x="190058" y="-118093" />
+			<point x="190590" y="-117357" />
+			<point x="190522" y="-116457" />
+			<point x="189542" y="-116113" />
+			<point x="189178" y="-116405" />
+			<point x="189122" y="-117733" />
+			<point x="189486" y="-118229" />
+		</zone>
+		<zone id="26" minZ="-3328" maxZ="-3128" type="upper">
+			<point x="189479" y="-115830" />
+			<point x="188663" y="-115174" />
+			<point x="187479" y="-115006" />
+			<point x="187139" y="-115370" />
+			<point x="186611" y="-115566" />
+			<point x="187123" y="-116466" />
+			<point x="188635" y="-116454" />
+		</zone>
+		<zone id="27" minZ="-3365" maxZ="-3165" type="upper" bZones="50">
+			<point x="186172" y="-115111" />
+			<point x="186508" y="-115355" />
+			<point x="186776" y="-115159" />
+			<point x="186728" y="-113727" />
+			<point x="185872" y="-114111" />
+		</zone>
+		<zone id="28" minZ="-3398" maxZ="-3198" type="upper">
+			<point x="186055" y="-113599" />
+			<point x="185827" y="-112719" />
+			<point x="185031" y="-112127" />
+			<point x="184231" y="-112855" />
+			<point x="184447" y="-113519" />
+			<point x="184799" y="-114387" />
+			<point x="185311" y="-114243" />
+			<point x="185643" y="-113967" />
+		</zone>
+		<zone id="29" minZ="-3324" maxZ="-3124" type="upper">
+			<point x="188291" y="-112601" />
+			<point x="187787" y="-112253" />
+			<point x="187527" y="-112505" />
+			<point x="187215" y="-112413" />
+			<point x="187083" y="-112769" />
+			<point x="187055" y="-113341" />
+			<point x="187631" y="-113773" />
+			<point x="188255" y="-113413" />
+		</zone>
+		<zone id="30" minZ="-3332" maxZ="-3132" type="upper">
+			<point x="190463" y="-113751" />
+			<point x="190315" y="-112971" />
+			<point x="189711" y="-112835" />
+			<point x="189467" y="-112975" />
+			<point x="188975" y="-113103" />
+			<point x="189119" y="-113707" />
+			<point x="189383" y="-114015" />
+		</zone>
+		<zone id="31" minZ="-3336" maxZ="-3136" type="upper">
+			<point x="188937" y="-112731" />
+			<point x="188337" y="-112335" />
+			<point x="188845" y="-111415" />
+			<point x="188633" y="-111243" />
+			<point x="189305" y="-110595" />
+			<point x="190077" y="-110799" />
+			<point x="189837" y="-111507" />
+			<point x="189869" y="-112031" />
+			<point x="189217" y="-112387" />
+		</zone>
+		<zone id="32" minZ="-3332" maxZ="-3182" type="upper" bZones="51;52;53">
+			<point x="191193" y="-109008" />
+			<point x="190785" y="-107960" />
+			<point x="189741" y="-107664" />
+			<point x="189037" y="-108396" />
+			<point x="188773" y="-109384" />
+			<point x="189241" y="-110192" />
+			<point x="190469" y="-110088" />
+			<point x="190557" y="-109808" />
+		</zone>
+		<zone id="33" minZ="-3340" maxZ="-3140" type="upper">
+			<point x="187762" y="-109743" />
+			<point x="187082" y="-110095" />
+			<point x="187326" y="-110235" />
+			<point x="187554" y="-110635" />
+			<point x="187386" y="-110939" />
+			<point x="188242" y="-111219" />
+			<point x="188346" y="-110015" />
+		</zone>
+		<zone id="34" minZ="-3332" maxZ="-3132" type="upper">
+			<point x="186200" y="-109243" />
+			<point x="186144" y="-108607" />
+			<point x="185284" y="-108971" />
+			<point x="185048" y="-108835" />
+			<point x="184536" y="-109407" />
+			<point x="184576" y="-110775" />
+			<point x="185004" y="-110767" />
+			<point x="185184" y="-111327" />
+			<point x="185824" y="-111439" />
+			<point x="186848" y="-110387" />
+			<point x="186720" y="-109351" />
+		</zone>
+		<zone id="35" minZ="-3719" maxZ="-3569" type="upper">
+			<point x="181914" y="-108363" />
+			<point x="181850" y="-107951" />
+			<point x="180786" y="-108159" />
+			<point x="180674" y="-109383" />
+			<point x="181270" y="-110131" />
+			<point x="181898" y="-110263" />
+			<point x="182790" y="-109271" />
+			<point x="182710" y="-108739" />
+		</zone>
+		<zone id="36" minZ="-3740" maxZ="-3540" type="upper">
+			<point x="183803" y="-112187" />
+			<point x="183867" y="-111743" />
+			<point x="184235" y="-111391" />
+			<point x="183811" y="-110939" />
+			<point x="182787" y="-111115" />
+			<point x="182891" y="-111819" />
+			<point x="183191" y="-112159" />
+		</zone>
+		<zone id="37" minZ="-3707" maxZ="-3507" type="upper">
+			<point x="182600" y="-112042" />
+			<point x="181652" y="-111582" />
+			<point x="181564" y="-112110" />
+			<point x="181240" y="-112114" />
+			<point x="181096" y="-112898" />
+			<point x="181416" y="-113250" />
+			<point x="181828" y="-113054" />
+			<point x="182108" y="-113290" />
+			<point x="182720" y="-112842" />
+		</zone>
+		<zone id="38" minZ="-3751" maxZ="-3551" type="upper" bZones="54">
+			<point x="180780" y="-112379" />
+			<point x="180276" y="-112003" />
+			<point x="179224" y="-111995" />
+			<point x="179280" y="-112343" />
+			<point x="178880" y="-112683" />
+			<point x="178916" y="-113283" />
+			<point x="179400" y="-113455" />
+			<point x="179444" y="-113707" />
+			<point x="180224" y="-113687" />
+			<point x="180728" y="-113107" />
+		</zone>
+		<zone id="39" minZ="-3711" maxZ="-3511" type="upper">
+			<point x="179861" y="-108287" />
+			<point x="180049" y="-107871" />
+			<point x="179689" y="-107411" />
+			<point x="178025" y="-107563" />
+			<point x="177549" y="-108583" />
+			<point x="177725" y="-109535" />
+			<point x="178169" y="-109735" />
+			<point x="178305" y="-110171" />
+			<point x="179773" y="-109695" />
+			<point x="180113" y="-108735" />
+		</zone>
+		<zone id="40" minZ="-3703" maxZ="-3503" type="upper" bZones="55">
+			<point x="176861" y="-108117" />
+			<point x="176021" y="-107829" />
+			<point x="175861" y="-108193" />
+			<point x="175537" y="-108233" />
+			<point x="175197" y="-109597" />
+			<point x="175493" y="-109717" />
+			<point x="175289" y="-110285" />
+			<point x="175797" y="-110833" />
+			<point x="176041" y="-110557" />
+			<point x="176429" y="-110853" />
+			<point x="176961" y="-110469" />
+			<point x="176917" y="-109365" />
+		</zone>
+		<zone id="41" minZ="-3531" maxZ="-3331" type="upper">
+			<point x="176442" y="-111822" />
+			<point x="176002" y="-111794" />
+			<point x="175786" y="-112090" />
+			<point x="175102" y="-112798" />
+			<point x="175078" y="-113274" />
+			<point x="175518" y="-114178" />
+			<point x="175926" y="-114014" />
+			<point x="176630" y="-114050" />
+			<point x="176970" y="-113310" />
+			<point x="176886" y="-112838" />
+			<point x="176306" y="-112434" />
+			<point x="176306" y="-112434" />
+		</zone>
+		<!-- Forge of the Gods upper level - Banned Zones -->
+		<zone id="42" minZ="-4272" maxZ="-3772" type="bZone">
+			<point x="176380" y="-121148" />
+			<point x="176992" y="-121156" />
+			<point x="176948" y="-120492" />
+			<point x="176388" y="-120516" />
+		</zone>
+		<zone id="43" minZ="-3320" maxZ="-2820" type="bZone">
+			<point x="186284" y="-117708" />
+			<point x="186888" y="-117844" />
+			<point x="186912" y="-117220" />
+			<point x="186404" y="-117204" />
+		</zone>
+		<zone id="44" minZ="-3176" maxZ="-2676" type="bZone">
+			<point x="183608" y="-119784" />
+			<point x="184028" y="-119792" />
+			<point x="184048" y="-119332" />
+			<point x="183572" y="-119344" />
+		</zone>
+		<zone id="45" minZ="-3116" maxZ="-2916" type="bZone">
+			<point x="184868" y="-120920" />
+			<point x="185360" y="-120904" />
+			<point x="185316" y="-120480" />
+			<point x="184900" y="-120460" />
+		</zone>
+		<zone id="46" minZ="-3196" maxZ="-2696" type="bZone">
+			<point x="187352" y="-121108" />
+			<point x="187832" y="-121092" />
+			<point x="187800" y="-120620" />
+			<point x="187328" y="-120640" />
+		</zone>
+		<zone id="47" minZ="-3124" maxZ="-2624" type="bZone">
+			<point x="188864" y="-120616" />
+			<point x="189216" y="-120844" />
+			<point x="189448" y="-120412" />
+			<point x="189016" y="-120248" />
+		</zone>
+		<zone id="48" minZ="-3384" maxZ="-2884" type="bZone">
+			<point x="188308" y="-119220" />
+			<point x="188740" y="-119084" />
+			<point x="188568" y="-118608" />
+			<point x="188140" y="-118824" />
+		</zone>
+		<zone id="49" minZ="-3432" maxZ="-2932" type="bZone">
+			<point x="189588" y="-117368" />
+			<point x="190052" y="-117368" />
+			<point x="190028" y="-116868" />
+			<point x="189560" y="-116892" />
+		</zone>
+		<zone id="50" minZ="-3336" maxZ="-2836" type="bZone">
+			<point x="186008" y="-114824" />
+			<point x="186264" y="-114624" />
+			<point x="186180" y="-114284" />
+			<point x="185872" y="-114276" />
+		</zone>
+		<zone id="51" minZ="-3320" maxZ="-2820" type="bZone">
+			<point x="189916" y="-109236" />
+			<point x="190116" y="-109236" />
+			<point x="190116" y="-109036" />
+			<point x="189916" y="-109036" />
+		</zone>
+		<zone id="52" minZ="-3320" maxZ="-2820" type="bZone">
+			<point x="190708" y="-109304" />
+			<point x="190852" y="-109260" />
+			<point x="190760" y="-108940" />
+			<point x="190624" y="-108964" />
+		</zone>
+		<zone id="53" minZ="-3340" maxZ="-3140" type="bZone">
+			<point x="189532" y="-108100" />
+			<point x="189732" y="-108100" />
+			<point x="189732" y="-107900" />
+			<point x="189532" y="-107900" />
+		</zone>
+		<zone id="54" minZ="-3728" maxZ="-3228" type="bZone">
+			<point x="179636" y="-113000" />
+			<point x="179836" y="-113000" />
+			<point x="179836" y="-112800" />
+			<point x="179636" y="-112800" />
+		</zone>
+		<zone id="55" minZ="-3720" maxZ="-3220" type="bZone">
+			<point x="175800" y="-110104" />
+			<point x="176340" y="-110260" />
+			<point x="176480" y="-109660" />
+			<point x="175864" y="-109528" />
+		</zone>
+	</spawnZones>
+</list>
\ No newline at end of file
diff --git a/L2J_DataPack_BETA/dist/game/data/stats/items/21900-21999.xml b/L2J_DataPack_BETA/dist/game/data/stats/items/21900-21999.xml
index 4129bcc1cc1ce824b44479315ffdcc74c2a3598e..641e856ecba7f5aa6b5e9f385c93f8e8697d72a7 100644
--- a/L2J_DataPack_BETA/dist/game/data/stats/items/21900-21999.xml
+++ b/L2J_DataPack_BETA/dist/game/data/stats/items/21900-21999.xml
@@ -94,24 +94,28 @@
 		<set name="icon" val="icon.etc_broken_crystal_silver_i00" />
 		<set name="material" val="steel" />
 		<set name="is_stackable" val="true" />
+		<set name="is_questitem" val="true"/>
 	</item>
 	<item id="21910" type="EtcItem" name="Lavasaurus Head Fragment">
 		<!-- Description: Framgent from the head of a Lavasaurus. Its shape resembles that of a Dragon. -->
 		<set name="icon" val="icon.etc_broken_crystal_silver_i00" />
 		<set name="material" val="steel" />
 		<set name="is_stackable" val="true" />
+		<set name="is_questitem" val="true"/>
 	</item>
 	<item id="21911" type="EtcItem" name="Lavasaurus Body Fragment">
 		<!-- Description: Fragment taken from the body of a Lavasaurus. -->
 		<set name="icon" val="icon.etc_broken_crystal_silver_i00" />
 		<set name="material" val="steel" />
 		<set name="is_stackable" val="true" />
+		<set name="is_questitem" val="true"/>
 	</item>
 	<item id="21912" type="EtcItem" name="Lavasaurus Horn Fragment">
 		<!-- Description: Fragment from a Lavasaurus horn. -->
 		<set name="icon" val="icon.etc_broken_crystal_silver_i00" />
 		<set name="material" val="steel" />
 		<set name="is_stackable" val="true" />
+		<set name="is_questitem" val="true"/>
 	</item>
 	<item id="21913" type="EtcItem" name="Unrefined Red Dragon Blood">
 		<!-- Description: Unrefined Red Dragon Blood collected from the dragons inside the Lair of Antharas. -->
diff --git a/L2J_DataPack_BETA/dist/game/data/stats/skills/06100-06199.xml b/L2J_DataPack_BETA/dist/game/data/stats/skills/06100-06199.xml
index 084fbcee31a35ef0398decc7b4b7aae10499e2e2..860bf38c0b0a8a02fedf23e91da7d55fbc2ca7bb 100644
--- a/L2J_DataPack_BETA/dist/game/data/stats/skills/06100-06199.xml
+++ b/L2J_DataPack_BETA/dist/game/data/stats/skills/06100-06199.xml
@@ -405,16 +405,33 @@
 		<!-- Lvl 1: Covered in hot and sticky tar. Movement is impaired. Due to the burning tar, for 5 minbutes, moving speed is decreased 30% and P. Def. and evasion are decreased 10%. -->
 		<!-- Lvl 2: Covered in hot and sticky tar. Movement is impaired. Due to the burning tar, for 5 minbutes, moving speed is decreased 60% and P. Def. and evasion are decreased 20%. -->
 		<!-- Lvl 3: Covered in hot and sticky tar. Movement is impaired. Due to the burning tar, for 5 minbutes, moving speed is decreased 90% and P. Def. and evasion are decreased 30%. -->
+		<table name="#speed"> 0.7 0.4 0.1 </table>
+		<table name="#pDef"> 0.9 0.8 0.7 </table>
 		<table name="#abnormalLvls"> 1 2 3 </table>
 		<set name="abnormalLvl" val="#abnormalLvls" />
 		<set name="abnormalType" val="speed_down" />
-		<set name="isMagic" val="1" /> <!-- Magic Skill -->
-		<set name="target" val="TARGET_NONE" />
-		<set name="skillType" val="NOTDONE" />
+		<set name="mpInitialConsume" val="15" />
+		<set name="mpConsume" val="57" />
+		<set name="target" val="TARGET_ONE" />
+		<set name="skillType" val="DEBUFF" />
 		<set name="operateType" val="A2" />
-		<set name="lvlDepend" val="2" />
+		<set name="power" val="90" /> 
 		<set name="reuseDelay" val="30000" />
+		<set name="hitTime" val="1000" />
+		<set name="isDebuff" val="true" />
+		<set name="isMagic" val="1" /> <!-- Magic Skill -->
+		<set name="lvlDepend" val="2" />
 		<set name="saveVs" val="MEN" />
+		<set name="castRange" val="300" />
+		<set name="effectRange" val="600" />
+		<set name="canBeDispeled" val="false" />
+		<for>
+			<effect name="Debuff" abnormalTime="300" val="0" abnormalLvl="#abnormalLvls" abnormalType="speed_down">
+				<mul order="0x30" stat="runSpd" val="#speed" />
+				<mul order="0x30" stat="pDef" val="#pDef" />
+				<mul order="0x30" stat="rEvas" val="#pDef" />
+			</effect>
+		</for>
 	</skill>
 	<skill id="6143" levels="1" name="Ancient Beam">
 		<set name="isMagic" val="1" /> <!-- Magic Skill -->
diff --git a/L2J_DataPack_BETA/dist/game/data/xsd/tar_bettle.xsd b/L2J_DataPack_BETA/dist/game/data/xsd/tar_bettle.xsd
new file mode 100644
index 0000000000000000000000000000000000000000..938110e05b20fd8dd4f3c87d9fc4949295c193b9
--- /dev/null
+++ b/L2J_DataPack_BETA/dist/game/data/xsd/tar_bettle.xsd
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
+	<xs:element name="list">
+		<xs:complexType>
+			<xs:sequence minOccurs="1" maxOccurs="1">
+				<xs:element name="spawnZones" minOccurs="1" maxOccurs="1">
+					<xs:complexType>
+						<xs:sequence minOccurs="1" maxOccurs="1">
+							<xs:element name="zone" minOccurs="1" maxOccurs="unbounded">
+								<xs:complexType>
+									<xs:sequence minOccurs="1" maxOccurs="1">
+										<xs:element name="point" maxOccurs="unbounded"
+											minOccurs="1">
+											<xs:complexType>
+												<xs:attribute name="x" type="xs:integer" use="required" />
+												<xs:attribute name="y" type="xs:integer" use="required" />
+											</xs:complexType>
+										</xs:element>
+									</xs:sequence>
+									<xs:attribute name="id" type="xs:nonNegativeInteger"
+										use="required" />
+									<xs:attribute name="maxZ" type="xs:integer" use="required" />
+									<xs:attribute name="minZ" type="xs:integer" use="required" />
+									<xs:attribute name="type" use="required">
+										<xs:simpleType>
+											<xs:restriction base="xs:token">
+												<xs:enumeration value="upper" />
+												<xs:enumeration value="lower" />
+												<xs:enumeration value="bZone" />
+											</xs:restriction>
+										</xs:simpleType>
+									</xs:attribute>
+									<xs:attribute name="bZones" type="xs:normalizedString" />
+								</xs:complexType>
+							</xs:element>
+						</xs:sequence>
+					</xs:complexType>
+				</xs:element>
+			</xs:sequence>
+		</xs:complexType>
+	</xs:element>
+</xs:schema>
\ No newline at end of file
diff --git a/L2J_DataPack_BETA/dist/sql/game/npcaidata.sql b/L2J_DataPack_BETA/dist/sql/game/npcaidata.sql
index 0f50c09af807f04aa080f2d43d3e73c0b59bbab3..d80648c8bf84dac6f842513cb9bdc32e986a14ab 100644
--- a/L2J_DataPack_BETA/dist/sql/game/npcaidata.sql
+++ b/L2J_DataPack_BETA/dist/sql/game/npcaidata.sql
@@ -2299,12 +2299,12 @@ INSERT INTO `npcaidata` VALUES
 (18796, 7, 15, 0, 300, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "null", 300, "null", 0, 0, "corpse"), -- Bizarre Cocoon
 (18797, 7, 15, 0, 300, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "null", 300, "null", 0, 0, "corpse"), -- Bizarre Cocoon
 (18798, 7, 15, 0, 300, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "null", 300, "null", 0, 0, "corpse"), -- Bizarre Cocoon
-(18799, 7, 15, 0, 300, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "fire_clan", 300, "null", 0, 0, "fighter"), -- Newborn Lavasaurus
-(18800, 7, 15, 0, 300, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "fire_clan", 300, "null", 0, 0, "fighter"), -- Fledgling Lavasaurus
-(18801, 7, 15, 0, 300, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "fire_clan", 300, "null", 0, 0, "fighter"), -- Adult Lavasaurus
-(18802, 7, 15, 0, 300, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "fire_clan", 300, "null", 0, 0, "fighter"), -- Elderly Lavasaurus
-(18803, 7, 15, 0, 300, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "fire_clan", 300, "null", 0, 0, "fighter"), -- Ancient Lavasaurus
-(18804, 7, 15, 0, 300, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "null", 300, "null", 0, 0, "fighter"), -- Tar Beetle
+(18799, 7, 15, 0, 300, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 300, 0, "fire_clan", 300, "null", 0, 0, "fighter"), -- Newborn Lavasaurus
+(18800, 7, 15, 0, 300, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 300, 0, "fire_clan", 300, "null", 0, 0, "fighter"), -- Fledgling Lavasaurus
+(18801, 7, 15, 0, 300, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 300, 0, "fire_clan", 300, "null", 0, 0, "fighter"), -- Adult Lavasaurus
+(18802, 7, 15, 0, 300, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 300, 0, "fire_clan", 300, "null", 0, 0, "fighter"), -- Elderly Lavasaurus
+(18803, 7, 15, 0, 300, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 300, 0, "fire_clan", 300, "null", 0, 0, "fighter"), -- Ancient Lavasaurus
+(18804, 7, 15, 0, 300, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 300, 0, "null", 300, "null", 0, 0, "fighter"), -- Tar Beetle
 (18805, 7, 15, 0, 300, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "null", 300, "null", 0, 0, "balanced"), -- Waste Landfill Machine
 (18806, 7, 15, 0, 300, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "null", 300, "null", 0, 0, "balanced"), -- Brazier of Purity
 (18807, 7, 15, 0, 300, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "null", 300, "null", 0, 0, "fighter"), -- Frightened Ragna Orc
@@ -4719,22 +4719,22 @@ INSERT INTO `npcaidata` VALUES
 (22631, 7, 15, 0, 450, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 300, 0, "spike_clan", 500, "null", 0, 0, "mage"), -- Spiked Stakato Nurse
 (22632, 7, 15, 0, 450, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 300, 0, "spike_clan", 500, "null", 0, 0, "balanced"), -- Spiked Stakato Baby
 (22633, 7, 15, 0, 450, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 300, 0, "spike_clan", 500, "null", 0, 0, "mage"), -- Spiked Stakato Shaman
-(22634, 7, 15, 0, 450, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "fire_clan", 1000, "null", 0, 0, "fighter"), -- Scarlet Stakato Worker
-(22635, 7, 15, 0, 450, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "fire_clan", 1000, "null", 0, 0, "fighter"), -- Scarlet Stakato Soldier
-(22636, 7, 15, 0, 450, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "fire_clan", 1000, "null", 0, 0, "fighter"), -- Scarlet Stakato Noble
-(22637, 7, 15, 0, 450, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "fire_clan", 1000, "null", 0, 0, "fighter"), -- Tepra Scorpion
-(22638, 7, 15, 0, 450, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "fire_clan", 1000, "null", 0, 0, "fighter"), -- Tepra Scarab
-(22639, 7, 15, 0, 450, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "fire_clan", 1000, "null", 0, 0, "fighter"), -- Assassin Beetle
-(22640, 7, 15, 0, 450, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "fire_clan", 1000, "null", 0, 0, "fighter"), -- Mercenary of Destruction
-(22641, 7, 15, 0, 450, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "fire_clan", 1000, "null", 0, 0, "fighter"), -- Knight of Destruction
-(22642, 7, 15, 0, 300, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "fire_clan", 500, "null", 0, 0, "fighter"), -- Lavastone Golem
-(22643, 7, 15, 0, 300, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "fire_clan", 500, "null", 0, 0, "fighter"), -- Magma Golem
-(22644, 7, 15, 0, 450, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "fire_clan", 1000, "null", 0, 0, "fighter"), -- Arimanes of Destruction
-(22645, 7, 15, 0, 450, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "fire_clan", 1000, "null", 0, 0, "fighter"), -- Balor of Destruction
-(22646, 7, 15, 0, 450, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "fire_clan", 1000, "null", 0, 0, "fighter"), -- Ashuras of Destruction
-(22647, 7, 15, 0, 450, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "fire_clan", 1000, "null", 0, 0, "fighter"), -- Lavasillisk
-(22648, 7, 15, 0, 450, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "fire_clan", 1000, "null", 0, 0, "fighter"), -- Blazing Ifrit
-(22649, 7, 15, 0, 450, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "fire_clan", 1000, "null", 0, 0, "fighter"), -- Magma Drake
+(22634, 7, 15, 0, 450, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 450, 0, "fire_clan", 1000, "null", 0, 0, "fighter"), -- Scarlet Stakato Worker
+(22635, 7, 15, 0, 450, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 450, 0, "fire_clan", 1000, "null", 0, 0, "fighter"), -- Scarlet Stakato Soldier
+(22636, 7, 15, 0, 450, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 450, 0, "fire_clan", 1000, "null", 0, 0, "fighter"), -- Scarlet Stakato Noble
+(22637, 7, 15, 0, 450, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 450, 0, "fire_clan", 1000, "null", 0, 0, "fighter"), -- Tepra Scorpion
+(22638, 7, 15, 0, 450, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 450, 0, "fire_clan", 1000, "null", 0, 0, "fighter"), -- Tepra Scarab
+(22639, 7, 15, 0, 450, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 450, 0, "fire_clan", 1000, "null", 0, 0, "fighter"), -- Assassin Beetle
+(22640, 7, 15, 0, 450, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 450, 0, "fire_clan", 1000, "null", 0, 0, "fighter"), -- Mercenary of Destruction
+(22641, 7, 15, 0, 450, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 450, 0, "fire_clan", 1000, "null", 0, 0, "fighter"), -- Knight of Destruction
+(22642, 7, 15, 0, 300, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 300, 0, "fire_clan", 500, "null", 0, 0, "fighter"), -- Lavastone Golem
+(22643, 7, 15, 0, 300, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 300, 0, "fire_clan", 500, "null", 0, 0, "fighter"), -- Magma Golem
+(22644, 7, 15, 0, 450, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 450, 0, "fire_clan", 1000, "null", 0, 0, "fighter"), -- Arimanes of Destruction
+(22645, 7, 15, 0, 450, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 450, 0, "fire_clan", 1000, "null", 0, 0, "fighter"), -- Balor of Destruction
+(22646, 7, 15, 0, 450, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 450, 0, "fire_clan", 1000, "null", 0, 0, "fighter"), -- Ashuras of Destruction
+(22647, 7, 15, 0, 450, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 450, 0, "fire_clan", 1000, "null", 0, 0, "fighter"), -- Lavasillisk
+(22648, 7, 15, 0, 450, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 450, 0, "fire_clan", 1000, "null", 0, 0, "fighter"), -- Blazing Ifrit
+(22649, 7, 15, 0, 450, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 450, 0, "fire_clan", 1000, "null", 0, 0, "fighter"), -- Magma Drake
 (22650, 7, 15, 5909, 300, 1, 1, 1, 4670, 15, 0, 0, 0, 0, 0, 0, 0, 0, "null", 300, "reedfield_object", 300, 0, "fighter"), -- Mucrokian Fanatic
 (22651, 7, 15, 5909, 300, 1, 1, 1, 4582, 15, 0, 0, 0, 0, 0, 0, 0, 0, "null", 300, "reedfield_object", 300, 0, "fighter"), -- Mucrokian Ascetic
 (22652, 7, 15, 5909, 300, 1, 1, 1, 4670, 15, 0, 0, 0, 0, 0, 0, 0, 0, "null", 300, "reedfield_object", 300, 0, "fighter"), -- Mucrokian Savior
diff --git a/L2J_DataPack_BETA/dist/sql/game/random_spawn.sql b/L2J_DataPack_BETA/dist/sql/game/random_spawn.sql
index 371401e18f2b6f1d6825470c4dd6857f716d2422..6580c480448b1bfd00ddaf9e7984394d7d59730f 100644
--- a/L2J_DataPack_BETA/dist/sql/game/random_spawn.sql
+++ b/L2J_DataPack_BETA/dist/sql/game/random_spawn.sql
@@ -143,7 +143,6 @@ INSERT INTO `random_spawn` VALUES
 (132,31094,1,-1,60,0,'false','false'), -- Orator of Revelations
 (133,32014,1,-1,1800000,1800000,'false','true'), -- Ivan (Runaway Youth quest)
 (134,32013,1,-1,1800000,1800000,'false','true'), -- Suki (Wild Maiden quest)
-(135,32049,1,-1,1200000,1200000,'false','true'), -- Rooney (Blacksmith of wind Rooney)
 (136,32012,1,-1,3600000,0,'false','true'), -- Tantan (Aged ExAdventurer quest)
 (137,32335,1,-1,120000,120000,'false','true'), -- Marksman (Guards on kamael island)
 (138,32335,1,-1,120000,120000,'false','true'), -- Marksman (Guards on kamael island)
diff --git a/L2J_DataPack_BETA/dist/sql/game/random_spawn_loc.sql b/L2J_DataPack_BETA/dist/sql/game/random_spawn_loc.sql
index 92673be448de7c7a594daa5edfeb1951ee08d367..5377adf9980360d1c7af0cd7c10d56342813ce14 100644
--- a/L2J_DataPack_BETA/dist/sql/game/random_spawn_loc.sql
+++ b/L2J_DataPack_BETA/dist/sql/game/random_spawn_loc.sql
@@ -180,19 +180,6 @@ INSERT INTO `random_spawn_loc` VALUES
 (134,67994,79605,-3685,-1),
 (134,72414,89582,-3068,-1),
 
--- Blacksmith of wind Rooney
-(135,179815,-115465,-3598,-1),
-(135,178091,-119661,-4087,-1),
-(135,190447,-117063,-3280,-1),
-(135,189472,-111287,-3280,-1),
-(135,183442,-111453,-3615,-1),
-(135,175916,-113220,-3471,-1),
-(135,178880,-112665,-5821,-1),
-(135,181809,-109360,-5830,-1),
-(135,186321,-109182,-5865,-1),
-(135,184699,-116825,-6102,-1),
-(135,180717,-116163,-6102,-1),
-
 -- Aged ExAdventurer quest
 (136,89856,-7248,-3034,0),
 (136,79232,-5904,-2864,0),