All other movement methods use clamped values between - 1 and 1 for components of the MoveVector. This makes it easy to create input agnostic custom movement handlers using Controls:GetMovementVector(). The classic thumbstick does not clamp it’s move vector component values on a range of -1 to 1.
https://gyazo.com/404a913d638886b7a88deabbbd4d8a44.mp4
This can be fixed by clamping the multiplier on line 124 of the TouchThumbstick script like so:
currentMoveVector = currentMoveVector.unit * math.min(1, (inputAxisMagnitude - deadZone) / (1 - deadZone))
Expected behavior
The Classic Thumbstick movement mode should provide a Controls:GetMovementVector() with component values on a range of -1 to 1.