I had noticed that movement failed interrupts didn't always seem to work, but I was too frustrated with it to delve into it. Is it possible that, since the OnMovementFailed routine is part of a behavior, it is also being interrupted?
I think trying to make use of FindValidPosition is a good idea here, as OnMovementFailed seems inconsistent at best.
There is the potential to create your own OnMovementFailed interrupt, though; you could start a timer when ordering a movement behavior that checks the character's Float3 location. If the location is not changing, the character is not moving. The timer is stopped after the move is successful by placing StopTimer below the movement command in the script (or after a reasonable number of executions, to prevent timer buildup).
Last edited by Ameranth; 15/02/17 08:24 PM.