diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/ai/individual/Antharas.java b/L2J_DataPack_BETA/dist/game/data/scripts/ai/individual/Antharas.java
index 9ddec0ea0c2b5a94c7a5488c54ae00bbe2e2603f..1412cb818e3999bfe78b008818536f34f5186b14 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/ai/individual/Antharas.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/ai/individual/Antharas.java
@@ -821,7 +821,7 @@ public class Antharas extends AbstractNpcAI
 			GrandBossManager.getInstance().setBossStatus(_bossId, DORMANT);
 			if (FWA_DOSERVEREARTHQUAKE)
 			{
-				for (L2PcInstance p : L2World.getInstance().getAllPlayersArray())
+				for (L2PcInstance p : L2World.getInstance().getPlayers())
 				{
 					p.broadcastPacket(new Earthquake(185708, 114298, -8221, 20, 10));
 				}
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/CastleTeleporter/CastleTeleporter.java b/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/CastleTeleporter/CastleTeleporter.java
index 88ebfa12b4bcb0b6abcbf123ef7588bcc71bbb40..3aa1247cdbbac3da8876b210ad3d59bcb1c1a304 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/CastleTeleporter/CastleTeleporter.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/CastleTeleporter/CastleTeleporter.java
@@ -78,9 +78,8 @@ public class CastleTeleporter extends AbstractNpcAI
 			msg.addStringParameter(npc.getCastle().getName());
 			npc.getCastle().oustAllPlayers();
 			npc.setScriptValue(0);
-			
-			final L2PcInstance[] players = L2World.getInstance().getAllPlayersArray();
-			for (L2PcInstance pl : players)
+			// TODO: Is it possible to get all the players for that region, instead of all players?
+			for (L2PcInstance pl : L2World.getInstance().getPlayers())
 			{
 				if (region == MapRegionManager.getInstance().getMapRegionLocId(pl))
 				{
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/admincommandhandlers/AdminAnnouncements.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/admincommandhandlers/AdminAnnouncements.java
index 4248468336d2aec8d5a39100cb3fe80fb5992690..7851007a5fe47b9cef295d3a85f9b76716bf414d 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/admincommandhandlers/AdminAnnouncements.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/admincommandhandlers/AdminAnnouncements.java
@@ -108,7 +108,7 @@ public class AdminAnnouncements implements IAdminCommandHandler
 		}
 		else if (command.equals("admin_announce_announcements"))
 		{
-			for (L2PcInstance player : L2World.getInstance().getAllPlayersArray())
+			for (L2PcInstance player : L2World.getInstance().getPlayers())
 			{
 				Announcements.getInstance().showAnnouncements(player);
 			}
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/admincommandhandlers/AdminCreateItem.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/admincommandhandlers/AdminCreateItem.java
index a1b9a5c0c78a90a159c64b046f4e27dc9c21f70e..ce71a2b38c9f2d0c7b57bf7a9e3a4b75fe5dc421 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/admincommandhandlers/AdminCreateItem.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/admincommandhandlers/AdminCreateItem.java
@@ -186,7 +186,7 @@ public class AdminCreateItem implements IAdminCommandHandler
 				activeChar.sendMessage("This item does not stack - Creation aborted.");
 				return false;
 			}
-			for (L2PcInstance onlinePlayer : L2World.getInstance().getAllPlayersArray())
+			for (L2PcInstance onlinePlayer : L2World.getInstance().getPlayers())
 			{
 				if ((activeChar != onlinePlayer) && onlinePlayer.isOnline() && ((onlinePlayer.getClient() != null) && !onlinePlayer.getClient().isDetached()))
 				{
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/admincommandhandlers/AdminEditChar.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/admincommandhandlers/AdminEditChar.java
index 42ca9167387e5e14ab45d2406e0417cf5fff489b..8321f6ebaef2ee4954aa17469620aed506d710bc 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/admincommandhandlers/AdminEditChar.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/admincommandhandlers/AdminEditChar.java
@@ -848,7 +848,7 @@ public class AdminEditChar implements IAdminCommandHandler
 	
 	private void listCharacters(L2PcInstance activeChar, int page)
 	{
-		L2PcInstance[] players = L2World.getInstance().getAllPlayersArray();
+		L2PcInstance[] players = L2World.getInstance().getPlayers().toArray(new L2PcInstance[L2World.getInstance().getAllPlayersCount()]);
 		
 		int maxCharactersPerPage = 20;
 		int maxPages = players.length / maxCharactersPerPage;
@@ -1132,13 +1132,12 @@ public class AdminEditChar implements IAdminCommandHandler
 	{
 		int CharactersFound = 0;
 		String name;
-		L2PcInstance[] players = L2World.getInstance().getAllPlayersArray();
 		final NpcHtmlMessage adminReply = new NpcHtmlMessage();
 		adminReply.setFile(activeChar.getHtmlPrefix(), "data/html/admin/charfind.htm");
 		
 		final StringBuilder replyMSG = new StringBuilder(1000);
 		
-		for (L2PcInstance player : players)
+		for (L2PcInstance player : L2World.getInstance().getPlayers())
 		{ // Add player info into new Table row
 			name = player.getName();
 			if (name.toLowerCase().contains(CharacterToFind.toLowerCase()))
@@ -1198,14 +1197,14 @@ public class AdminEditChar implements IAdminCommandHandler
 				throw new IllegalArgumentException("Malformed IPv4 number");
 			}
 		}
-		L2PcInstance[] players = L2World.getInstance().getAllPlayersArray();
+		
 		int CharactersFound = 0;
 		L2GameClient client;
 		String name, ip = "0.0.0.0";
 		final StringBuilder replyMSG = new StringBuilder(1000);
 		final NpcHtmlMessage adminReply = new NpcHtmlMessage();
 		adminReply.setFile(activeChar.getHtmlPrefix(), "data/html/admin/ipfind.htm");
-		for (L2PcInstance player : players)
+		for (L2PcInstance player : L2World.getInstance().getPlayers())
 		{
 			client = player.getClient();
 			if (client == null)
@@ -1313,16 +1312,12 @@ public class AdminEditChar implements IAdminCommandHandler
 	 */
 	private void findDualbox(L2PcInstance activeChar, int multibox)
 	{
-		L2PcInstance[] players = L2World.getInstance().getAllPlayersArray();
-		
 		Map<String, List<L2PcInstance>> ipMap = new HashMap<>();
-		
 		String ip = "0.0.0.0";
 		L2GameClient client;
-		
 		final Map<String, Integer> dualboxIPs = new HashMap<>();
 		
-		for (L2PcInstance player : players)
+		for (L2PcInstance player : L2World.getInstance().getPlayers())
 		{
 			client = player.getClient();
 			if ((client == null) || client.isDetached())
@@ -1378,15 +1373,11 @@ public class AdminEditChar implements IAdminCommandHandler
 	
 	private void findDualboxStrict(L2PcInstance activeChar, int multibox)
 	{
-		L2PcInstance[] players = L2World.getInstance().getAllPlayersArray();
-		
 		Map<IpPack, List<L2PcInstance>> ipMap = new HashMap<>();
-		
 		L2GameClient client;
-		
 		final Map<IpPack, Integer> dualboxIPs = new HashMap<>();
 		
-		for (L2PcInstance player : players)
+		for (L2PcInstance player : L2World.getInstance().getPlayers())
 		{
 			client = player.getClient();
 			if ((client == null) || client.isDetached())
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/admincommandhandlers/AdminKick.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/admincommandhandlers/AdminKick.java
index 9a2ca366defa3c306d594d38330825be7981e30a..c397add1e6209dd7e012b60658d65d21481e5c03 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/admincommandhandlers/AdminKick.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/admincommandhandlers/AdminKick.java
@@ -53,7 +53,7 @@ public class AdminKick implements IAdminCommandHandler
 		if (command.startsWith("admin_kick_non_gm"))
 		{
 			int counter = 0;
-			for (L2PcInstance player : L2World.getInstance().getAllPlayersArray())
+			for (L2PcInstance player : L2World.getInstance().getPlayers())
 			{
 				if (!player.isGM())
 				{
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/chathandlers/ChatBattlefield.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/chathandlers/ChatBattlefield.java
index 2f99e8db07bcbe07fe4306d1dc116a3d009a941d..b68b678bf74fe66a531ef133c804beaff4e7a458 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/chathandlers/ChatBattlefield.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/chathandlers/ChatBattlefield.java
@@ -52,8 +52,8 @@ public class ChatBattlefield implements IChatHandler
 				return;
 			}
 			
-			CreatureSay cs = new CreatureSay(activeChar.getObjectId(), type, activeChar.getName(), text);
-			for (L2PcInstance player : L2World.getInstance().getAllPlayersArray())
+			final CreatureSay cs = new CreatureSay(activeChar.getObjectId(), type, activeChar.getName(), text);
+			for (L2PcInstance player : L2World.getInstance().getPlayers())
 			{
 				if (player.getSiegeSide() == activeChar.getSiegeSide())
 				{
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/chathandlers/ChatHeroVoice.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/chathandlers/ChatHeroVoice.java
index 7e690500d79b75cfa4a49b43bacee5d3c125048c..25bbc7d35bd3dfe05fbb93a0b64cef3c057d6238 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/chathandlers/ChatHeroVoice.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/chathandlers/ChatHeroVoice.java
@@ -60,7 +60,7 @@ public class ChatHeroVoice implements IChatHandler
 			}
 			
 			CreatureSay cs = new CreatureSay(activeChar.getObjectId(), type, activeChar.getName(), text);
-			for (L2PcInstance player : L2World.getInstance().getAllPlayersArray())
+			for (L2PcInstance player : L2World.getInstance().getPlayers())
 			{
 				if ((player != null) && !BlockList.isBlocked(player, activeChar))
 				{
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/chathandlers/ChatShout.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/chathandlers/ChatShout.java
index 62c0aeb6a3fefdfbcb130929b4e2ff31fbc73d8f..9673d7a20458ad08eab076740f3d4b7ad7b7f6c2 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/chathandlers/ChatShout.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/chathandlers/ChatShout.java
@@ -52,14 +52,11 @@ public class ChatShout implements IChatHandler
 			return;
 		}
 		
-		CreatureSay cs = new CreatureSay(activeChar.getObjectId(), type, activeChar.getName(), text);
-		
-		L2PcInstance[] pls = L2World.getInstance().getAllPlayersArray();
-		
+		final CreatureSay cs = new CreatureSay(activeChar.getObjectId(), type, activeChar.getName(), text);
 		if (Config.DEFAULT_GLOBAL_CHAT.equalsIgnoreCase("on") || (Config.DEFAULT_GLOBAL_CHAT.equalsIgnoreCase("gm") && activeChar.canOverrideCond(PcCondOverride.CHAT_CONDITIONS)))
 		{
 			int region = MapRegionManager.getInstance().getMapRegionLocId(activeChar);
-			for (L2PcInstance player : pls)
+			for (L2PcInstance player : L2World.getInstance().getPlayers())
 			{
 				if ((region == MapRegionManager.getInstance().getMapRegionLocId(player)) && !BlockList.isBlocked(player, activeChar) && (player.getInstanceId() == activeChar.getInstanceId()))
 				{
@@ -75,7 +72,7 @@ public class ChatShout implements IChatHandler
 				return;
 			}
 			
-			for (L2PcInstance player : pls)
+			for (L2PcInstance player : L2World.getInstance().getPlayers())
 			{
 				if (!BlockList.isBlocked(player, activeChar))
 				{
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/chathandlers/ChatTrade.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/chathandlers/ChatTrade.java
index 1a30ca11d71f39080025ce216ec83c9539d83bee..3300e2d16e98e3213f03d36498146ba108100df5 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/chathandlers/ChatTrade.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/chathandlers/ChatTrade.java
@@ -52,14 +52,11 @@ public class ChatTrade implements IChatHandler
 			return;
 		}
 		
-		CreatureSay cs = new CreatureSay(activeChar.getObjectId(), type, activeChar.getName(), text);
-		
-		L2PcInstance[] pls = L2World.getInstance().getAllPlayersArray();
-		
+		final CreatureSay cs = new CreatureSay(activeChar.getObjectId(), type, activeChar.getName(), text);
 		if (Config.DEFAULT_TRADE_CHAT.equalsIgnoreCase("on") || (Config.DEFAULT_TRADE_CHAT.equalsIgnoreCase("gm") && activeChar.canOverrideCond(PcCondOverride.CHAT_CONDITIONS)))
 		{
 			int region = MapRegionManager.getInstance().getMapRegionLocId(activeChar);
-			for (L2PcInstance player : pls)
+			for (L2PcInstance player : L2World.getInstance().getPlayers())
 			{
 				if ((region == MapRegionManager.getInstance().getMapRegionLocId(player)) && !BlockList.isBlocked(player, activeChar) && (player.getInstanceId() == activeChar.getInstanceId()))
 				{
@@ -75,7 +72,7 @@ public class ChatTrade implements IChatHandler
 				return;
 			}
 			
-			for (L2PcInstance player : pls)
+			for (L2PcInstance player : L2World.getInstance().getPlayers())
 			{
 				if (!BlockList.isBlocked(player, activeChar))
 				{
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/punishmenthandlers/BanHandler.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/punishmenthandlers/BanHandler.java
index e88e876c6cd9b3c33e1735843c6d2dd10c2b6f27..01318d8d9471b58622aa6d38778b325974c21b0a 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/punishmenthandlers/BanHandler.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/punishmenthandlers/BanHandler.java
@@ -68,7 +68,7 @@ public class BanHandler implements IPunishmentHandler
 			case IP:
 			{
 				String ip = String.valueOf(task.getKey());
-				for (L2PcInstance player : L2World.getInstance().getAllPlayersArray())
+				for (L2PcInstance player : L2World.getInstance().getPlayers())
 				{
 					if (player.getIPAddress().equals(ip))
 					{
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/punishmenthandlers/ChatBanHandler.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/punishmenthandlers/ChatBanHandler.java
index 5a9dad4414964d492bae7273468b9c3e78a3b9b2..df831883992eba816ff55c7b6289e20a9c7a3bbb 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/punishmenthandlers/ChatBanHandler.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/punishmenthandlers/ChatBanHandler.java
@@ -65,7 +65,7 @@ public class ChatBanHandler implements IPunishmentHandler
 			case IP:
 			{
 				String ip = String.valueOf(task.getKey());
-				for (L2PcInstance player : L2World.getInstance().getAllPlayersArray())
+				for (L2PcInstance player : L2World.getInstance().getPlayers())
 				{
 					if (player.getIPAddress().equals(ip))
 					{
@@ -109,7 +109,7 @@ public class ChatBanHandler implements IPunishmentHandler
 			case IP:
 			{
 				String ip = String.valueOf(task.getKey());
-				for (L2PcInstance player : L2World.getInstance().getAllPlayersArray())
+				for (L2PcInstance player : L2World.getInstance().getPlayers())
 				{
 					if (player.getIPAddress().equals(ip))
 					{
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/punishmenthandlers/JailHandler.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/punishmenthandlers/JailHandler.java
index c39964899e3c766047f4f602055b206a2030ce28..c1bf8411d41436742f0d90f9bd42822f4987548e 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/punishmenthandlers/JailHandler.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/punishmenthandlers/JailHandler.java
@@ -86,7 +86,7 @@ public class JailHandler extends PlayerSpawnListener implements IPunishmentHandl
 			case IP:
 			{
 				String ip = String.valueOf(task.getKey());
-				for (L2PcInstance player : L2World.getInstance().getAllPlayersArray())
+				for (L2PcInstance player : L2World.getInstance().getPlayers())
 				{
 					if (player.getIPAddress().equals(ip))
 					{
@@ -130,7 +130,7 @@ public class JailHandler extends PlayerSpawnListener implements IPunishmentHandl
 			case IP:
 			{
 				String ip = String.valueOf(task.getKey());
-				for (L2PcInstance player : L2World.getInstance().getAllPlayersArray())
+				for (L2PcInstance player : L2World.getInstance().getPlayers())
 				{
 					if (player.getIPAddress().equals(ip))
 					{
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/telnethandlers/DebugHandler.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/telnethandlers/DebugHandler.java
index 6c190619a511ae5e74042f159f825fad16401449..fc99a9515ae6841b123f4e374ae8a423fc1d2327 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/telnethandlers/DebugHandler.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/telnethandlers/DebugHandler.java
@@ -366,7 +366,7 @@ public class DebugHandler implements ITelnetHandler
 		int max = LoginServerThread.getInstance().getMaxPlayer();
 		
 		playerCount = L2World.getInstance().getAllPlayersCount();
-		objectCount = L2World.getInstance().getAllVisibleObjectsCount();
+		objectCount = L2World.getInstance().getVisibleObjectsCount();
 		
 		int itemCount = 0;
 		int itemVoidCount = 0;
@@ -381,8 +381,7 @@ public class DebugHandler implements ITelnetHandler
 		int summonCount = 0;
 		int AICount = 0;
 		
-		L2Object[] objs = L2World.getInstance().getAllVisibleObjectsArray();
-		for (L2Object obj : objs)
+		for (L2Object obj : L2World.getInstance().getVisibleObjects())
 		{
 			if (obj == null)
 			{
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/telnethandlers/StatusHandler.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/telnethandlers/StatusHandler.java
index 256a14bd47e0e7d856ac4d0ab3bfa7b6be53da9e..8682565b6fa37a6053d0370852c5a8c5ceb43e4c 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/telnethandlers/StatusHandler.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/telnethandlers/StatusHandler.java
@@ -123,7 +123,7 @@ public class StatusHandler implements ITelnetHandler
 		int max = LoginServerThread.getInstance().getMaxPlayer();
 		
 		playerCount = L2World.getInstance().getAllPlayersCount();
-		objectCount = L2World.getInstance().getAllVisibleObjectsCount();
+		objectCount = L2World.getInstance().getVisibleObjectsCount();
 		
 		int itemCount = 0;
 		int itemVoidCount = 0;
@@ -138,8 +138,7 @@ public class StatusHandler implements ITelnetHandler
 		int summonCount = 0;
 		int AICount = 0;
 		
-		L2Object[] objs = L2World.getInstance().getAllVisibleObjectsArray();
-		for (L2Object obj : objs)
+		for (L2Object obj : L2World.getInstance().getVisibleObjects())
 		{
 			if (obj == null)
 			{
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/TerritoryWarScripts/TerritoryWarSuperClass.java b/L2J_DataPack_BETA/dist/game/data/scripts/quests/TerritoryWarScripts/TerritoryWarSuperClass.java
index 0001310002a2de5b524e790941fd89e48145ea9d..7dd70d8577bf135147f5ae95a3387600373cb29b 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/TerritoryWarScripts/TerritoryWarSuperClass.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/TerritoryWarScripts/TerritoryWarSuperClass.java
@@ -244,7 +244,7 @@ public class TerritoryWarSuperClass extends Quest
 			int territoryId = getTerritoryIdForThisNPCId(npc.getId());
 			if ((territoryId >= 81) && (territoryId <= 89))
 			{
-				for (L2PcInstance pl : L2World.getInstance().getAllPlayersArray())
+				for (L2PcInstance pl : L2World.getInstance().getPlayers())
 				{
 					if (pl.getSiegeSide() == territoryId)
 					{
@@ -431,7 +431,7 @@ public class TerritoryWarSuperClass extends Quest
 	{
 		super.setOnEnterWorld(val);
 		
-		for (L2PcInstance player : L2World.getInstance().getAllPlayersArray())
+		for (L2PcInstance player : L2World.getInstance().getPlayers())
 		{
 			if (player.getSiegeSide() > 0)
 			{