I’m assuming you have
FVector StartPoint, EndPoint;
EndPoint is CrossHairHitBox + RandomOffset
FVector direction = EndPoint - StartPoint;
direction = direction.Normalize();
double ScaleFactor = 100; // 100 cm extension. This should be the maximum offset possible.
EndPoint += direction * ScaleFactor;
The Blueprint is the same operations in order… like so:
edit: To calculate the maximum offset (to use for the scale factor), it’s square root of (3 * MaximumOffsetPerAxis^2). Or just do twice MaximumOffsetPerAxis.
If they are all different, it’s sqrt(x^2+y^2+z^2) where x,y,z are the maximum offsets in each axis. Add 1% extra or something to avoid rounding errors being short.
edit2: This should also work. I added the scale factor using the random offset length.
edit3: There was a node that multiplied by 0.01. It was supposed to be 1.01. The screenshot above has been fixed.

