AI using Move To with Blackboard Vector behaves inconsistently compared to Move To Actor

Hi everyone,

I’m implementing a combat slot system where enemies move to a calculated position around the player instead of directly to the player’s location.

My BT Service calculates a Vector called ChaseTarget every 0.1 seconds using:

  • Player location
  • Player velocity prediction
  • Slot offset (Front, Back, Left, Right, etc.)

The Move To task uses this ChaseTarget Vector.

If I change the Move To node to use PlayerActor instead, everything works perfectly.

With Move To(PlayerActor):

  • AI detects me instantly.
  • AI continuously chases me.
  • AI attacks correctly.

With Move To(ChaseTarget Vector), I get many inconsistent problems:

  • Sometimes it works once after launching the game, but after restarting PIE it behaves completely differently.
  • Sometimes AI detects me very late even when I’m standing directly in front of it.
  • Sometimes it detects me, starts moving, then immediately loses me.
  • Sometimes it walks toward me, then suddenly stops.
  • Sometimes it stops around 3–4 meters away and won’t come closer until I move.
  • Sometimes it only starts moving again if I move a little.
  • Sometimes it goes to the front of the player instead of the assigned combat slot (for example it should move behind me).
  • Sometimes it stands in front of me without attacking until I move slightly backward.
  • After attacking, it sometimes runs to a random location, stops there, and never moves again until I move.
  • Different enemies behave differently. One may stop chasing while others still move, but they also stop several meters away.

Current setup:

  • UE5 C++
  • AI Perception (Sight)
  • Behavior Tree
  • Blackboard
  • PlayerActor (Object)
  • ChaseTarget (Vector)
  • BT Service updates ChaseTarget every 0.1 seconds

Things I’ve checked:

  • PlayerActor is valid.
  • ChaseTarget is updating continuously.
  • Blackboard key type is Vector.
  • Move To node uses the ChaseTarget key.
  • If I switch the Move To node back to PlayerActor, every issue disappears.

I’ve also been advised to project ChaseTarget onto the NavMesh using ProjectPointToNavigation(), but I haven’t confirmed whether that’s the root cause yet.

Has anyone experienced this before or knows what could cause Move To(Vector) to behave so differently from Move To(Actor)?

I’m happy to share my BT Service code, AI Controller, Behavior Tree, or a video if that helps.