Just did some researches, try this one in a local script
local PlayerModule = game.Players.LocalPlayer.PlayerScripts:WaitForChild("PlayerModule")
local cameras = require(PlayerModule):GetCameras()
local BoundKeys = PlayerModule.CameraModule.MouseLockController:WaitForChild("BoundKeys")
local OldBoundKeys = BoundKeys.Value
local CenterLocked = false
local function ToggleLock()
local CameraController = cameras.activeCameraController
local MouseLockController = cameras.activeMouseLockController
CenterLocked = not CenterLocked
if CenterLocked then
if MouseLockController:GetIsMouseLocked() then -- toggle shift lock off
MouseLockController:OnMouseLockToggled()
end
CameraController:SetMouseLockOffset(Vector3.new())
CameraController:SetIsMouseLocked(true)
BoundKeys.Value = "" -- disables shift lock toggle
else
CameraController:SetIsMouseLocked(false)
BoundKeys.Value = OldBoundKeys -- restores shift lock toggle
end
end
-- example use, press T to toggle center lock
game:GetService("UserInputService").InputBegan:Connect(function(input, gameProcessedEvent)
if gameProcessedEvent then return end
if input.KeyCode == Enum.KeyCode.T then
ToggleLock()
end
end)
Also here’s the link: