← All namespaces

navigation

Scene, level & world Experimental

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.

This area is experimental: it works today, but method and parameter shapes are still changing as the namespace matures. Expect occasional churn and check the method page before relying on an exact parameter name.

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.

← Back to all namespaces