--Line 452 in MainCamera.RootCamera script -- there are several cases to consider based on the state of input and camera rotation mode function this:UpdateMouseBehavior() -- first time transition to first person mode or shiftlock if isFirstPerson or self:GetShiftLock() then pcall(function() GameSettings.RotationType = Enum.RotationType.CameraRelative end) if UserInputService.MouseBehavior ~= Enum.MouseBehavior.LockCenter then UserInputService.MouseBehavior = Enum.MouseBehavior.LockCenter end else pcall(function() GameSettings.RotationType = Enum.RotationType.MovementRelative end) if isRightMouseDown or isMiddleMouseDown then UserInputService.MouseBehavior = Enum.MouseBehavior.LockCurrentPosition else UserInputService.MouseBehavior = Enum.MouseBehavior.Default end end end
This piece of code (and probably others) still work even when camera type is set to “Scriptable”. This is not how Scriptable type used to work.
Scriptable type should not lock the mouse and release it which is literally the point of it.
I just spent 2 hours checking every single piece of camera mouse code that I have, only to find out that Roblox forgot about their own features.