navigation
Nav mesh and agent settings, nav areas, modifiers, and NavLink proxies.
What it’s for
This namespace is where you configure the navigation data your level is built on: the Recast nav mesh generation settings, the nav agent profile (radius, height, walkable slope, step height), and the area costs that steer pathing. When you ask your assistant to make a level navigable for AI, or to tune how paths get generated, this is the surface it drives.
It also covers the actors and components that shape navigation locally: NavModifier components that stamp a NavArea class onto part of a Blueprint, and NavLinkProxy actors that connect two points a normal path can't reach, such as a jump-down ledge or a teleport. Links can be simple (a fixed connection) or smart (driven by a custom link component you can configure), and you can trigger a full navigation rebuild once the settings and geometry are in place.
Use navigation for the level's navigation state and the Blueprint components that affect
pathing. For the higher-level AI assets that consume navigation — controllers, behavior trees, Mass
config, and Smart Objects — reach for the ai namespace instead.
Examples
Tune the nav agent and rebuild
Set the walking agent's dimensions, then trigger a full navigation rebuild so the mesh regenerates.
You: Make the nav agent a bit taller and steeper, then rebuild navigation.
call("navigation.set_nav_agent_properties", {agentRadius: 40, agentHeight: 180, agentMaxSlope: 50})
→ {ok:true}
call("navigation.rebuild_navigation", {})
→ {ok:true, rebuilding:true}
Done. Agent updated (radius 40, height 180, slope 50) and navigation rebuilt.
Connect a ledge with a NavLink
Spawn a NavLinkProxy so agents can traverse a drop that isn't otherwise walkable.
You: Add a one-way nav link from the ledge down to the floor.
call("navigation.create_nav_link_proxy", {actorName: "LedgeDrop",
location: {x: 500, y: 0, z: 200},
startPoint: {x: 500, y: 0, z: 200},
endPoint: {x: 500, y: 0, z: 0},
direction: "LeftToRight"})
→ {ok:true, actor:"LedgeDrop"}
Done. Spawned a one-way NavLinkProxy from the ledge to the floor.
Mark part of a Blueprint as a nav area
Add a NavModifier component to a Blueprint so its footprint stamps a specific NavArea class.
You: Give BP_Hazard a nav modifier that marks it as the Null area, and save it.
call("navigation.create_nav_modifier_component", {blueprintPath: "/Game/AI/BP_Hazard",
componentName: "HazardModifier",
areaClass: "/Script/NavigationSystem.NavArea_Null",
save: true})
→ {ok:true, component:"HazardModifier"}
Done. Added HazardModifier to BP_Hazard as NavArea_Null and saved.