World/Asset Defined Support and taking damage after being fractured not working for destructible meshes?

I have thoroughly checked out both the DM Troubleshooting Guide and various other DM tutorials out there. When I read/watch these, they simple enable world support and support depth of 1 on their DM, and everything seems fine. I’ve tried fiddling with as few settings as possible and as many settings as possible, and my DMs never “stick” to the terrain. Here’s a video of one of my DMs and the settings it has. Am I mistaken in thinking that doing impulse on the DM after it’s fallen over/partially fractured should do anything?

I’m assuming I’m not “applying too much force” to break support both because the DM just barely falls over and because I have asset defined support as well as “support chunk” and “do not damage” on the chunks that touch the ground. You can see which actors are being hit by my line trace in the log and what my impulse value is for AddImpulseAtLocation. Code for everything below.

void Adestructiblefps1Character::OnFire()
{
	
		UWorld* const World = GetWorld();
		if (World != NULL)
		{
				const FRotator SpawnRotation = GetControlRotation();
				// MuzzleOffset is in camera space, so transform it to world space before offsetting from the character location to find the final muzzle position
				FVector SpawnLocation = ((FP_MuzzleLocation != nullptr) ? FP_MuzzleLocation->GetComponentLocation() : GetActorLocation()) + SpawnRotation.RotateVector(GunOffset);
                
                TArray<FHitResult> HitResults;
                FCollisionObjectQueryParams ObjectList;
                //Probably don't need to add static to the list but whatever.
                ObjectList.AddObjectTypesToQuery(ECC_WorldStatic);
                ObjectList.AddObjectTypesToQuery(ECC_PhysicsBody);
                ObjectList.AddObjectTypesToQuery(ECC_Destructible);
                FCollisionQueryParams TraceParams = FCollisionQueryParams(FName(TEXT("TraceParams")), false, this);
                //endLocation will be where the trace stops
                APlayerController *PC = Cast<APlayerController>(GetController());
                //Getting point of reference for end of trace.
                FVector EndLocation = PC->PlayerCameraManager->GetActorForwardVector();
                FVector impulseFV = EndLocation * 1000.0f;
                FString stringTest = impulseFV.ToCompactString();
                //Multiplying starting reference to extend line and adding to camera location for proper alignment.
                EndLocation = (EndLocation * 5000.0f) + (PC->PlayerCameraManager->GetCameraLocation());
                
                DrawDebugLine(World, SpawnLocation, EndLocation, FColor(255,100,100), false, 2.5f, 0, 5.0f);
                World->LineTraceMultiByObjectType(HitResults, SpawnLocation, EndLocation, ObjectList, TraceParams);
                FHitResult hitSample(ForceInit);
                hitSample = HitResults[0];
                UPrimitiveComponent* hitComp;
                for (int i = 0; i < HitResults.Num(); i++)
                {
                    hitSample = HitResults[i];
                    hitComp = hitSample.GetComponent();
                    UE_LOG(LogTemp, Warning, TEXT("hitComp is: %s"), *hitComp->GetFName().ToString());
                    hitComp->AddImpulseAtLocation(impulseFV, hitSample.Location);
                    stringTest = impulseFV.ToCompactString();
                    UE_LOG(LogTemp, Warning, TEXT("impulseFV: %s"), *stringTest);
                }
		}
}