Quick answer: After scale, call RecreatePhysicsState() on the component. Or toggle Simulate Physics off then on.

Scale up an enemy at runtime. Collision still uses old size. Physics body geometry cached.

The Fix

actor->SetActorScale3D(FVector(2.0f));
auto* prim = actor->FindComponentByClass<UPrimitiveComponent>();
if (prim) prim->RecreatePhysicsState();

RecreatePhysicsState rebuilds the body to match new bounds. No more scale/collision mismatch.

Verifying

Scaled enemy collides at new bounds. Without recreate: collision matches original.

“Scale. Recreate. Match.”

Related Issues

For SetActorRotation snap, see rotation. For mass spawn collision, see mass spawn.

Recreate physics. Scale fits.