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.