Controller InputChanged does not output 0 or 1. PC gives different results

TLDR: When on console and using a controller, InputChanged does not fire when the trigger hits 0 or 1 (all the way down or up) and if pressed quickly enough gives an incorrect value that is unusable.

The console version of roblox has consistency issues with InputChanged not firing when hitting the end or start of a trigger pull. While this can be bypassed by using both functions (InputStarted/Ended) at the same time, it does cause some issues on games that want a specific trigger distance e.g. input.Position.Z > 0.35

To remove any variables I used the same controller on both systems on top of using a different manufacturer of controllers; A first party controller from Microsoft and some third party one from amazon. Four total tests were done:

  • PC with first party xbox controller
  • PC with third party xbox controller
  • Console with first party xbox controller
  • Console with third party xbox controller

All four tests gave the exact same result. In the examples below, both functions (InputChanged and InputBegan/InputEnded) are shown. The top box is InputChanged and the lower is InputBegan/InputEnded.

PC:


Pc seems to work the best as it is consistent and seems to update a LOT faster. Pc was also set to 60 fps.

Console:


Console will give some WILDLY inaccurate values e.g. 0.98 when the trigger is NOT pulled down at all. This forces the developer to use InputStarted/Ended to verify results.

Specs:
PC: Ryzen 9 7950x, RTX 4090, 32 GB Ram, Windows 10 Home
Console: Xbox series S and PS5
No Beta Features enabled

Here is an example file: Console Trigger Example.rbxl (57.7 KB)

Expected behavior

Expected both versions to give the same result that the PC. InputChanged would give 0 or 1 at the start/end of a trigger pull.

4 Likes