diff --git a/src/p_mobj.c b/src/p_mobj.c
index e8461957fa3e851587e1b1eba3afc9b0a5e14abc..713a4d4764baa9cb7cf65f4ac1034c4b3768ca10 100644
--- a/src/p_mobj.c
+++ b/src/p_mobj.c
@@ -7977,15 +7977,18 @@ static void P_MobjSceneryThink(mobj_t *mobj)
 		mobj->x = mobj->extravalue1 + P_ReturnThrustX(mobj, mobj->movedir, mobj->cvmem*mobj->scale);
 		mobj->y = mobj->extravalue2 + P_ReturnThrustY(mobj, mobj->movedir, mobj->cvmem*mobj->scale);
 		P_SetThingPosition(mobj);
-		if ((--mobj->fuse) < 6)
-		{
-			if (!mobj->fuse)
+		
+		// :amybruh:
+		if (!mobj->fuse)
 			{
-				P_RemoveMobj(mobj);
+#ifdef HAVE_BLUA
+				if (!LUAh_MobjFuse(mobj))
+#endif
+					P_RemoveMobj(mobj);
 				return;
 			}
+		if ((--mobj->fuse) < 6)
 			mobj->frame = (mobj->frame & ~FF_TRANSMASK) | ((10 - (mobj->fuse*2)) << (FF_TRANSSHIFT));
-		}
 	}
 	break;
 	case MT_VWREF: