Don't you use custom moving functions? I used some recurrent calls inside my wrapper around moveTo, smth like: Creep.prototype.moveTo2(...) { /* some calculations */ if(/* all is ok */) { /* move by own path */ } else reset(), this.moveTo2(...); // retry} Sometimes it caused call stack limit overflow due to some conditions (because of borders, cpu limit tick skipping etc.).