diff --git a/pom.xml b/pom.xml
index f5cf68f..9382549 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
 
     <groupId>net.pentlock</groupId>
     <artifactId>ThunderDataEngine</artifactId>
-    <version>0.2.24</version>
+    <version>0.2.25</version>
     <packaging>jar</packaging>
 
     <name>ThunderDataEngine</name>
@@ -70,6 +70,10 @@
             <id>jitpack.io</id>
             <url>https://jitpack.io</url>
         </repository>
+        <repository>
+            <id>betonquest-repo</id>
+            <url>https://betonquest.org/nexus/repository/betonquest/</url>
+        </repository>
     </repositories>
 
     <dependencies>
@@ -97,5 +101,11 @@
             <version>1.0.0</version>
             <scope>provided</scope>
         </dependency>
+        <dependency>
+            <groupId>org.betonquest</groupId>
+            <artifactId>betonquest</artifactId>
+            <version>2.0.0-SNAPSHOT</version>
+            <scope>provided</scope>
+        </dependency>
     </dependencies>
 </project>
diff --git a/src/main/java/net/pentlock/thunderdataengine/ThunderDataEngine.java b/src/main/java/net/pentlock/thunderdataengine/ThunderDataEngine.java
index 6145b94..3c3d9cd 100644
--- a/src/main/java/net/pentlock/thunderdataengine/ThunderDataEngine.java
+++ b/src/main/java/net/pentlock/thunderdataengine/ThunderDataEngine.java
@@ -1,5 +1,6 @@
 package net.pentlock.thunderdataengine;
 
+import net.pentlock.thunderdataengine.beton.*;
 import net.pentlock.thunderdataengine.listeners.PlayerLoginListener;
 import net.pentlock.thunderdataengine.listeners.PlayerLogoutListener;
 import net.pentlock.thunderdataengine.profiles.ThunderPlayer;
@@ -7,6 +8,7 @@
 import net.pentlock.thunderdataengine.utilities.GuildUtil;
 import net.pentlock.thunderdataengine.utilities.HouseUtil;
 import net.pentlock.thunderdataengine.utilities.PlayerUtil;
+import org.betonquest.betonquest.BetonQuest;
 import org.bukkit.Bukkit;
 import org.bukkit.ChatColor;
 import org.bukkit.entity.Player;
@@ -42,6 +44,13 @@ public void onEnable() {
             new PlaceholderRegistry(this).register();
         }
 
+        BetonQuest bq = BetonQuest.getInstance();
+        bq.registerConditions("TCSLevel", LevelCondition.class);
+        bq.registerConditions("PhysicalDefense", PhysicalDefenseCondition.class);
+        bq.registerConditions("ArcheryDefense", ArcheryDefenseCondition.class);
+        bq.registerConditions("PhysicalOffense", PhysicalOffenseCondition.class);
+        bq.registerConditions("ArcheryOffense", ArcheryOffenseCondition.class);
+
         runnableSaveJson();
         initiateFiles();
     }
diff --git a/src/main/java/net/pentlock/thunderdataengine/beton/ArcheryDefenseCondition.java b/src/main/java/net/pentlock/thunderdataengine/beton/ArcheryDefenseCondition.java
new file mode 100644
index 0000000..ce06e46
--- /dev/null
+++ b/src/main/java/net/pentlock/thunderdataengine/beton/ArcheryDefenseCondition.java
@@ -0,0 +1,30 @@
+package net.pentlock.thunderdataengine.beton;
+
+import net.pentlock.thunderdataengine.profiles.ThunderPlayer;
+import net.pentlock.thunderdataengine.utilities.PlayerUtil;
+import org.betonquest.betonquest.Instruction;
+import org.betonquest.betonquest.api.Condition;
+import org.betonquest.betonquest.exceptions.InstructionParseException;
+import org.betonquest.betonquest.exceptions.QuestRuntimeException;
+import org.betonquest.betonquest.utils.PlayerConverter;
+import org.bukkit.entity.Player;
+
+public class ArcheryDefenseCondition extends Condition {
+    private final int defense;
+
+    public ArcheryDefenseCondition(Instruction instruction, boolean forceSync) throws InstructionParseException {
+        super(instruction, forceSync);
+        this.defense = instruction.getInt();
+    }
+
+    @Override
+    protected Boolean execute(String s) throws QuestRuntimeException {
+        Player player = PlayerConverter.getPlayer(s);
+        ThunderPlayer thunderPlayer = PlayerUtil.findPlayer(player.getUniqueId());
+        if (thunderPlayer != null) {
+            return defense >= thunderPlayer.getPhysicalDefense();
+        } else {
+            return null;
+        }
+    }
+}
diff --git a/src/main/java/net/pentlock/thunderdataengine/beton/ArcheryOffenseCondition.java b/src/main/java/net/pentlock/thunderdataengine/beton/ArcheryOffenseCondition.java
new file mode 100644
index 0000000..5f70a43
--- /dev/null
+++ b/src/main/java/net/pentlock/thunderdataengine/beton/ArcheryOffenseCondition.java
@@ -0,0 +1,30 @@
+package net.pentlock.thunderdataengine.beton;
+
+import net.pentlock.thunderdataengine.profiles.ThunderPlayer;
+import net.pentlock.thunderdataengine.utilities.PlayerUtil;
+import org.betonquest.betonquest.Instruction;
+import org.betonquest.betonquest.api.Condition;
+import org.betonquest.betonquest.exceptions.InstructionParseException;
+import org.betonquest.betonquest.exceptions.QuestRuntimeException;
+import org.betonquest.betonquest.utils.PlayerConverter;
+import org.bukkit.entity.Player;
+
+public class ArcheryOffenseCondition extends Condition {
+    private final int offense;
+
+    public ArcheryOffenseCondition(Instruction instruction, boolean forceSync) throws InstructionParseException {
+        super(instruction, forceSync);
+        this.offense = instruction.getInt();
+    }
+
+    @Override
+    protected Boolean execute(String s) throws QuestRuntimeException {
+        Player player = PlayerConverter.getPlayer(s);
+        ThunderPlayer thunderPlayer = PlayerUtil.findPlayer(player.getUniqueId());
+        if (thunderPlayer != null) {
+            return offense >= thunderPlayer.getArcheryOffense();
+        } else {
+            return null;
+        }
+    }
+}
diff --git a/src/main/java/net/pentlock/thunderdataengine/beton/LevelCondition.java b/src/main/java/net/pentlock/thunderdataengine/beton/LevelCondition.java
new file mode 100644
index 0000000..6b37925
--- /dev/null
+++ b/src/main/java/net/pentlock/thunderdataengine/beton/LevelCondition.java
@@ -0,0 +1,30 @@
+package net.pentlock.thunderdataengine.beton;
+
+import net.pentlock.thunderdataengine.profiles.ThunderPlayer;
+import net.pentlock.thunderdataengine.utilities.PlayerUtil;
+import org.betonquest.betonquest.Instruction;
+import org.betonquest.betonquest.api.Condition;
+import org.betonquest.betonquest.exceptions.InstructionParseException;
+import org.betonquest.betonquest.exceptions.QuestRuntimeException;
+import org.betonquest.betonquest.utils.PlayerConverter;
+import org.bukkit.entity.Player;
+
+public class LevelCondition extends Condition {
+    private final int required;
+
+    public LevelCondition(Instruction instruction, boolean forceSync) throws InstructionParseException {
+        super(instruction, forceSync);
+        this.required = instruction.getInt();
+    }
+
+    @Override
+    protected Boolean execute(String s) throws QuestRuntimeException {
+        Player player = PlayerConverter.getPlayer(s);
+        ThunderPlayer thunderPlayer = PlayerUtil.findPlayer(player.getUniqueId());
+        if (thunderPlayer != null) {
+            return required >= thunderPlayer.getLevel();
+        } else {
+            return null;
+        }
+    }
+}
diff --git a/src/main/java/net/pentlock/thunderdataengine/beton/PhysicalDefenseCondition.java b/src/main/java/net/pentlock/thunderdataengine/beton/PhysicalDefenseCondition.java
new file mode 100644
index 0000000..8a1dbea
--- /dev/null
+++ b/src/main/java/net/pentlock/thunderdataengine/beton/PhysicalDefenseCondition.java
@@ -0,0 +1,30 @@
+package net.pentlock.thunderdataengine.beton;
+
+import net.pentlock.thunderdataengine.profiles.ThunderPlayer;
+import net.pentlock.thunderdataengine.utilities.PlayerUtil;
+import org.betonquest.betonquest.Instruction;
+import org.betonquest.betonquest.api.Condition;
+import org.betonquest.betonquest.exceptions.InstructionParseException;
+import org.betonquest.betonquest.exceptions.QuestRuntimeException;
+import org.betonquest.betonquest.utils.PlayerConverter;
+import org.bukkit.entity.Player;
+
+public class PhysicalDefenseCondition extends Condition {
+    private final int defense;
+
+    public PhysicalDefenseCondition(Instruction instruction, boolean forceSync) throws InstructionParseException {
+        super(instruction, forceSync);
+        this.defense = instruction.getInt();
+    }
+
+    @Override
+    protected Boolean execute(String s) throws QuestRuntimeException {
+        Player player = PlayerConverter.getPlayer(s);
+        ThunderPlayer thunderPlayer = PlayerUtil.findPlayer(player.getUniqueId());
+        if (thunderPlayer != null) {
+            return defense >= thunderPlayer.getPhysicalDefense();
+        } else {
+            return null;
+        }
+    }
+}
diff --git a/src/main/java/net/pentlock/thunderdataengine/beton/PhysicalOffenseCondition.java b/src/main/java/net/pentlock/thunderdataengine/beton/PhysicalOffenseCondition.java
new file mode 100644
index 0000000..e8aa108
--- /dev/null
+++ b/src/main/java/net/pentlock/thunderdataengine/beton/PhysicalOffenseCondition.java
@@ -0,0 +1,29 @@
+package net.pentlock.thunderdataengine.beton;
+
+import net.pentlock.thunderdataengine.profiles.ThunderPlayer;
+import net.pentlock.thunderdataengine.utilities.PlayerUtil;
+import org.betonquest.betonquest.Instruction;
+import org.betonquest.betonquest.api.Condition;
+import org.betonquest.betonquest.exceptions.InstructionParseException;
+import org.betonquest.betonquest.exceptions.QuestRuntimeException;
+import org.betonquest.betonquest.utils.PlayerConverter;
+import org.bukkit.entity.Player;
+
+public class PhysicalOffenseCondition extends Condition {
+    private final int offense;
+    public PhysicalOffenseCondition(Instruction instruction, boolean forceSync) throws InstructionParseException {
+        super(instruction, forceSync);
+        this.offense = instruction.getInt();
+    }
+
+    @Override
+    protected Boolean execute(String s) throws QuestRuntimeException {
+        Player player = PlayerConverter.getPlayer(s);
+        ThunderPlayer thunderPlayer = PlayerUtil.findPlayer(player.getUniqueId());
+        if (thunderPlayer != null) {
+            return offense >= thunderPlayer.getPhysicalOffense();
+        } else {
+            return null;
+        }
+    }
+}