Hello @Manifestor , I’m not 100% sure but I will try to answer this,
GetRandomPointInNavigableRadius, will get a random point whether its reachable or not reachable by the ai.
In the image above, the point is the star, is not reachable, but still navigable by AI but not the one in the center (AI in the center can’t go there since its blocked by the red boxes). Since this function will get just random point in navigable radius, then if the origin is the AI location, it will still return that point.
GetRandomReachablePointInRadius not like the function before, this one will only get the random point which is Reachable from the origin.
In the image above, the point that randomized, is still reachable from the origin (which is the AI) and not blocked by the red box.
and for the K2 functions, they are basically the same as the non K2 version.
As you can see in the images above, in the end they call the same function as the name call (Second one different function call but still same behavior). This K2 version is created for the blueprint.
As you can see the K2 have UFUNCTION(BlueprintCallable/Pure) but the non K2 don’t have, that will make the K2 is callable from blueprint but the non K2 can’t (Even though both is still the same).
In C++ Side, K2 and non K2 still difference, since the K2 one is a static function and non K2 not static. That will be difference if you want to call the function. K2 function don’t need the object reference (AClass::K2Function), but the non K2 need object reference to call (TheObject->NonK2Function).
I think thats all I know for this, again, I’m not 100% sure, but I hope this make sense for you.