Fly Gui V4
Key RequiredUniversal

Fly Gui V4

Universal ScriptIrfannnnnIrfannnnn 157.5K views 6.3K executesUpdated Feb 1, 2025
3.3/ 5(3 votes)
2167% Positive
Lua Script•323 lines (9778 chars)
local FlyGuiV4 = Instance.new("ScreenGui")
local Fly = Instance.new("Frame")
local Close = Instance.new("TextButton")
local Minimize = Instance.new("TextButton")
local FlyUp = Instance.new("TextButton")
local FlyDown = Instance.new("TextButton")
local IncreaseSpeed = Instance.new("TextButton")
local DecreaseSpeed = Instance.new("TextButton")
local SpeedCounter = Instance.new("TextLabel")
local Title = Instance.new("TextLabel")
local StartFlyStopFly = Instance.new("TextButton")

FlyGuiV4.Name = "FlyGuiV4"
FlyGuiV4.Parent = game:GetService("CoreGui")
FlyGuiV4.ZIndexBehavior = Enum.ZIndexBehavior.Sibling

Fly.Name = "Fly"
Fly.Parent = FlyGuiV4
Fly.BackgroundColor3 = Color3.fromRGB(85, 170, 255)
Fly.BorderColor3 = Color3.fromRGB(0, 0, 0)
Fly.BorderSizePixel = 0
Fly.Position = UDim2.new(0.195678264, 0, 0.562977076, 0)
Fly.Size = UDim2.new(0, 180, 0, 100)

Close.Name = "Close"
Close.Parent = Fly
Close.BackgroundColor3 = Color3.fromRGB(255, 0, 0)
Close.BorderColor3 = Color3.fromRGB(0, 0, 0)
Close.BorderSizePixel = 0
Close.Position = UDim2.new(0, 0, -0.349999994, 0)
Close.Size = UDim2.new(0, 35, 0, 35)
Close.Font = Enum.Font.Unknown
Close.Text = "x"
Close.TextColor3 = Color3.fromRGB(255, 255, 255)
Close.TextSize = 30

Minimize.Name = "Minimize"
Minimize.Parent = Fly
Minimize.BackgroundColor3 = Color3.fromRGB(0, 85, 255)
Minimize.BorderColor3 = Color3.fromRGB(0, 0, 0)
Minimize.BorderSizePixel = 0
Minimize.Position = UDim2.new(0.194444448, 0, -0.349999994, 0)
Minimize.Size = UDim2.new(0, 35, 0, 35)
Minimize.Font = Enum.Font.Unknown
Minimize.Text = "-"
Minimize.TextColor3 = Color3.fromRGB(255, 255, 255)
Minimize.TextSize = 30

FlyUp.Name = "FlyUp"
FlyUp.Parent = Fly
FlyUp.BackgroundColor3 = Color3.fromRGB(67, 200, 0)
FlyUp.BorderColor3 = Color3.fromRGB(0, 0, 0)
FlyUp.BorderSizePixel = 0
FlyUp.Position = UDim2.new(0, 0, 1, 0)
FlyUp.Size = UDim2.new(0, 90, 0, 35)
FlyUp.Font = Enum.Font.Unknown
FlyUp.Text = "^"
FlyUp.TextColor3 = Color3.fromRGB(255, 255, 255)
FlyUp.TextSize = 30

FlyDown.Name = "FlyDown"
FlyDown.Parent = Fly
FlyDown.BackgroundColor3 = Color3.fromRGB(200, 133, 0)
FlyDown.BorderColor3 = Color3.fromRGB(0, 0, 0)
FlyDown.BorderSizePixel = 0
FlyDown.Position = UDim2.new(0.5, 0, 1, 0)
FlyDown.Size = UDim2.new(0, 90, 0, 35)
FlyDown.Font = Enum.Font.Unknown
FlyDown.Text = "v"
FlyDown.TextColor3 = Color3.fromRGB(255, 255, 255)
FlyDown.TextSize = 20

IncreaseSpeed.Name = "IncreaseSpeed"
IncreaseSpeed.Parent = Fly
IncreaseSpeed.BackgroundColor3 = Color3.fromRGB(0, 0, 200)
IncreaseSpeed.BorderColor3 = Color3.fromRGB(0, 0, 0)
IncreaseSpeed.BorderSizePixel = 0
IncreaseSpeed.Size = UDim2.new(0, 70, 0, 50)
IncreaseSpeed.Font = Enum.Font.Unknown
IncreaseSpeed.Text = "+10 Speed"
IncreaseSpeed.TextColor3 = Color3.fromRGB(255, 255, 255)
IncreaseSpeed.TextScaled = true
IncreaseSpeed.TextSize = 14
IncreaseSpeed.TextWrapped = true

DecreaseSpeed.Name = "DecreaseSpeed"
DecreaseSpeed.Parent = Fly
DecreaseSpeed.BackgroundColor3 = Color3.fromRGB(200, 200, 0)
DecreaseSpeed.BorderColor3 = Color3.fromRGB(0, 0, 0)
DecreaseSpeed.BorderSizePixel = 0
DecreaseSpeed.Position = UDim2.new(0, 0, 0.5, 0)
DecreaseSpeed.Size = UDim2.new(0, 70, 0, 50)
DecreaseSpeed.Font = Enum.Font.Unknown
DecreaseSpeed.Text = "-10 Speed"
DecreaseSpeed.TextColor3 = Color3.fromRGB(255, 255, 255)
DecreaseSpeed.TextScaled = true
DecreaseSpeed.TextSize = 14
DecreaseSpeed.TextWrapped = true

SpeedCounter.Name = "SpeedCounter"
SpeedCounter.Parent = Fly
SpeedCounter.BackgroundColor3 = Color3.fromRGB(67, 133, 200)
SpeedCounter.BorderColor3 = Color3.fromRGB(0, 0, 0)
SpeedCounter.BorderSizePixel = 0
SpeedCounter.Position = UDim2.new(0.388888896, 0, 0.5, 0)
SpeedCounter.Size = UDim2.new(0, 110, 0, 50)
SpeedCounter.Font = Enum.Font.Unknown
SpeedCounter.Text = "Speed : 10"
SpeedCounter.TextColor3 = Color3.fromRGB(255, 255, 255)
SpeedCounter.TextSize = 15

Title.Name = "Title"
Title.Parent = Fly
Title.BackgroundColor3 = Color3.fromRGB(0, 200, 200)
Title.BorderColor3 = Color3.fromRGB(0, 0, 0)
Title.BorderSizePixel = 0
Title.Position = UDim2.new(0.388888896, 0, -0.349999994, 0)
Title.Size = UDim2.new(0, 110, 0, 35)
Title.Font = Enum.Font.Unknown
Title.Text = "Fly Gui V4"
Title.TextColor3 = Color3.fromRGB(255, 255, 255)
Title.TextSize = 15

StartFlyStopFly.Name = "StartFlyStopFly"
StartFlyStopFly.Parent = Fly
StartFlyStopFly.BackgroundColor3 = Color3.fromRGB(255, 85, 0)
StartFlyStopFly.BorderColor3 = Color3.fromRGB(0, 0, 0)
StartFlyStopFly.BorderSizePixel = 0
StartFlyStopFly.Position = UDim2.new(0.388888896, 0, 0, 0)
StartFlyStopFly.Size = UDim2.new(0, 110, 0, 50)
StartFlyStopFly.Font = Enum.Font.Unknown
StartFlyStopFly.Text = "Start"
StartFlyStopFly.TextColor3 = Color3.fromRGB(255, 255, 255)
StartFlyStopFly.TextSize = 30

local Players = game:GetService("Players")
local UserInputService = game:GetService("UserInputService")
local RunService = game:GetService("RunService")

local player = Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()

local function getRoot(char)
	return char:FindFirstChild("HumanoidRootPart") or char:WaitForChild("HumanoidRootPart")
end

local T = getRoot(character)
local FLYING = false
local FLY_SPEED = 10  -- Default fly speed set to 10 (min)
local CONTROL = {F = 0, B = 0, L = 0, R = 0, Q = 0, E = 0}
local lCONTROL = {F = 0, B = 0, L = 0, R = 0, Q = 0, E = 0}

local function updateSpeedDisplay()
	SpeedCounter.Text = "Speed : " .. FLY_SPEED
end

local function FLY()
	FLYING = true
	local BG = Instance.new("BodyGyro")
	local BV = Instance.new("BodyVelocity")
	
	BG.P = 9e4
	BG.maxTorque = Vector3.new(9e9, 9e9, 9e9)
	BG.cframe = workspace.CurrentCamera.CFrame
	BG.Parent = T
	
	BV.velocity = Vector3.new(0, 0, 0)
	BV.maxForce = Vector3.new(9e9, 9e9, 9e9)
	BV.Parent = T
	
	task.spawn(function()
		while FLYING do
			task.wait()
			local humanoid = character:FindFirstChildOfClass("Humanoid")
			if humanoid then
				humanoid.PlatformStand = true
			end
			
			if (CONTROL.L + CONTROL.R) ~= 0 or (CONTROL.F + CONTROL.B) ~= 0 or (CONTROL.Q + CONTROL.E) ~= 0 then
				lCONTROL = {F = CONTROL.F, B = CONTROL.B, L = CONTROL.L, R = CONTROL.R}
			end
			
			local cam = workspace.CurrentCamera
			
			local horizontal = cam.CFrame.LookVector * (CONTROL.F + CONTROL.B)
			local lateral = (cam.CFrame * CFrame.new(CONTROL.L + CONTROL.R, 0, 0)).p - cam.CFrame.p
			
			local vertical = -(CONTROL.Q + CONTROL.E)
			
			BV.velocity = (horizontal + lateral + Vector3.new(0, vertical, 0)) * (((CONTROL.L + CONTROL.R) ~= 0 or (CONTROL.F + CONTROL.B) ~= 0 or (CONTROL.Q + CONTROL.E) ~= 0) and FLY_SPEED or 0)
			BG.cframe = cam.CFrame
		end
		
		CONTROL = {F = 0, B = 0, L = 0, R = 0, Q = 0, E = 0}
		lCONTROL = {F = 0, B = 0, L = 0, R = 0, Q = 0, E = 0}
		BG:Destroy()
		BV:Destroy()
		if character:FindFirstChildOfClass("Humanoid") then
			character:FindFirstChildOfClass("Humanoid").PlatformStand = false
		end
	end)
end

UserInputService.InputBegan:Connect(function(input, gameProcessed)
	if gameProcessed then return end
	local key = input.KeyCode

	if key == Enum.KeyCode.W then
		CONTROL.F = 1
	elseif key == Enum.KeyCode.S then
		CONTROL.B = -1
	elseif key == Enum.KeyCode.A then
		CONTROL.L = -1
	elseif key == Enum.KeyCode.D then
		CONTROL.R = 1
	elseif key == Enum.KeyCode.Q then
		CONTROL.Q = 1
	elseif key == Enum.KeyCode.E then
		CONTROL.E = -1
	end
end)

UserInputService.InputEnded:Connect(function(input, gameProcessed)
	if gameProcessed then return end
	local key = input.KeyCode

	if key == Enum.KeyCode.W then
		CONTROL.F = 0
	elseif key == Enum.KeyCode.S then
		CONTROL.B = 0
	elseif key == Enum.KeyCode.A then
		CONTROL.L = 0
	elseif key == Enum.KeyCode.D then
		CONTROL.R = 0
	elseif key == Enum.KeyCode.Q then
		CONTROL.Q = 0
	elseif key == Enum.KeyCode.E then
		CONTROL.E = 0
	end
end)

StartFlyStopFly.MouseButton1Click:Connect(function()
	if not FLYING then
		character = player.Character or player.CharacterAdded:Wait()
		T = getRoot(character)
		FLY()
		StartFlyStopFly.Text = "Stop"
	else
		FLYING = false
		StartFlyStopFly.Text = "Start"
	end
end)

IncreaseSpeed.MouseButton1Click:Connect(function()
	FLY_SPEED = math.min(FLY_SPEED + 10, 10000)
	updateSpeedDisplay()
end)

DecreaseSpeed.MouseButton1Click:Connect(function()
	FLY_SPEED = math.max(FLY_SPEED - 10, 10)
	updateSpeedDisplay()
end)

FlyUp.MouseButton1Down:Connect(function()
	CONTROL.E = -1
end)
FlyUp.MouseButton1Up:Connect(function()
	CONTROL.E = 0
end)

FlyDown.MouseButton1Down:Connect(function()
	CONTROL.Q = 1
end)
FlyDown.MouseButton1Up:Connect(function()
	CONTROL.Q = 0
end)

Close.MouseButton1Click:Connect(function()
	FlyGuiV4.Enabled = false
end)

local minimized = false
Minimize.MouseButton1Click:Connect(function()
	minimized = not minimized
	FlyUp.Visible = not minimized
	FlyDown.Visible = not minimized
	IncreaseSpeed.Visible = not minimized
	DecreaseSpeed.Visible = not minimized
	SpeedCounter.Visible = not minimized
	StartFlyStopFly.Visible = not minimized
	if minimized then
		Fly.Size = UDim2.new(0, 180, 0, 40)
	else
		Fly.Size = UDim2.new(0, 180, 0, 100)
	end
end)

local dragging, dragInput, dragStart, startPos

local function update(input)
	local delta = input.Position - dragStart
	Fly.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y)
end

Fly.InputBegan:Connect(function(input)
	if input.UserInputType == Enum.UserInputType.MouseButton1 then
		dragging = true
		dragStart = input.Position
		startPos = Fly.Position
		input.Changed:Connect(function()
			if input.UserInputState == Enum.UserInputState.End then
				dragging = false
			end
		end)
	end
end)

Fly.InputChanged:Connect(function(input)
	if dragging and input.UserInputType == Enum.UserInputType.MouseMovement then
		dragInput = input
		update(input)
	end
end)

Features & Information

Fly Gui V4 (I'm not redesign the original gui, but i design my own gui) Inf Yield Fly Script to make the Fly Gui V4 working. Same as normal Fly Gui but the gui is different. [Changed] New Gui Design. [Changed] Default FlySpeed = 10 Works on Mobile & PC. (Credits to Fly Gui Original Creator)
#FECompatible#FlyGui#NewGuiDesign

Community Comments (10)

e85663866e85663866Feb 1, 2025(edited)

Fly wth?

IrfannnnnIrfannnnnFeb 1, 2025(edited)

@e85663866 What?

e85663866e85663866Feb 2, 2025(edited)

Uhhh

e85663866e85663866Feb 2, 2025(edited)

not Fly key

e85663866e85663866Feb 2, 2025(edited)

@Irfannnnn hey key you fly?

e85663866e85663866Feb 2, 2025(edited)

HEY WAKE UP RED? SLEEP

IrfannnnnIrfannnnnFeb 2, 2025(edited)

Yes, click Start to Fly & Stop to stop.

e85663866e85663866Feb 4, 2025(edited)

oh

niklaskusnik46niklaskusnik46May 25, 2025(edited)

it´s REALLY cool (like)

IRAQ_MountazarIRAQ_MountazarJul 13, 2025

استخدم اداة تشفير حتا لا يسرق سكربتك جيمل

More Scripts for Universal Scripts