[Critical] Scene Graph: Entities are completely ignored when building NavMesh

Summary

Entities are not considered in the creation of NavMesh under any conditions. NavMesh is arguably one of the most important aspects of NPCs, and NPCs are one of the most important aspects of just about all of gamedev and Fortnite Creative in particular. It’s unacceptable that it doesn’t work.

What I tried:

  1. Changing meshes
  2. Spavin entities
  3. changed NPC Navigation modifier → Always generate navmesh
  4. Changed collision types

Please select what you are reporting on:

Creative

What Type of Bug are you experiencing?

World Building

Steps to Reproduce

  1. Create a small maze of Scene Graph entities
  2. use the following code with npc_spawner_device to make the NPCs follow you.
follow_beh<public> := class(npc_behavior):

    OnBegin<override>()<suspends>:void=
        Print("Follow behavior started")
        if:
            Entity := Self.GetEntity[]
            SimulationEntity := Entity.GetSimulationEntity[]
            Players := SimulationEntity.GetPlayspaceForEntity[]
            Player := Players.GetPlayers()[0]
            Navigatable := Self.GetAgent[].GetFortCharacter[].GetNavigatable[]
        then:
            loop:
                Sleep(1.0)
                NavTarget := MakeNavigationTarget(Player)
                Navigatable.NavigateTo(NavTarget)
  1. Turn on Debug → Navigation
  2. Make sure that NavMesh completely ignores entities.

Expected Result

Entities must be considered when generating a NavMesh

Observed Result

Entities are currently completely ignored when generating navmesh

Platform(s)

windows

Video

Update 1:
The generation only happens when you start the server for the first time. If you stop the game, run verse changes or Full Push Changes, then the nav mesh generation will not take entities into account during next generation.

Update 2:
In the case of adding an entity to the simulation and then teleporting it, the navmesh breaks and is not restored.

# Generation breaks, example in screenshot
NewEntity := EPD_Example{}
        if(SimulationEntity := Entity.GetSimulationEntity[]):
            
            SimulationEntity.AddEntities(array{NewEntity })

            Transform := FRU.transform:
                Translation := vector3{Forward := -1000.0, Right := 1000.0, Up := 0.0}
            NewEntity .SetGlobalTransform(Transform)


The status of FORT-916950 changed to ‘Needs Triage’. We’ve confirmed the issue and it’s waiting to be assigned to someone to fix it.