Mouse Delta always 0

Can ANYONE tell me why mouse delta is always 0. It has been driving me absolutely INSANE
i have camera to scriptable and mouse should be locked
works perfectly on console & mobile.

Edit: Just discovered that the mouse isnt even locking despite me trying to force it in renderstepped…

        
--just before runnconn:
    camera.CameraType = Enum.CameraType.Scriptable
    UserInputService.MouseBehavior = Enum.MouseBehavior.LockCenter
    UserInputService.MouseIconEnabled = false

--
runConn = RunService.RenderStepped:Connect(function()
            UserInputService.MouseBehavior = Enum.MouseBehavior.LockCenter

            local char = player.Character
            if not char then return end

            local hrp = char:FindFirstChild("HumanoidRootPart")
            if not hrp then return end

            local delta = UserInputService:GetMouseDelta()
            print(delta)

            CameraHandler.AimYaw -= delta.X * sensitivity
            CameraHandler.AimPitch -= delta.Y * sensitivity

            CameraHandler.AimYaw = math.clamp(CameraHandler.AimYaw, MIN_YAW, MAX_YAW)
            CameraHandler.AimPitch = math.clamp(CameraHandler.AimPitch, MIN_PITCH, MAX_PITCH)

            local aimCF = CFrame.Angles(CameraHandler.AimPitch, CameraHandler.AimYaw, 0)
            local finalCF = hrp.CFrame * aimCF

            local camPos = (finalCF * CFrame.new(rightOffset)).Position
            camera.CFrame =
                CFrame.new(camPos, camPos + finalCF.LookVector)
                * CameraHandler.LatestShakeCFrame
        end)```

Only works when mouse is locked in place e.g. when in first person or holding down right click

I know, I tried locking it as you can see.
EIther way I fixed it!!! I had a random UI button with .Modal set to true. Phew