diff --git a/changelog.txt b/changelog.txt
index 05b5acf3..a49f7dad 100644
--- a/changelog.txt
+++ b/changelog.txt
@@ -6,12 +6,14 @@ Version 3.0.4
 	- Experienced
 	- Body Builder
 	
+- Fixed the two rituals involving Living Armour so that they are properly activatable using a Weak Activation Crystal.
+	
 - Fixed NPE in Blood Altar when trying to interact with the contained Fluids
 - Also fixed bug that prevented the Altar from accepting fluids piped in as inputs.
 - Fixed a client-side crash when right clicking the ground with a Lava Crystal when on a server - now properly makes a fire without consuming the client.
 
 - Added new alchemy arrays:
-	- Two arrays, which changes the current daylight cycle to day and night.
+	- Two arrays, which changes the current daylight cycle to day and night. Recipes are temp.
  
 - Fixed the JEI so that it no longer ouputs an error when loading Alchemy Array recipes without a crafting output.
 - Fixed crash with Actually Additions
diff --git a/src/generated/resources/.cache/cache b/src/generated/resources/.cache/cache
index 124de597..acdfc8f0 100644
--- a/src/generated/resources/.cache/cache
+++ b/src/generated/resources/.cache/cache
@@ -58,7 +58,7 @@ e6d9cf699667aaa47efff37b2b033895dee29c15 assets/bloodmagic/blockstates/waterritu
 42f26f715bddd16c069f9b51e3767b36477c8908 assets/bloodmagic/blockstates/woodtilepath.json
 3c6ce233dae6c1307d9016406c324bbe844b4e1e assets/bloodmagic/blockstates/wornstonebrickpath.json
 d59655f12d1724b73b77c373fb6864fcff69db12 assets/bloodmagic/blockstates/wornstonetilepath.json
-111dd088560215d453016de8c3324fa62d0f205a assets/bloodmagic/lang/en_us.json
+62b19f0ba7a22f2a7b80588b82884013885dd74b assets/bloodmagic/lang/en_us.json
 34445195b9f2459475cde53454bc8e37d32865d7 assets/bloodmagic/models/block/accelerationrune.json
 bcdbccc49d4509571be6988762ab87126275a4c8 assets/bloodmagic/models/block/airritualstone.json
 adf6c0b1e25451609486dc8c8cfbd9cf0f8c67f4 assets/bloodmagic/models/block/alchemicalreactionchamber.json
@@ -521,7 +521,7 @@ a343604b5a75e1b3810df97d024813fb041cffb6 data/bloodmagic/recipes/alchemytable/ba
 f86432e8fef0d6e140e27f575063704b7e843d75 data/bloodmagic/recipes/alchemytable/bread.json
 e50009fa724173c2dcb4fab49b4f029039f69bf8 data/bloodmagic/recipes/alchemytable/clay_from_sand.json
 96cc66cdb9c5f786eaa899e1fbdd38144e44a0fe data/bloodmagic/recipes/alchemytable/explosive_powder.json
-ecd27b8222af8f0608e61cdc4278aeb6d88d14b4 data/bloodmagic/recipes/alchemytable/flint_from_gravel.json
+1fa964af556af521d8eaf1a686befdd9d69c63af data/bloodmagic/recipes/alchemytable/flint_from_gravel.json
 aff95e4322f9e8daaffc2337964f95ab6f9d631c data/bloodmagic/recipes/alchemytable/grass_block.json
 540edca1f507d366e55887b4429a9952c00f4060 data/bloodmagic/recipes/alchemytable/gunpowder.json
 0657a60976678fdfbdf0b8ee2c178502520d194a data/bloodmagic/recipes/alchemytable/leather_from_flesh.json
@@ -636,6 +636,7 @@ d699e777c72a5f61c4e6cdfea8705628e1c2b855 data/bloodmagic/recipes/soul_forge.json
 f4763a58a8f471ec1aaa997cbd36eac8c7d51a12 data/bloodmagic/recipes/soulforge/arcaneashes.json
 8b64af8453c60b6b1ae55bd0dd1a68fe95e8ba19 data/bloodmagic/recipes/soulforge/commontartaricgem.json
 659db62f8fb71c792b00d6409b1c9a2f1ca96048 data/bloodmagic/recipes/soulforge/corrosive_crystal_block.json
+5ad148899ed46134ae0572b220736b9d38004980 data/bloodmagic/recipes/soulforge/deforester_charge.json
 2c90f1da43a79e61d2b6b09c012d08f53b133264 data/bloodmagic/recipes/soulforge/demon_crucible.json
 bc4ad3b44720a3f7363ef53027b4aae35622e7c1 data/bloodmagic/recipes/soulforge/demon_crystallizer.json
 759279a190f3bc74e162dedf0f5d311267e06fbc data/bloodmagic/recipes/soulforge/destructive_crystal_block.json
@@ -660,6 +661,7 @@ a222d09abf1ea61feb684f2ac23d011c2034f526 data/bloodmagic/recipes/soulforge/reage
 6b47831e5c2f3033b6706706d810fa96d8abebd6 data/bloodmagic/recipes/soulforge/sentientscythe.json
 6dcced40126f950b85f868aa04c77e90b71b69f2 data/bloodmagic/recipes/soulforge/sentientshovel.json
 7e281841a2953c1284d332c2bbf75097f8128241 data/bloodmagic/recipes/soulforge/sentientsword.json
+dc977e9d98fcba66fbcce3f6c31a746db5ed60f5 data/bloodmagic/recipes/soulforge/shaped_charge.json
 c4102a1573e632d0b9f894353b0d522a51a7c65e data/bloodmagic/recipes/soulforge/steadfast_crystal_block.json
 3aa852edda803a2225ebe53d2daa55bd46b0a1b9 data/bloodmagic/recipes/soulforge/vengeful_crystal_block.json
 d7d993bb729284a5201c164ea81fbe1d8e4e4750 data/bloodmagic/recipes/weak_activation_crystal.json
diff --git a/src/generated/resources/assets/bloodmagic/lang/en_us.json b/src/generated/resources/assets/bloodmagic/lang/en_us.json
index ddb3f633..831b959a 100644
--- a/src/generated/resources/assets/bloodmagic/lang/en_us.json
+++ b/src/generated/resources/assets/bloodmagic/lang/en_us.json
@@ -10,6 +10,7 @@
   "block.bloodmagic.bloodstonebrick": "Bloodstone Brick",
   "block.bloodmagic.chargingrune": "Charging Rune",
   "block.bloodmagic.corrosivedemoncrystal": "Corrosive Crystal Cluster",
+  "block.bloodmagic.deforester_charge": "Deforester Charge",
   "block.bloodmagic.demoncrucible": "Demon Crucible",
   "block.bloodmagic.demoncrystallizer": "Demon Crystallizer",
   "block.bloodmagic.destructivedemoncrystal": "Destructive Crystal Cluster",
@@ -48,6 +49,7 @@
   "block.bloodmagic.ritualstone": "Ritual Stone",
   "block.bloodmagic.sacrificerune": "Rune of Sacrifice",
   "block.bloodmagic.selfsacrificerune": "Rune of Self Sacrifice",
+  "block.bloodmagic.shaped_charge": "Shaped Charge",
   "block.bloodmagic.soulforge": "Hellfire Forge",
   "block.bloodmagic.speedrune": "Speed Rune",
   "block.bloodmagic.steadfastdemoncrystal": "Steadfast Crystal Cluster",
diff --git a/src/generated/resources/data/bloodmagic/recipes/alchemytable/flint_from_gravel.json b/src/generated/resources/data/bloodmagic/recipes/alchemytable/flint_from_gravel.json
index cbbcce43..ffe0ce43 100644
--- a/src/generated/resources/data/bloodmagic/recipes/alchemytable/flint_from_gravel.json
+++ b/src/generated/resources/data/bloodmagic/recipes/alchemytable/flint_from_gravel.json
@@ -9,7 +9,8 @@
     }
   ],
   "output": {
-    "item": "minecraft:flint"
+    "item": "minecraft:flint",
+    "count": 2
   },
   "syphon": 50,
   "ticks": 20,
diff --git a/src/generated/resources/data/bloodmagic/recipes/soulforge/deforester_charge.json b/src/generated/resources/data/bloodmagic/recipes/soulforge/deforester_charge.json
new file mode 100644
index 00000000..b8478f16
--- /dev/null
+++ b/src/generated/resources/data/bloodmagic/recipes/soulforge/deforester_charge.json
@@ -0,0 +1,21 @@
+{
+  "type": "bloodmagic:soulforge",
+  "input0": {
+    "tag": "forge:cobblestone"
+  },
+  "input1": {
+    "item": "minecraft:charcoal"
+  },
+  "input2": {
+    "tag": "minecraft:logs"
+  },
+  "input3": {
+    "tag": "minecraft:planks"
+  },
+  "output": {
+    "item": "bloodmagic:deforester_charge",
+    "count": 8
+  },
+  "minimumDrain": 10.0,
+  "drain": 0.5
+}
\ No newline at end of file
diff --git a/src/generated/resources/data/bloodmagic/recipes/soulforge/shaped_charge.json b/src/generated/resources/data/bloodmagic/recipes/soulforge/shaped_charge.json
new file mode 100644
index 00000000..b7c7fa04
--- /dev/null
+++ b/src/generated/resources/data/bloodmagic/recipes/soulforge/shaped_charge.json
@@ -0,0 +1,21 @@
+{
+  "type": "bloodmagic:soulforge",
+  "input0": {
+    "tag": "forge:cobblestone"
+  },
+  "input1": {
+    "item": "minecraft:charcoal"
+  },
+  "input2": {
+    "tag": "forge:sand"
+  },
+  "input3": {
+    "tag": "forge:stone"
+  },
+  "output": {
+    "item": "bloodmagic:shaped_charge",
+    "count": 8
+  },
+  "minimumDrain": 10.0,
+  "drain": 0.5
+}
\ No newline at end of file
diff --git a/src/main/java/wayoftime/bloodmagic/common/data/GeneratorLanguage.java b/src/main/java/wayoftime/bloodmagic/common/data/GeneratorLanguage.java
index a5f6c71a..9eaf3d0c 100644
--- a/src/main/java/wayoftime/bloodmagic/common/data/GeneratorLanguage.java
+++ b/src/main/java/wayoftime/bloodmagic/common/data/GeneratorLanguage.java
@@ -422,6 +422,9 @@ public class GeneratorLanguage extends LanguageProvider
 
 		addBlock(BloodMagicBlocks.DUNGEON_ORE, "Demonite");
 
+		addBlock(BloodMagicBlocks.SHAPED_CHARGE, "Shaped Charge");
+		addBlock(BloodMagicBlocks.DEFORESTER_CHARGE, "Deforester Charge");
+
 		// Item names
 		addItem(BloodMagicItems.WEAK_BLOOD_ORB, "Weak Blood Orb");
 		addItem(BloodMagicItems.APPRENTICE_BLOOD_ORB, "Apprentice Blood Orb");
diff --git a/src/main/java/wayoftime/bloodmagic/common/item/ItemSentientScythe.java b/src/main/java/wayoftime/bloodmagic/common/item/ItemSentientScythe.java
index e6d3810d..e4775974 100644
--- a/src/main/java/wayoftime/bloodmagic/common/item/ItemSentientScythe.java
+++ b/src/main/java/wayoftime/bloodmagic/common/item/ItemSentientScythe.java
@@ -518,38 +518,42 @@ public class ItemSentientScythe extends HoeItem implements IDemonWillWeapon, IMu
 	@Override
 	public boolean hitEntity(ItemStack stack, LivingEntity target, LivingEntity attacker)
 	{
-		if (super.hitEntity(stack, target, attacker))
+		stack.damageItem(1, attacker, (entity) -> {
+			entity.sendBreakAnimation(EquipmentSlotType.MAINHAND);
+		});
+
+//		if (super.hitEntity(stack, target, attacker))
+//		{
+		if (attacker instanceof PlayerEntity)
 		{
-			if (attacker instanceof PlayerEntity)
+			UUID id = attacker.getUniqueID();
+
+			PlayerEntity attackerPlayer = (PlayerEntity) attacker;
+
+//			System.out.println("Hit map: " + hitMap.containsKey(id));
+
+			if (hitMap.containsKey(id) && hitMap.get(id))
 			{
-				UUID id = attacker.getUniqueID();
-
-				PlayerEntity attackerPlayer = (PlayerEntity) attacker;
-
-				System.out.println("Hit map: " + hitMap.containsKey(id));
-
-				if (hitMap.containsKey(id) && hitMap.get(id))
-				{
-					EnumDemonWillType type = this.getCurrentType(stack);
-					double will = PlayerDemonWillHandler.getTotalDemonWill(type, attackerPlayer);
-					int willBracket = this.getLevel(stack, will);
-					applyEffectToEntity(type, willBracket, target, attackerPlayer);
-				} else
-				{
-					this.recalculatePowers(stack, attackerPlayer.getEntityWorld(), attackerPlayer);
-					EnumDemonWillType type = this.getCurrentType(stack);
-					double will = PlayerDemonWillHandler.getTotalDemonWill(type, attackerPlayer);
-					int willBracket = this.getLevel(stack, will);
-					hitMap.put(id, true);
-					this.attackEntitiesInAreaExcludingEntity(stack, attackerPlayer, type, willBracket, target);
-					hitMap.remove(id);
-				}
+				EnumDemonWillType type = this.getCurrentType(stack);
+				double will = PlayerDemonWillHandler.getTotalDemonWill(type, attackerPlayer);
+				int willBracket = this.getLevel(stack, will);
+				applyEffectToEntity(type, willBracket, target, attackerPlayer);
+			} else
+			{
+				this.recalculatePowers(stack, attackerPlayer.getEntityWorld(), attackerPlayer);
+				EnumDemonWillType type = this.getCurrentType(stack);
+				double will = PlayerDemonWillHandler.getTotalDemonWill(type, attackerPlayer);
+				int willBracket = this.getLevel(stack, will);
+				hitMap.put(id, true);
+				this.attackEntitiesInAreaExcludingEntity(stack, attackerPlayer, type, willBracket, target);
+				hitMap.remove(id);
 			}
-
-			return true;
 		}
 
-		return false;
+		return true;
+//		}
+
+//		return false;
 	}
 
 	@Override
diff --git a/src/main/java/wayoftime/bloodmagic/common/recipe/AlchemyTableRecipeProvider.java b/src/main/java/wayoftime/bloodmagic/common/recipe/AlchemyTableRecipeProvider.java
index 44e5d0f0..c9bea4bd 100644
--- a/src/main/java/wayoftime/bloodmagic/common/recipe/AlchemyTableRecipeProvider.java
+++ b/src/main/java/wayoftime/bloodmagic/common/recipe/AlchemyTableRecipeProvider.java
@@ -21,7 +21,7 @@ public class AlchemyTableRecipeProvider implements ISubRecipeProvider
 	{
 		String basePath = "alchemytable/";
 		AlchemyTableRecipeBuilder.alchemyTable(new ItemStack(Items.STRING, 4), 100, 100, 0).addIngredient(Ingredient.fromTag(ItemTags.WOOL)).addIngredient(Ingredient.fromItems(Items.FLINT)).build(consumer, BloodMagic.rl(basePath + "string"));
-		AlchemyTableRecipeBuilder.alchemyTable(new ItemStack(Items.FLINT), 50, 20, 0).addIngredient(Ingredient.fromItems(Items.GRAVEL)).addIngredient(Ingredient.fromItems(Items.FLINT)).build(consumer, BloodMagic.rl(basePath + "flint_from_gravel"));
+		AlchemyTableRecipeBuilder.alchemyTable(new ItemStack(Items.FLINT, 2), 50, 20, 0).addIngredient(Ingredient.fromItems(Items.GRAVEL)).addIngredient(Ingredient.fromItems(Items.FLINT)).build(consumer, BloodMagic.rl(basePath + "flint_from_gravel"));
 		AlchemyTableRecipeBuilder.alchemyTable(new ItemStack(Items.LEATHER, 4), 100, 200, 1).addIngredient(Ingredient.fromItems(Items.ROTTEN_FLESH)).addIngredient(Ingredient.fromItems(Items.ROTTEN_FLESH)).addIngredient(Ingredient.fromItems(Items.ROTTEN_FLESH)).addIngredient(Ingredient.fromItems(Items.ROTTEN_FLESH)).addIngredient(Ingredient.fromItems(Items.FLINT)).addIngredient(Ingredient.fromItems(Items.WATER_BUCKET)).build(consumer, BloodMagic.rl(basePath + "leather_from_flesh"));
 		AlchemyTableRecipeBuilder.alchemyTable(new ItemStack(BloodMagicItems.EXPLOSIVE_POWDER.get()), 500, 200, 1).addIngredient(Ingredient.fromTag(Tags.Items.GUNPOWDER)).addIngredient(Ingredient.fromTag(Tags.Items.GUNPOWDER)).addIngredient(Ingredient.fromTag(BloodMagicTags.DUST_COAL)).build(consumer, BloodMagic.rl(basePath + "explosive_powder"));
 		AlchemyTableRecipeBuilder.alchemyTable(new ItemStack(Items.BREAD), 100, 200, 1).addIngredient(Ingredient.fromTag(Tags.Items.CROPS_WHEAT)).addIngredient(Ingredient.fromItems(Items.SUGAR)).build(consumer, BloodMagic.rl(basePath + "bread"));
diff --git a/src/main/java/wayoftime/bloodmagic/common/recipe/TartaricForgeRecipeProvider.java b/src/main/java/wayoftime/bloodmagic/common/recipe/TartaricForgeRecipeProvider.java
index d7f6c862..70868e4f 100644
--- a/src/main/java/wayoftime/bloodmagic/common/recipe/TartaricForgeRecipeProvider.java
+++ b/src/main/java/wayoftime/bloodmagic/common/recipe/TartaricForgeRecipeProvider.java
@@ -55,6 +55,9 @@ public class TartaricForgeRecipeProvider implements ISubRecipeProvider
 		TartaricForgeRecipeBuilder.tartaricForge(new ItemStack(BloodMagicBlocks.DESTRUCTIVE_CRYSTAL_BLOCK.get()), 1200, 100, Ingredient.fromItems(BloodMagicItems.DESTRUCTIVE_CRYSTAL.get()), Ingredient.fromItems(BloodMagicItems.DESTRUCTIVE_CRYSTAL.get()), Ingredient.fromItems(BloodMagicItems.DESTRUCTIVE_CRYSTAL.get()), Ingredient.fromItems(BloodMagicItems.DESTRUCTIVE_CRYSTAL.get())).build(consumer, BloodMagic.rl(basePath + "destructive_crystal_block"));
 		TartaricForgeRecipeBuilder.tartaricForge(new ItemStack(BloodMagicBlocks.VENGEFUL_CRYSTAL_BLOCK.get()), 1200, 100, Ingredient.fromItems(BloodMagicItems.VENGEFUL_CRYSTAL.get()), Ingredient.fromItems(BloodMagicItems.VENGEFUL_CRYSTAL.get()), Ingredient.fromItems(BloodMagicItems.VENGEFUL_CRYSTAL.get()), Ingredient.fromItems(BloodMagicItems.VENGEFUL_CRYSTAL.get())).build(consumer, BloodMagic.rl(basePath + "vengeful_crystal_block"));
 		TartaricForgeRecipeBuilder.tartaricForge(new ItemStack(BloodMagicBlocks.STEADFAST_CRYSTAL_BLOCK.get()), 1200, 100, Ingredient.fromItems(BloodMagicItems.STEADFAST_CRYSTAL.get()), Ingredient.fromItems(BloodMagicItems.STEADFAST_CRYSTAL.get()), Ingredient.fromItems(BloodMagicItems.STEADFAST_CRYSTAL.get()), Ingredient.fromItems(BloodMagicItems.STEADFAST_CRYSTAL.get())).build(consumer, BloodMagic.rl(basePath + "steadfast_crystal_block"));
+
+		TartaricForgeRecipeBuilder.tartaricForge(new ItemStack(BloodMagicBlocks.SHAPED_CHARGE.get(), 8), 10, 0.5, Ingredient.fromTag(Tags.Items.COBBLESTONE), Ingredient.fromItems(Items.CHARCOAL), Ingredient.fromTag(Tags.Items.SAND), Ingredient.fromTag(Tags.Items.STONE)).build(consumer, BloodMagic.rl(basePath + "shaped_charge"));
+		TartaricForgeRecipeBuilder.tartaricForge(new ItemStack(BloodMagicBlocks.DEFORESTER_CHARGE.get(), 8), 10, 0.5, Ingredient.fromTag(Tags.Items.COBBLESTONE), Ingredient.fromItems(Items.CHARCOAL), Ingredient.fromTag(ItemTags.LOGS), Ingredient.fromTag(ItemTags.PLANKS)).build(consumer, BloodMagic.rl(basePath + "deforester_charge"));
 	}
 
 }
diff --git a/src/main/java/wayoftime/bloodmagic/core/living/LivingUtil.java b/src/main/java/wayoftime/bloodmagic/core/living/LivingUtil.java
index 9df87d2a..a9824c5a 100644
--- a/src/main/java/wayoftime/bloodmagic/core/living/LivingUtil.java
+++ b/src/main/java/wayoftime/bloodmagic/core/living/LivingUtil.java
@@ -50,14 +50,23 @@ public class LivingUtil
 			if (currentPoints >= stats.getMaxPoints())
 				return stats;
 
+			int currentPointCost = upgrade.getLevelCost(upgrade.getLevel((int) currentExperience));
 			int nextPointCost = upgrade.getLevelCost(upgrade.getLevel((int) currentExperience) + 1);
+
+//			System.out.println("Current point cost: " + currentPointCost + ", Next point cost: " + nextPointCost);
 			// If there's no more levels in this upgrade, we don't want to add experience
 			if (nextPointCost == -1)
 				return stats;
 
+			int pointDif = nextPointCost - currentPointCost;
+			if (pointDif < 0)
+			{
+				return stats;
+			}
+
 			// If applying this new level will go over our cap, we don't want to add
 			// experience
-			if (currentPoints + nextPointCost > stats.getMaxPoints())
+			if (currentPoints + pointDif > stats.getMaxPoints())
 				return stats;
 		}
 
diff --git a/src/main/java/wayoftime/bloodmagic/ritual/types/RitualArmourEvolve.java b/src/main/java/wayoftime/bloodmagic/ritual/types/RitualArmourEvolve.java
index c850b3d2..477f6704 100644
--- a/src/main/java/wayoftime/bloodmagic/ritual/types/RitualArmourEvolve.java
+++ b/src/main/java/wayoftime/bloodmagic/ritual/types/RitualArmourEvolve.java
@@ -27,7 +27,7 @@ public class RitualArmourEvolve extends Ritual
 
 	public RitualArmourEvolve()
 	{
-		super("ritualArmourEvolve", 2, 50000, "ritual." + BloodMagic.MODID + ".armourEvolveRitual");
+		super("ritualArmourEvolve", 0, 50000, "ritual." + BloodMagic.MODID + ".armourEvolveRitual");
 		addBlockRange(CHECK_RANGE, new AreaDescriptor.Rectangle(new BlockPos(0, 1, 0), 1, 2, 1));
 	}
 
diff --git a/src/main/java/wayoftime/bloodmagic/ritual/types/RitualUpgradeRemove.java b/src/main/java/wayoftime/bloodmagic/ritual/types/RitualUpgradeRemove.java
index 3d283ead..a0b15e0a 100644
--- a/src/main/java/wayoftime/bloodmagic/ritual/types/RitualUpgradeRemove.java
+++ b/src/main/java/wayoftime/bloodmagic/ritual/types/RitualUpgradeRemove.java
@@ -33,7 +33,7 @@ public class RitualUpgradeRemove extends Ritual
 
 	public RitualUpgradeRemove()
 	{
-		super("ritualUpgradeRemove", 2, 25000, "ritual." + BloodMagic.MODID + ".upgradeRemoveRitual");
+		super("ritualUpgradeRemove", 0, 25000, "ritual." + BloodMagic.MODID + ".upgradeRemoveRitual");
 		addBlockRange(CHECK_RANGE, new AreaDescriptor.Rectangle(new BlockPos(0, 1, 0), 1, 2, 1));
 	}
 
diff --git a/src/main/java/wayoftime/bloodmagic/structures/DungeonStructure.java b/src/main/java/wayoftime/bloodmagic/structures/DungeonStructure.java
index d041243c..4ecb12d4 100644
--- a/src/main/java/wayoftime/bloodmagic/structures/DungeonStructure.java
+++ b/src/main/java/wayoftime/bloodmagic/structures/DungeonStructure.java
@@ -22,7 +22,6 @@ public class DungeonStructure
 
 	public boolean placeStructureAtPosition(Random rand, PlacementSettings settings, ServerWorld world, BlockPos pos)
 	{
-
 		if (pos == null)
 			return false;
 
diff --git a/src/main/java/wayoftime/bloodmagic/tile/TileShapedExplosive.java b/src/main/java/wayoftime/bloodmagic/tile/TileShapedExplosive.java
index 5f9809a9..b11a1524 100644
--- a/src/main/java/wayoftime/bloodmagic/tile/TileShapedExplosive.java
+++ b/src/main/java/wayoftime/bloodmagic/tile/TileShapedExplosive.java
@@ -122,7 +122,7 @@ public class TileShapedExplosive extends TileTicking
 
 						BlockState blockstate = this.world.getBlockState(blockpos);
 						Block block = blockstate.getBlock();
-						if (!blockstate.isAir(this.world, blockpos))
+						if (!blockstate.isAir(this.world, blockpos) && blockstate.getBlockHardness(world, blockpos) != -1.0F)
 						{
 							BlockPos blockpos1 = blockpos.toImmutable();
 //							this.world.getProfiler().startSection("explosion_blocks");
diff --git a/src/main/resources/data/bloodmagic/structures/dungeon/pavilion/3x3_tnt.nbt b/src/main/resources/data/bloodmagic/structures/dungeon/pavilion/3x3_tnt.nbt
new file mode 100644
index 00000000..b3d28725
Binary files /dev/null and b/src/main/resources/data/bloodmagic/structures/dungeon/pavilion/3x3_tnt.nbt differ
diff --git a/src/main/resources/data/bloodmagic/structures/dungeon/pavilion/test.nbt b/src/main/resources/data/bloodmagic/structures/dungeon/pavilion/test.nbt
new file mode 100644
index 00000000..2883b7ac
Binary files /dev/null and b/src/main/resources/data/bloodmagic/structures/dungeon/pavilion/test.nbt differ
diff --git a/src/main/resources/data/bloodmagic/structures/dungeon/pavilion/test2.nbt b/src/main/resources/data/bloodmagic/structures/dungeon/pavilion/test2.nbt
new file mode 100644
index 00000000..60931552
Binary files /dev/null and b/src/main/resources/data/bloodmagic/structures/dungeon/pavilion/test2.nbt differ