diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/EffectMasterHandler.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/EffectMasterHandler.java
index 86c8ca1e7e122e1ba209de4a220b6c33cbf8412d..182dcd22149754eb06f1033b0faba5c6f06a4641 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/EffectMasterHandler.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/EffectMasterHandler.java
@@ -97,11 +97,11 @@ public final class EffectMasterHandler
 		GiveSp.class,
 		Grow.class,
 		Harvesting.class,
+		HeadquarterCreate.class,
 		Heal.class,
 		HealOverTime.class,
 		HealPercent.class,
 		Hide.class,
-		HolythingPossess.class,
 		HpByLevel.class,
 		HpDrain.class,
 		ImmobileBuff.class,
@@ -123,6 +123,8 @@ public final class EffectMasterHandler
 		Unsummon.class,
 		OpenCommonRecipeBook.class,
 		OpenDwarfRecipeBook.class,
+		OutpostCreate.class,
+		OutpostDestroy.class,
 		Paralyze.class,
 		Passive.class,
 		Petrification.class,
@@ -161,6 +163,10 @@ public final class EffectMasterHandler
 		SummonPet.class,
 		SummonTrap.class,
 		Sweeper.class,
+		TakeCastle.class,
+		TakeFort.class,
+		TakeFortStart.class,
+		TakeTerritoryFlag.class,
 		TargetCancel.class,
 		TargetMe.class,
 		TargetMeProbability.class,
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/MasterHandler.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/MasterHandler.java
index d9447a3df136f3e8efb0a457125c252a84296a0e..83669013731502ae88fd464b904281add52c46e4 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/MasterHandler.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/MasterHandler.java
@@ -211,7 +211,6 @@ import handlers.skillhandlers.Fishing;
 import handlers.skillhandlers.FishingSkill;
 import handlers.skillhandlers.NornilsPower;
 import handlers.skillhandlers.Sow;
-import handlers.skillhandlers.TakeFort;
 import handlers.skillhandlers.Trap;
 import handlers.skillhandlers.Unlock;
 import handlers.targethandlers.Area;
@@ -503,7 +502,6 @@ public class MasterHandler
 			FishingSkill.class,
 			NornilsPower.class,
 			Sow.class,
-			TakeFort.class,
 			Trap.class,
 			Unlock.class,
 		},
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/admincommandhandlers/AdminFortSiege.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/admincommandhandlers/AdminFortSiege.java
index c03fdea0bda62b8b90fd6adc8056e1d1bf00b276..c2f73d9f5d00039b6a902dc21ae79fa4977d40e6 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/admincommandhandlers/AdminFortSiege.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/admincommandhandlers/AdminFortSiege.java
@@ -114,7 +114,7 @@ public class AdminFortSiege implements IAdminCommandHandler
 				}
 				else
 				{
-					fort.setOwner(player.getClan(), false);
+					fort.endOfSiege(player.getClan());
 				}
 			}
 			else if (command.equalsIgnoreCase("admin_removefort"))
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/Grow.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/Grow.java
index 11c8337d92741f2b4b18c96c91e50190465ad634..8115d37945e2dc5abd1b2182b5d1ed096eff659f 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/Grow.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/Grow.java
@@ -47,8 +47,7 @@ public final class Grow extends AbstractEffect
 		if (info.getEffected().isNpc())
 		{
 			L2Npc npc = (L2Npc) info.getEffected();
-			// TODO: Uncomment line when fix for mobs falling underground is found
-			// npc.setCollisionHeight(npc.getTemplate().collisionHeight);
+			npc.setCollisionHeight(npc.getTemplate().getCollisionHeight());
 			npc.setCollisionRadius(npc.getTemplate().getfCollisionRadius());
 		}
 	}
@@ -59,9 +58,8 @@ public final class Grow extends AbstractEffect
 		if (info.getEffected().isNpc())
 		{
 			L2Npc npc = (L2Npc) info.getEffected();
-			// TODO: Uncomment line when fix for mobs falling underground is found
-			// npc.setCollisionHeight((int) (npc.getCollisionHeight() * 1.24));
-			npc.setCollisionRadius((npc.getCollisionRadius() * 1.19));
+			npc.setCollisionHeight(npc.getTemplate().getCollisionHeightGrown());
+			npc.setCollisionRadius(npc.getTemplate().getCollisionRadiusGrown());
 		}
 	}
 }
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/HeadquarterCreate.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/HeadquarterCreate.java
new file mode 100644
index 0000000000000000000000000000000000000000..921e86eb25ff96f235a157f9c8d501787cf9328d
--- /dev/null
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/HeadquarterCreate.java
@@ -0,0 +1,87 @@
+/*
+ * Copyright (C) 2004-2014 L2J DataPack
+ * 
+ * This file is part of L2J DataPack.
+ * 
+ * L2J DataPack 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.
+ * 
+ * L2J DataPack 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 handlers.effecthandlers;
+
+import com.l2jserver.gameserver.datatables.NpcData;
+import com.l2jserver.gameserver.idfactory.IdFactory;
+import com.l2jserver.gameserver.instancemanager.CHSiegeManager;
+import com.l2jserver.gameserver.instancemanager.CastleManager;
+import com.l2jserver.gameserver.instancemanager.FortManager;
+import com.l2jserver.gameserver.model.StatsSet;
+import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jserver.gameserver.model.actor.instance.L2SiegeFlagInstance;
+import com.l2jserver.gameserver.model.conditions.Condition;
+import com.l2jserver.gameserver.model.effects.AbstractEffect;
+import com.l2jserver.gameserver.model.entity.Castle;
+import com.l2jserver.gameserver.model.entity.Fort;
+import com.l2jserver.gameserver.model.entity.clanhall.SiegableHall;
+import com.l2jserver.gameserver.model.skills.BuffInfo;
+
+/**
+ * Headquarter Create effect implementation.
+ * @author Adry_85
+ */
+public class HeadquarterCreate extends AbstractEffect
+{
+	private static final int HQ_NPC_ID = 35062;
+	private static boolean _isAdvanced;
+	
+	public HeadquarterCreate(Condition attachCond, Condition applyCond, StatsSet set, StatsSet params)
+	{
+		super(attachCond, applyCond, set, params);
+		_isAdvanced = hasParameters() ? getParameters().getBoolean("isAdvanced", false) : false;
+	}
+	
+	@Override
+	public boolean isInstant()
+	{
+		return true;
+	}
+	
+	@Override
+	public void onStart(BuffInfo info)
+	{
+		final L2PcInstance player = info.getEffector().getActingPlayer();
+		if ((player.getClan() == null) || (player.getClan().getLeaderId() != player.getObjectId()))
+		{
+			return;
+		}
+		
+		final L2SiegeFlagInstance flag = new L2SiegeFlagInstance(player, IdFactory.getInstance().getNextId(), NpcData.getInstance().getTemplate(HQ_NPC_ID), _isAdvanced, false);
+		flag.setTitle(player.getClan().getName());
+		flag.setCurrentHpMp(flag.getMaxHp(), flag.getMaxMp());
+		flag.setHeading(player.getHeading());
+		flag.spawnMe(player.getX(), player.getY(), player.getZ() + 50);
+		final Castle castle = CastleManager.getInstance().getCastle(player);
+		final Fort fort = FortManager.getInstance().getFort(player);
+		final SiegableHall hall = CHSiegeManager.getInstance().getNearbyClanHall(player);
+		if (castle != null)
+		{
+			castle.getSiege().getFlag(player.getClan()).add(flag);
+		}
+		else if (fort != null)
+		{
+			fort.getSiege().getFlag(player.getClan()).add(flag);
+		}
+		else
+		{
+			hall.getSiege().getFlag(player.getClan()).add(flag);
+		}
+	}
+}
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/OutpostCreate.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/OutpostCreate.java
new file mode 100644
index 0000000000000000000000000000000000000000..f83b3d615eba475c29905ac92794defe9abb9791
--- /dev/null
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/OutpostCreate.java
@@ -0,0 +1,70 @@
+/*
+ * Copyright (C) 2004-2014 L2J DataPack
+ * 
+ * This file is part of L2J DataPack.
+ * 
+ * L2J DataPack 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.
+ * 
+ * L2J DataPack 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 handlers.effecthandlers;
+
+import com.l2jserver.gameserver.datatables.NpcData;
+import com.l2jserver.gameserver.idfactory.IdFactory;
+import com.l2jserver.gameserver.instancemanager.TerritoryWarManager;
+import com.l2jserver.gameserver.model.StatsSet;
+import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jserver.gameserver.model.actor.instance.L2SiegeFlagInstance;
+import com.l2jserver.gameserver.model.conditions.Condition;
+import com.l2jserver.gameserver.model.effects.AbstractEffect;
+import com.l2jserver.gameserver.model.skills.BuffInfo;
+
+/**
+ * Outpost Create effect implementation.
+ * @author UnAfraid
+ */
+public class OutpostCreate extends AbstractEffect
+{
+	private static final int HQ_NPC_ID = 36590;
+	
+	public OutpostCreate(Condition attachCond, Condition applyCond, StatsSet set, StatsSet params)
+	{
+		super(attachCond, applyCond, set, params);
+	}
+	
+	@Override
+	public boolean isInstant()
+	{
+		return true;
+	}
+	
+	@Override
+	public void onStart(BuffInfo info)
+	{
+		final L2PcInstance player = info.getEffector().getActingPlayer();
+		if ((player.getClan() == null) || (player.getClan().getLeaderId() != player.getObjectId()))
+		{
+			return;
+		}
+		
+		if (TerritoryWarManager.getInstance().isTWInProgress())
+		{
+			// Spawn a new flag
+			final L2SiegeFlagInstance flag = new L2SiegeFlagInstance(player, IdFactory.getInstance().getNextId(), NpcData.getInstance().getTemplate(HQ_NPC_ID), true, true);
+			flag.setTitle(player.getClan().getName());
+			flag.setCurrentHpMp(flag.getMaxHp(), flag.getMaxMp());
+			flag.setHeading(player.getHeading());
+			flag.spawnMe(player.getX(), player.getY(), player.getZ() + 50);
+			TerritoryWarManager.getInstance().setHQForClan(player.getClan(), flag);
+		}
+	}
+}
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/OutpostDestroy.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/OutpostDestroy.java
new file mode 100644
index 0000000000000000000000000000000000000000..33a89763e838a43f7d237ab78e2fd291532a42d4
--- /dev/null
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/OutpostDestroy.java
@@ -0,0 +1,65 @@
+/*
+ * Copyright (C) 2004-2014 L2J DataPack
+ * 
+ * This file is part of L2J DataPack.
+ * 
+ * L2J DataPack 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.
+ * 
+ * L2J DataPack 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 handlers.effecthandlers;
+
+import com.l2jserver.gameserver.instancemanager.TerritoryWarManager;
+import com.l2jserver.gameserver.model.StatsSet;
+import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jserver.gameserver.model.actor.instance.L2SiegeFlagInstance;
+import com.l2jserver.gameserver.model.conditions.Condition;
+import com.l2jserver.gameserver.model.effects.AbstractEffect;
+import com.l2jserver.gameserver.model.skills.BuffInfo;
+
+/**
+ * Outpost Destroy effect implementation.
+ * @author UnAfraid
+ */
+public class OutpostDestroy extends AbstractEffect
+{
+	public OutpostDestroy(Condition attachCond, Condition applyCond, StatsSet set, StatsSet params)
+	{
+		super(attachCond, applyCond, set, params);
+	}
+	
+	@Override
+	public boolean isInstant()
+	{
+		return true;
+	}
+	
+	@Override
+	public void onStart(BuffInfo info)
+	{
+		final L2PcInstance player = info.getEffector().getActingPlayer();
+		if ((player.getClan() == null) || (player.getClan().getLeaderId() != player.getObjectId()))
+		{
+			return;
+		}
+		
+		if (TerritoryWarManager.getInstance().isTWInProgress())
+		{
+			final L2SiegeFlagInstance flag = TerritoryWarManager.getInstance().getHQForClan(player.getClan());
+			if (flag != null)
+			{
+				flag.deleteMe();
+			}
+			TerritoryWarManager.getInstance().setHQForClan(player.getClan(), null);
+		}
+	}
+}
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/HolythingPossess.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/TakeCastle.java
similarity index 87%
rename from L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/HolythingPossess.java
rename to L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/TakeCastle.java
index 0b60939a7eabf5dc9bfc7de8522806d0c7e31f91..da7e252a00d71928ac4028610fa650760199ae66 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/HolythingPossess.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/TakeCastle.java
@@ -28,12 +28,12 @@ import com.l2jserver.gameserver.network.SystemMessageId;
 import com.l2jserver.gameserver.network.serverpackets.SystemMessage;
 
 /**
- * Holything Possess effect implementation.
+ * Take Castle effect implementation.
  * @author Adry_85
  */
-public final class HolythingPossess extends AbstractEffect
+public final class TakeCastle extends AbstractEffect
 {
-	public HolythingPossess(Condition attachCond, Condition applyCond, StatsSet set, StatsSet params)
+	public TakeCastle(Condition attachCond, Condition applyCond, StatsSet set, StatsSet params)
 	{
 		super(attachCond, applyCond, set, params);
 	}
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/TakeFort.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/TakeFort.java
new file mode 100644
index 0000000000000000000000000000000000000000..28139fda48b5c4b192291004db997911bae0ec12
--- /dev/null
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/TakeFort.java
@@ -0,0 +1,59 @@
+/*
+ * Copyright (C) 2004-2014 L2J DataPack
+ * 
+ * This file is part of L2J DataPack.
+ * 
+ * L2J DataPack 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.
+ * 
+ * L2J DataPack 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 handlers.effecthandlers;
+
+import com.l2jserver.gameserver.instancemanager.FortManager;
+import com.l2jserver.gameserver.model.StatsSet;
+import com.l2jserver.gameserver.model.conditions.Condition;
+import com.l2jserver.gameserver.model.effects.AbstractEffect;
+import com.l2jserver.gameserver.model.entity.Fort;
+import com.l2jserver.gameserver.model.skills.BuffInfo;
+
+/**
+ * Take Fort effect implementation.
+ * @author Adry_85
+ */
+public final class TakeFort extends AbstractEffect
+{
+	public TakeFort(Condition attachCond, Condition applyCond, StatsSet set, StatsSet params)
+	{
+		super(attachCond, applyCond, set, params);
+	}
+	
+	@Override
+	public boolean isInstant()
+	{
+		return true;
+	}
+	
+	@Override
+	public void onStart(BuffInfo info)
+	{
+		if (!info.getEffector().isPlayer())
+		{
+			return;
+		}
+		
+		final Fort fort = FortManager.getInstance().getFort(info.getEffector().getActingPlayer());
+		if (fort != null)
+		{
+			fort.endOfSiege(info.getEffector().getActingPlayer().getClan());
+		}
+	}
+}
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/TakeFortStart.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/TakeFortStart.java
new file mode 100644
index 0000000000000000000000000000000000000000..e95f45e3c740a4da5cc4206b2f836cf21c56bfe7
--- /dev/null
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/TakeFortStart.java
@@ -0,0 +1,65 @@
+/*
+ * Copyright (C) 2004-2014 L2J DataPack
+ * 
+ * This file is part of L2J DataPack.
+ * 
+ * L2J DataPack 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.
+ * 
+ * L2J DataPack 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 handlers.effecthandlers;
+
+import com.l2jserver.gameserver.instancemanager.FortManager;
+import com.l2jserver.gameserver.model.L2Clan;
+import com.l2jserver.gameserver.model.StatsSet;
+import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jserver.gameserver.model.conditions.Condition;
+import com.l2jserver.gameserver.model.effects.AbstractEffect;
+import com.l2jserver.gameserver.model.entity.Fort;
+import com.l2jserver.gameserver.model.skills.BuffInfo;
+import com.l2jserver.gameserver.network.SystemMessageId;
+import com.l2jserver.gameserver.network.serverpackets.SystemMessage;
+
+/**
+ * Take Fort Start effect implementation.
+ * @author UnAfraid
+ */
+public class TakeFortStart extends AbstractEffect
+{
+	public TakeFortStart(Condition attachCond, Condition applyCond, StatsSet set, StatsSet params)
+	{
+		super(attachCond, applyCond, set, params);
+	}
+	
+	@Override
+	public boolean isInstant()
+	{
+		return true;
+	}
+	
+	@Override
+	public void onStart(BuffInfo info)
+	{
+		super.onStart(info);
+		
+		if (info.getEffector().isPlayer())
+		{
+			final L2PcInstance player = info.getEffector().getActingPlayer();
+			final Fort fort = FortManager.getInstance().getFort(player);
+			final L2Clan clan = player.getClan();
+			if ((fort != null) && (clan != null))
+			{
+				fort.getSiege().announceToPlayer(SystemMessage.getSystemMessage(SystemMessageId.S1_TRYING_RAISE_FLAG), clan.getName());
+			}
+		}
+	}
+}
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/TakeTerritoryFlag.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/TakeTerritoryFlag.java
new file mode 100644
index 0000000000000000000000000000000000000000..569bdb0497043427d61bee62db6cd11a6b37bb3d
--- /dev/null
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/TakeTerritoryFlag.java
@@ -0,0 +1,70 @@
+/*
+ * Copyright (C) 2004-2014 L2J DataPack
+ * 
+ * This file is part of L2J DataPack.
+ * 
+ * L2J DataPack 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.
+ * 
+ * L2J DataPack 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 handlers.effecthandlers;
+
+import com.l2jserver.gameserver.datatables.NpcData;
+import com.l2jserver.gameserver.idfactory.IdFactory;
+import com.l2jserver.gameserver.instancemanager.TerritoryWarManager;
+import com.l2jserver.gameserver.model.StatsSet;
+import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jserver.gameserver.model.actor.instance.L2SiegeFlagInstance;
+import com.l2jserver.gameserver.model.conditions.Condition;
+import com.l2jserver.gameserver.model.effects.AbstractEffect;
+import com.l2jserver.gameserver.model.skills.BuffInfo;
+
+/**
+ * Take Territory Flag effect implementation.
+ * @author UnAfraid
+ */
+public class TakeTerritoryFlag extends AbstractEffect
+{
+	private static final int FLAG_NPC_ID = 35062;
+	
+	public TakeTerritoryFlag(Condition attachCond, Condition applyCond, StatsSet set, StatsSet params)
+	{
+		super(attachCond, applyCond, set, params);
+	}
+	
+	@Override
+	public boolean isInstant()
+	{
+		return true;
+	}
+	
+	@Override
+	public void onStart(BuffInfo info)
+	{
+		final L2PcInstance player = info.getEffector().getActingPlayer();
+		if ((player.getClan() == null) || (player.getClan().getLeaderId() != player.getObjectId()))
+		{
+			return;
+		}
+		
+		if (TerritoryWarManager.getInstance().isTWInProgress())
+		{
+			// Spawn a new flag
+			final L2SiegeFlagInstance flag = new L2SiegeFlagInstance(player, IdFactory.getInstance().getNextId(), NpcData.getInstance().getTemplate(FLAG_NPC_ID), false, false);
+			flag.setTitle(player.getClan().getName());
+			flag.setCurrentHpMp(flag.getMaxHp(), flag.getMaxMp());
+			flag.setHeading(player.getHeading());
+			flag.spawnMe(player.getX(), player.getY(), player.getZ() + 50);
+			TerritoryWarManager.getInstance().addClanFlag(player.getClan(), flag);
+		}
+	}
+}
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/skillhandlers/TakeFort.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/skillhandlers/TakeFort.java
deleted file mode 100644
index a4355f75bce64aa57c2904af13469e8e0698798c..0000000000000000000000000000000000000000
--- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/skillhandlers/TakeFort.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * Copyright (C) 2004-2014 L2J DataPack
- * 
- * This file is part of L2J DataPack.
- * 
- * L2J DataPack 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.
- * 
- * L2J DataPack 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 handlers.skillhandlers;
-
-import com.l2jserver.gameserver.handler.ISkillHandler;
-import com.l2jserver.gameserver.instancemanager.FortManager;
-import com.l2jserver.gameserver.model.L2Object;
-import com.l2jserver.gameserver.model.actor.L2Character;
-import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
-import com.l2jserver.gameserver.model.entity.Fort;
-import com.l2jserver.gameserver.model.skills.L2Skill;
-import com.l2jserver.gameserver.model.skills.L2SkillType;
-
-/**
- * @author _drunk_
- */
-public class TakeFort implements ISkillHandler
-{
-	private static final L2SkillType[] SKILL_IDS =
-	{
-		L2SkillType.TAKEFORT
-	};
-	
-	@Override
-	public void useSkill(L2Character activeChar, L2Skill skill, L2Object[] targets)
-	{
-		if (!activeChar.isPlayer() || (targets.length == 0))
-		{
-			return;
-		}
-		
-		L2PcInstance player = activeChar.getActingPlayer();
-		if (player.getClan() == null)
-		{
-			return;
-		}
-		
-		Fort fort = FortManager.getInstance().getFort(player);
-		if ((fort == null) || !player.checkIfOkToCastFlagDisplay(fort, true, skill, targets[0]))
-		{
-			return;
-		}
-		
-		try
-		{
-			fort.endOfSiege(player.getClan());
-		}
-		catch (Exception e)
-		{
-			e.printStackTrace();
-		}
-	}
-	
-	@Override
-	public L2SkillType[] getSkillIds()
-	{
-		return SKILL_IDS;
-	}
-	
-	public static void main(String[] args)
-	{
-		new TakeFort();
-	}
-}
\ No newline at end of file
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/targethandlers/FlagPole.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/targethandlers/FlagPole.java
index d48eb0117082a91462d0cf2de63b2b4701051ef6..8ddd6979c0ce9a43f271ce73b157456249494cb9 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/targethandlers/FlagPole.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/targethandlers/FlagPole.java
@@ -19,11 +19,8 @@
 package handlers.targethandlers;
 
 import com.l2jserver.gameserver.handler.ITargetTypeHandler;
-import com.l2jserver.gameserver.instancemanager.FortManager;
 import com.l2jserver.gameserver.model.L2Object;
 import com.l2jserver.gameserver.model.actor.L2Character;
-import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
-import com.l2jserver.gameserver.model.entity.Fort;
 import com.l2jserver.gameserver.model.skills.L2Skill;
 import com.l2jserver.gameserver.model.skills.targets.L2TargetType;
 
@@ -40,16 +37,9 @@ public class FlagPole implements ITargetTypeHandler
 			return EMPTY_TARGET_LIST;
 		}
 		
-		final L2PcInstance player = activeChar.getActingPlayer();
-		final Fort fort = FortManager.getInstance().getFort(player);
-		if ((player.getClan() == null) || (fort == null) || !player.checkIfOkToCastFlagDisplay(fort, true, skill, activeChar.getTarget()))
-		{
-			return EMPTY_TARGET_LIST;
-		}
-		
 		return new L2Object[]
 		{
-			activeChar.getTarget()
+			target
 		};
 	}
 	
diff --git a/L2J_DataPack_BETA/dist/game/data/stats/skills/00000-00099.xml b/L2J_DataPack_BETA/dist/game/data/stats/skills/00000-00099.xml
index b1bbfef49feba7406294caf5100b198eebc1745c..e6521274a826efa398d8cb27ed4528d256c96253 100644
--- a/L2J_DataPack_BETA/dist/game/data/stats/skills/00000-00099.xml
+++ b/L2J_DataPack_BETA/dist/game/data/stats/skills/00000-00099.xml
@@ -553,7 +553,10 @@
 		<set name="reuseDelay" val="5000" />
 		<set name="targetType" val="SELF" />
 		<cond>
-			<player canSummon="true" />
+			<and>
+				<player canSummon="true" />
+				<player canSummonSiegeGolem="true" />
+			</and>
 		</cond>
 		<for>
 			<effect name="Summon">
diff --git a/L2J_DataPack_BETA/dist/game/data/stats/skills/00200-00299.xml b/L2J_DataPack_BETA/dist/game/data/stats/skills/00200-00299.xml
index 9df1180ae151c657c14b39baa23e568efc035078..24fac95f3444be6c8d41907726d38bf9ef447c63 100644
--- a/L2J_DataPack_BETA/dist/game/data/stats/skills/00200-00299.xml
+++ b/L2J_DataPack_BETA/dist/game/data/stats/skills/00200-00299.xml
@@ -1009,10 +1009,10 @@
 		<set name="reuseDelay" val="5000" />
 		<set name="targetType" val="HOLY" />
 		<cond>
-			<player canPossessHolything="true" />
+			<player canTakeCastle="true" />
 		</cond>
 		<for>
-			<effect name="HolythingPossess" />
+			<effect name="TakeCastle" />
 		</for>
 	</skill>
 	<skill id="247" levels="1" name="Build Headquarters">
@@ -1025,8 +1025,13 @@
 		<set name="mpInitialConsume" val="30" />
 		<set name="operateType" val="A1" />
 		<set name="reuseDelay" val="1800000" />
-		<set name="skillType" val="SIEGEFLAG" />
 		<set name="targetType" val="SELF" />
+		<cond>
+			<player canCreateBase="true" />
+		</cond>
+		<for>
+			<effect name="HeadquarterCreate" />
+		</for>
 	</skill>
 	<skill id="248" levels="5" name="Crystallize">
 		<table name="#magicLvl"> 20 40 52 60 70 </table>
@@ -2906,7 +2911,10 @@
 		<set name="reuseDelay" val="5000" />
 		<set name="targetType" val="SELF" />
 		<cond>
-			<player canSummon="true" />
+			<and>
+				<player canSummon="true" />
+				<player canSummonSiegeGolem="true" />
+			</and>
 		</cond>
 		<for>
 			<effect name="Summon">
diff --git a/L2J_DataPack_BETA/dist/game/data/stats/skills/00300-00399.xml b/L2J_DataPack_BETA/dist/game/data/stats/skills/00300-00399.xml
index e30ffd353c99c5614b8076422e3d8171ce115f03..5319a426ee4af077c582d3840dbc322eb8e56915 100644
--- a/L2J_DataPack_BETA/dist/game/data/stats/skills/00300-00399.xml
+++ b/L2J_DataPack_BETA/dist/game/data/stats/skills/00300-00399.xml
@@ -883,7 +883,6 @@
 	<skill id="326" levels="1" name="Build Advanced Headquarters">
 		<set name="hitTime" val="4000" />
 		<set name="icon" val="icon.skill0326" />
-		<set name="isAdvanced" val="true" />
 		<set name="isMagic" val="2" /> <!-- Static Skill -->
 		<set name="itemConsumeCount" val="300" />
 		<set name="itemConsumeId" val="2131" />
@@ -891,8 +890,15 @@
 		<set name="mpInitialConsume" val="30" />
 		<set name="operateType" val="A1" />
 		<set name="reuseDelay" val="3600000" />
-		<set name="skillType" val="SIEGEFLAG" />
 		<set name="targetType" val="SELF" />
+		<cond>
+			<player canCreateBase="true" />
+		</cond>
+		<for>
+			<effect name="HeadquarterCreate">
+				<param isAdvanced="true" />
+			</effect>
+		</for>
 	</skill>
 	<skill id="327" levels="1" name="Wyvern Aegis">
 		<set name="abnormalLvl" val="3" />
diff --git a/L2J_DataPack_BETA/dist/game/data/stats/skills/00400-00499.xml b/L2J_DataPack_BETA/dist/game/data/stats/skills/00400-00499.xml
index eceded6d030dc8a83bbfef581c4ebb56fdc46562..3c0dfca5ff0925d97cfd3caa99f8766ba2fc79e3 100644
--- a/L2J_DataPack_BETA/dist/game/data/stats/skills/00400-00499.xml
+++ b/L2J_DataPack_BETA/dist/game/data/stats/skills/00400-00499.xml
@@ -1689,7 +1689,6 @@
 		</for>
 	</skill>
 	<skill id="448" levels="1" name="Summon Swoop Cannon" enchantGroup1="1">
-		<!-- TODO: Needs to be verified "Is enchantable but no stats for the +Power versions" -->
 		<table name="#ench1npcId"> 14840 14841 14842 14843 14844 14845 14846 14847 14848 14849 14850 14851 14852 14853 14854 14855 14856 14857 14858 14859 14860 14861 14862 14863 14864 14865 14866 14867 14868 14869 </table>
 		<set name="hitTime" val="10000" />
 		<set name="icon" val="icon.skill0448" />
@@ -1703,7 +1702,10 @@
 		<set name="reuseDelay" val="5000" />
 		<set name="targetType" val="SELF" />
 		<cond>
-			<player canSummon="true" />
+			<and>
+				<player canSummon="true" />
+				<player canSummonSiegeGolem="true" />
+			</and>
 		</cond>
 		<for>
 			<effect name="Summon">
diff --git a/L2J_DataPack_BETA/dist/game/data/stats/skills/00800-00899.xml b/L2J_DataPack_BETA/dist/game/data/stats/skills/00800-00899.xml
index 422af13ac98d9fb69ed80f2cbe4857010bfaf966..377c4987f6dd117be3a08c6bbff1873d42043625 100644
--- a/L2J_DataPack_BETA/dist/game/data/stats/skills/00800-00899.xml
+++ b/L2J_DataPack_BETA/dist/game/data/stats/skills/00800-00899.xml
@@ -943,8 +943,13 @@
 		<set name="mpInitialConsume" val="30" />
 		<set name="operateType" val="A1" />
 		<set name="reuseDelay" val="600000" />
-		<set name="skillType" val="SIEGEFLAG" />
 		<set name="targetType" val="SELF" />
+		<cond>
+			<player canCreateOutpost="true" />
+		</cond>
+		<for>
+			<effect name="OutpostCreate" />
+		</for>
 	</skill>
 	<skill id="845" levels="1" name="Outpost Demolition">
 		<set name="castRange" val="100" />
@@ -959,6 +964,9 @@
 		<cond msgId="109">
 			<target npcId="36590" />
 		</cond>
+		<for>
+			<effect name="OutpostDestroy" />
+		</for>
 	</skill>
 	<skill id="846" levels="1" name="Possess Ward">
 		<!-- Confirmed CT2.5 -->
@@ -990,6 +998,9 @@
 		<cond msgId="109">
 			<target npcId="36590" />
 		</cond>
+		<for>
+			<effect name="TakeTerritoryFlag" />
+		</for>
 	</skill>
 	<skill id="848" levels="1" name="Gludio Territory Benefaction">
 		<!-- Confirmed CT2.5 -->
diff --git a/L2J_DataPack_BETA/dist/game/data/stats/skills/03300-03399.xml b/L2J_DataPack_BETA/dist/game/data/stats/skills/03300-03399.xml
index 2cb97097a3b250d36304f89c8607b0308db470cc..1e10a79a59bab0178824b86e077eaf7d89809abd 100644
--- a/L2J_DataPack_BETA/dist/game/data/stats/skills/03300-03399.xml
+++ b/L2J_DataPack_BETA/dist/game/data/stats/skills/03300-03399.xml
@@ -223,8 +223,16 @@
 		<set name="magicLvl" val="80" />
 		<set name="operateType" val="CA1" />
 		<set name="reuseDelay" val="5000" />
-		<set name="skillType" val="TAKEFORT" /> 
 		<set name="targetType" val="FLAGPOLE" />
+		<cond> 
+			<player canTakeFort="true" /> 
+		</cond>
+		<startEffects>
+			<effect name="TakeFortStart" />
+		</startEffects> 
+		<for>
+			<effect name="TakeFort" /> 
+		</for> 
 	</skill>
 	<skill id="3319" levels="1" name="Divine Protection of Ring">
 		<set name="magicLvl" val="86" />