Hi, this is intended behavior. When you bind over an already existing keycode, it sends a Enum.UserInputState.Cancel to the other bound functions. This is why you see the player stop walking.
Ah, is there a workaround for this? I’m trying to avoid switching to the UserInputService as the ContextActionService has more features I’m using in my system
Your only option would be to fork the player scripts and handle the cancel case in the function that listens for W or Enum.PlayerActions.CharacterForward