Enemies can't move until manually pushed

I switched from UE 5.2 to 5.6 — after this, enemies can’t move until the player pushes them with some ability. If I add LaunchCharacter to the enemy blueprint in BeginPlay, they start moving as well. However, it only works if I push them along XY; Z doesn’t affect them

I tried deleting the old NavMesh and generating a new one — nope. Changing the actor height to some extreme value makes it work, but then enemies start walking on walls.

Any ideas?

Hello @J_Snapper ,
First, make sure the NavMesh is actually being generated in the level and doesn’t appear gray.
image

Like this one

You can also try Build Paths or Build All Levels; these options rebuild the navigation data and other level information.

Build All Levels recalculates everything: static lighting, visibility data, and navigation networks.
It’s useful when you’ve changed geometry, floor height, or migrated to a new engine version, because it forces Unreal to regenerate all world data.

Build Paths focuses only on rebuilding AI navigation routes, the paths used by AIControllers to move.

You can also try adding a small Delay before the AI MoveTo node. Sometimes that works because the NavMesh or the AIController isn’t fully initialized when the enemy tries to move on BeginPlay. The delay gives the system enough time to finish generating the navigation before executing the movement command.

If none of that works, let me know if you migrated a project from UE 5.2 to 5.6 or started a new one.
And if possible, share a bit more of your setup so I can try to reproduce it in my engine and see what might be going wrong.
Hope it helps!

1 Like
  1. Never move AI immediately on spawn, they need a moment to ready up.
  2. AI need to be lifted/spawned a few cm above the ground. If their capsule is below ground they can freeze and require force to depenetrate.
2 Likes

@BRGEzedeRocco @Rev0verDrive
Thanks, guys!

I rebuilt paths and levels, and added a 2-sec delay (just to be sure) before the Move To task — didn’t help.
I slightly lifted the enemy above the ground — didn’t help.
I lifted him higher — still didn’t help.
I lifted him even higher so he fell for about a sec — and that actually worked!

So maybe the issue isn’t about timing, but height? Sounds strange to me :confused:
I want to find a solution that doesn’t involve pushing enemies off roofs to make them move and
perform tasks

* * * *
By the way, I tried Visual Logger and saw that Recast Nav Mesh UAID (UAID? what’s that?) and reports an error saying “start failed” and then “path failed.”

For the enemies AI, I’m currently using a Behaviour Tree. This part is for strafing around player. Delay before move to added, but don’t fix problem

Interesting thing — if I move the enemy below the ground in editor, it falls on play level and starts moving

If I add a Launch Character straight up in Begin Play, it will “jump’’ after play level but won’t move after falling. But if I add some XY value to the launch vector, the enemy starts moving after falling

Ok, here’s what I found
By default, the enemy has some kind of “personal space” around him. But this space not only prevents other objects from stepping on the enemy — it also prevents the enemy from moving out of it

I fixed it by adjusting the enemy’s right and up positions (he falls :/). The problem is probably related to the Recast Nav Mesh actor or cell height

I tried tweaking those values, but they only work at extreme settings — where the enemy can step onto tall objects that he normally shouldn’t be able to

Ok, another discovery — the problem was with the mesh’s “Can Ever Affect Navigation” setting. It should be unchecked. Strange that it wasn’t a problem in 5.2. Also even if I place enemy slightly below the ground his position will be automatically adjusted to stay on ground

After that, I built the path, but the NavMesh broke, so I had to place a new one and manually adjust its to level size

Is there any way to make the NavMesh automatically cover the whole level? Dynamic NavMesh generation doesn’t help

1 Like

Hi, there is a way to remove that “personal space” under a pawn/character but I don’t have access to Pc right now. It’s a checkbox in details panel in components. Try capsule component. I believe it’s called “can affect navigation”.

There is also a checkbox on navmesh itself that enables dynamic regeneration or navmesh.

It’s great that you found the solution. You can check that this option in the Project Settings is enabled: “Auto Create Navigation Data


When it’s enabled , the engine automatically creates and updates the navigation data ) whenever changes are detected in the level ( such as moving objects, changing collisions, or modifying the navigation volume).