Classic Thumbstick Input Problem

I’ve decided to use the “Classic Thumbstick” because I don’t like how the “Dynamic Thumbstick” looks, but I have been facing an issue with the input.

CUSTOM CAMERA SCRIPT
I have a custom first-person camera script which uses “InputChanged” to get the input vector from either the mouse input, touch input or gamepad thumbstick2 input. It checks if the “GameProcessedEvent” is false to make sure the input is not coming from the player using the chat, thumbstick, etc, other-wise it would be ignored.

PROBLEM
This worked completely fine when by default, the “DynamicThumbstick” was being used. However, when I started using the “ClassicThumbstick”, the “GameProcessedEvent” started being returned as false even when the player was using the thumbstick, causing the camera to move.

WHAT I KNOW

  1. The “ClassicThumbstick” (I have customized it to look different as seen above, its code is entirely the same as the original) has a frame which I’ve made visible as seen above, when the player’s fingers are on the frame, “GameProcessedEvent” is returned as true, which is correct for my camera script, but when the fingers leave the frame the “GameProcessedEvent” starts being returned as false even though the player is still using the Thumbstick.

  2. Within the code for the “ClassicThumbstick”, there is a boolean which when toggled the Thumbstick doesn’t stay fixed like it is by default but starts being dragged behind the movable part of the thumbstick. So the “GameProcessedEvent” starts being returned as true as the player’s fingers are always over the frame because it follows the finger,

HOWEVER when the player starts dragging their finger around quickly, there is a slight delay for the frame’s movement, causing the boolean to return as false during the period the finger is off of the frame.

*** 3) The reason for mentioning 2 is because with the “DynamicThumbstick”, the thumbstick by default follows the player’s fingers anywhere on the screen, but even when the player quickly moves their finger around, “GameProcessedEvent” still keeps returning true despite the fingers being off of the frame. Also, this is not because of the DynamicThumbstick’s huge frame (As seen barely visible below around the actual thumbstick), as GameProcessedEvent is still true when the finger is off of this frame.
img

HELP
So, ultimately, I’m confused why the DynamicThumbstick always returns GameProcessedEvent as true while the ClassicThumbstick only returns the boolean as true when the player’s fingers are on the frame.
I have not changed ANY of the original code, it’s a fork of the default PlayerModule that Roblox loads in the “StarterPlayerScripts” by default. It’s been bugging me for a while and I cannot find a solution. I found a post which had the same problem I’m facing, but solution provided is outdated and does not work. Help plz

IN SHORT
Expected Behavior: Input for ClassicThumbstick will return “GameProcesedEvent” as true when detected by UserInputService’s “InputChanged”, and so the input is ignored by the custom camera script, camera stays in place

Actual Behavior: GameProcessedEvent is returned as false when the player’s finger leave the thumbstick frame, causing camera to move when using the joystick.

1 Like

If anyone in the future reads this I just took the Dynamic Thumbstick code and modified it to work like the Classic Thumbstick. I think the difference in the GameProcessedEvent condition is because the Dynamic Thumbstick uses ContextActionService to Pass or Sink actions depending on whether or not the input is actually on the thumbstick, though I’m not certain.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.