# How to handle smart nav links with characters moved by root motion

**URL:** <https://forums.unrealengine.com/t/how-to-handle-smart-nav-links-with-characters-moved-by-root-motion/2536407>\
**Category:** Programming & Scripting\
**Tags:** ai-navigation, Navigation, unreal-engine, question\
**Created:** [June 1, 2025, 12:41pm UTC](https://forums.unrealengine.com/t/how-to-handle-smart-nav-links-with-characters-moved-by-root-motion/2536407 "2025-06-01T12:41:37Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Joshd1271410](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@Joshd1271410](https://forums.unrealengine.com/u/Joshd1271410)\
**Post date:** [June 1, 2025, 12:41pm UTC](https://forums.unrealengine.com/t/how-to-handle-smart-nav-links-with-characters-moved-by-root-motion/2536407/1 "2025-06-01T12:41:37Z")

</div>

Been trying to get the OnSmartLinkReached event to fire when my AI pass over it for two hours now but it never does. My AI movement is entirely root motion driven and I am using FindPathToLocationSynchronously for the pathfinding. Even though the AI correctly move to the link start and will cross the link if it is unobstructed and requires no special movement (a drop from height for example) the event never gets called.

From what I can gather I think the event is fired when the character movement component tries to traverse a nav link. As I’m using RM to move the character I’m guessing this does not happen. What are my options for getting a root motion driven character to be able to use smart links to perform custom movement across obstacles?

---

<div class="post-metadata">

**Author:** ![Anton\_Stenin](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@Anton\_Stenin](https://forums.unrealengine.com/u/Anton_Stenin)\
**Post date:** [March 3, 2026, 10:16am UTC](https://forums.unrealengine.com/t/how-to-handle-smart-nav-links-with-characters-moved-by-root-motion/2536407/2 "2026-03-03T10:16:23Z")

</div>

I am using exactly the same approach: RootMotion + FindPathToLocationSynchronously + custom movement logic.  
And, of course, the same problem problem with Smart Link “… On Reached … ” event .  
Did you manage to find a solution @Joshd1271410 ?

---

<div class="post-metadata">

**Author:** ![Davit35tik](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@Davit35tik](https://forums.unrealengine.com/u/Davit35tik)\
**Post date:** [March 3, 2026, 11:56am UTC](https://forums.unrealengine.com/t/how-to-handle-smart-nav-links-with-characters-moved-by-root-motion/2536407/3 "2026-03-03T11:56:40Z")

</div>

You’re correct. Smart link events are triggered by the PathFollowingComponent when it controls movement. With full root motion, the movement component never “uses” the link, so OnSmartLinkReached won’t fire.

If you want smart links to work, you need to let AIController + MoveTo handle path following at least up to the link, then pause movement and trigger your root motion montage manually when `OnSmartLinkReached` fires.

If you insist on pure root motion with `FindPathToLocationSynchronously`, then you must handle links yourself. Inspect the path points, detect when the next segment is a smart link, and trigger your custom root motion logic at that point.

Smart links require path following control. Full manual movement means full manual link handling.
