Hi Jerome,
My sincerest apologies for the delay on this thread. DetourCrowd should use the virtual filter provided. DetourCrowd/CrowdManager should work with virtual filters. You may also find what is causing the repath by debugging inside of UCrowdFollowingComponent::OnNavNodeChanged as the repath/velocity changes upon reaching the next poly in the path from looking at the videos.
Our setup for creating filters is to have a struct that inherits from FRecastQueryFilter and a class that inherits from UNavigationQueryFilter. Your custom UNavigationQueryFilter then sets its FilterType to your created FRecastQueryFilter inside of InitializeFilter where you can also call methods from your FRecastQueryFilter to initialize or set data to be used. We do wrap some
As an FYI (and I realize your actual filter is likely different than the one attached), you want to ensure that any calculations done in getVirtualCost are as low as possible as the function is run for every poly visited when pathfinding for each agent using the filter. This can add up very quickly to a perf issue. The same precaution applies to all of the virtual filter functions as well.
-James