Some Pathfinding Problems [Tips and Soluces] [4.27]

After meeting lot of problems with Pathfinding and multiple Agent, i propose to give you tips and soluces that can maybe be useful !

Problems :
-If your AI can’t move to location :
Make sure the start and destination is into the nav mesh bounds volume.
Make sure all Agents are checked in the Nav mesh bounds volume and generated. Press P in viewport to see the debug path, if you don’t see anything, check Enable Drawing in the Recast Nav Mesh.
Uncheck into your Character > in all components Can Ever Affect Navigation AND into Class Default uncheck Can Affect Navigation. (Same if your AI move to location with jittering)

-If your AI can move to location, but nod FindPathToLocationSynchrounisly return always invalid :
With your own created Agents, in Project Settings > Navigation > Default Agent Name , don’t let Default, but use one of your own “Agent name”.
If you don’t have created any Agent, use “Default”.
If the problem persist, check into Project Settings > Runtime > Can be main Nav Data.

-If your AI don’t want bypass dynamic obstacle :
You can use Dynamic into Project Settings > Navigation Mesh > Runtime > Runtime Generation : Dynamic (careful with global performance)

-If your AI try to pass under obstacle but normally can’t :
Place your AI on the level, force AI to walk under an obstacle, and show debug navigation. After, if you see the path under the obstacle for no reason, adjust Agent Radius and Height into Project Settings.

Tips :
-If an Agent is not enable in Nav mesh bounds volume, check All Supported Agents in Project Settings > Navigation System > Agents > Supported Agent Mask.
-For more optimization, maybe you can use a Nav Invoker Comp into your Character AI, and if you use it, check into Project Settings > Navigation System > Navigation Enforcing > Generate Navigation Only Around Navigation Invoker.
-If you use Nav invoker only, this is normal that you can’t generate Navigation on your level, but you can see navigation debug around your AI placed into your Level.
-In multiplayer, your AI can be managed by Server only, so maybe you don’t need Net Load On Clent into Nav mesh bounds volume.
-You can use Get All Actor Of Class nod, value “Recast nav mesh”, to get a specific nav data, for exemple in : FindPathToLocationSynchrounisly nod.
-To prevent a branch error into Message Log after testing FindPathToLocationSynchrounisly nod, link with Return Value an is Valid nod on a branch, and next use is Valid (navigation) on an other branch.

Hope one of this informations can help someone !

I precise i am not a professional.
Sorry for my English :slight_smile:

1 Like