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 615d35484c728f31eabf0114ff2ad130e0890bb2..3f8fc058932d4161fbc80c6f197ad2d345fbfae1 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/EffectMasterHandler.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/EffectMasterHandler.java
@@ -103,6 +103,7 @@ public final class EffectMasterHandler
 		HealOverTime.class,
 		HealPercent.class,
 		Hide.class,
+		HolythingPossess.class,
 		HpByLevel.class,
 		HpDrain.class,
 		ImmobileBuff.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 1840f09dbf5d1f3623e7f9c99d72e3d68c3d8640..14f53b38e4003e2756602d4185512e38bb80da81 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/MasterHandler.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/MasterHandler.java
@@ -215,7 +215,6 @@ import handlers.skillhandlers.GetPlayer;
 import handlers.skillhandlers.GiveReco;
 import handlers.skillhandlers.NornilsPower;
 import handlers.skillhandlers.Sow;
-import handlers.skillhandlers.TakeCastle;
 import handlers.skillhandlers.TakeFort;
 import handlers.skillhandlers.Trap;
 import handlers.skillhandlers.Unlock;
@@ -510,7 +509,6 @@ public class MasterHandler
 			GiveReco.class,
 			NornilsPower.class,
 			Sow.class,
-			TakeCastle.class,
 			TakeFort.class,
 			Trap.class,
 			Unlock.class,
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/HolythingPossess.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/HolythingPossess.java
new file mode 100644
index 0000000000000000000000000000000000000000..605aa24b3f2f9afecf3b321f71e7376bc1c7ccfa
--- /dev/null
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/HolythingPossess.java
@@ -0,0 +1,66 @@
+/*
+ * Copyright (C) 2004-2013 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.CastleManager;
+import com.l2jserver.gameserver.model.effects.EffectTemplate;
+import com.l2jserver.gameserver.model.effects.L2Effect;
+import com.l2jserver.gameserver.model.effects.L2EffectType;
+import com.l2jserver.gameserver.model.entity.Castle;
+import com.l2jserver.gameserver.model.stats.Env;
+import com.l2jserver.gameserver.network.SystemMessageId;
+import com.l2jserver.gameserver.network.serverpackets.SystemMessage;
+
+/**
+ * Holything Possess effect implementation.
+ * @author Adry_85
+ */
+public class HolythingPossess extends L2Effect
+{
+	public HolythingPossess(Env env, EffectTemplate template)
+	{
+		super(env, template);
+	}
+	
+	@Override
+	public L2EffectType getEffectType()
+	{
+		return L2EffectType.NONE;
+	}
+	
+	@Override
+	public boolean isInstant()
+	{
+		return true;
+	}
+	
+	@Override
+	public boolean onStart()
+	{
+		if (!getEffector().isPlayer())
+		{
+			return false;
+		}
+		
+		Castle castle = CastleManager.getInstance().getCastle(getEffector());
+		castle.engrave(getEffector().getActingPlayer().getClan(), getEffected());
+		castle.getSiege().announceToPlayer(SystemMessage.getSystemMessage(SystemMessageId.OPPONENT_STARTED_ENGRAVING), false);
+		return true;
+	}
+}
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/skillhandlers/TakeCastle.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/skillhandlers/TakeCastle.java
deleted file mode 100644
index 0cbdefd3042265ed4671d48cd4213db0863e97a4..0000000000000000000000000000000000000000
--- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/skillhandlers/TakeCastle.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * Copyright (C) 2004-2013 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.CastleManager;
-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.Castle;
-import com.l2jserver.gameserver.model.skills.L2Skill;
-import com.l2jserver.gameserver.model.skills.L2SkillType;
-
-/**
- * @author _drunk_
- */
-public class TakeCastle implements ISkillHandler
-{
-	private static final L2SkillType[] SKILL_IDS =
-	{
-		L2SkillType.TAKECASTLE
-	};
-	
-	@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) || (player.getClan().getLeaderId() != player.getObjectId()))
-		{
-			return;
-		}
-		
-		Castle castle = CastleManager.getInstance().getCastle(player);
-		if ((castle == null) || !player.checkIfOkToCastSealOfRule(castle, true, skill, targets[0]))
-		{
-			return;
-		}
-		
-		try
-		{
-			castle.engrave(player.getClan(), targets[0]);
-		}
-		catch (Exception e)
-		{
-			e.printStackTrace();
-		}
-	}
-	
-	@Override
-	public L2SkillType[] getSkillIds()
-	{
-		return SKILL_IDS;
-	}
-	
-	public static void main(String[] args)
-	{
-		new TakeCastle();
-	}
-}
\ No newline at end of file
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/targethandlers/Holy.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/targethandlers/Holy.java
index 57218c4381b631c8dc3cf16093333b5d31e4b8a4..04efaec0972ec2567d17e8392e20e7c02d6de9fc 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/targethandlers/Holy.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/targethandlers/Holy.java
@@ -19,11 +19,9 @@
 package handlers.targethandlers;
 
 import com.l2jserver.gameserver.handler.ITargetTypeHandler;
-import com.l2jserver.gameserver.instancemanager.CastleManager;
 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.Castle;
+import com.l2jserver.gameserver.model.actor.instance.L2ArtefactInstance;
 import com.l2jserver.gameserver.model.skills.L2Skill;
 import com.l2jserver.gameserver.model.skills.targets.L2TargetType;
 
@@ -35,21 +33,14 @@ public class Holy implements ITargetTypeHandler
 	@Override
 	public L2Object[] getTargetList(L2Skill skill, L2Character activeChar, boolean onlyFirst, L2Character target)
 	{
-		if (!activeChar.isPlayer())
-		{
-			return EMPTY_TARGET_LIST;
-		}
-		
-		final L2PcInstance player = activeChar.getActingPlayer();
-		final Castle castle = CastleManager.getInstance().getCastle(player);
-		if ((player.getClan() == null) || (castle == null) || !player.checkIfOkToCastSealOfRule(castle, true, skill, target))
+		if (!(target instanceof L2ArtefactInstance))
 		{
 			return EMPTY_TARGET_LIST;
 		}
 		
 		return new L2Object[]
 		{
-			activeChar.getTarget()
+			target
 		};
 	}
 	
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 234a0e3edbd8b0d9b559da36f049a3d9fb08ceb5..dbf3c5f992ff55d4b76ab250f238978ed9688d6f 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
@@ -927,6 +927,7 @@
 		</for>
 	</skill>
 	<skill id="246" levels="1" name="Seal of Ruler">
+		<!-- Confirmed CT2.5 -->
 		<set name="castRange" val="85" />
 		<set name="effectRange" val="400" />
 		<set name="hitTime" val="180000" />
@@ -936,8 +937,13 @@
 		<set name="mpInitialConsume" val="50" />
 		<set name="operateType" val="A1" />
 		<set name="reuseDelay" val="5000" />
-		<set name="skillType" val="TAKECASTLE" />
 		<set name="targetType" val="HOLY" />
+		<cond>
+			<player canPossessHolything="true" />
+		</cond>
+		<for>
+			<effect name="HolythingPossess" noicon="1" val="0" />
+		</for>
 	</skill>
 	<skill id="247" levels="1" name="Build Headquarters">
 		<set name="hitTime" val="4000" />