What is the best way to modify paths/path requests in AIController and PathFollowingComponent C++?

I am making a game where the AI will be able to utilize a road network and the navmesh for movement. Basically I want to put a bool option in the BP Move to location function called “Prefer Roads”. When that is true I will find the closest point from the AI to the road network and the closest point from the goal to the road network. From both of the road network points I will find a “road path” that will generate an array of FVector’s (or FNavPoints). I then want to use the navmesh to find the path from the AI to the closest road network point, and same goes for the goal location. Finally I want to combine the three paths together (AI to road network, rode network path, rode network to goal) and pass that path to my PathFollowingComponent.

I’ve been looking at a lot of AIController and PathFollowingComponent source code trying to figure out how I can do this. But everything in the PathFollowingComp is private and in the AIControllers MoveTo you need specific PathFollowingComp functions.

I’m getting to the points where I think I should just make my own PathFollowingComp class (not derived) so I can deal with this stuff on my own, but I would be redoing a lot of the segment path following stuff which sounds tedious.

Right now I’m using a custom (derived) AIController and custom (derived) PathFollowingComp.

Any help would be really appreciated!!