I was going to try jumping on his head after I saw him go down the second time, but his FSM froze at the top. WebGL sometimes has issues with rounding differently than your engine editor or desktop executable builds, so if you're going for an exact if(position == targetPosition) to switch to the next phase, you sometimes get a state where a check looking for if(xPos == 3) gets compared to an x of 2.999999999996 or 3.000000000001. I suspect that's what happened here.