I know it’s bad form to revive an old topic, but I had this same question. After looking through the camera scripts, here’s what I found…
To answer the OP’s question: No, there isn’t. Here’s why:
The right thumbstick (Thumbstick2) is tied to the camera via ContextActionService in the CameraInput module. This is on line 212 of the camera input module:
local function thumbstick(action, state, input)
local position = input.Position
gamepadState[input.KeyCode.Name] = Vector2.new(thumbstickCurve(position.X), -thumbstickCurve(position.Y))
return Enum.ContextActionResult.Pass
end
The function thumbstickCurve is interesting because it takes the delta input of the thumbstick and modifies it according to what appears to be an exponential curve with a dead zone. This is on line 56 of the camera input module:
local thumbstickCurve do
local K_CURVATURE = 2 -- amount of upwards curvature (0 is flat)
local K_DEADZONE = 0.1 -- deadzone
function thumbstickCurve(x)
-- remove sign, apply linear deadzone
local fDeadzone = (math.abs(x) - K_DEADZONE)/(1 - K_DEADZONE)
-- apply exponential curve and scale to fit in [0, 1]
local fCurve = (math.exp(K_CURVATURE*fDeadzone) - 1)/(math.exp(K_CURVATURE) - 1)
-- reapply sign and clamp
return math.sign(x)*math.clamp(fCurve, 0, 1)
end
end
So from top to bottom, it starts in CameraModule using a RunService:RenderStepped()
. This calls the update function of the current camera controller, which we will say is ClassicCamera, which inherits from BaseCamera. ClassicCamera calls CameraInput:GetRotation() where the various inputs are returned. Keyboard, Touch, Mouse, and Gamepad are all converted into a unified format and the values for the active controls are returned. Once CameraModule gets the new CFrame and the camera subject, it updates the camera with those values.
In short, the gamepad sensitivity is hard-coded by the thumbstickCurve function listed above.
So the only way to adjust the gamepad sensitivity is to modify Roblox’s camera scripts because that’s where it’s defined at. From what I can discern from the scripts, it appears that Touch inputs are handled the same way. So the only sensitivity that we can easily adjust is for the mouse because that’s part of UserInputService. What I think happened is that when Roblox first came out, keyboard and mouse were all that there was. Then touch screens came along with the first iPhone then console support. So instead of Roblox adding them fully to UserInputService, they use scripts as a kind of addon for the new input control types and never went back and made them full and recognized input type in UserInputService.