Troubleshooting
Problems in the order people actually hit them. Start with the Quick Triage table: it resolves most issues in under a minute.
Quick triage
| Symptom | Most likely cause | Jump to |
|---|---|---|
| Agent doesn't move at all | No navigation manager in the level | §1 |
| "No path" through a gap you can see | Clearance Padding sealed it |
§3 |
| Agent flies through walls | Geometry not voxelized | §4 |
| Moving obstacles ignored | Missing Dynamic Obstacle component | §5 |
| Can't find the demo maps | Show Plugin Content is off | §7 |
| Frame rate drops | Voxel resolution too fine | §6 |
| Long paths fail, short ones work | Infinite-world streaming | §3 |
The two diagnostics that answer almost everything
1. Turn on Draw Debug Volumes
(navigation manager → 6. Debug).
This draws the octree. It tells you what the pathfinder actually sees, which is frequently not what you assume:
- No small voxels around a doorway → the pathfinder can't route through it either.
- No voxels at all in a region → it's outside
World Extent, or the chunk hasn't generated. - Solid voxels where there's visibly open air →
Clearance Paddingis too large.
2. Check the Output Log (Window → Output Log) and
filter for Lcm. The plugin logs the specific reason a query
failed.
1. Nothing moves
Work in this order.
Is there a navigation manager?
Output Log shows
LCMBTTask_FlyTo: No SVO Manager found in the level!
→ drag an LcmNavigationManagerSVO into the
level. One per level, required.
Did the AI possess the pawn?
- Pawn → Class Defaults →
Auto Possess AI= Placed in World or Spawned - Pawn → Class Defaults →
AI Controller Classis set - The controller actually runs the tree
(
Run Behavior Tree, or aStateTreeAIComponentwith a State Tree assigned)
Can the pawn move at all?
It needs a movement component that supports flight. Floating Pawn Movement is the simple choice. Check its Max Speed isn't 0.
Is the goal set?
Print the blackboard key (or StateTree parameter). A goal of
(0,0,0) means it was never set, or was set after the tree
started.
2. Agent moves, but badly
| Symptom | Cause | Fix |
|---|---|---|
| Jitters, vibrates in place | Physics fighting navigation | Set mesh collision to No Collision to confirm, then re-add carefully |
| Stops short of the goal | Acceptance Radius too large |
Lower it, but not below one voxel |
| Overshoots and circles | Speed too high for turn rate | Lower Flight Speed or raise
Deceleration Distance |
| Robotic square turns | Grid-locked solver, no smoothing | Use Lazy Theta* and Curved Spline smoothing |
| Sinks into the floor | Insufficient clearance below | Raise Clearance Padding slightly, or
Min Voxel Size finer |
| Agents pile up on each other | No separation | Raise Separation Radius /
Separation Weight, or use Predictive (ORCA)
avoidance |
3. "No path found"
First: is the goal reachable at all?
- Inside the navigation volume? Outside
World Extentthere is no data. Enlarge it, or move the goal in. - Inside geometry? A goal (or start) buried in a wall has no free voxel. Move it into open air.
- Genuinely enclosed? If the destination is sealed off, failure is correct.
The classic: padding sealed the opening
This is the most common cause of a mystifying "no path".
If Clearance Padding is close to
Min Voxel Size, obstacle inflation fills narrow openings
completely. A 2 m doorway with 100 cm voxels and 100 cm padding can
vanish entirely.
Fix: lower Clearance Padding, or lower
Min Voxel Size so the opening survives the inflation.
Confirm with Draw Debug Volumes: you should see free voxels
through the opening.
Short paths work, long ones fail
Almost always an infinite world issue: the route crosses chunks that haven't generated yet.
- Turn on
Persistent Skeletonunder 5. Coarse Skeleton (optional). It is off by default - it is what allows long-range planning before the detail exists, and it is the first thing to try when an agent loses routability over ground it has already crossed.
- For routing to be complete on the very first frame, including into
space the agent has never visited, tick
Use Baked Skeleton(also under 5. Coarse Skeleton (optional)) and then click theBake Skeletonbutton, which appears in the banner once that option is on. - Tick
Assist Infinite Streamingon the Fly To task for agents that must traverse the frontier. - Leave
Chunk Sizeat 8000 unless you have a specific reason and will re-test long routes.
Everything fails immediately
The volume never built. Check
Auto Build On Play is on, or that you call
BuildSVO. With Draw Debug Volumes on, you
should see the octree at BeginPlay.
4. Agents ignore geometry
If agents fly through a wall, the wall isn't in the octree.
- Does the mesh have collision? Voxelization uses collision, not visual geometry. No Collision = invisible to navigation.
- Is its channel in
Obstacle Query Channels? (3. Collision) - Is
Allowed Obstacle Classesfiltering it out? Empty = allow everything, which is what you normally want. - Was it added after the build? Static geometry is baked at build time. Something spawned later needs either a rebuild or a Dynamic Obstacle component.
- Is it too thin? Geometry thinner than a voxel can
be missed. Lower
Min Voxel Size, or thicken the collision.
5. Dynamic obstacles do nothing
- Does the actor have an
LCM Nav3D Dynamic Obstaclecomponent? Moving an actor without one changes nothing as far as navigation is concerned, and produces no error. - Does its mesh have collision enabled?
- Is
Update Distance Thresholdtoo high? It won't restamp until the actor moves that far (default 50 cm). - Reaction too slow? Lower
Finite Obstacle Update Interval(default 0.1 s). - Using
Tracked Components? If the list is non-empty, only those components are tracked, so make sure the blocking one is in it.
See Tutorial 05.
6. Performance
Build is slow / hitches when streaming
- Raise
Min Voxel Size(the biggest lever by far). - Keep
Use GPU Voxelizationon. - Lower
Max Generations Per Frameto spread work (world fills in more slowly, but smoothly).
Frame rate drops with many agents
- Lower
Max Path Requests Per Frameto cap per-frame planning. - Use cheaper avoidance: Reactive rather than Predictive.
- For agents sharing a goal, enable
Use Flow Fields. - Past a few hundred agents, move to Mass Entity. Actor ticks, not pathfinding, are the ceiling.
Memory too high
- Raise
Min Voxel Size(memory scales steeply with resolution). - Shrink
World Extentto just your play space. - In infinite worlds, keep
Chunk Sizeat the default.
Debug drawing is itself slow
Expected: it's a debug tool. Raise
Debug Redraw Coalesce Seconds, or turn it off.
7. Editor and install
| Problem | Fix |
|---|---|
| Can't find demo maps | Content Browser → Settings → Show Plugin Content |
| "Modules are missing or built with a different engine version" | Rebuild; if it fails, your project is Blueprint-only. See Tutorial 01 |
| Plugin absent from the Plugins window | Wrong folder layout: must be
YourProject/Plugins/LCMNav3D/LCMNav3D.uplugin |
Fails to load, GetLastError 126 |
A Mass plugin dependency got disabled; re-enable
MassEntity, MassGameplay,
MassAI |
| Compile errors about StateTree or Mass types | Same cause: an engine plugin dependency is off |
| EQS preview shows nothing in-editor | Call Build SVO In Editor on the
manager; EQS previews need navigation data without playing |
8. Determinism and multiplayer
If you need identical results across runs (replays, lockstep, automated tests):
- Turn
Use GPU Voxelizationoff.
Path solving already runs on the CPU and is deterministic by design. Voxelization is the part that can vary: GPU execution order isn't guaranteed run-to-run, so force the CPU voxelizer when you need a bit-identical rebuild.
Still stuck?
Gather these before asking for help, since they identify most problems immediately:
Draw Debug Volumesscreenshot of the area that misbehaves.- Output Log filtered to
Lcm. - Manager settings:
Infinite World,World Extent/Chunk Size,Min Voxel Size,Clearance Padding. - Which path you're using: Behavior Tree, StateTree, or Mass.
- Does the equivalent demo map work? If yes it's a setup issue in your level; if no it's an install issue.
Then bring them to the community Discord: https://discord.gg/nXkpD6uaBG
Open a Technical Support ticket in
#get-help and you get a private channel with the author.
First reply within 24 hours on weekdays. #support-faq there
carries this same triage list, and #known-issues tracks
confirmed defects with their workarounds - worth checking before you
write.