local lighting = game:GetService("Lighting") local player = game.Players.LocalPlayer local camera = workspace.CurrentCamera local blurEffect = Instance.new("BlurEffect") blurEffect.Size = 0 blurEffect.Parent = lighting local minFOV = 30 local maxFOV = 70 local maxBlurSize = 10 local lastCameraCFrame = camera.CFrame local targetBlurSize = 0 local function updateEffects() local character = player.Character if character and character:FindFirstChild("HumanoidRootPart") then local distance = (camera.CFrame.Position - character.HumanoidRootPart.Position).Magnitude local newFOV = math.clamp(maxFOV - (distance / 10), minFOV, maxFOV) camera.FieldOfView = newFOV local rotationDifference = (lastCameraCFrame.Position - camera.CFrame.Position).Magnitude targetBlurSize = math.clamp(rotationDifference * 2, 0, maxBlurSize) blurEffect.Size = blurEffect.Size + (targetBlurSize - blurEffect.Size) * 0.1 lastCameraCFrame = camera.CFrame end end game:GetService("RunService").RenderStepped:Connect(updateEffects)