Hi!
It seems like the fields “remainingDistance” and “hasPath” isn’t updating properly. I skipped making box selection and didn’t refactor moving logic as you did. I am using old logic for unit movement.
Here, for distance check since you create update method with server callback, I decided to make a server function which will be called in Client update since it was used for movement in previous movement logic.
Even though CmdMonitorDistance() is getting called every frame (checked via logging) the variables hasPath and remaining distance isn’t getting updated as should be. hasPath is false sometimes even when unit is moving flawlessly and remaining distance doesn’t updates. (Created those to variables to monitor the corresponding values).