Aller au contenu
Fonctionnel

Fov changer Universal

CLclarkdevlinorg0 vuesUniversal26 juil. 2026
Partager
Fov changer Universal

Code du script

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)

Description

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

Commentaires (0)

Connectez-vous pour participer à la conversation

  • Soyez le premier à commenter.

Questions fréquentes

Comment utiliser le script Fov changer Universal ?
Copiez le code ci-dessus, ouvrez votre exécuteur Roblox, collez le code et appuyez sur exécuter pendant que vous êtes dans le jeu. Les fonctionnalités s'activent instantanément une fois le script lancé.
Le script Fov changer Universal est-il gratuit ?
Oui. Ce script est gratuit à copier et utiliser. S'il utilise un système de clé, suivez le lien « Obtenir la clé » pour le débloquer gratuitement.
Le script Fov changer Universal est-il sûr à utiliser ?
Le code source complet est affiché sur cette page pour que vous puissiez lire exactement ce qu'il fait avant de l'exécuter. Utilisez toujours un exécuteur de confiance, et n'oubliez pas que l'utilisation de scripts est contraire aux conditions d'utilisation de Roblox — utilisez-les à vos propres risques.
Quel exécuteur fonctionne avec Fov changer Universal ?
Ce script fonctionne avec la plupart des exécuteurs Roblox populaires. Consultez notre page d'exécuteurs pour trouver un exécuteur gratuit ou payant fiable pour votre appareil.
Fov changer Universal | BloxScripter