diff --git a/L2J_DataPack_BETA/dist/game/config/adminCommands.xml b/L2J_DataPack_BETA/dist/game/config/adminCommands.xml
index 0b728439fac66aac44ab02157489f913f19b947c..ded1cd56db9ef03b9f912073fa8d048d5e431d17 100644
--- a/L2J_DataPack_BETA/dist/game/config/adminCommands.xml
+++ b/L2J_DataPack_BETA/dist/game/config/adminCommands.xml
@@ -3,7 +3,7 @@
 	<!-- ADMIN COND EXCEPTIONS -->
 	<admin command="admin_exceptions" accessLevel="7" />
 	<admin command="admin_set_exception" accessLevel="7" confirmDlg="true" />
-	
+
 	<!-- ADMIN ADMIN -->
 	<admin command="admin_admin" accessLevel="7" />
 	<admin command="admin_admin1" accessLevel="7" />
@@ -632,6 +632,10 @@
 	<admin command="admin_zone_visual" accessLevel="7" />
 	<admin command="admin_zone_visual_clear" accessLevel="7" />
 
+	<!-- ADMIN SCAN -->
+	<admin command="admin_scan" accessLevel="7" />
+	<admin command="admin_deleteNpcByObjectId" accessLevel="7" confirmDlg="true" />
+
 	<!-- VOICE COMMANDS -->
 	<admin command="banchat" accessLevel="7" />
 	<admin command="debug" accessLevel="7" />
diff --git a/L2J_DataPack_BETA/dist/game/data/html/admin/main_menu.htm b/L2J_DataPack_BETA/dist/game/data/html/admin/main_menu.htm
index 30be03f44bbd6ce92f08606d9ab3fb1866e03ba8..f2e9da57a53782b615422880756521d692a13ff3 100644
--- a/L2J_DataPack_BETA/dist/game/data/html/admin/main_menu.htm
+++ b/L2J_DataPack_BETA/dist/game/data/html/admin/main_menu.htm
@@ -26,6 +26,8 @@
 <td><button value="ListSpwn" action="bypass -h admin_list_spawns $qbox" width=65 height=21 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td>
 <td><button value="goPosition" action="bypass -h admin_list_positions $qbox 1" width=65 height=21 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td>
 <td><button value="goSpawn" action="bypass -h admin_list_spawns $qbox 1" width=65 height=21 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td>
+</tr><tr>
+<td><button value="Scan" action="bypass -h admin_scan $qbox" width=65 height=21 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td>
 </tr>
 </table>
 <br>
diff --git a/L2J_DataPack_BETA/dist/game/data/html/admin/scan.htm b/L2J_DataPack_BETA/dist/game/data/html/admin/scan.htm
new file mode 100644
index 0000000000000000000000000000000000000000..cf1387fb898e244399bc8c26e7af5b8b192596bc
--- /dev/null
+++ b/L2J_DataPack_BETA/dist/game/data/html/admin/scan.htm
@@ -0,0 +1,23 @@
+<html><title>L2J Main Admin Menu</title><body>
+<center>
+<table width=270 border=0 bgcolor="444444">
+<tr>
+<td><button value="Main" action="bypass -h admin_admin" width=65 height=21 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td>
+<td><button value="Char" action="bypass -h admin_admin6" width=65 height=21 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td>
+<td><button value="Game" action="bypass -h admin_admin2" width=65 height=21 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td>
+<td><button value="GM" action="bypass -h admin_admin7" width=65 height=21 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td>
+</tr>
+</table><br>
+<table width=270>
+<tr>
+<td width="54">Id</td>
+<td width="54">Name</td>
+<td width="54">Dist</td>
+<td width="54">Delete</td>
+<td width="54">Goto</td>
+</tr>
+%data%
+</table>
+</center>
+</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 9d2c8a6428e6d3106a776eae0b475b9345953435..361772c7fb056ab4bd731ea06b86b57d5903c80a 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts.cfg
+++ b/L2J_DataPack_BETA/dist/game/data/scripts.cfg
@@ -7,6 +7,7 @@
 
 # Load Handlers
 handlers/MasterHandler.java
+handlers/admincommandhandlers/AdminScan.js
 
 # AI Section
 
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/admincommandhandlers/AdminScan.js b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/admincommandhandlers/AdminScan.js
new file mode 100644
index 0000000000000000000000000000000000000000..60c1a0ffdcb836d9847081622f165894206673c7
--- /dev/null
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/admincommandhandlers/AdminScan.js
@@ -0,0 +1,116 @@
+/*
+ * 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/>.
+ */
+importPackage(java.util);
+importPackage(java.lang);
+importPackage(com.l2jserver.gameserver.cache);
+importPackage(com.l2jserver.gameserver.datatables);
+importPackage(com.l2jserver.gameserver.handler);
+importPackage(com.l2jserver.gameserver.instancemanager);
+importPackage(com.l2jserver.gameserver.model);
+importPackage(com.l2jserver.gameserver.model.actor);
+importPackage(com.l2jserver.gameserver.model.actor.instance);
+importPackage(com.l2jserver.gameserver.network.serverpackets);
+importPackage(com.l2jserver.gameserver.util);
+
+/**
+ * @author UnAfraid
+ */
+AdminCommandHandler.getInstance().registerHandler(new JavaAdapter(IAdminCommandHandler,
+{
+	// Override useAdminCommand() method.
+	useAdminCommand : function(command, player)
+	{
+		var st = new StringTokenizer(command, " ");
+		if (st.hasMoreTokens())
+		{
+			var cmd = st.nextToken();
+			if (cmd == 'admin_scan')
+			{
+				var radius = 500;
+				if (st.hasMoreTokens())
+				{
+					var obj = st.nextToken();
+					if (Util.isDigit(obj))
+					{
+						radius = obj;
+					}
+				}
+				
+				var htm = HtmCache.getInstance().getHtm(player.getHtmlPrefix(), "data/html/admin/scan.htm");
+				var sb = new StringBuilder();
+				var it = player.getKnownList().getKnownCharactersInRadius(radius).iterator();
+				while (it.hasNext())
+				{
+					var character = it.next();
+					if (character instanceof L2Npc)
+					{
+						sb.append("<tr>");
+						sb.append("<td width=\"54\">" + character.getNpcId() + "</td>");
+						sb.append("<td width=\"54\">" + character.getName() + "</td>");
+						sb.append("<td width=\"54\">" + Math.round(Util.calculateDistance(player, character, false)) + "</td>");
+						sb.append("<td width=\"54\"><a action=\"bypass -h admin_deleteNpcByObjectId " + character.getObjectId() + "\"><font color=\"LEVEL\">Delete</font></a></td>");
+						sb.append("<td width=\"54\"><a action=\"bypass -h admin_move_to " + character.getX() + " " + character.getY() + " " + character.getZ() + "\"><font color=\"LEVEL\">Go to</font></a></td>");
+						sb.append("</tr>");
+					}
+				}
+				htm = htm.replaceAll("%data%", sb.toString());
+				player.sendPacket(new NpcHtmlMessage(0, htm));
+			}
+			else if (cmd = 'admin_deleteNpcByObjectId' && st.hasMoreTokens())
+			{
+				var objectId = st.nextToken();
+				if (Util.isDigit(objectId))
+				{
+					var it = player.getKnownList().getKnownCharacters().iterator();
+					while (it.hasNext())
+					{
+						var character = it.next();
+						if ((character instanceof L2Npc) && (character.getObjectId() == objectId))
+						{
+							character.deleteMe();
+							var spawn = character.getSpawn();
+							if (spawn != null)
+							{
+								spawn.stopRespawn();
+								
+								if (RaidBossSpawnManager.getInstance().isDefined(spawn.getNpcid()))
+								{
+									RaidBossSpawnManager.getInstance().deleteSpawn(spawn, true);
+								}
+								else
+								{
+									SpawnTable.getInstance().deleteSpawn(spawn, true);
+								}
+							}
+							player.sendMessage(character.getName() + " have been deleted.");
+							this.useAdminCommand("admin_scan", player);
+						}
+					}
+				}
+			}
+		}
+		return true;
+	},
+	
+	// Override getAdminCommandList() method.
+	getAdminCommandList : function()
+	{
+		return new Array("admin_scan", "admin_deleteNpcByObjectId");
+	}
+}));
\ No newline at end of file
diff --git a/L2J_DataPack_BETA/dist/game/data/xsd/adminCommands.xsd b/L2J_DataPack_BETA/dist/game/data/xsd/adminCommands.xsd
index 8bf1852ca46aef0d0a88ff876196093d349d95e1..a1ac8fac4e88c6e176bdfdaa6a36437b29f3a869 100644
--- a/L2J_DataPack_BETA/dist/game/data/xsd/adminCommands.xsd
+++ b/L2J_DataPack_BETA/dist/game/data/xsd/adminCommands.xsd
@@ -500,6 +500,8 @@
 									<xs:enumeration value="admin_zone_reload" />
 									<xs:enumeration value="admin_zone_visual_clear" />
 									<xs:enumeration value="admin_zone_visual" />
+									<xs:enumeration value="admin_scan" />
+									<xs:enumeration value="admin_deleteNpcByObjectId" />
 									<xs:enumeration value="banchat" />
 									<xs:enumeration value="debug" />
 									<xs:enumeration value="recall" />