Hello @ClockworkOcean ,
I think it’s different from my case, I also try your way but it still generated out of the box (Or I’m the one that implemented it wrong).

I want to generate some point inside the BoxComponent (which is the brown box), when I use GetRandomPointInBoundingBox, it’s generated also outside the box, when I try to check the Origin and Extent using DrawDebugBox, I can see the problem that the bounds itself (which is the blue box one) is not the same shape as the BrownBox. My code is simple:
const FVector& Origin = Area->Bounds.Origin;
const FVector& BoxExtent = Area->Bounds.BoxExtent;
// Get Random Point In Bounding Box
const FVector BoxMin = Origin - BoxExtent;
const FVector BoxMax = Origin + BoxExtent;
FVector RandomPoint = FMath::RandPointInBox(FBox(BoxMin, BoxMax));
DrawDebugBox(GetWorld(), Origin, BoxExtent, FColor::Blue, false, 200.f);
So I don’t know how to only generate the point inside the BrownBox (since using the Bounds don’t work because the bound shape isn’t the same). The bound shape gone wrong IF the actor is rotated like 50 degrees or some degrees that not 90,180,270,etc. If the actor is rotated 90 degrees and likely, the bounds is perfect.

Since I need some to be rotated like 50 degrees to fit the map, I don’t know how.
I also try your code:
const FVector Inversed = GetActorTransform().InverseTransformPosition(RandomPoint);
const FVector Rotated = GetActorRotation().RotateVector(Inversed);
const FVector TransformLocation = GetActorTransform().TransformPosition(Rotated);
DrawDebugSphere(GetWorld(), TransformLocation, 20.f, 5, FColor::Green, false, 200.f);
And as you can see in both of the image, the green sphere will be correct if the bounds is correct. Do you have any idea about this?
Thanks, I appreciate your answer.