diff --git a/L2J_DataPack_BETA/dist/game/config/adminCommands.xml b/L2J_DataPack_BETA/dist/game/config/adminCommands.xml
index fbc40e8a78a5afe0ee6e90266880e6f37e2c5149..d535518a5ad36ecf25cce104314b35972fbdc5c9 100644
--- a/L2J_DataPack_BETA/dist/game/config/adminCommands.xml
+++ b/L2J_DataPack_BETA/dist/game/config/adminCommands.xml
@@ -1,5 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <list xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../data/xsd/adminCommands.xsd">
+	<!-- ADMIN COND EXCEPTIONS -->
+	<admin command="admin_exceptions" accessLevel="7" />
+	<admin command="admin_set_exception" accessLevel="7" confirmDlg="true" />
+	
 	<!-- ADMIN ADMIN -->
 	<admin command="admin_admin" accessLevel="7" />
 	<admin command="admin_admin1" accessLevel="7" />
diff --git a/L2J_DataPack_BETA/dist/game/data/html/admin/cond_override.htm b/L2J_DataPack_BETA/dist/game/data/html/admin/cond_override.htm
new file mode 100644
index 0000000000000000000000000000000000000000..8923881038f57cd3c0d1c779d8f91e548bcab5fb
--- /dev/null
+++ b/L2J_DataPack_BETA/dist/game/data/html/admin/cond_override.htm
@@ -0,0 +1,17 @@
+<html><title>Condition Exceptions</title><body>
+<center>
+<table width=270>
+<tr>
+<td width=45><button value="Main" action="bypass -h admin_admin" width=45 height=21 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td>
+<td width=180><center>Condition Exceptions</center></td>
+<td width=45><button value="Back" action="bypass -h admin_admin7" width=45 height=21 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td>
+</tr>
+</table>
+<table width=260><tr>
+<td width=40><button value="Enable all" action="bypass -h admin_set_exception enable_all" width=80 height=21 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td>
+<td width=110></td>
+<td width=40><button value="Disable all" action="bypass -h admin_set_exception disable_all" width=80 height=21 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td>
+</tr></table>
+<table width="275" bgcolor="666666">
+%cond_table%
+</table>
\ No newline at end of file
diff --git a/L2J_DataPack_BETA/dist/game/data/html/admin/gm_menu.htm b/L2J_DataPack_BETA/dist/game/data/html/admin/gm_menu.htm
index 4a35fae3f3c11af12b934471eac7d1722ad41370..9b00ca19ccf09edb3aba4f0b3a18b37a87b1140f 100644
--- a/L2J_DataPack_BETA/dist/game/data/html/admin/gm_menu.htm
+++ b/L2J_DataPack_BETA/dist/game/data/html/admin/gm_menu.htm
@@ -33,7 +33,7 @@
 </tr><tr>
 <td><button value="Instance" action="bypass -h admin_help instancezone.htm" width=65 height=21 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td>
 <td><button value="Events" action="bypass -h admin_event_menu" width=65 height=21 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td>
-<td></td>
+<td><button value="Exceptions" action="bypass -h admin_exceptions" width=65 height=21 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td>
 <td><button value="Server" action="bypass -h admin_admin4" width=65 height=21 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td>
 </tr>
 </table><br1>
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/Teleports/Warpgate/Warpgate.java b/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/Teleports/Warpgate/Warpgate.java
index 9f405b8e7a3f55dd9d406751b141951872936d19..c73bc3baa2d4bcbef5eb2dcd02188968e12bf4be 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/Teleports/Warpgate/Warpgate.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/Teleports/Warpgate/Warpgate.java
@@ -20,6 +20,7 @@ import ai.npc.AbstractNpcAI;
 
 import com.l2jserver.gameserver.ThreadPoolManager;
 import com.l2jserver.gameserver.instancemanager.HellboundManager;
+import com.l2jserver.gameserver.model.PcCondOverride;
 import com.l2jserver.gameserver.model.actor.L2Character;
 import com.l2jserver.gameserver.model.actor.L2Npc;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
@@ -62,11 +63,7 @@ public class Warpgate extends AbstractNpcAI
 			}
 		}
 		st = player.getQuestState(Q00133_ThatsBloodyHot.class.getSimpleName());
-		if ((st != null) && st.isCompleted())
-		{
-			return true;
-		}
-		return false;
+		return ((st != null) && st.isCompleted());
 	}
 	
 	@Override
@@ -100,7 +97,7 @@ public class Warpgate extends AbstractNpcAI
 	{
 		if (character.isPlayer())
 		{
-			if (!canEnter(character.getActingPlayer()) && !character.isGM())
+			if (!canEnter(character.getActingPlayer()) && !character.canOverrideCond(PcCondOverride.ZONE_CONDITIONS))
 			{
 				ThreadPoolManager.getInstance().scheduleGeneral(new Teleport(character), 1000);
 			}
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/custom/Validators/SkillTransferValidator.java b/L2J_DataPack_BETA/dist/game/data/scripts/custom/Validators/SkillTransferValidator.java
index 359892e432fb4e835e1dc2db054341a27e2f81f6..87c1fefada1943cbeb61bd29666ff55e6ddcc7a2 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/custom/Validators/SkillTransferValidator.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/custom/Validators/SkillTransferValidator.java
@@ -18,6 +18,7 @@ import com.l2jserver.Config;
 import com.l2jserver.gameserver.datatables.ClassListData;
 import com.l2jserver.gameserver.datatables.SkillTreesData;
 import com.l2jserver.gameserver.model.L2SkillLearn;
+import com.l2jserver.gameserver.model.PcCondOverride;
 import com.l2jserver.gameserver.model.actor.L2Npc;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 import com.l2jserver.gameserver.model.holders.ItemHolder;
@@ -93,7 +94,7 @@ public final class SkillTransferValidator extends L2Script
 					}
 				}
 				
-				if (Config.SKILL_CHECK_ENABLE && (!player.isGM() || Config.SKILL_CHECK_GM))
+				if (Config.SKILL_CHECK_ENABLE && (!player.canOverrideCond(PcCondOverride.SKILL_CONDITIONS) || Config.SKILL_CHECK_GM))
 				{
 					long count = PORMANDERS[index].getCount() - player.getInventory().getInventoryItemCount(PORMANDERS[index].getId(), -1, false);
 					for (L2Skill sk : player.getAllSkills())
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 46556fb1b95419fd8155643fae5250a20c387380..dc8b6a54e8a6ca86ea438e56f559b3792a83335c 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
@@ -20,6 +20,7 @@ import javolution.util.FastList;
 
 import com.l2jserver.Config;
 import com.l2jserver.gameserver.datatables.ClassListData;
+import com.l2jserver.gameserver.model.PcCondOverride;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 import com.l2jserver.gameserver.model.items.instance.L2ItemInstance;
 import com.l2jserver.gameserver.model.quest.Quest;
@@ -73,7 +74,7 @@ public final class SubClassSkills extends Quest
 		if (!Config.SKILL_CHECK_ENABLE)
 			return null;
 		
-		if (player.isGM() && !Config.SKILL_CHECK_GM)
+		if (player.canOverrideCond(PcCondOverride.SKILL_CONDITIONS) && !Config.SKILL_CHECK_GM)
 			return null;
 		
 		final L2Skill[] certSkills = getCertSkills(player);
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 56a2d8fd991e43bfc52b1506e831cc9f11c7e11d..f23a80ddb1d694e39914fc3b6d7f69d29ab8e5b7 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/MasterHandler.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/MasterHandler.java
@@ -40,6 +40,7 @@ import handlers.admincommandhandlers.AdminCache;
 import handlers.admincommandhandlers.AdminCamera;
 import handlers.admincommandhandlers.AdminChangeAccessLevel;
 import handlers.admincommandhandlers.AdminClan;
+import handlers.admincommandhandlers.AdminPcCondOverride;
 import handlers.admincommandhandlers.AdminCreateItem;
 import handlers.admincommandhandlers.AdminCursedWeapons;
 import handlers.admincommandhandlers.AdminDebug;
@@ -371,6 +372,7 @@ public class MasterHandler
 			AdminChangeAccessLevel.class,
 			AdminCHSiege.class,
 			AdminClan.class,
+			AdminPcCondOverride.class,
 			AdminCreateItem.class,
 			AdminCursedWeapons.class,
 			AdminDebug.class,
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/admincommandhandlers/AdminPcCondOverride.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/admincommandhandlers/AdminPcCondOverride.java
new file mode 100644
index 0000000000000000000000000000000000000000..4d9986084d830bd61698a52a502177e58972166c
--- /dev/null
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/admincommandhandlers/AdminPcCondOverride.java
@@ -0,0 +1,124 @@
+/*
+ * This program is free software: you can redistribute it and/or modify it under
+ * the terms of the GNU General Public License as published by the Free Software
+ * Foundation, either version 3 of the License, or (at your option) any later
+ * version.
+ * 
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
+ * details.
+ * 
+ * You should have received a copy of the GNU General Public License along with
+ * this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+package handlers.admincommandhandlers;
+
+import java.util.StringTokenizer;
+
+import com.l2jserver.gameserver.handler.IAdminCommandHandler;
+import com.l2jserver.gameserver.model.PcCondOverride;
+import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jserver.gameserver.network.serverpackets.NpcHtmlMessage;
+import com.l2jserver.gameserver.util.Util;
+
+/**
+ * Handler provides ability to override server's conditions for admin.
+ * @author UnAfraid
+ */
+public class AdminPcCondOverride implements IAdminCommandHandler
+{
+	private static final String[] COMMANDS =
+	{
+		"admin_exceptions",
+		"admin_set_exception",
+	};
+	
+	@Override
+	public boolean useAdminCommand(String command, L2PcInstance activeChar)
+	{
+		StringTokenizer st = new StringTokenizer(command);
+		if (st.hasMoreTokens())
+		{
+			switch (st.nextToken()) // command
+			{
+				case "admin_exceptions":
+				{
+					NpcHtmlMessage msg = new NpcHtmlMessage(5, 1);
+					msg.setFile(activeChar.getHtmlPrefix(), "data/html/admin/cond_override.htm");
+					StringBuilder sb = new StringBuilder();
+					for (PcCondOverride ex : PcCondOverride.values())
+					{
+						sb.append("<tr><td fixwidth=\"180\">" + ex.getDescription() + ":</td><td><a action=\"bypass -h admin_set_exception " + ex.ordinal() + "\">" + (activeChar.canOverrideCond(ex) ? "Disable" : "Enable") + "</a></td></tr>");	
+					}
+					msg.replace("%cond_table%", sb.toString());
+					activeChar.sendPacket(msg);
+					break;
+				}
+				case "admin_set_exception":
+				{
+					if (st.hasMoreTokens())
+					{
+						String token = st.nextToken();
+						if (Util.isDigit(token))
+						{
+							PcCondOverride ex = PcCondOverride.getCondOverride(Integer.valueOf(token));
+							if (ex != null)
+							{
+								if (activeChar.canOverrideCond(ex))
+								{
+									activeChar.removeOverridedCond(ex);
+									activeChar.sendMessage("You've disabled " + ex.getDescription());
+								}
+								else
+								{
+									activeChar.addOverrideCond(ex);
+									activeChar.sendMessage("You've enabled " + ex.getDescription());
+								}
+							}
+						}
+						else
+						{
+							switch (token)
+							{
+								case "enable_all":
+								{
+									for (PcCondOverride ex : PcCondOverride.values())
+									{
+										if (!activeChar.canOverrideCond(ex))
+										{
+											activeChar.addOverrideCond(ex);
+										}
+									}
+									activeChar.sendMessage("All condition exceptions have been enabled.");
+									break;
+								}
+								case "disable_all":
+								{
+									for (PcCondOverride ex : PcCondOverride.values())
+									{
+										if (activeChar.canOverrideCond(ex))
+										{
+											activeChar.removeOverridedCond(ex);
+										}
+									}
+									activeChar.sendMessage("All condition exceptions have been disabled.");
+									break;
+								}
+							}
+						}
+						useAdminCommand(COMMANDS[0], activeChar);
+					}
+					break;
+				}
+			}
+		}
+		return true;
+	}
+
+	@Override
+	public String[] getAdminCommandList()
+	{
+		return COMMANDS;
+	}
+}
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 cb3d1a38cffaf04376e2a17a474eecc31a43ef64..d7a8ee3d2eaccdc14e38298e37ba8c0194c6177c 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
@@ -18,6 +18,7 @@ import com.l2jserver.Config;
 import com.l2jserver.gameserver.handler.IChatHandler;
 import com.l2jserver.gameserver.model.BlockList;
 import com.l2jserver.gameserver.model.L2World;
+import com.l2jserver.gameserver.model.PcCondOverride;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 import com.l2jserver.gameserver.network.SystemMessageId;
 import com.l2jserver.gameserver.network.serverpackets.CreatureSay;
@@ -40,7 +41,7 @@ public class ChatHeroVoice implements IChatHandler
 	@Override
 	public void handleChat(int type, L2PcInstance activeChar, String target, String text)
 	{
-		if (activeChar.isHero() || activeChar.isGM())
+		if (activeChar.isHero() || activeChar.canOverrideCond(PcCondOverride.CHAT_CONDITIONS))
 		{
 			if (activeChar.isChatBanned() && Util.contains(Config.BAN_CHAT_CHANNELS, type))
 			{
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 03b1c1b107d395d277d49ca870f126debb1ff7af..945b234f323ae4e653ad9d4f072d9fa4b6ff0e12 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
@@ -19,6 +19,7 @@ import com.l2jserver.gameserver.handler.IChatHandler;
 import com.l2jserver.gameserver.instancemanager.MapRegionManager;
 import com.l2jserver.gameserver.model.BlockList;
 import com.l2jserver.gameserver.model.L2World;
+import com.l2jserver.gameserver.model.PcCondOverride;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 import com.l2jserver.gameserver.network.SystemMessageId;
 import com.l2jserver.gameserver.network.serverpackets.CreatureSay;
@@ -51,7 +52,7 @@ public class ChatShout implements IChatHandler
 		
 		L2PcInstance[] pls = L2World.getInstance().getAllPlayersArray();
 		
-		if (Config.DEFAULT_GLOBAL_CHAT.equalsIgnoreCase("on") || (Config.DEFAULT_GLOBAL_CHAT.equalsIgnoreCase("gm") && activeChar.isGM()))
+		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)
@@ -62,7 +63,7 @@ public class ChatShout implements IChatHandler
 		}
 		else if (Config.DEFAULT_GLOBAL_CHAT.equalsIgnoreCase("global"))
 		{
-			if (!activeChar.isGM() && !activeChar.getFloodProtectors().getGlobalChat().tryPerformAction("global chat"))
+			if (!activeChar.canOverrideCond(PcCondOverride.CHAT_CONDITIONS) && !activeChar.getFloodProtectors().getGlobalChat().tryPerformAction("global chat"))
 			{
 				activeChar.sendMessage("Do not spam shout channel.");
 				return;
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/chathandlers/ChatTell.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/chathandlers/ChatTell.java
index f4844ad89990ff0ab5fbcd66e003f8bc986966a0..a717bd2680fa5304a5487b8ce4cf3f9f7c9a184d 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/chathandlers/ChatTell.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/chathandlers/ChatTell.java
@@ -18,6 +18,7 @@ import com.l2jserver.Config;
 import com.l2jserver.gameserver.handler.IChatHandler;
 import com.l2jserver.gameserver.model.BlockList;
 import com.l2jserver.gameserver.model.L2World;
+import com.l2jserver.gameserver.model.PcCondOverride;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 import com.l2jserver.gameserver.network.SystemMessageId;
 import com.l2jserver.gameserver.network.serverpackets.CreatureSay;
@@ -46,7 +47,7 @@ public class ChatTell implements IChatHandler
 			return;
 		}
 		
-		if (Config.JAIL_DISABLE_CHAT && activeChar.isInJail() && !activeChar.isGM())
+		if (Config.JAIL_DISABLE_CHAT && activeChar.isInJail() && !activeChar.canOverrideCond(PcCondOverride.CHAT_CONDITIONS))
 		{
 			activeChar.sendPacket(SystemMessageId.CHATTING_PROHIBITED);
 			return;
@@ -63,7 +64,7 @@ public class ChatTell implements IChatHandler
 		
 		if (receiver != null && !receiver.isSilenceMode(activeChar.getObjectId()))
 		{
-			if (Config.JAIL_DISABLE_CHAT && receiver.isInJail() && !activeChar.isGM())
+			if (Config.JAIL_DISABLE_CHAT && receiver.isInJail() && !activeChar.canOverrideCond(PcCondOverride.CHAT_CONDITIONS))
 			{
 				activeChar.sendMessage("Player is in jail.");
 				return;
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 7bffc7c149e174dcebf3a6f9833046ab9a4bd436..0a5f2052e5623f20e1bbe7ec28748389319896fe 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
@@ -19,6 +19,7 @@ import com.l2jserver.gameserver.handler.IChatHandler;
 import com.l2jserver.gameserver.instancemanager.MapRegionManager;
 import com.l2jserver.gameserver.model.BlockList;
 import com.l2jserver.gameserver.model.L2World;
+import com.l2jserver.gameserver.model.PcCondOverride;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 import com.l2jserver.gameserver.network.SystemMessageId;
 import com.l2jserver.gameserver.network.serverpackets.CreatureSay;
@@ -51,7 +52,7 @@ public class ChatTrade implements IChatHandler
 		
 		L2PcInstance[] pls = L2World.getInstance().getAllPlayersArray();
 		
-		if (Config.DEFAULT_TRADE_CHAT.equalsIgnoreCase("on") || (Config.DEFAULT_TRADE_CHAT.equalsIgnoreCase("gm") && activeChar.isGM()))
+		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)
@@ -62,7 +63,7 @@ public class ChatTrade implements IChatHandler
 		}
 		else if (Config.DEFAULT_TRADE_CHAT.equalsIgnoreCase("global"))
 		{
-			if (!activeChar.isGM() && !activeChar.getFloodProtectors().getGlobalChat().tryPerformAction("global chat"))
+			if (!activeChar.canOverrideCond(PcCondOverride.CHAT_CONDITIONS) && !activeChar.getFloodProtectors().getGlobalChat().tryPerformAction("global chat"))
 			{
 				activeChar.sendMessage("Do not spam trade channel.");
 				return;
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/skillhandlers/Fishing.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/skillhandlers/Fishing.java
index 7bb776eb17d538ffcb05273c0743712159227220..c4ab746a467c60eb858336760e3951d31a64ee89 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/skillhandlers/Fishing.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/skillhandlers/Fishing.java
@@ -19,6 +19,7 @@ import com.l2jserver.gameserver.GeoData;
 import com.l2jserver.gameserver.handler.ISkillHandler;
 import com.l2jserver.gameserver.instancemanager.ZoneManager;
 import com.l2jserver.gameserver.model.L2Object;
+import com.l2jserver.gameserver.model.PcCondOverride;
 import com.l2jserver.gameserver.model.actor.L2Character;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 import com.l2jserver.gameserver.model.itemcontainer.Inventory;
@@ -54,7 +55,7 @@ public class Fishing implements ISkillHandler
 		 * If fishing is disabled, there isn't much point in doing anything
 		 * else, unless you are GM. so this got moved up here, before anything else.
 		 */
-		if (!Config.ALLOWFISHING && !player.isGM())
+		if (!Config.ALLOWFISHING && !player.canOverrideCond(PcCondOverride.SKILL_CONDITIONS))
 		{
 			player.sendMessage("Fishing server is currently offline");
 			return;
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/usercommandhandlers/Escape.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/usercommandhandlers/Escape.java
index c304fe9fd6438477b9fd532f4163ecb9021f1598..4d5e70929d87454f262ada5ab7b27021c1ef2bf5 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/usercommandhandlers/Escape.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/usercommandhandlers/Escape.java
@@ -24,6 +24,7 @@ import com.l2jserver.gameserver.datatables.SkillTable;
 import com.l2jserver.gameserver.handler.IUserCommandHandler;
 import com.l2jserver.gameserver.instancemanager.GrandBossManager;
 import com.l2jserver.gameserver.instancemanager.MapRegionManager;
+import com.l2jserver.gameserver.model.PcCondOverride;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 import com.l2jserver.gameserver.model.entity.TvTEvent;
 import com.l2jserver.gameserver.model.skills.L2Skill;
@@ -69,7 +70,7 @@ public class Escape implements IUserCommandHandler
 			return false;
 		}
 		
-		if (GrandBossManager.getInstance().getZone(activeChar) != null && !activeChar.isGM())
+		if (GrandBossManager.getInstance().getZone(activeChar) != null && !activeChar.canOverrideCond(PcCondOverride.ZONE_CONDITIONS))
 		{
 			activeChar.sendMessage("You may not use an escape command in a Boss Zone.");
 			return false;
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 e615899d057e2255989138e89e828339be0de31f..f7ed2e402030f844f08175636531e45e487ed20f 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
@@ -45,6 +45,7 @@ import com.l2jserver.gameserver.model.L2Object.InstanceType;
 import com.l2jserver.gameserver.model.L2Party;
 import com.l2jserver.gameserver.model.L2Territory;
 import com.l2jserver.gameserver.model.L2World;
+import com.l2jserver.gameserver.model.PcCondOverride;
 import com.l2jserver.gameserver.model.actor.L2Attackable;
 import com.l2jserver.gameserver.model.actor.L2Character;
 import com.l2jserver.gameserver.model.actor.L2Npc;
@@ -413,7 +414,7 @@ public class FinalEmperialTomb extends Quest
 	
 	private boolean checkConditions(L2PcInstance player)
 	{
-		if (debug || player.isGM())
+		if (debug || player.canOverrideCond(PcCondOverride.INSTANCE_CONDITIONS))
 			return true;
 		L2Party party = player.getParty();
 		if (party == null)
@@ -498,7 +499,7 @@ public class FinalEmperialTomb extends Quest
 		//New instance
 		if (!checkConditions(player))
 			return 0;
-		if (!player.isGM() && !player.destroyItemByItemId("QUEST", 8073, 1, player, true))
+		if (!player.canOverrideCond(PcCondOverride.INSTANCE_CONDITIONS) && !player.destroyItemByItemId("QUEST", 8073, 1, player, true))
 			return 0;
 		instanceId = InstanceManager.getInstance().createDynamicInstance(template);
 		//Instance ins = InstanceManager.getInstance().getInstance(instanceId);