
KeylessUniversal

local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local UserInputService = game:GetService("UserInputService")
local StarterGui = game:GetService("StarterGui")
local player = Players.LocalPlayer
local camera = workspace.CurrentCamera
local OFFSET_FIRST_PERSON = Vector3.new(0, 0, -0.7)
local OFFSET_OTHER = Vector3.new(0, 0, 0)
local FOV_ADD = 10
local function lerp(a, b, t)
return a + (b - a) * t
end
local defaultFOV = camera.FieldOfView
local function setupCharacter(char)
local humanoid = char:WaitForChild("Humanoid")
local head = char:WaitForChild("Head")
for _, v in ipairs(char:GetChildren()) do
if v:IsA("BasePart") and v.Name ~= "Head" then
v:GetPropertyChangedSignal("LocalTransparencyModifier"):Connect(function()
v.LocalTransparencyModifier = v.Transparency
end)
v.LocalTransparencyModifier = v.Transparency
end
end
RunService:BindToRenderStep("CameraHandler", Enum.RenderPriority.Camera.Value + 1, function(deltaTime)
if not char.Parent then return end
local zoom = (camera.CFrame.Position - head.Position).Magnitude
local firstPerson = zoom <= 1
local targetOffset = firstPerson and OFFSET_FIRST_PERSON or OFFSET_OTHER
humanoid.CameraOffset = humanoid.CameraOffset:Lerp(targetOffset, 5 * deltaTime)
local targetFOV = firstPerson and (defaultFOV + FOV_ADD) or defaultFOV
camera.FieldOfView = lerp(camera.FieldOfView, targetFOV, 3 * deltaTime)
end)
end
if player.Character then
setupCharacter(player.Character)
end
player.CharacterAdded:Connect(function(char)
RunService:UnbindFromRenderStep("CameraHandler")
setupCharacter(char)
end)
StarterGui:SetCore("SendNotification", {
Title = "Improved First Person";
Text = "Improved first person script with fov effect.";
Button1 = "Nice";
Duration = math.huge;
})
task.delay(0.1, function()
StarterGui:SetCore("SendNotification", {
Title = "Script Made by Legend";
Text = "Credits to the owners for the original scripts. Have fun.";
Button1 = "Alright";
Duration = math.huge;
})
end)No comments yet for this script.



