diff --git a/L2J_DataPack_BETA/data/scripts/ai/individual/Antharas.java b/L2J_DataPack_BETA/data/scripts/ai/individual/Antharas.java
index ee8952efe9c7eeceac9a58341974553839c6a1c4..e1d0f7888d6a39b95b3bf7995d742359459bafc5 100644
--- a/L2J_DataPack_BETA/data/scripts/ai/individual/Antharas.java
+++ b/L2J_DataPack_BETA/data/scripts/ai/individual/Antharas.java
@@ -803,7 +803,7 @@ public class Antharas extends L2AttackableAIScript
 		{
 			GrandBossManager.getInstance().setBossStatus(_bossId,DORMANT);
 			if (FWA_DOSERVEREARTHQUAKE)
-				for(L2PcInstance p : L2World.getInstance().getAllPlayers().values())
+				for(L2PcInstance p : L2World.getInstance().getAllPlayersArray())
 					p.broadcastPacket(new Earthquake(185708,114298,-8221,20,10));
 		}
 	}
diff --git a/L2J_DataPack_BETA/data/scripts/handlers/admincommandhandlers/AdminAnnouncements.java b/L2J_DataPack_BETA/data/scripts/handlers/admincommandhandlers/AdminAnnouncements.java
index 69ae7a413bcf9ad1ced708fcebd7ce8c738ab217..484fbbb63d8fc0c32da729adcd6a3be77ee06a20 100644
--- a/L2J_DataPack_BETA/data/scripts/handlers/admincommandhandlers/AdminAnnouncements.java
+++ b/L2J_DataPack_BETA/data/scripts/handlers/admincommandhandlers/AdminAnnouncements.java
@@ -14,7 +14,6 @@
  */
 package handlers.admincommandhandlers;
 
-import java.util.Collection;
 import java.util.List;
 import java.util.StringTokenizer;
 
@@ -61,6 +60,7 @@ public class AdminAnnouncements implements IAdminCommandHandler
 		"admin_del_autoann"
 	};
 	
+	@Override
 	public boolean useAdminCommand(String command, L2PcInstance activeChar)
 	{
 		if (command.equals("admin_list_announcements"))
@@ -81,12 +81,8 @@ public class AdminAnnouncements implements IAdminCommandHandler
 		}
 		else if (command.equals("admin_announce_announcements"))
 		{
-			Collection<L2PcInstance> pls = L2World.getInstance().getAllPlayers().values();
-			// synchronized (L2World.getInstance().getAllPlayers())
-			{
-				for (L2PcInstance player : pls)
-					Announcements.getInstance().showAnnouncements(player);
-			}
+			for (L2PcInstance player : L2World.getInstance().getAllPlayersArray())
+				Announcements.getInstance().showAnnouncements(player);
 			Announcements.getInstance().listAnnouncements(activeChar);
 		}
 		else if (command.startsWith("admin_add_announcement"))
@@ -221,6 +217,7 @@ public class AdminAnnouncements implements IAdminCommandHandler
 		activeChar.sendPacket(adminReply);
 	}
 	
+	@Override
 	public String[] getAdminCommandList()
 	{
 		return ADMIN_COMMANDS;
diff --git a/L2J_DataPack_BETA/data/scripts/handlers/admincommandhandlers/AdminCreateItem.java b/L2J_DataPack_BETA/data/scripts/handlers/admincommandhandlers/AdminCreateItem.java
index 28f9e2d698a88e058c17a0bf7ea5ac0b5ed27150..9cf44789b5872415944619999cac8a96f1179c33 100644
--- a/L2J_DataPack_BETA/data/scripts/handlers/admincommandhandlers/AdminCreateItem.java
+++ b/L2J_DataPack_BETA/data/scripts/handlers/admincommandhandlers/AdminCreateItem.java
@@ -14,7 +14,6 @@
  */
 package handlers.admincommandhandlers;
 
-import java.util.Collection;
 import java.util.StringTokenizer;
 
 import com.l2jserver.gameserver.datatables.ItemTable;
@@ -42,6 +41,7 @@ public class AdminCreateItem implements IAdminCommandHandler
 		"admin_give_item_to_all"
 	};
 	
+	@Override
 	public boolean useAdminCommand(String command, L2PcInstance activeChar)
 	{
 		if (command.equals("admin_itemcreate"))
@@ -184,16 +184,13 @@ public class AdminCreateItem implements IAdminCommandHandler
 				activeChar.sendMessage("This item does not stack - Creation aborted.");
 				return false;
 			}
-			Collection<L2PcInstance> pls = L2World.getInstance().getAllPlayers().values();
+			for (L2PcInstance onlinePlayer : L2World.getInstance().getAllPlayersArray())
 			{
-				for (L2PcInstance onlinePlayer : pls)
+				if (activeChar != onlinePlayer && onlinePlayer.isOnline() && (onlinePlayer.getClient() != null && !onlinePlayer.getClient().isDetached()))
 				{
-					if (activeChar != onlinePlayer && onlinePlayer.isOnline() && (onlinePlayer.getClient() != null && !onlinePlayer.getClient().isDetached()))
-					{
-						onlinePlayer.getInventory().addItem("Admin", idval, numval, onlinePlayer, activeChar);
-						onlinePlayer.sendMessage("Admin spawned "+numval+" "+template.getName()+" in your inventory.");
-						counter++;
-					}
+					onlinePlayer.getInventory().addItem("Admin", idval, numval, onlinePlayer, activeChar);
+					onlinePlayer.sendMessage("Admin spawned "+numval+" "+template.getName()+" in your inventory.");
+					counter++;
 				}
 			}
 			activeChar.sendMessage(counter +" players rewarded with " + template.getName());
@@ -201,6 +198,7 @@ public class AdminCreateItem implements IAdminCommandHandler
 		return true;
 	}
 	
+	@Override
 	public String[] getAdminCommandList()
 	{
 		return ADMIN_COMMANDS;
diff --git a/L2J_DataPack_BETA/data/scripts/handlers/admincommandhandlers/AdminEditChar.java b/L2J_DataPack_BETA/data/scripts/handlers/admincommandhandlers/AdminEditChar.java
index 42fd7e807ab4118640f5ed889d3fc081fd9888c8..3a11dedf319b308574478608e9acf981d421a8a0 100644
--- a/L2J_DataPack_BETA/data/scripts/handlers/admincommandhandlers/AdminEditChar.java
+++ b/L2J_DataPack_BETA/data/scripts/handlers/admincommandhandlers/AdminEditChar.java
@@ -18,7 +18,6 @@ import java.sql.Connection;
 import java.sql.PreparedStatement;
 import java.util.ArrayList;
 import java.util.Arrays;
-import java.util.Collection;
 import java.util.Collections;
 import java.util.Comparator;
 import java.util.HashMap;
@@ -128,6 +127,7 @@ public class AdminEditChar implements IAdminCommandHandler
 		"admin_partyinfo"
 	};
 	
+	@Override
 	public boolean useAdminCommand(String command, L2PcInstance activeChar)
 	{
 		if (command.equals("admin_current_player"))
@@ -770,6 +770,7 @@ public class AdminEditChar implements IAdminCommandHandler
 		return true;
 	}
 	
+	@Override
 	public String[] getAdminCommandList()
 	{
 		return ADMIN_COMMANDS;
@@ -777,12 +778,7 @@ public class AdminEditChar implements IAdminCommandHandler
 	
 	private void listCharacters(L2PcInstance activeChar, int page)
 	{
-		Collection<L2PcInstance> allPlayers = L2World.getInstance().getAllPlayers().values();
-		L2PcInstance[] players;
-		//synchronized (L2World.getInstance().getAllPlayers())
-		{
-			players = allPlayers.toArray(new L2PcInstance[allPlayers.size()]);
-		}
+		L2PcInstance[] players = L2World.getInstance().getAllPlayersArray();
 		
 		int maxCharactersPerPage = 20;
 		int maxPages = players.length / maxCharactersPerPage;
@@ -1057,12 +1053,7 @@ public class AdminEditChar implements IAdminCommandHandler
 	{
 		int CharactersFound = 0;
 		String name;
-		Collection<L2PcInstance> allPlayers = L2World.getInstance().getAllPlayers().values();
-		L2PcInstance[] players;
-		//synchronized (L2World.getInstance().getAllPlayers())
-		{
-			players = allPlayers.toArray(new L2PcInstance[allPlayers.size()]);
-		}
+		L2PcInstance[] players = L2World.getInstance().getAllPlayersArray();
 		NpcHtmlMessage adminReply = new NpcHtmlMessage(5);
 		adminReply.setFile(activeChar.getHtmlPrefix(), "data/html/admin/charfind.htm");
 		
@@ -1125,12 +1116,7 @@ public class AdminEditChar implements IAdminCommandHandler
 			if (!IpAdress.matches("^(?:(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2(?:[0-4][0-9]|5[0-5]))\\.){3}(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2(?:[0-4][0-9]|5[0-5]))$"))
 				throw new IllegalArgumentException("Malformed IPv4 number");
 		}
-		Collection<L2PcInstance> allPlayers = L2World.getInstance().getAllPlayers().values();
-		L2PcInstance[] players;
-		//synchronized (L2World.getInstance().getAllPlayers())
-		{
-			players = allPlayers.toArray(new L2PcInstance[allPlayers.size()]);
-		}
+		L2PcInstance[] players = L2World.getInstance().getAllPlayersArray();
 		int CharactersFound = 0;
 		L2GameClient client;
 		String name, ip = "0.0.0.0";
@@ -1237,8 +1223,7 @@ public class AdminEditChar implements IAdminCommandHandler
 	 */
 	private void findDualbox(L2PcInstance activeChar, int multibox)
 	{
-		Collection<L2PcInstance> allPlayers = L2World.getInstance().getAllPlayers().values();
-		L2PcInstance[] players = allPlayers.toArray(new L2PcInstance[allPlayers.size()]);
+		L2PcInstance[] players = L2World.getInstance().getAllPlayersArray();
 		
 		Map<String, List<L2PcInstance>> ipMap = new HashMap<String, List<L2PcInstance>>();
 		
@@ -1272,6 +1257,7 @@ public class AdminEditChar implements IAdminCommandHandler
 		
 		List<String> keys = new ArrayList<String>(dualboxIPs.keySet());
 		Collections.sort(keys, new Comparator<String>() {
+			@Override
 			public int compare(String left, String right)
 			{
 				return dualboxIPs.get(left).compareTo(dualboxIPs.get(right));
@@ -1295,8 +1281,7 @@ public class AdminEditChar implements IAdminCommandHandler
 	
 	private void findDualboxStrict(L2PcInstance activeChar, int multibox)
 	{
-		Collection<L2PcInstance> allPlayers = L2World.getInstance().getAllPlayers().values();
-		L2PcInstance[] players = allPlayers.toArray(new L2PcInstance[allPlayers.size()]);
+		L2PcInstance[] players = L2World.getInstance().getAllPlayersArray();
 		
 		Map<IpPack, List<L2PcInstance>> ipMap = new HashMap<IpPack, List<L2PcInstance>>();
 		
@@ -1329,6 +1314,7 @@ public class AdminEditChar implements IAdminCommandHandler
 		
 		List<IpPack> keys = new ArrayList<IpPack>(dualboxIPs.keySet());
 		Collections.sort(keys, new Comparator<IpPack>() {
+			@Override
 			public int compare(IpPack left, IpPack right)
 			{
 				return dualboxIPs.get(left).compareTo(dualboxIPs.get(right));
diff --git a/L2J_DataPack_BETA/data/scripts/handlers/admincommandhandlers/AdminKick.java b/L2J_DataPack_BETA/data/scripts/handlers/admincommandhandlers/AdminKick.java
index d22214a3e1b1ced2235ca7991e68b71b4c31dc36..5e288e8d04e19598cc4214daadec40795a264dd9 100644
--- a/L2J_DataPack_BETA/data/scripts/handlers/admincommandhandlers/AdminKick.java
+++ b/L2J_DataPack_BETA/data/scripts/handlers/admincommandhandlers/AdminKick.java
@@ -14,7 +14,6 @@
  */
 package handlers.admincommandhandlers;
 
-import java.util.Collection;
 import java.util.StringTokenizer;
 
 import com.l2jserver.gameserver.handler.IAdminCommandHandler;
@@ -30,6 +29,7 @@ public class AdminKick implements IAdminCommandHandler
 		"admin_kick_non_gm"
 	};
 	
+	@Override
 	public boolean useAdminCommand(String command, L2PcInstance activeChar)
 	{
 		if (command.startsWith("admin_kick"))
@@ -50,21 +50,20 @@ public class AdminKick implements IAdminCommandHandler
 		if (command.startsWith("admin_kick_non_gm"))
 		{
 			int counter = 0;
-			Collection<L2PcInstance> pls = L2World.getInstance().getAllPlayers().values();
-			//synchronized (L2World.getInstance().getAllPlayers())
+			for (L2PcInstance player : L2World.getInstance().getAllPlayersArray())
 			{
-				for (L2PcInstance player : pls)
-					if (!player.isGM())
-					{
-						counter++;
-						player.logout();
-					}
+				if (!player.isGM())
+				{
+					counter++;
+					player.logout();
+				}
 			}
 			activeChar.sendMessage("Kicked " + counter + " players");
 		}
 		return true;
 	}
 	
+	@Override
 	public String[] getAdminCommandList()
 	{
 		return ADMIN_COMMANDS;
diff --git a/L2J_DataPack_BETA/data/scripts/handlers/chathandlers/ChatBattlefield.java b/L2J_DataPack_BETA/data/scripts/handlers/chathandlers/ChatBattlefield.java
index eacf23f273bb5308d8d9794a7b29b09b1776a6d8..044c89bffc7aef93c38cea442567b4383ba2af90 100644
--- a/L2J_DataPack_BETA/data/scripts/handlers/chathandlers/ChatBattlefield.java
+++ b/L2J_DataPack_BETA/data/scripts/handlers/chathandlers/ChatBattlefield.java
@@ -14,8 +14,6 @@
  */
 package handlers.chathandlers;
 
-import java.util.Collection;
-
 import com.l2jserver.Config;
 import com.l2jserver.gameserver.handler.IChatHandler;
 import com.l2jserver.gameserver.instancemanager.TerritoryWarManager;
@@ -42,6 +40,7 @@ public class ChatBattlefield implements IChatHandler
 	 * Handle chat type 'battlefield'
 	 * @see com.l2jserver.gameserver.handler.IChatHandler#handleChat(int, com.l2jserver.gameserver.model.actor.instance.L2PcInstance, java.lang.String)
 	 */
+	@Override
 	public void handleChat(int type, L2PcInstance activeChar, String target, String text)
 	{
 		if (TerritoryWarManager.getInstance().isTWChannelOpen() && activeChar.getSiegeSide() > 0)
@@ -53,8 +52,7 @@ public class ChatBattlefield implements IChatHandler
 			}
 			
 			CreatureSay cs = new CreatureSay(activeChar.getObjectId(), type, activeChar.getName(), text);
-			Collection<L2PcInstance> pls = L2World.getInstance().getAllPlayers().values();
-			for (L2PcInstance player : pls)
+			for (L2PcInstance player : L2World.getInstance().getAllPlayersArray())
 				if (player.getSiegeSide() == activeChar.getSiegeSide())
 					player.sendPacket(cs);
 		}
@@ -64,6 +62,7 @@ public class ChatBattlefield implements IChatHandler
 	 * Returns the chat types registered to this handler
 	 * @see com.l2jserver.gameserver.handler.IChatHandler#getChatTypeList()
 	 */
+	@Override
 	public int[] getChatTypeList()
 	{
 		return COMMAND_IDS;
diff --git a/L2J_DataPack_BETA/data/scripts/handlers/chathandlers/ChatHeroVoice.java b/L2J_DataPack_BETA/data/scripts/handlers/chathandlers/ChatHeroVoice.java
index eda7547a3cfe8cbe76c8efe4b51189f77847c1bf..4a45959442c8fab808bc0fbbcdeaf41f6bdc563b 100644
--- a/L2J_DataPack_BETA/data/scripts/handlers/chathandlers/ChatHeroVoice.java
+++ b/L2J_DataPack_BETA/data/scripts/handlers/chathandlers/ChatHeroVoice.java
@@ -14,8 +14,6 @@
  */
 package handlers.chathandlers;
 
-import java.util.Collection;
-
 import com.l2jserver.Config;
 import com.l2jserver.gameserver.handler.IChatHandler;
 import com.l2jserver.gameserver.model.BlockList;
@@ -43,6 +41,7 @@ public class ChatHeroVoice implements IChatHandler
 	 * Handle chat type 'hero voice'
 	 * @see com.l2jserver.gameserver.handler.IChatHandler#handleChat(int, com.l2jserver.gameserver.model.actor.instance.L2PcInstance, java.lang.String)
 	 */
+	@Override
 	public void handleChat(int type, L2PcInstance activeChar, String target, String text)
 	{
 		if (activeChar.isHero() || activeChar.isGM())
@@ -60,8 +59,7 @@ public class ChatHeroVoice implements IChatHandler
 			}
 			CreatureSay cs = new CreatureSay(activeChar.getObjectId(), type, activeChar.getName(), text);
 			
-			Collection<L2PcInstance> pls = L2World.getInstance().getAllPlayers().values();
-			for (L2PcInstance player : pls)
+			for (L2PcInstance player : L2World.getInstance().getAllPlayersArray())
 			{
 				if (player != null && !BlockList.isBlocked(player, activeChar))
 					player.sendPacket(cs);
@@ -73,6 +71,7 @@ public class ChatHeroVoice implements IChatHandler
 	 * Returns the chat types registered to this handler
 	 * @see com.l2jserver.gameserver.handler.IChatHandler#getChatTypeList()
 	 */
+	@Override
 	public int[] getChatTypeList()
 	{
 		return COMMAND_IDS;
diff --git a/L2J_DataPack_BETA/data/scripts/handlers/chathandlers/ChatShout.java b/L2J_DataPack_BETA/data/scripts/handlers/chathandlers/ChatShout.java
index 08f4c89079e28362b4b151e64a3df580dfe78f1d..5854f30b9af5ad4abb26bb5312e89bdda8bd56ff 100644
--- a/L2J_DataPack_BETA/data/scripts/handlers/chathandlers/ChatShout.java
+++ b/L2J_DataPack_BETA/data/scripts/handlers/chathandlers/ChatShout.java
@@ -14,8 +14,6 @@
  */
 package handlers.chathandlers;
 
-import java.util.Collection;
-
 import com.l2jserver.Config;
 import com.l2jserver.gameserver.handler.IChatHandler;
 import com.l2jserver.gameserver.instancemanager.MapRegionManager;
@@ -44,6 +42,7 @@ public class ChatShout implements IChatHandler
 	 * Handle chat type 'shout'
 	 * @see com.l2jserver.gameserver.handler.IChatHandler#handleChat(int, com.l2jserver.gameserver.model.actor.instance.L2PcInstance, java.lang.String)
 	 */
+	@Override
 	public void handleChat(int type, L2PcInstance activeChar, String target, String text)
 	{
 		if (activeChar.isChatBanned() && Util.contains(Config.BAN_CHAT_CHANNELS, type))
@@ -54,7 +53,7 @@ public class ChatShout implements IChatHandler
 		
 		CreatureSay cs = new CreatureSay(activeChar.getObjectId(), type, activeChar.getName(), text);
 		
-		Collection<L2PcInstance> pls = L2World.getInstance().getAllPlayers().values();
+		L2PcInstance[] pls = L2World.getInstance().getAllPlayersArray();
 		
 		if (Config.DEFAULT_GLOBAL_CHAT.equalsIgnoreCase("on") || (Config.DEFAULT_GLOBAL_CHAT.equalsIgnoreCase("gm") && activeChar.isGM()))
 		{
@@ -85,6 +84,7 @@ public class ChatShout implements IChatHandler
 	 * Returns the chat types registered to this handler
 	 * @see com.l2jserver.gameserver.handler.IChatHandler#getChatTypeList()
 	 */
+	@Override
 	public int[] getChatTypeList()
 	{
 		return COMMAND_IDS;
diff --git a/L2J_DataPack_BETA/data/scripts/handlers/chathandlers/ChatTrade.java b/L2J_DataPack_BETA/data/scripts/handlers/chathandlers/ChatTrade.java
index 6c694022f92a9c46cb2010792a6f833334d7acf2..abc8f933feb61fa407cffe8c9ff0f1b6c779f004 100644
--- a/L2J_DataPack_BETA/data/scripts/handlers/chathandlers/ChatTrade.java
+++ b/L2J_DataPack_BETA/data/scripts/handlers/chathandlers/ChatTrade.java
@@ -14,8 +14,6 @@
  */
 package handlers.chathandlers;
 
-import java.util.Collection;
-
 import com.l2jserver.Config;
 import com.l2jserver.gameserver.handler.IChatHandler;
 import com.l2jserver.gameserver.instancemanager.MapRegionManager;
@@ -44,6 +42,7 @@ public class ChatTrade implements IChatHandler
 	 * Handle chat type 'trade'
 	 * @see com.l2jserver.gameserver.handler.IChatHandler#handleChat(int, com.l2jserver.gameserver.model.actor.instance.L2PcInstance, java.lang.String)
 	 */
+	@Override
 	public void handleChat(int type, L2PcInstance activeChar, String target, String text)
 	{
 		if (activeChar.isChatBanned() && Util.contains(Config.BAN_CHAT_CHANNELS, type))
@@ -54,7 +53,7 @@ public class ChatTrade implements IChatHandler
 		
 		CreatureSay cs = new CreatureSay(activeChar.getObjectId(), type, activeChar.getName(), text);
 		
-		Collection<L2PcInstance> pls = L2World.getInstance().getAllPlayers().values();
+		L2PcInstance[] pls = L2World.getInstance().getAllPlayersArray();
 		
 		if (Config.DEFAULT_TRADE_CHAT.equalsIgnoreCase("on") || (Config.DEFAULT_TRADE_CHAT.equalsIgnoreCase("gm") && activeChar.isGM()))
 		{
@@ -85,6 +84,7 @@ public class ChatTrade implements IChatHandler
 	 * Returns the chat types registered to this handler
 	 * @see com.l2jserver.gameserver.handler.IChatHandler#getChatTypeList()
 	 */
+	@Override
 	public int[] getChatTypeList()
 	{
 		return COMMAND_IDS;
diff --git a/L2J_DataPack_BETA/data/scripts/quests/TerritoryWarScripts/TerritoryWarSuperClass.java b/L2J_DataPack_BETA/data/scripts/quests/TerritoryWarScripts/TerritoryWarSuperClass.java
index 0a2f6f29026bf5cd0f80541bc97b696692cc6010..717c8430d3ac7ed10ba350c0825cb775b4baa017 100644
--- a/L2J_DataPack_BETA/data/scripts/quests/TerritoryWarScripts/TerritoryWarSuperClass.java
+++ b/L2J_DataPack_BETA/data/scripts/quests/TerritoryWarScripts/TerritoryWarSuperClass.java
@@ -130,7 +130,9 @@ public class TerritoryWarSuperClass extends Quest
 		{
 			int territoryId = getTerritoryIdForThisNPCId(npc.getNpcId());
 			if (territoryId >= 81 && territoryId <= 89)
-				for(L2PcInstance pl : L2World.getInstance().getAllPlayers().values())
+			{
+				for(L2PcInstance pl : L2World.getInstance().getAllPlayersArray())
+				{
 					if (pl.getSiegeSide() == territoryId)
 					{
 						QuestState st = pl.getQuestState(getName());
@@ -142,6 +144,8 @@ public class TerritoryWarSuperClass extends Quest
 							st.setStateAndNotSave(State.STARTED);
 						}
 					}
+				}
+			}
 		}
 		return super.onAttack(npc, player, damage, isPet);
 	}
@@ -404,7 +408,8 @@ public class TerritoryWarSuperClass extends Quest
 	{
 		super.setOnEnterWorld(val);
 		
-		for(L2PcInstance player: L2World.getInstance().getAllPlayers().values())
+		for(L2PcInstance player : L2World.getInstance().getAllPlayersArray())
+		{
 			if (player.getSiegeSide() > 0)
 			{
 				TerritoryWarSuperClass territoryQuest = _forTheSakeScripts.get(player.getSiegeSide());
@@ -452,6 +457,7 @@ public class TerritoryWarSuperClass extends Quest
 					}
 				}
 			}
+		}
 	}
 	
 	public TerritoryWarSuperClass(int questId, String name, String descr)