diff --git a/src/main/java/pw/kaboom/extras/modules/block/BlockPhysics.java b/src/main/java/pw/kaboom/extras/modules/block/BlockPhysics.java
index c7dc005..f6f5405 100644
--- a/src/main/java/pw/kaboom/extras/modules/block/BlockPhysics.java
+++ b/src/main/java/pw/kaboom/extras/modules/block/BlockPhysics.java
@@ -5,6 +5,7 @@ import org.bukkit.Material;
 import org.bukkit.entity.EntityType;
 import org.bukkit.event.EventHandler;
 import org.bukkit.event.Listener;
+import org.bukkit.event.block.BlockFormEvent;
 import org.bukkit.event.block.BlockPhysicsEvent;
 import org.bukkit.event.block.BlockRedstoneEvent;
 import org.bukkit.event.entity.EntityChangeBlockEvent;
@@ -12,7 +13,7 @@ import org.bukkit.scheduler.BukkitScheduler;
 import pw.kaboom.extras.Main;
 
 public final class BlockPhysics implements Listener {
-
+    private static final double MINIMUM_TPS = 10;
     // This class contains code to prevent large areas of non-solid blocks
     // from crashing the server
     private static double tps = 20;
@@ -37,15 +38,20 @@ public final class BlockPhysics implements Listener {
 
     @EventHandler
     void onBlockRedstone(final BlockRedstoneEvent event) {
-        final int maxTps = 10;
-
-        if (tps < maxTps) {
+        if (tps < MINIMUM_TPS) {
             event.setNewCurrent(0);
         }
     }
 
     private int fallingBlockCount;
 
+    @EventHandler
+    void onBlockForm(final BlockFormEvent event) {
+        if (tps < MINIMUM_TPS) {
+            event.setCancelled(true);
+        }
+    }
+    
     @EventHandler
     void onEntityChangeBlock(final EntityChangeBlockEvent event) {
         if (event.getEntityType() == EntityType.FALLING_BLOCK