콘텐츠로 건너뛰기
작동 중

Fov changer Universal

CLclarkdevlinorg0 조회수Universal2026년 7월 26일
공유
Fov changer Universal

스크립트 코드

Lua
local Players = game:GetService("Players")
local UIS = game:GetService("UserInputService")
local TweenService = game:GetService("TweenService")

local player = Players.LocalPlayer
local camera = workspace.CurrentCamera

local gui = Instance.new("ScreenGui")
gui.Name = "NASA_Settings_UI"
gui.ResetOnSpawn = false
gui.Parent = player:WaitForChild("PlayerGui")

local function tween(obj, info, props)
	local t = TweenService:Create(obj, info, props)
	t:Play()
	return t
end

local function corner(parent, r)
	local c = Instance.new("UICorner")
	c.CornerRadius = UDim.new(0, r)
	c.Parent = parent
	return c
end

local function stroke(parent, t, trans)
	local s = Instance.new("UIStroke")
	s.Thickness = t
	s.Transparency = trans or 0.4
	s.Color = Color3.fromRGB(80, 200, 255)
	s.Parent = parent
	return s
end

local main = Instance.new("Frame")
main.Size = UDim2.fromScale(0.35, 0.35)
main.Position = UDim2.fromScale(0.325, 0.325)
main.BackgroundColor3 = Color3.fromRGB(10, 14, 25)
main.Parent = gui
corner(main, 14)
stroke(main, 1.5)

local topBar = Instance.new("Frame")
topBar.Size = UDim2.new(1, 0, 0, 35)
topBar.BackgroundTransparency = 1
topBar.Parent = main

local title = Instance.new("TextLabel")
title.Size = UDim2.new(1, -50, 1, 0)
title.Position = UDim2.new(0, 12, 0, 0)
title.Text = "SYSTEM SETTINGS"
title.TextColor3 = Color3.fromRGB(180, 220, 255)
title.BackgroundTransparency = 1
title.Font = Enum.Font.GothamBold
title.TextXAlignment = Enum.TextXAlignment.Left
title.TextSize = 14
title.Parent = topBar

local close = Instance.new("TextButton")
close.Size = UDim2.new(0, 28, 0, 28)
close.Position = UDim2.new(1, -34, 0, 4)
close.Text = "X"
close.TextColor3 = Color3.fromRGB(255, 80, 80)
close.BackgroundColor3 = Color3.fromRGB(20, 20, 30)
close.Parent = topBar
corner(close, 8)

local sliderHolder = Instance.new("Frame")
sliderHolder.Size = UDim2.new(1, -40, 0, 70)
sliderHolder.Position = UDim2.new(0, 20, 0, 70)
sliderHolder.BackgroundTransparency = 1
sliderHolder.Parent = main

local label = Instance.new("TextLabel")
label.Size = UDim2.new(1, 0, 0, 20)
label.BackgroundTransparency = 1
label.Text = "Field of View: 70"
label.TextColor3 = Color3.fromRGB(200, 240, 255)
label.Font = Enum.Font.Gotham
label.TextSize = 13
label.TextXAlignment = Enum.TextXAlignment.Left
label.Parent = sliderHolder

local bar = Instance.new("Frame")
bar.Size = UDim2.new(1, 0, 0, 6)
bar.Position = UDim2.new(0, 0, 0, 35)
bar.BackgroundColor3 = Color3.fromRGB(25, 35, 55)
bar.Parent = sliderHolder
corner(bar, 6)

local fill = Instance.new("Frame")
fill.Size = UDim2.new(0.3, 0, 1, 0)
fill.BackgroundColor3 = Color3.fromRGB(80, 200, 255)
fill.Parent = bar
corner(fill, 6)

local minFov, maxFov = 50, 120
local currentFov = 70
camera.FieldOfView = currentFov

local draggingSlider = false

local function setFov(v)
	currentFov = math.clamp(v, minFov, maxFov)
	camera.FieldOfView = currentFov
	label.Text = "Field of View: " .. math.floor(currentFov)
	fill.Size = UDim2.new((currentFov - minFov) / (maxFov - minFov), 0, 1, 0)
end

bar.InputBegan:Connect(function(input)
	if input.UserInputType == Enum.UserInputType.MouseButton1 then
		draggingSlider = true
	end
end)

UIS.InputEnded:Connect(function(input)
	if input.UserInputType == Enum.UserInputType.MouseButton1 then
		draggingSlider = false
	end
end)

UIS.InputChanged:Connect(function(input)
	if draggingSlider and input.UserInputType == Enum.UserInputType.MouseMovement then
		local x = math.clamp((input.Position.X - bar.AbsolutePosition.X) / bar.AbsoluteSize.X, 0, 1)
		setFov(minFov + (maxFov - minFov) * x)
	end
end)

-- MAIN DRAG
do
	local dragging = false
	local dragStart, startPos

	topBar.InputBegan:Connect(function(input)
		if input.UserInputType == Enum.UserInputType.MouseButton1 then
			dragging = true
			dragStart = input.Position
			startPos = main.Position
		end
	end)

	UIS.InputEnded:Connect(function(input)
		if input.UserInputType == Enum.UserInputType.MouseButton1 then
			dragging = false
		end
	end)

	UIS.InputChanged:Connect(function(input)
		if dragging and input.UserInputType == Enum.UserInputType.MouseMovement then
			local delta = input.Position - dragStart
			main.Position = UDim2.new(
				startPos.X.Scale,
				startPos.X.Offset + delta.X,
				startPos.Y.Scale,
				startPos.Y.Offset + delta.Y
			)
		end
	end)
end

local miniButton
local draggingMini = false
local dragStart, startPos
local moved = false

local function showMain()
	main.Visible = true
	main.BackgroundTransparency = 1
	tween(main, TweenInfo.new(0.25, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {
		BackgroundTransparency = 0
	})
end

local function hideMain()
	local tw = tween(main, TweenInfo.new(0.25, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {
		BackgroundTransparency = 1
	})
	tw.Completed:Wait()
	main.Visible = false
end

local function createMiniButton()
	if miniButton then
		miniButton:Destroy()
	end

	miniButton = Instance.new("TextButton")
	miniButton.Size = UDim2.new(0, 55, 0, 55)
	miniButton.Position = UDim2.fromScale(0.5, 0.5)
	miniButton.AnchorPoint = Vector2.new(0.5, 0.5)
	miniButton.Text = ""
	miniButton.BackgroundColor3 = Color3.fromRGB(15, 18, 30)
	miniButton.Parent = gui
	miniButton.AutoButtonColor = false

	corner(miniButton, 30)
	stroke(miniButton, 2, 0.2)

	task.spawn(function()
		while miniButton do
			tween(miniButton, TweenInfo.new(0.8, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
				Size = UDim2.new(0, 60, 0, 60)
			})
			task.wait(0.8)
			if not miniButton then break end
			tween(miniButton, TweenInfo.new(0.8, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
				Size = UDim2.new(0, 55, 0, 55)
			})
			task.wait(0.8)
		end
	end)

	miniButton.MouseButton1Down:Connect(function()
		draggingMini = true
		moved = false
		dragStart = UIS:GetMouseLocation()
		startPos = miniButton.Position
	end)

	UIS.InputChanged:Connect(function(input)
		if draggingMini and input.UserInputType == Enum.UserInputType.MouseMovement then
			local delta = UIS:GetMouseLocation() - dragStart

			if math.abs(delta.X) > 3 or math.abs(delta.Y) > 3 then
				moved = true
			end

			miniButton.Position = UDim2.new(
				startPos.X.Scale,
				startPos.X.Offset + delta.X,
				startPos.Y.Scale,
				startPos.Y.Offset + delta.Y
			)
		end
	end)

	miniButton.MouseButton1Up:Connect(function()
		if not draggingMini then return end
		draggingMini = false

		if moved then
			return
		end

		miniButton:Destroy()
		miniButton = nil
		showMain()
	end)
end

close.MouseButton1Click:Connect(function()
	hideMain()
	createMiniButton()
end)

setFov(70)

설명

Free field-of-view changer. I made it with Grok, so it might not work for long, but I'll try to update it to improve it if it breaks. So subscribe to my channel: https://www.youtube.com/@BigBodyrock

댓글 (0)

대화에 참여하려면 로그인하세요

  • 첫 댓글을 작성하세요.

자주 묻는 질문

Fov changer Universal 스크립트는 어떻게 사용하나요?
위의 스크립트 코드를 복사하고, Roblox 엑시큐터를 열어 붙여넣은 후, 게임 중에 실행을 누르세요. 스크립트가 실행되면 기능이 즉시 활성화됩니다.
Fov changer Universal 스크립트는 무료인가요?
네. 이 스크립트는 무료로 복사하고 사용할 수 있습니다. 키 시스템을 사용하는 경우, 링크를 통해 무료로 키를 받으세요.
Fov changer Universal 스크립트는 안전한가요?
전체 소스 코드가 이 페이지에 표시되어 실행 전에 정확히 무엇을 하는지 확인할 수 있습니다. 항상 신뢰할 수 있는 엑시큐터를 사용하고, 스크립트 사용은 Roblox 이용 약관에 위반되므로 자의적 위험으로 사용하세요.
Fov changer Universal에 호환되는 엑시큐터는?
이 스크립트는 대부분의 인기 Roblox 엑시큐터에서 작동합니다. 기기에 맞는 신뢰할 수 있는 무료 또는 유료 엑시큐터를 찾으려면 엑시큐터 페이지를 확인하세요.
Fov changer Universal | BloxScripter