Looking for advice on how to prune RecastGraphs

I’m looking for a way to prune recast graphs to only include reachable areas in the resulting navmesh. We’re building our levels procedurally by stitching together prefabs. This causes walkable areas to be cut by walls and other obstacles. Which gives rise to navmesh areas that are unreachable. Is there any way to position “seed points” in the scene, and only keep recast regions that touch or can be reached from the this “seed point”.
I tried using the RelevantGraphSurface component together with the RecastGraph advanced option “Relevant Graph Surface”, but fail to understand how it works. If I place a single RelevantGraphSurface compoent in the scene, and then issue a scan. I get navmesh on either everything (when using the “Do not require” or “Only For Completely Inside” options) or just the navmesh area in the tile the component touches (when using the “Require for all” alternative).

Edit; forgot to mention that we’re on 5.1.6 PRO

Edit 2; if I disable tiles, the “Require for All” options seem to do what I want. We really want the tiles enable though

Hi there, I think there might be a lot of options here to get the desired activity;

Firstly, I’d take a look at PathUtilities.IsPathPossible and see if that’ll help your use case? That wouldn’t straight up remove the regions that can’t be walked to, but it could be used to check different areas, depending on the structure of your procedural levels?

As an aside, I’d recommend checking out the GraphNode and PathUtilities class documentation- there’s a lot of juicy options there that may help! GraphNode has a Walkablevariable that I’ve used for similar stuff, maybe take a look at that?

Failing that, GraphNode also has a Destroy() method that could be useful? Not sure how often you’re creating new graphs, but cycling through all nodes from the “seed point”, and seeing if it’s walkable or not, then destroying the ones that aren’t may be your solution?

Let us know if any of these ideas work for your use case!