diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/BeastFarm.java b/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/BeastFarm.java
index e865f6b9fa11a3daad0181e75b8222620ce91fc8..43e09c98f01c5d5198391538251798b5e3a9bc62 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/BeastFarm.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/BeastFarm.java
@@ -55,7 +55,7 @@ public class BeastFarm extends L2AttackableAIScript
 		18869, 18870, 18871, 18872
 	};
 	private static final int TAME_CHANCE = 20;
-	private static final int[] SPECIAL_SPICE_CHANCES =
+	protected static final int[] SPECIAL_SPICE_CHANCES =
 	{
 		33, 75
 	};
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/DenOfEvil.java b/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/DenOfEvil.java
index 6e735fe1dcad2882b2160035865211016a0d9f5a..a7aa10c90bd50bf12b38fcb3a3698383bb3afb1e 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/DenOfEvil.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/DenOfEvil.java
@@ -35,7 +35,7 @@ public class DenOfEvil extends L2AttackableAIScript
 {
 	// private static final int _buffer_id = 32656;
 	
-	private static final int[] _eye_ids = { 18812, 18813, 18814 };
+	protected static final int[] _eye_ids = { 18812, 18813, 18814 };
 	private static final int _skill_id = 6150; // others +2
 	
 	private static final Location[] _eye_spawn =
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/EnergySeeds.java b/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/EnergySeeds.java
index da2d92ef911dc62d2afac4453e657ee704207560..9d0951d29b138123d05572004579ebf7173b3f70 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/EnergySeeds.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/EnergySeeds.java
@@ -53,7 +53,7 @@ public class EnergySeeds extends L2AttackableAIScript
 	private static final int RESPAWN = 480000;
 	private static final int RANDOM_RESPAWN_OFFSET = 180000;
 	private static Map<Integer, ESSpawn> _spawns = new FastMap<Integer, ESSpawn>();
-	private static Map<L2Npc, Integer> _spawnedNpcs = new FastMap<L2Npc, Integer>().shared();
+	protected static Map<L2Npc, Integer> _spawnedNpcs = new FastMap<L2Npc, Integer>().shared();
 	
 	private static final int TEMPORARY_TELEPORTER = 32602;
 	private static final int[] SEEDIDS = { 18678, 18679, 18680, 18681, 18682, 18683 };
@@ -83,10 +83,10 @@ public class EnergySeeds extends L2AttackableAIScript
 	
 	private class ESSpawn
 	{
-		private final int _spawnId;
-		private final GraciaSeeds _seedId;
-		private final int[] _npcIds;
-		private final Location _loc;
+		protected final int _spawnId;
+		protected final GraciaSeeds _seedId;
+		protected final int[] _npcIds;
+		protected final Location _loc;
 		
 		public ESSpawn(int spawnId, GraciaSeeds seedId, Location loc, int[] npcIds)
 		{
@@ -127,7 +127,7 @@ public class EnergySeeds extends L2AttackableAIScript
 		startAI();
 	}
 	
-	private boolean isSeedActive(GraciaSeeds seed)
+	protected boolean isSeedActive(GraciaSeeds seed)
 	{
 		switch(seed)
 		{
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 fbfcd93bdb8f393630b0da4be36cd0af53c3c313..92e181fcee7c68bd2771ad5f35971f30df8e13d8 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
@@ -19,6 +19,7 @@ import gnu.trove.map.hash.TIntObjectHashMap;
 import java.util.Collection;
 import java.util.List;
 import java.util.concurrent.ScheduledFuture;
+import java.util.logging.Logger;
 
 import javolution.util.FastList;
 import ai.group_template.L2AttackableAIScript;
@@ -54,6 +55,8 @@ import com.l2jserver.gameserver.network.serverpackets.SpecialCamera;
  */
 public class Antharas extends L2AttackableAIScript
 {
+	protected static final Logger log = Logger.getLogger(Antharas.class.getName());
+	
 	// config
 	private static final int FWA_ACTIVITYTIMEOFANTHARAS = 120;
 	// private static final int FWA_APPTIMEOFANTHARAS = 1800000;
@@ -209,7 +212,7 @@ public class Antharas extends L2AttackableAIScript
 		}
 		catch (Exception e)
 		{
-			_log.warning(e.getMessage());
+			log.warning(e.getMessage());
 		}
 		
 		// Setting spawn data of teleport cube.
@@ -233,7 +236,7 @@ public class Antharas extends L2AttackableAIScript
 		}
 		catch (Exception e)
 		{
-			_log.warning(e.getMessage());
+			log.warning(e.getMessage());
 		}
 		int status = GrandBossManager.getInstance().getBossStatus(ANTHARASOLDID);
 		if (FWA_OLDANTHARAS || (status == WAITING))
@@ -379,7 +382,7 @@ public class Antharas extends L2AttackableAIScript
 		return super.onAdvEvent(event, npc, player);
 	}
 	
-	private void startMinionSpawns(int antharasId)
+	protected void startMinionSpawns(int antharasId)
 	{
 		int intervalOfMobs;
 		
@@ -552,7 +555,7 @@ public class Antharas extends L2AttackableAIScript
 		}
 	}
 	
-	private void broadcastPacket(L2GameServerPacket mov)
+	protected void broadcastPacket(L2GameServerPacket mov)
 	{
 		if (_Zone != null)
 		{
@@ -638,7 +641,7 @@ public class Antharas extends L2AttackableAIScript
 			}
 			catch (Exception e)
 			{
-				_log.warning(e.getMessage());
+				log.warning(e.getMessage());
 			}
 		}
 	}
@@ -728,7 +731,7 @@ public class Antharas extends L2AttackableAIScript
 	}
 	
 	// At end of activity time.
-	private class CheckActivity implements Runnable
+	protected class CheckActivity implements Runnable
 	{
 		@Override
 		public void run()
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/ai/individual/Baium.java b/L2J_DataPack_BETA/dist/game/data/scripts/ai/individual/Baium.java
index 7b78e4d5918c1a51b2bb89c1abe315e7962d7d1b..ff959d7256c383be8911003a9ff897f8db707238 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/ai/individual/Baium.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/ai/individual/Baium.java
@@ -21,6 +21,7 @@ import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
 import java.util.logging.Level;
+import java.util.logging.Logger;
 
 import javolution.util.FastList;
 import ai.group_template.L2AttackableAIScript;
@@ -60,6 +61,8 @@ import com.l2jserver.gameserver.util.Util;
  */
 public class Baium extends L2AttackableAIScript
 {
+	protected static final Logger log = Logger.getLogger(Baium.class.getName());
+	
 	private L2Character _target;
 	private L2Skill _skill;
 	private static final int STONE_BAIUM = 29025;
@@ -83,7 +86,7 @@ public class Baium extends L2AttackableAIScript
 	};
 	
 	private long _LastAttackVsBaiumTime = 0;
-	private final List<L2Npc> _Minions = new ArrayList<L2Npc>(5);
+	protected final List<L2Npc> _Minions = new ArrayList<L2Npc>(5);
 	private L2BossZone _Zone;
 	
 	public Baium(int questId, String name, String descr)
@@ -203,7 +206,7 @@ public class Baium extends L2AttackableAIScript
 						}
 						catch (Exception e)
 						{
-							_log.log(Level.WARNING, "", e);
+							log.log(Level.WARNING, "", e);
 						}
 					}
 				}, 11100L);
@@ -315,7 +318,7 @@ public class Baium extends L2AttackableAIScript
 						}
 						catch (Throwable e)
 						{
-							_log.log(Level.WARNING, "", e);
+							log.log(Level.WARNING, "", e);
 						}
 					}
 				}, 100L);
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/ai/individual/Beleth.java b/L2J_DataPack_BETA/dist/game/data/scripts/ai/individual/Beleth.java
index f733de47a105d80e8c0cea638c48407d3497ddff..d2008b3449f9643bb298cfa5bf9e34fab4e0e09d 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/ai/individual/Beleth.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/ai/individual/Beleth.java
@@ -55,21 +55,21 @@ import com.l2jserver.gameserver.util.Util;
  */
 public class Beleth extends L2AttackableAIScript
 {
-	private static L2Npc camera;
-	private static L2Npc camera2;
-	private static L2Npc camera3;
-	private static L2Npc camera4;
-	private static L2Npc beleth;
-	private static L2Npc priest;
-	private static L2ZoneType _zone = null;
+	protected static L2Npc camera;
+	protected static L2Npc camera2;
+	protected static L2Npc camera3;
+	protected static L2Npc camera4;
+	protected static L2Npc beleth;
+	protected static L2Npc priest;
+	protected static L2ZoneType _zone = null;
 	private static L2PcInstance belethKiller;
 	private static boolean debug = false;
-	private static boolean movie = false;
+	protected static boolean movie = false;
 	private static boolean attacked = false;
 	private static int allowObjectId = 0;
 	private static int killed = 0;
-	private static ScheduledFuture<?> spawnTimer = null;
-	private static ArrayList<L2Npc> minions = new ArrayList<L2Npc>();
+	protected static ScheduledFuture<?> spawnTimer = null;
+	protected static ArrayList<L2Npc> minions = new ArrayList<L2Npc>();
 	private static L2Skill Bleed = SkillTable.getInstance().getInfo(5495, 1);
 	private static L2Skill Fireball = SkillTable.getInstance().getInfo(5496, 1);
 	private static L2Skill HornOfRising = SkillTable.getInstance().getInfo(5497, 1);
@@ -108,7 +108,7 @@ public class Beleth extends L2AttackableAIScript
 		DoorTable.getInstance().getDoor(20240001).openMe();
 	}
 	
-	private static L2Npc spawn(int npcId, Location loc)
+	protected static L2Npc spawn(int npcId, Location loc)
 	{
 		try
 		{
@@ -133,7 +133,7 @@ public class Beleth extends L2AttackableAIScript
 		ThreadPoolManager.getInstance().scheduleGeneral(new Spawn(1), debug ? 10000 : 300000);
 	}
 	
-	private static class unlock implements Runnable
+	protected static class unlock implements Runnable
 	{
 		@Override
 		public void run()
@@ -661,7 +661,7 @@ public class Beleth extends L2AttackableAIScript
 		attacked = false;
 	}
 	
-	private static void SpawnBeleths()
+	protected static void SpawnBeleths()
 	{
 		int a = 0;
 		L2Npc npc;
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/conquerablehalls/RainbowSpringsChateau/RainbowSpringsChateau.java b/L2J_DataPack_BETA/dist/game/data/scripts/conquerablehalls/RainbowSpringsChateau/RainbowSpringsChateau.java
index dec329cd779baad9e9ea8381a74c042b252df582..30d2bc261cbb03cda576dcf9a7be90e99f977208 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/conquerablehalls/RainbowSpringsChateau/RainbowSpringsChateau.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/conquerablehalls/RainbowSpringsChateau/RainbowSpringsChateau.java
@@ -66,7 +66,7 @@ public class RainbowSpringsChateau extends Quest
 {
 	private static final Logger _log = Logger.getLogger(RainbowSpringsChateau.class.getName());
 	
-	private static class SetFinalAttackers implements Runnable
+	protected static class SetFinalAttackers implements Runnable
 	{
 		@Override
 		public void run()
@@ -108,7 +108,7 @@ public class RainbowSpringsChateau extends Quest
 							clan = actingClan;
 						}
 					}
-					if (_acceptedClans.size() < 4)
+					if ((clan != null) && _acceptedClans.size() < 4)
 					{
 						_acceptedClans.add(clan);
 						L2PcInstance leader = clan.getLeader().getPlayerInstance();
@@ -131,7 +131,7 @@ public class RainbowSpringsChateau extends Quest
 		}
 	}
 	
-	private static class SiegeStart implements Runnable
+	protected static class SiegeStart implements Runnable
 	{
 		@Override
 		public void run()
@@ -152,7 +152,7 @@ public class RainbowSpringsChateau extends Quest
 	{
 		private final L2Clan _winner;
 		
-		private SiegeEnd(L2Clan winner)
+		protected SiegeEnd(L2Clan winner)
 		{
 			_winner = winner;
 		}
@@ -181,7 +181,7 @@ public class RainbowSpringsChateau extends Quest
 		}
 	}
 	
-	private static class TeleportBack implements Runnable
+	protected static class TeleportBack implements Runnable
 	{
 		@Override
 		public void run()
@@ -255,7 +255,7 @@ public class RainbowSpringsChateau extends Quest
 		}, // Arena 4
 	};
 	
-	private static final int[] ARENA_ZONES =
+	protected static final int[] ARENA_ZONES =
 	{
 		112081,
 		112082,
@@ -282,13 +282,13 @@ public class RainbowSpringsChateau extends Quest
 		SkillTable.getInstance().getInfo(0, 1)
 	};
 	
-	private static TIntLongHashMap _warDecreesCount = new TIntLongHashMap();
-	private static List<L2Clan> _acceptedClans = new ArrayList<L2Clan>(4);
+	protected static TIntLongHashMap _warDecreesCount = new TIntLongHashMap();
+	protected static List<L2Clan> _acceptedClans = new ArrayList<L2Clan>(4);
 	private static Map<String, ArrayList<L2Clan>> _usedTextPassages = new HashMap<String, ArrayList<L2Clan>>();
 	private static Map<L2Clan, Integer> _pendingItemToGet = new HashMap<L2Clan, Integer>();
 	
-	private static SiegableHall _rainbow;
-	private static ScheduledFuture<?> _nextSiege, _siegeEnd;
+	protected static SiegableHall _rainbow;
+	protected static ScheduledFuture<?> _nextSiege, _siegeEnd;
 	private static String _registrationEnds;
 	
 	/**
@@ -730,7 +730,7 @@ public class RainbowSpringsChateau extends Quest
 		}
 	}
 	
-	private static void spawnGourds()
+	protected static void spawnGourds()
 	{
 		for (int i = 0; i < _acceptedClans.size(); i++)
 		{
@@ -755,7 +755,7 @@ public class RainbowSpringsChateau extends Quest
 		}
 	}
 	
-	private static void unSpawnGourds()
+	protected static void unSpawnGourds()
 	{
 		for (int i = 0; i < _acceptedClans.size(); i++)
 		{
@@ -927,7 +927,7 @@ public class RainbowSpringsChateau extends Quest
 		}
 	}
 	
-	private static void setRegistrationEndString(long time)
+	protected static void setRegistrationEndString(long time)
 	{
 		Calendar c = Calendar.getInstance();
 		c.setTime(new Date(time));
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/conquerablehalls/flagwar/FlagWar.java b/L2J_DataPack_BETA/dist/game/data/scripts/conquerablehalls/flagwar/FlagWar.java
index 0906e947a974b392c6f5c7d65aa5f6ae45bc9307..9921bc11a72b3921997ae7f704a854897c2eb270 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/conquerablehalls/flagwar/FlagWar.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/conquerablehalls/flagwar/FlagWar.java
@@ -529,7 +529,7 @@ public abstract class FlagWar extends ClanHallSiegeEngine
 		return false;
 	}
 	
-	private void doSpawns(int clanId, ClanData data)
+	void doSpawns(int clanId, ClanData data)
 	{
 		try
 		{
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/custom/HeroWeapon/HeroWeapon.java b/L2J_DataPack_BETA/dist/game/data/scripts/custom/HeroWeapon/HeroWeapon.java
index dcbed7fd9cd3c7941e1cb25fc41fa09df46de6dc..a2000dcc9c4d6c431be9d92be020809d74e959e0 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/custom/HeroWeapon/HeroWeapon.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/custom/HeroWeapon/HeroWeapon.java
@@ -61,8 +61,9 @@ public class HeroWeapon extends Quest
 		String htmltext = "";
 		QuestState st = player.getQuestState(getName());
 		if (st == null)
-			newQuestState(player);
-		
+		{
+			st = newQuestState(player);
+		}
 		if (player.isHero())
 		{
 			if (hasHeroWeapon(player))
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/custom/Validators/SubClassSkills.java b/L2J_DataPack_BETA/dist/game/data/scripts/custom/Validators/SubClassSkills.java
index 7754729b14ab865cc8e3e1278303825bf125eec2..5d1112fb9bff9b8b12f728d3b524e9c11c9b2762 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/custom/Validators/SubClassSkills.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/custom/Validators/SubClassSkills.java
@@ -28,6 +28,7 @@ import com.l2jserver.gameserver.model.skills.L2Skill;
 import com.l2jserver.gameserver.util.Util;
 
 /**
+ * TODO: Rewrite.
  * @author DS
  */
 public final class SubClassSkills extends Quest
@@ -75,10 +76,9 @@ public final class SubClassSkills extends Quest
 			return null;
 		
 		final L2Skill[] certSkills = getCertSkills(player);
-		final boolean hasCertSkills = certSkills != null;
 		if (player.isSubClassActive())
 		{
-			if (hasCertSkills)
+			if (certSkills != null)
 			{
 				for (L2Skill s : certSkills)
 				{
@@ -93,7 +93,7 @@ public final class SubClassSkills extends Quest
 		
 		L2Skill skill;
 		int[][] cSkills = null; // skillId/skillLvl
-		if (hasCertSkills)
+		if (certSkills != null)
 		{
 			cSkills = new int[certSkills.length][2];
 			for (int i = certSkills.length; --i >= 0;)
@@ -107,8 +107,7 @@ public final class SubClassSkills extends Quest
 		L2ItemInstance item;
 		int[][] cItems = null; // objectId/number
 		final L2ItemInstance[] certItems = getCertItems(player);
-		final boolean hasCertItems = certItems != null;
-		if (hasCertItems)
+		if (certItems != null)
 		{
 			cItems = new int[certItems.length][2];
 			for (int i = certItems.length; --i >= 0;)
@@ -141,16 +140,19 @@ public final class SubClassSkills extends Quest
 						id = Integer.parseInt(qValue.replace(";", ""));
 						
 						skill = null;
-						if (hasCertSkills)
+						if (certSkills != null)
 						{
 							// searching skill in test array
-							for (index = certSkills.length; --index >= 0;)
+							if (cSkills != null)
 							{
-								if (cSkills[index][0] == id)
+								for (index = certSkills.length; --index >= 0;)
 								{
-									skill = certSkills[index];
-									cSkills[index][1]--;
-									break;
+									if (cSkills[index][0] == id)
+									{
+										skill = certSkills[index];
+										cSkills[index][1]--;
+										break;
+									}
 								}
 							}
 							if (skill != null)
@@ -185,16 +187,19 @@ public final class SubClassSkills extends Quest
 							continue;
 						
 						item = null;
-						if (hasCertItems)
+						if (certItems != null)
 						{
 							// searching item in test array
-							for (index = certItems.length; --index >= 0;)
+							if (cItems != null)
 							{
-								if (cItems[index][0] == id)
+								for (index = certItems.length; --index >= 0;)
 								{
-									item = certItems[index];
-									cItems[index][1]--;
-									break;
+									if (cItems[index][0] == id)
+									{
+										item = certItems[index];
+										cItems[index][1]--;
+										break;
+									}
 								}
 							}
 							if (item != null)
@@ -227,7 +232,7 @@ public final class SubClassSkills extends Quest
 			}
 		}
 		
-		if (hasCertSkills)
+		if ((certSkills != null) && (cSkills != null))
 		{
 			for (int i = cSkills.length; --i >= 0;)
 			{
@@ -257,7 +262,7 @@ public final class SubClassSkills extends Quest
 			}
 		}
 		
-		if (hasCertItems)
+		if ((certItems != null) && (cItems != null))
 		{
 			for (int i = cItems.length; --i >= 0;)
 			{
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 184ee1d729422ea61a3ca375dce9b9deb01bebf5..0337b7620fd505652a4832350cdc2f3e8b31ce57 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/EffectMasterHandler.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/EffectMasterHandler.java
@@ -209,7 +209,7 @@ public final class EffectMasterHandler
 			}
 			catch (Exception e)
 			{
-				_log.log(Level.WARNING, "Failed loading handler: " + c.getSimpleName(), e);
+				_log.log(Level.WARNING, "Failed loading effect handler" + ((c == null) ? "!" : ":" + c.getSimpleName()), e);
 				continue;
 			}
 		}
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 4e52741ce4a35ec7065d0e1f7e8cd9012fcc3429..eaf219e0e639e0a47841c3d94c141adf73d13dbf 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/MasterHandler.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/MasterHandler.java
@@ -701,7 +701,7 @@ public class MasterHandler
 				}
 				catch (Exception e)
 				{
-					_log.log(Level.WARNING, "Failed loading handler: " + c.getSimpleName(), e);
+					_log.log(Level.WARNING, "Failed loading handler" + ((c == null) ? "!" : ":" + c.getSimpleName()), e);
 					continue;
 				}
 			}
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/admincommandhandlers/AdminCursedWeapons.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/admincommandhandlers/AdminCursedWeapons.java
index 3a775bcbcde60b64f5e04bc373445f87b76ab341..132d848c815135565b4f0a4add7d41ab3b1ea51a 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/admincommandhandlers/AdminCursedWeapons.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/admincommandhandlers/AdminCursedWeapons.java
@@ -185,17 +185,18 @@ public class AdminCursedWeapons implements IAdminCommandHandler
 					}
 				}
 				cw = cwm.getCursedWeapon(id);
-				if (cw == null)
-				{
-					activeChar.sendMessage("Unknown cursed weapon ID.");
-					return false;
-				}
 			}
 			catch (Exception e)
 			{
 				activeChar.sendMessage("Usage: //cw_remove|//cw_goto|//cw_add <itemid|name>");
 			}
 			
+			if (cw == null)
+			{
+				activeChar.sendMessage("Unknown cursed weapon ID.");
+				return false;
+			}
+			
 			if (command.startsWith("admin_cw_remove "))
 			{
 				cw.endOfLife();
@@ -206,12 +207,7 @@ public class AdminCursedWeapons implements IAdminCommandHandler
 			}
 			else if (command.startsWith("admin_cw_add"))
 			{
-				if (cw == null)
-				{
-					activeChar.sendMessage("Usage: //cw_add <itemid|name>");
-					return false;
-				}
-				else if (cw.isActive())
+				if (cw.isActive())
 					activeChar.sendMessage("This cursed weapon is already active.");
 				else
 				{
@@ -222,7 +218,6 @@ public class AdminCursedWeapons implements IAdminCommandHandler
 						activeChar.addItem("AdminCursedWeaponAdd", id, 1, activeChar, true);
 					cw.setEndTime(System.currentTimeMillis() + cw.getDuration() * 60000L);
 					cw.reActivate();
-					
 				}
 			}
 			else
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 48cb2f6f2883c8c9aa443143306f4f5e1d91bf51..1032764220c3f7ece2bacf64556d78236e5bc917 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
@@ -781,13 +781,19 @@ public class AdminEditChar implements IAdminCommandHandler
 				player = activeChar;
 			}
 			else if (activeChar.getTarget() != null && activeChar.getTarget() instanceof L2PcInstance)
-				player = (L2PcInstance)activeChar.getTarget();
-			player.setNoble(!player.isNoble());
-			if (player.getObjectId() != activeChar.getObjectId())
 			{
-				activeChar.sendMessage("You've changed nobless status of: " + player.getName());
+				player = (L2PcInstance) activeChar.getTarget();
+			}
+			
+			if (player != null)
+			{
+				player.setNoble(!player.isNoble());
+				if (player.getObjectId() != activeChar.getObjectId())
+				{
+					activeChar.sendMessage("You've changed nobless status of: " + player.getName());
+				}
+				player.sendMessage("GM changed your nobless status!");
 			}
-			player.sendMessage("GM changed your nobless status!");
 		}
 		return true;
 	}
@@ -1475,7 +1481,7 @@ public class AdminEditChar implements IAdminCommandHandler
 	{
 		private final L2PcInstance _player;
 
-		private Untransform(L2PcInstance player)
+		protected Untransform(L2PcInstance player)
 		{
 			_player = player;
 		}
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/admincommandhandlers/AdminMenu.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/admincommandhandlers/AdminMenu.java
index e305e8439208b660d0651457a18f075285e852b4..ebcfdc3b9b280c337de667fa0060306186f729db 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/admincommandhandlers/AdminMenu.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/admincommandhandlers/AdminMenu.java
@@ -231,8 +231,10 @@ public class AdminMenu implements IAdminCommandHandler
 		{
 			L2PcInstance plyr = L2World.getInstance().getPlayer(player);
 			if (plyr != null)
+			{
 				target = plyr;
-			activeChar.sendMessage("You killed " + plyr.getName());
+				activeChar.sendMessage("You killed " + plyr.getName());
+			}
 		}
 		if (target != null)
 		{
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/admincommandhandlers/AdminPForge.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/admincommandhandlers/AdminPForge.java
index fa25b59dc5f67b0d76b63c162564fdf62bb4301f..4839dff59638bf3e1c2972849eed735e27ff11c9 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/admincommandhandlers/AdminPForge.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/admincommandhandlers/AdminPForge.java
@@ -167,13 +167,16 @@ public class AdminPForge implements IAdminCommandHandler
 				}
 				else if (client)
 				{
-					buf.flip();
-					L2GameClientPacket p = (L2GameClientPacket) GameServer.gameServer.getL2GamePacketHandler().handlePacket(buf, activeChar.getClient());
-					if (p != null)
+					if (buf != null)
 					{
-						p.setBuffers(buf, activeChar.getClient(), new NioNetStringBuffer(2000));
-						if (p.read())
-							ThreadPoolManager.getInstance().executePacket(p);
+						buf.flip();
+						L2GameClientPacket p = (L2GameClientPacket) GameServer.gameServer.getL2GamePacketHandler().handlePacket(buf, activeChar.getClient());
+						if (p != null)
+						{
+							p.setBuffers(buf, activeChar.getClient(), new NioNetStringBuffer(2000));
+							if (p.read())
+								ThreadPoolManager.getInstance().executePacket(p);
+						}
 					}
 				}
 				else
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/admincommandhandlers/AdminPledge.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/admincommandhandlers/AdminPledge.java
index 9a6958a318e81b7f2470a878916b48b58d4d0b7f..01ffb08ba92f4b9cfae01bc04154ac3fff011e32 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/admincommandhandlers/AdminPledge.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/admincommandhandlers/AdminPledge.java
@@ -71,6 +71,8 @@ public class AdminPledge implements IAdminCommandHandler
 			}
 			catch (NoSuchElementException nse)
 			{
+				// TODO: Send some message.
+				return false;
 			}
 			if (action.equals("create"))
 			{
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/admincommandhandlers/AdminRepairChar.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/admincommandhandlers/AdminRepairChar.java
index 20a1a9734ca59e1b472d7417f6245cadf94771c6..f633a734800433d67d9c8050a774c24877d5d7f8 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/admincommandhandlers/AdminRepairChar.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/admincommandhandlers/AdminRepairChar.java
@@ -14,6 +14,7 @@
  */
 package handlers.admincommandhandlers;
 
+import java.sql.Connection;
 import java.sql.PreparedStatement;
 import java.sql.ResultSet;
 import java.util.logging.Level;
@@ -23,7 +24,6 @@ import com.l2jserver.L2DatabaseFactory;
 import com.l2jserver.gameserver.handler.IAdminCommandHandler;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 
-
 /**
  * This class handles following admin commands: - delete = deletes target
  *
@@ -61,16 +61,16 @@ public class AdminRepairChar implements IAdminCommandHandler
 		}
 		
 		String cmd = "UPDATE characters SET x=-84318, y=244579, z=-3730 WHERE char_name=?";
-		java.sql.Connection connection = null;
+		Connection con = null;
 		try
 		{
-			connection = L2DatabaseFactory.getInstance().getConnection();
-			PreparedStatement statement = connection.prepareStatement(cmd);
+			con = L2DatabaseFactory.getInstance().getConnection();
+			PreparedStatement statement = con.prepareStatement(cmd);
 			statement.setString(1, parts[1]);
 			statement.execute();
 			statement.close();
 			
-			statement = connection.prepareStatement("SELECT charId FROM characters where char_name=?");
+			statement = con.prepareStatement("SELECT charId FROM characters where char_name=?");
 			statement.setString(1, parts[1]);
 			ResultSet rset = statement.executeQuery();
 			int objId = 0;
@@ -84,22 +84,21 @@ public class AdminRepairChar implements IAdminCommandHandler
 			
 			if (objId == 0)
 			{
-				connection.close();
+				con.close();
 				return;
 			}
 			
 			//connection = L2DatabaseFactory.getInstance().getConnection();
-			statement = connection.prepareStatement("DELETE FROM character_shortcuts WHERE charId=?");
+			statement = con.prepareStatement("DELETE FROM character_shortcuts WHERE charId=?");
 			statement.setInt(1, objId);
 			statement.execute();
 			statement.close();
 			
 			//connection = L2DatabaseFactory.getInstance().getConnection();
-			statement = connection.prepareStatement("UPDATE items SET loc=\"INVENTORY\" WHERE owner_id=?");
+			statement = con.prepareStatement("UPDATE items SET loc=\"INVENTORY\" WHERE owner_id=?");
 			statement.setInt(1, objId);
 			statement.execute();
 			statement.close();
-			connection.close();
 		}
 		catch (Exception e)
 		{
@@ -107,13 +106,7 @@ public class AdminRepairChar implements IAdminCommandHandler
 		}
 		finally
 		{
-			try
-			{
-				connection.close();
-			}
-			catch (Exception e)
-			{
-			}
+			L2DatabaseFactory.close(con);
 		}
 	}
 }
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/admincommandhandlers/AdminSkill.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/admincommandhandlers/AdminSkill.java
index 47526530242cd8f26877edae72c4bc369ef9c219..6ac27bab7ff1b7cd98af6f8b062774547146f6df 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/admincommandhandlers/AdminSkill.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/admincommandhandlers/AdminSkill.java
@@ -581,6 +581,7 @@ public class AdminSkill implements IAdminCommandHandler
 		if (skill == null)
 		{
 			activeChar.sendMessage("Error: there is no such skill.");
+			return;
 		}
 		
 		String skillname = skill.getName();
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/admincommandhandlers/AdminTeleport.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/admincommandhandlers/AdminTeleport.java
index 2c3760f141df0615b597ae76268b49491bca827e..766172e45229d62dbb2e6a81c1b639d032ab817f 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/admincommandhandlers/AdminTeleport.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/admincommandhandlers/AdminTeleport.java
@@ -446,15 +446,16 @@ public class AdminTeleport implements IAdminCommandHandler
 			else
 			{
 				// Set player to same instance as GM teleporting.
-				if (activeChar != null && activeChar.getInstanceId() >= 0)
+				if ((activeChar != null) && activeChar.getInstanceId() >= 0)
+				{
 					player.setInstanceId(activeChar.getInstanceId());
+					activeChar.sendMessage("You have recalled " + player.getName());
+				}
 				else
+				{
 					player.setInstanceId(0);
-				
-				// Information
-				activeChar.sendMessage("You have recalled " + player.getName());
+				}
 				player.sendMessage("Admin is teleporting you.");
-				
 				player.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
 				player.teleToLocation(x, y, z, true);
 			}
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/bypasshandlers/Festival.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/bypasshandlers/Festival.java
index ade8113b1c2381be2a69fbf6bee78bc4feb27ab7..97a921e77e9e547cd178dc319b43215863f7d12d 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/bypasshandlers/Festival.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/bypasshandlers/Festival.java
@@ -51,7 +51,6 @@ public class Festival implements IBypassHandler
 		}
 		
 		final L2FestivalGuideInstance npc = (L2FestivalGuideInstance) target;
-		
 		try
 		{
 			final int val;
@@ -243,7 +242,7 @@ public class Festival implements IBypassHandler
 						strBuffer.append("Dusk: No record exists. Score 0<br>");
 					}
 					
-					if (overallScore > 0)
+					if ((overallScore > 0) && (overallData != null))
 					{
 						final String cabalStr;
 						if (overallData.getString("cabal").equals("dawn"))
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/itemhandlers/MercTicket.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/itemhandlers/MercTicket.java
index 8f2fdfd0a4a585ba075d7e853e7745e2d091cc8c..4a204cf32c213a23d180d6139b2915910ac73b90 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/itemhandlers/MercTicket.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/itemhandlers/MercTicket.java
@@ -65,7 +65,7 @@ public class MercTicket implements IItemHandler
 			activeChar.sendPacket(SystemMessageId.YOU_DO_NOT_HAVE_AUTHORITY_TO_POSITION_MERCENARIES);
 			return false;
 		}
-		else if (castle.getSiege().getIsInProgress())
+		else if ((castle != null) && castle.getSiege().getIsInProgress())
 		{
 			activeChar.sendPacket(SystemMessageId.THIS_MERCENARY_CANNOT_BE_POSITIONED_ANYMORE);
 			return false;
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/itemhandlers/ScrollOfResurrection.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/itemhandlers/ScrollOfResurrection.java
index 77eb2815f6f49167bf8796c8c758e8c915272695..d5c8c99fac71583810388ff1c37a28fa5ba7bdd8 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/itemhandlers/ScrollOfResurrection.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/itemhandlers/ScrollOfResurrection.java
@@ -100,7 +100,7 @@ public class ScrollOfResurrection implements IItemHandler
 			{
 				castle = CastleManager.getInstance().getCastle(targetPlayer.getX(), targetPlayer.getY(), targetPlayer.getZ());
 			}
-			else
+			else if (targetPet != null)
 			{
 				castle = CastleManager.getInstance().getCastle(targetPet.getOwner().getX(), targetPet.getOwner().getY(), targetPet.getOwner().getZ());
 			}
@@ -129,7 +129,7 @@ public class ScrollOfResurrection implements IItemHandler
 					}
 				}
 			}
-			else
+			else if (targetPlayer != null)
 			{
 				if (targetPlayer.isFestivalParticipant()) // Check to see if the current player target is in a festival.
 				{
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/skillhandlers/ChainHeal.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/skillhandlers/ChainHeal.java
index 06a8b417bf96241def63f3f023b1f5129d379fde..adc2d0e6fe403b4f58fba37b45e9387fce9d7447 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/skillhandlers/ChainHeal.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/skillhandlers/ChainHeal.java
@@ -33,8 +33,7 @@ import com.l2jserver.gameserver.network.serverpackets.SystemMessage;
 import com.l2jserver.util.ValueSortMap;
 
 /**
- * @author Nik
- * @author UnAfraid
+ * @author Nik, UnAfraid
  */
 public class ChainHeal implements ISkillHandler
 {
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/skillhandlers/Detection.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/skillhandlers/Detection.java
index 4277fc0b12edfaadf5284f96819b78b302ce2bff..83c428c50c6af1e90d9a0977e037b89d5c3ad1a9 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/skillhandlers/Detection.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/skillhandlers/Detection.java
@@ -26,7 +26,6 @@ import com.l2jserver.gameserver.model.skills.L2SkillType;
 /**
  * @author ZaKax
  */
-
 public class Detection implements ISkillHandler
 {
 	private static final L2SkillType[] SKILL_IDS =
@@ -46,28 +45,22 @@ public class Detection implements ISkillHandler
 			hasParty = player.isInParty();
 			hasClan = player.getClanId() > 0;
 			hasAlly = player.getAllyId() > 0;
-		}
-		else
-		{
-			hasParty = false;
-			hasClan = false;
-			hasAlly = false;
-		}
-		
-		for (L2PcInstance target : activeChar.getKnownList().getKnownPlayersInRadius(skill.getSkillRadius()))
-		{
-			if (target != null && target.getAppearance().getInvisible())
+			
+			for (L2PcInstance target : activeChar.getKnownList().getKnownPlayersInRadius(skill.getSkillRadius()))
 			{
-				if (hasParty && target.getParty() != null && player.getParty().getLeaderObjectId() == target.getParty().getLeaderObjectId())
-					continue;
-				if (hasClan && player.getClanId() == target.getClanId())
-					continue;
-				if (hasAlly && player.getAllyId() == target.getAllyId())
-					continue;
-				
-				L2Effect eHide = target.getFirstEffect(L2EffectType.HIDE);
-				if (eHide != null)
-					eHide.exit();
+				if (target != null && target.getAppearance().getInvisible())
+				{
+					if (hasParty && target.getParty() != null && player.getParty().getLeaderObjectId() == target.getParty().getLeaderObjectId())
+						continue;
+					if (hasClan && player.getClanId() == target.getClanId())
+						continue;
+					if (hasAlly && player.getAllyId() == target.getAllyId())
+						continue;
+					
+					L2Effect eHide = target.getFirstEffect(L2EffectType.HIDE);
+					if (eHide != null)
+						eHide.exit();
+				}
 			}
 		}
 	}
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/skillhandlers/Resurrect.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/skillhandlers/Resurrect.java
index 99a42cce513a9af0751d9edf07ed2d34c66adf19..0b87ecbc53fc8409f015e3a39ad0a421aaae5aa1 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/skillhandlers/Resurrect.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/skillhandlers/Resurrect.java
@@ -50,13 +50,15 @@ public class Resurrect implements ISkillHandler
 		{
 			if (target instanceof L2PcInstance)
 			{
-				targetPlayer = (L2PcInstance) target;
+				targetPlayer = target.getActingPlayer();
 				
 				// Check for same party or for same clan, if target is for clan.
 				if (skill.getTargetType() == L2TargetType.TARGET_CORPSE_CLAN)
 				{
-					if (player.getClanId() != targetPlayer.getClanId())
+					if ((player != null) && (player.getClanId() != targetPlayer.getClanId()))
+					{
 						continue;
+					}
 				}
 			}
 			if (target.isVisible())
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/targethandlers/TargetPartyMember.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/targethandlers/TargetPartyMember.java
index 82b865ad580204aa391d63de8144bdbc59908d93..918273c88700818eee197f864843b5e4907123e2 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/targethandlers/TargetPartyMember.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/targethandlers/TargetPartyMember.java
@@ -17,8 +17,6 @@ package handlers.targethandlers;
 import com.l2jserver.gameserver.handler.ITargetTypeHandler;
 import com.l2jserver.gameserver.model.L2Object;
 import com.l2jserver.gameserver.model.actor.L2Character;
-import com.l2jserver.gameserver.model.actor.L2Summon;
-import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 import com.l2jserver.gameserver.model.skills.L2Skill;
 import com.l2jserver.gameserver.model.skills.targets.L2TargetType;
 import com.l2jserver.gameserver.network.SystemMessageId;
@@ -31,29 +29,21 @@ public class TargetPartyMember implements ITargetTypeHandler
 	@Override
 	public L2Object[] getTargetList(L2Skill skill, L2Character activeChar, boolean onlyFirst, L2Character target)
 	{
-		if ((target != null
-				&& target == activeChar)
-				|| (target != null
-						&& activeChar.isInParty()
-						&& target.isInParty()
-						&& activeChar.getParty().getLeaderObjectId() == target.getParty().getLeaderObjectId())
-						|| (target != null
-								&& activeChar instanceof L2PcInstance
-								&& target instanceof L2Summon
-								&& activeChar.getPet() == target)
-								|| (target != null
-										&& activeChar instanceof L2Summon
-										&& target instanceof L2PcInstance
-										&& activeChar == target.getPet()))
+		if (target == null)
 		{
-			if (!target.isDead())
+			activeChar.sendPacket(SystemMessageId.TARGET_IS_INCORRECT);
+			return _emptyTargetList;
+		}
+		if (!target.isDead())
+		{
+			if ((target == activeChar) ||
+				(activeChar.isInParty() && target.isInParty() && (activeChar.getParty().getLeaderObjectId() == target.getParty().getLeaderObjectId())) ||
+				(activeChar.isPlayer() && target.isSummon() && (activeChar.getPet() == target)) ||
+				(activeChar.isSummon() && target.isPlayer() && (activeChar == target.getPet())))
 			{
-				// If a target is found, return it in a table else send a system message TARGET_IS_INCORRECT
 				return new L2Character[] { target };
 			}
-			return _emptyTargetList;
 		}
-		activeChar.sendPacket(SystemMessageId.TARGET_IS_INCORRECT);
 		return _emptyTargetList;
 	}
 	
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 b8e5fe47ef92abfd561165432eb91b9cb9329ab5..a10f12f038d42aede073040df39382161c2da6b0 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
@@ -67,6 +67,7 @@ public class DebugHandler implements ITelnetHandler
 		if (command.startsWith("debug") && command.length() > 6)
 		{
 			StringTokenizer st = new StringTokenizer(command.substring(6));
+			// TODO: Rewrite to use ARM.
 			FileOutputStream fos = null;
 			OutputStreamWriter out = null;
 			try
@@ -304,7 +305,10 @@ public class DebugHandler implements ITelnetHandler
 			{
 				try
 				{
-					out.close();
+					if (out != null)
+					{
+						out.close();
+					}
 				}
 				catch (Exception e)
 				{
@@ -312,7 +316,10 @@ public class DebugHandler implements ITelnetHandler
 				
 				try
 				{
-					fos.close();
+					if (fos != null)
+					{
+						fos.close();
+					}
 				}
 				catch (Exception e)
 				{
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/hellbound/Quarry/Quarry.java b/L2J_DataPack_BETA/dist/game/data/scripts/hellbound/Quarry/Quarry.java
index 00738c835ef289fc6bd6754e987519b792cfa6f7..f9bf78982cca44dcd6671b8d32dbe1d4243909b7 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/hellbound/Quarry/Quarry.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/hellbound/Quarry/Quarry.java
@@ -39,7 +39,7 @@ public class Quarry extends Quest
 	private static final int TRUST = 50;
 	private static final int ZONE = 40107;
 	// Id, chance (n from 10000)
-	private static final int[][] DROPLIST =
+	protected static final int[][] DROPLIST =
 	{
 		{
 			9628, 261
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/hellbound/Shadai/Shadai.java b/L2J_DataPack_BETA/dist/game/data/scripts/hellbound/Shadai/Shadai.java
index 8dacaa9ecc05949c293c72bb1c046cb45482b988..c04c2ffcd09ec8cd2bcde6fee4b42850330cd0de 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/hellbound/Shadai/Shadai.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/hellbound/Shadai/Shadai.java
@@ -46,7 +46,7 @@ public class Shadai extends Quest
 		return super.onSpawn(npc);
 	}
 	
-	private static void validatePosition(L2Npc npc)
+	protected static void validatePosition(L2Npc npc)
 	{
 		int[] coords = DAY_COORDS;
 		boolean mustRevalidate = false;
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/hellbound/TowerOfNaia/TowerOfNaia.java b/L2J_DataPack_BETA/dist/game/data/scripts/hellbound/TowerOfNaia/TowerOfNaia.java
index 62cc18bc34485a2bd323b725382e90b0c4a6f3f8..db52a4e83e06c887bf402c5e70d9f7336f499ee0 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/hellbound/TowerOfNaia/TowerOfNaia.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/hellbound/TowerOfNaia/TowerOfNaia.java
@@ -922,7 +922,7 @@ public class TowerOfNaia extends Quest
 		return ret;
 	}
 	
-	private void initRoom(int managerId)
+	protected void initRoom(int managerId)
 	{
 		removeAllPlayers(managerId);
 		_activeRooms.put(managerId, false);
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/hellbound/TullyWorkshop/TullyWorkshop.java b/L2J_DataPack_BETA/dist/game/data/scripts/hellbound/TullyWorkshop/TullyWorkshop.java
index d2b807c6df5c9d7a7f83520aded4d022a8b9b115..db3b81693715212ebf218a4bea1b324972013319 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/hellbound/TullyWorkshop/TullyWorkshop.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/hellbound/TullyWorkshop/TullyWorkshop.java
@@ -101,7 +101,7 @@ public class TullyWorkshop extends Quest
 	private static final Map<Integer, int[]> TULLY_DOORLIST = new FastMap<Integer, int[]>();
 	private static final Map<Integer, int[][]> TELE_COORDS = new FastMap<Integer, int[][]>();
 	
-	private int countdownTime;
+	protected int countdownTime;
 	private int nextServantIdx = 0;
 	private int killedFollowersCount = 0;
 	private boolean allowServantSpawn = true;
@@ -109,13 +109,13 @@ public class TullyWorkshop extends Quest
 	private boolean allowAgentSpawn_7th = true;
 	private boolean is7thFloorAttackBegan = false;
 	
-	private ScheduledFuture<?> _countdown = null;
+	protected ScheduledFuture<?> _countdown = null;
 	
 	// NPC's, spawned after Tully's death are stored here
-	private static List<L2Npc> postMortemSpawn = new FastList<L2Npc>();
-	private static TIntHashSet brokenContraptions = new TIntHashSet();
-	private static TIntHashSet rewardedContraptions = new TIntHashSet();
-	private static TIntHashSet talkedContraptions = new TIntHashSet();
+	protected static List<L2Npc> postMortemSpawn = new FastList<L2Npc>();
+	protected static TIntHashSet brokenContraptions = new TIntHashSet();
+	protected static TIntHashSet rewardedContraptions = new TIntHashSet();
+	protected static TIntHashSet talkedContraptions = new TIntHashSet();
 	
 	private final List<L2MonsterInstance> spawnedFollowers = new FastList<L2MonsterInstance>();
 	private final List<L2MonsterInstance> spawnedFollowerMinions = new FastList<L2MonsterInstance>();
@@ -1611,7 +1611,7 @@ public class TullyWorkshop extends Quest
 		}, STATE_CLOSE), 4000);
 	}
 	
-	private class CountdownTask implements Runnable
+	protected class CountdownTask implements Runnable
 	{
 		@Override
 		public void run()
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/instances/CrystalCaverns/CrystalCaverns.java b/L2J_DataPack_BETA/dist/game/data/scripts/instances/CrystalCaverns/CrystalCaverns.java
index 9be91f88a8fb85d8cedd814b49aae797878bd30d..3cbb2b7765c368ebf6b5090e60ab94b6fd57f14e 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/instances/CrystalCaverns/CrystalCaverns.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/instances/CrystalCaverns/CrystalCaverns.java
@@ -73,7 +73,7 @@ import com.l2jserver.gameserver.util.Util;
 public class CrystalCaverns extends Quest
 {
 	
-	private static class CrystalGolem
+	protected static class CrystalGolem
 	{
 		public         L2ItemInstance foodItem = null;
 		public boolean isAtDestination         = false;
@@ -102,14 +102,14 @@ public class CrystalCaverns extends Quest
 		public           List<L2Npc> guards                               = new FastList<L2Npc>();
 		public           List<L2Npc> oracle                               = new FastList<L2Npc>();
 		// baylor variables
-		private final List<L2PcInstance> _raiders = new FastList<L2PcInstance>();
-		private int _raidStatus = 0;
-		private long _dragonClawStart = 0;
-		private int _dragonClawNeed = 0;
-		private final List<L2Npc> _animationMobs = new FastList<L2Npc>();
-		private L2Npc _camera = null;
-		private L2Npc _baylor = null;
-		private L2Npc _alarm = null;
+		protected final List<L2PcInstance> _raiders = new FastList<L2PcInstance>();
+		protected int _raidStatus = 0;
+		protected long _dragonClawStart = 0;
+		protected int _dragonClawNeed = 0;
+		protected final List<L2Npc> _animationMobs = new FastList<L2Npc>();
+		protected L2Npc _camera = null;
+		protected L2Npc _baylor = null;
+		protected L2Npc _alarm = null;
 		
 		public CCWorld(Long time)
 		{
@@ -324,7 +324,7 @@ public class CrystalCaverns extends Quest
 	private static final int DRAGONSCALETIME = 3000;
 	private static final int DRAGONCLAWTIME = 3000;
 	
-	private static class teleCoord
+	protected static class teleCoord
 	{
 		int instanceId;
 		int x;
@@ -1656,7 +1656,7 @@ public class CrystalCaverns extends Quest
 				{
 					if (!checkOracleConditions(player))
 						return "";
-					else if (player.getParty() != null)
+					else if (party != null)
 						for (L2PcInstance partyMember : party.getMembers())
 						{
 							partyMember.destroyItemByItemId("Quest", RED_CORAL, 1, player, true);
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/instances/DarkCloudMansion/DarkCloudMansion.java b/L2J_DataPack_BETA/dist/game/data/scripts/instances/DarkCloudMansion/DarkCloudMansion.java
index 5fc567fb73c43fa125a99ba19466e43698268dc8..94ba650421cabdd848846b7afaeb0c946cdda9de 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/instances/DarkCloudMansion/DarkCloudMansion.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/instances/DarkCloudMansion/DarkCloudMansion.java
@@ -56,7 +56,7 @@ public class DarkCloudMansion extends Quest
 			addKillId(mob);
 	}
 	
-	private static class DMCNpc
+	protected static class DMCNpc
 	{
 		public L2Npc npc;
 		public boolean isDead = false;
@@ -66,7 +66,7 @@ public class DarkCloudMansion extends Quest
 		public int count = 0;
 	}
 	
-	private static class DMCRoom
+	protected static class DMCRoom
 	{
 		public FastList<DMCNpc> npcList = new FastList<DMCNpc>();
 		public int counter = 0;
@@ -90,7 +90,7 @@ public class DarkCloudMansion extends Quest
 	private static String qn = "DarkCloudMansion";
 	private static final int INSTANCEID = 9;
 	
-	private static class teleCoord {int instanceId; int x; int y; int z;}
+	protected static class teleCoord {int instanceId; int x; int y; int z;}
 	
 	//Items
 	private static int CC = 9690; //Contaminated Crystal
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/instances/FinalEmperialTomb/FinalEmperialTomb.java b/L2J_DataPack_BETA/dist/game/data/scripts/instances/FinalEmperialTomb/FinalEmperialTomb.java
index 41caf49b81b5ed20224b54c819b3934d6fb0ad4c..8393ae77f6240f5f905d04cc002ced7fd527331b 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/instances/FinalEmperialTomb/FinalEmperialTomb.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/instances/FinalEmperialTomb/FinalEmperialTomb.java
@@ -71,17 +71,16 @@ import com.l2jserver.gameserver.network.serverpackets.SpecialCamera;
 import com.l2jserver.gameserver.network.serverpackets.SystemMessage;
 import com.l2jserver.gameserver.util.Util;
 
-/*
-TODO:
-- test when Frintezza song use 5008 effect skill
-- maybe test more deeply halishas AI
-- use correct Song names
-- use proper zone spawn system
-Contributing authors: Gigiikun
+/**
+ * TODO:<br>
+ * Test when Frintezza song use 5008 effect skill.<br>
+ * Maybe test more deeply halishas AI.<br>
+ * Use correct Song names.<br>
+ * Use proper zone spawn system.<br>
+ * @author Gigiikun
 */
 public class FinalEmperialTomb extends Quest
 {
-
 	private class FETWorld extends InstanceWorld
 	{
 		public         Lock                 lock                         = new ReentrantLock();
@@ -111,7 +110,7 @@ public class FinalEmperialTomb extends Quest
 		}
 	}
 	
-	private static class FETSpawn
+	protected static class FETSpawn
 	{
 		public boolean isZone = false;
 		public boolean isNeededNextFlag = false;
@@ -169,10 +168,10 @@ public class FinalEmperialTomb extends Quest
 	
 	private static final int FIRST_SCARLET_WEAPON = 8204;
 	private static final int SECOND_SCARLET_WEAPON = 7903;
-	private static final SkillHolder INTRO_SKILL = new SkillHolder(5004,1);
+	protected static final SkillHolder INTRO_SKILL = new SkillHolder(5004,1);
 	private static final SkillHolder FIRST_MORPH_SKILL = new SkillHolder(5017,1);
 	
-	private static final FrintezzaSong[] FRINTEZZASONGLIST = 
+	protected static final FrintezzaSong[] FRINTEZZASONGLIST = 
 	{
 		new FrintezzaSong(new SkillHolder(5007,1), new SkillHolder(5008,1), NpcStringId.REQUIEM_OF_HATRED, 5),
         new FrintezzaSong(new SkillHolder(5007,2), new SkillHolder(5008,2), NpcStringId.RONDO_OF_SOLITUDE, 50),
@@ -182,25 +181,25 @@ public class FinalEmperialTomb extends Quest
 	};
 	
 	// Doors/Walls/Zones
-	private static final int[] FIRST_ROOM_DOORS = 
+	protected static final int[] FIRST_ROOM_DOORS = 
 	{ 
 		17130051, 17130052, 17130053, 17130054, 17130055,
 		17130056, 17130057, 17130058
 	};
-	private static final int[] SECOND_ROOM_DOORS = 
+	protected static final int[] SECOND_ROOM_DOORS = 
 	{
 		17130061, 17130062, 17130063, 17130064, 17130065,
 		17130066, 17130067, 17130068, 17130069, 17130070
 	};
 	
-	private static final int[] FIRST_ROUTE_DOORS = { 17130042, 17130043 };
-	private static final int[] SECOND_ROUTE_DOORS = { 17130045, 17130046 };
-	private static final L2CharPosition MOVE_TO_CENTER = new L2CharPosition( -87904, -141296, -9168, 0 );
+	protected static final int[] FIRST_ROUTE_DOORS = { 17130042, 17130043 };
+	protected static final int[] SECOND_ROUTE_DOORS = { 17130045, 17130046 };
+	protected static final L2CharPosition MOVE_TO_CENTER = new L2CharPosition( -87904, -141296, -9168, 0 );
 
 	// spawns
 	private static final int TIME_BETWEEN_DEMON_SPAWNS = 20000;
 	private static final int MAX_DEMONS = 24;
-	private static final int[][] PORTRAIT_SPAWNS = 
+	protected static final int[][] PORTRAIT_SPAWNS = 
 	{
 		{ 29048, -89381, -153981, -9168, 3368, -89378, -153968, -9168, 3368 },
 		{ 29048, -86234, -152467, -9168, 37656, -86261, -152492, -9168, 37656 },
@@ -1202,7 +1201,7 @@ public class FinalEmperialTomb extends Quest
 		}
 	}
 	
-	private void broadCastPacket(FETWorld world, L2GameServerPacket packet)
+	protected void broadCastPacket(FETWorld world, L2GameServerPacket packet)
 	{
 		for (int objId : world.allowed)
 		{
@@ -1212,7 +1211,7 @@ public class FinalEmperialTomb extends Quest
 		}
 	}
 	
-	private void updateKnownList(FETWorld world, L2Npc npc)
+	protected void updateKnownList(FETWorld world, L2Npc npc)
 	{
 		Map<Integer, L2PcInstance> npcKnownPlayers = npc.getKnownList().getKnownPlayers();
 		for (int objId : world.allowed)
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/instances/HellboundTown/HellboundTown.java b/L2J_DataPack_BETA/dist/game/data/scripts/instances/HellboundTown/HellboundTown.java
index 0707cb0890a75bfef4a39e8597ecc5b4838e8c1e..6cfe83e280117e760961125d151782c82fd08cea 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/instances/HellboundTown/HellboundTown.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/instances/HellboundTown/HellboundTown.java
@@ -101,7 +101,8 @@ public class HellboundTown extends Quest
 	{
 		14117, 255434, -2016
 	};
-	private static final int[] EXIT_POINT =
+	
+	protected static final int[] EXIT_POINT =
 	{
 		16262, 283651, -9700
 	};
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/instances/Pailaka/PailakaDevilsLegacy.java b/L2J_DataPack_BETA/dist/game/data/scripts/instances/Pailaka/PailakaDevilsLegacy.java
index 37fd5e5513b365227d112244772cfd3bb66ec4dc..80fdef89984710f2e1f7835f365de499619bae60 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/instances/Pailaka/PailakaDevilsLegacy.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/instances/Pailaka/PailakaDevilsLegacy.java
@@ -50,7 +50,7 @@ public class PailakaDevilsLegacy extends Quest
 	private static final int MAX_LEVEL = 67;
 	private static final int EXIT_TIME = 5;
 	private static final int INSTANCE_ID = 44;
-	private static final int[] TELEPORT =
+	protected static final int[] TELEPORT =
 	{
 		76428,
 		-219038,
@@ -216,7 +216,7 @@ public class PailakaDevilsLegacy extends Quest
 		}
 	}
 	
-	private static final void teleportPlayer(L2PcInstance player, int[] coords, int instanceId)
+	protected static final void teleportPlayer(L2PcInstance player, int[] coords, int instanceId)
 	{
 		player.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
 		player.setInstanceId(instanceId);
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/instances/Pailaka/PailakaSongOfIceAndFire.java b/L2J_DataPack_BETA/dist/game/data/scripts/instances/Pailaka/PailakaSongOfIceAndFire.java
index 909a763b59f815ab9cf7a26588eb345d6f2c8909..1eb2c60f881bcbfcb57f05cc79757e7ddbc31587 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/instances/Pailaka/PailakaSongOfIceAndFire.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/instances/Pailaka/PailakaSongOfIceAndFire.java
@@ -37,7 +37,7 @@ public class PailakaSongOfIceAndFire extends Quest
 	private static final int MAX_LEVEL = 42;
 	private static final int EXIT_TIME = 5;
 	private static final int INSTANCE_ID = 43;
-	private static final int[] TELEPORT =
+	protected static final int[] TELEPORT =
 	{
 		-52875,
 		188232,
@@ -223,7 +223,7 @@ public class PailakaSongOfIceAndFire extends Quest
 		}
 	}
 	
-	private static final void teleportPlayer(L2PcInstance player, int[] coords, int instanceId)
+	protected static final void teleportPlayer(L2PcInstance player, int[] coords, int instanceId)
 	{
 		player.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
 		player.setInstanceId(instanceId);
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/instances/SecretArea/SecretArea.java b/L2J_DataPack_BETA/dist/game/data/scripts/instances/SecretArea/SecretArea.java
index ac666edc0aba09270a3c98ccd013e5143b480226..3017892a95b00f63cf600394f63b3e99fb01b519 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/instances/SecretArea/SecretArea.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/instances/SecretArea/SecretArea.java
@@ -45,7 +45,7 @@ public class SecretArea extends Quest
 		new Location(-23758, -8959, -5384), new Location(-185057, 242821, 1576)
 	};
 	
-	private class SecretAreaWorld extends InstanceWorld
+	protected class SecretAreaWorld extends InstanceWorld
 	{
 		
 	}
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/instances/SeedOfDestruction/Stage1.java b/L2J_DataPack_BETA/dist/game/data/scripts/instances/SeedOfDestruction/Stage1.java
index f0f889e6512658499df8503282a23286a75026c4..2df2c7827c534d79afe98fb831c11714ef9e947f 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/instances/SeedOfDestruction/Stage1.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/instances/SeedOfDestruction/Stage1.java
@@ -85,7 +85,7 @@ public class Stage1 extends Quest
 		}
 	}
 	
-	private static class SODSpawn
+	protected static class SODSpawn
 	{
 		public boolean isZone = false;
 		public boolean isNeededNextFlag = false;
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/mods/eventmodElpies/eventmodElpies.java b/L2J_DataPack_BETA/dist/game/data/scripts/mods/eventmodElpies/eventmodElpies.java
index 66a03ea6abc9b9bb865312aefd37779a4ae24ba2..ea318a8a915b513551600411042c31267a07f3d3 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/mods/eventmodElpies/eventmodElpies.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/mods/eventmodElpies/eventmodElpies.java
@@ -193,7 +193,7 @@ public class eventmodElpies extends Event
 		return true;
 	}
 	
-	private void timeUp()
+	protected void timeUp()
 	{
 		Announcements.getInstance().announceToAll("Time up !");
 		eventStop();
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/mods/eventmodRabbits/eventmodRabbits.java b/L2J_DataPack_BETA/dist/game/data/scripts/mods/eventmodRabbits/eventmodRabbits.java
index 930a6ef373d72118c4b7ae93d878232b7c6fb860..8c24ce2679a11e221a956f5293c780a3e1c0c617 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/mods/eventmodRabbits/eventmodRabbits.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/mods/eventmodRabbits/eventmodRabbits.java
@@ -157,7 +157,7 @@ public class eventmodRabbits extends Event
 		return true;
 	}
 	
-	private void timeUp()
+	protected void timeUp()
 	{
 		Announcements.getInstance().announceToAll("Time up !");
 		eventStop();
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/mods/eventmodRace/eventmodRace.java b/L2J_DataPack_BETA/dist/game/data/scripts/mods/eventmodRace/eventmodRace.java
index 5a27166c8b052746427386abb18b1971d7ab9c4b..75cfbbb8f06a6d56049c279d73dc340b80eecc1c 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/mods/eventmodRace/eventmodRace.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/mods/eventmodRace/eventmodRace.java
@@ -154,7 +154,7 @@ public class eventmodRace extends Event
 		
 	}
 	
-	private void StartRace()
+	protected void StartRace()
 	{
 		// Abort race if no players signup
 		if (_players.isEmpty())
@@ -434,7 +434,7 @@ public class eventmodRace extends Event
 		activeChar.sendPacket(html);
 	}
 	
-	private void timeUp()
+	protected void timeUp()
 	{
 		Announcements.getInstance().announceToAll("Time up, nobody wins!");
 		eventStop();
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q10277_MutatedKaneusDion/Q10277_MutatedKaneusDion.java b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q10277_MutatedKaneusDion/Q10277_MutatedKaneusDion.java
index 720431f936afd6156eb7f09d9b4197269a5b3812..e444f4b834095b4588397f472bf8c6f709146658 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q10277_MutatedKaneusDion/Q10277_MutatedKaneusDion.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q10277_MutatedKaneusDion/Q10277_MutatedKaneusDion.java
@@ -131,7 +131,11 @@ public class Q10277_MutatedKaneusDion extends Quest
 			for (L2PcInstance member : killer.getParty().getMembers())
 			{
 				st = member.getQuestState(qn);
-				if (((st != null) && st.isStarted() && (st.getInt("cond") == 1) && ((npcId == CRIMSON_HATU) && !st.hasQuestItems(TISSUE_CH))) || ((npcId == SEER_FLOUROS) && !st.hasQuestItems(TISSUE_SF)))
+				if (st == null)
+				{
+					continue;
+				}
+				if ((st.isStarted() && (st.getInt("cond") == 1) && ((npcId == CRIMSON_HATU) && !st.hasQuestItems(TISSUE_CH))) || ((npcId == SEER_FLOUROS) && !st.hasQuestItems(TISSUE_SF)))
 				{
 					PartyMembers.add(st);
 				}
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q511_AwlUnderFoot/Q511_AwlUnderFoot.java b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q511_AwlUnderFoot/Q511_AwlUnderFoot.java
index a97c9331605621003a990166a7c7cf76deff9558..8b869b54307b7d4221ba4facea4d41d0a7947ded 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q511_AwlUnderFoot/Q511_AwlUnderFoot.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q511_AwlUnderFoot/Q511_AwlUnderFoot.java
@@ -16,6 +16,8 @@ package quests.Q511_AwlUnderFoot;
 
 import gnu.trove.map.hash.TIntObjectHashMap;
 
+import java.util.logging.Logger;
+
 import com.l2jserver.gameserver.ThreadPoolManager;
 import com.l2jserver.gameserver.instancemanager.InstanceManager;
 import com.l2jserver.gameserver.instancemanager.InstanceManager.InstanceWorld;
@@ -38,7 +40,9 @@ import com.l2jserver.gameserver.util.Util;
  */
 public final class Q511_AwlUnderFoot extends Quest
 {
-	private class FAUWorld extends InstanceWorld
+	protected static final Logger log = Logger.getLogger(Q511_AwlUnderFoot.class.getName());
+	
+	protected class FAUWorld extends InstanceWorld
 	{
 	}
 	
@@ -82,20 +86,20 @@ public final class Q511_AwlUnderFoot extends Quest
 	private static final int KNIGHT_EPALUETTE = 9912;
 	
 	// MONSTER TO KILL -- Only last 3 Raids (lvl ordered) give DL_MARK
-	private static final int[] RAIDS1 =
+	protected static final int[] RAIDS1 =
 	{
 		25572,
 		25575,
 		25578
 	};
-	private static final int[] RAIDS2 =
+	protected static final int[] RAIDS2 =
 	{
 		25579,
 		25582,
 		25585,
 		25588
 	};
-	private static final int[] RAIDS3 =
+	protected static final int[] RAIDS3 =
 	{
 		25589,
 		25592,
@@ -180,7 +184,7 @@ public final class Q511_AwlUnderFoot extends Quest
 		world.status = 0;
 		dungeon.setReEnterTime(System.currentTimeMillis() + REENTERTIME);
 		InstanceManager.getInstance().addWorld(world);
-		_log.info("Fortress AwlUnderFoot started " + template + " Instance: " + instanceId + " created by player: " + player.getName());
+		log.info("Fortress AwlUnderFoot started " + template + " Instance: " + instanceId + " created by player: " + player.getName());
 		ThreadPoolManager.getInstance().scheduleGeneral(new spawnRaid((FAUWorld) world), RAID_SPAWN_DELAY);
 		
 		// teleport players
@@ -239,7 +243,7 @@ public final class Q511_AwlUnderFoot extends Quest
 			}
 			catch (Exception e)
 			{
-				_log.warning("Fortress AwlUnderFoot Raid Spawn error: " + e);
+				log.warning("Fortress AwlUnderFoot Raid Spawn error: " + e);
 			}
 		}
 	}
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/vehicles/AirShipController.java b/L2J_DataPack_BETA/dist/game/data/scripts/vehicles/AirShipController.java
index b6d9b50b271876f1dc5c56565deb358f856b4adb..a0b307cb0b0ad85579e72a9bf6c6c52873a4e614 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/vehicles/AirShipController.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/vehicles/AirShipController.java
@@ -373,7 +373,7 @@ public abstract class AirShipController extends Quest
 		}
 	}
 	
-	private final class DecayTask implements Runnable
+	protected final class DecayTask implements Runnable
 	{
 		@Override
 		public void run()
@@ -383,7 +383,7 @@ public abstract class AirShipController extends Quest
 		}
 	}
 	
-	private final class DepartTask implements Runnable
+	protected final class DepartTask implements Runnable
 	{
 		@Override
 		public void run()