[Bug] Double-tap to sprint hard to activate >=2.2.0
Current Behaviour
Currently, when trying to double tap the movement stick forwards, it does not activate sprinting. It requires multiple attempts in seemingly precise ways in order to activate sprinting.
Expected Behaviour
Expected behavior is to double tap the movement stick forwards and activate sprinting, similar to Bedrock or Legacy Console.
Screenshots
No response
Reproduction Steps
- Install latest version of Controlify (2.2.1 as of writing), Fabric mod loader and any dependencies
- Launch game, ensure controls are properly bound to controller
- Attempt to activate sprinting
- Nothing happens, or it may happen after multiple attempts
Logs
Mod Version
2.2.1+1.21.6
Controller
Steam Deck, DualShock 4, Nintendo Switch Pro Controller
Bluetooth
- [x] Yes
Operating System
Linux/SteamOS
ARM
- [ ] Yes
Additional Information
I checked Linux/SteamOS as this is the platform I play Minecraft most on, however I tried using the DualShock 4 and Nintendo Switch Pro Controller on macOS with the exact same issue.
Just to make sure...
- [x] I have made sure I am using the latest version of Controlify for the latest version of Minecraft.
- [x] I have made sure there are no other issues describing the same problem on the issue tracker.
Update: I enabled "Keyboard-like Movement" in global settings and that seems to fix the issue, at the cost of controller-like inputs of course.
So, best I can tell is this is an issue with a patch controlify introduced with version 2.2.0, which makes the sprint function only activate at 80% of the joystick's Y input (instead of 0.01% in vanilla). This fix works fine on versions below 1.21.5, but past that it breaks sprinting by making it way too precise. My only guess as to why is that the y-input is lower for some reason in 1.21.5 and above, but that's just a guess.
The fix is also disabled when "Keyboard-Like Movement" is enabled, which is why that fixes the issue.
So, best I can tell is this is an issue with a patch controlify introduced with version 2.2.0, which makes the sprint function only activate at 80% of the joystick's Y input (instead of 0.01% in vanilla). This fix works fine on versions below 1.21.5, but past that it breaks sprinting by making it way too precise. My only guess as to why is that the y-input is lower for some reason in 1.21.5 and above, but that's just a guess.
The fix is also disabled when "Keyboard-Like Movement" is enabled, which is why that fixes the issue.
Thank you for the helpful debugging you've done, I will look into this.