Here is BP if you want to calculate it yourself:
https://answers.unrealengine.com/que…ild-in-bp.html
The formula is:
Linear Velocity + CrossProduct(Angular Velocity, Center of mass - Point of interest) = Linear velocity at point
all variables are vectors and Center of mass is not necessary the 0,0,0 of the object, it is calculated by the engine from the rough shape of the collision body. But you can query it with GetCenterOfMass, the vector is in world space.
I think provided BP function in the engine should work correctly with sub-stepping, you can test it manually with the math above, just don’t forget to use center of mass instead of object location and point of interest some distance away in your calculations. If point of interest is to close to center of mass, like less than a centimeter, you can get numerical errors. TBH not sure how close you have to be to see that. Maybe location of center of mass gave you that difference in numbers before^
When using sub-stepping you just need to take care of the things that can change on each sub-step like transforms and velocities. Get velocity should work correctly as is, as far as I remember, it only check if body is driven by physics or not and if it is, then it reads velocity from body instance which is a wrapper around physics object. For transforms, MMT have functions which you already use MMTGetTransform it gets data from the body instance too.
In conclusion - I would expect “Physics Linear Velocity at Point” bp function to work correctly on sub-steps, unless something changed.