Fly And Character GUI
Key RequiredUniversal

Fly And Character GUI

Universal ScriptThatBoySaiThatBoySai 2.6K views 21 executesUpdated Apr 23, 2025
3.3/ 5(3 votes)
2167% Positive
Lua Script•201 lines (6521 chars)
local SimpleShindoUi = loadstring(game:HttpGet("https://raw.githubusercontent.com/weakhoes/Roblox-UI-Libs/refs/heads/main/Center%20Lib/Center%20Lib%20Source.lua"))()
local Main = SimpleShindoUi:new()
local Tab = Main:Tap('Universal')
local page = Tab:page()
local Labelz = page:Label('Character')
function get()
	plr = game:GetService("Players").LocalPlayer
	char = plr.Character
	hrp = char:FindFirstChild("HumanoidRootPart")
	hum = char:FindFirstChild("Humanoid")
end	
get()
plr.CharacterAdded:Connect(function()
	get()
end)
function getRoot(char)
	return char:FindFirstChild("HumanoidRootPart") or char:FindFirstChild("Torso") or char:FindFirstChild("UpperTorso")
end
local flyMode = "CFrame"
local FLYING = false
local flyKeyDown, flyKeyUp
local IYMouse = game:GetService("Players").LocalPlayer:GetMouse()
local iyflyspeed = 1
local vehicleflyspeed = 1
local QEfly = true
local UIS = game:GetService("UserInputService")
local RS = game:GetService("RunService")
local Players = game:GetService("Players")
local plr = Players.LocalPlayer
local flyEnabled = false
local flyConn
local flySpeed = 2
local keyStates = {
	W = false, A = false, S = false, D = false,
	Space = false, Shift = false
}
UIS.InputBegan:Connect(function(input, gpe)
	if gpe then return end
	local name = input.KeyCode.Name
	if keyStates[name] ~= nil then
		keyStates[name] = true
	end
end)
UIS.InputEnded:Connect(function(input)
	local name = input.KeyCode.Name
	if keyStates[name] ~= nil then
		keyStates[name] = false
	end
end)
function startFlying()
	get()
	flyConn = RS.RenderStepped:Connect(function()
		local cf = workspace.CurrentCamera.CFrame
		local move = Vector3.new()

		if keyStates.W then move = move + cf.LookVector end
		if keyStates.S then move = move - cf.LookVector end
		if keyStates.A then move = move - cf.RightVector end
		if keyStates.D then move = move + cf.RightVector end
		if keyStates.Space then move = move + Vector3.new(0, 1, 0) end
		if keyStates.Shift then move = move - Vector3.new(0, 1, 0) end

		if move.Magnitude > 0 then
			hrp.Velocity = move.Unit * (flySpeed * 50)
		else
			hrp.Velocity = Vector3.zero
		end

		hrp.RotVelocity = Vector3.zero
	end)
end
function stopFlying()
	if flyConn then flyConn:Disconnect() flyConn = nil end
	if hrp then hrp.Velocity = Vector3.zero end
end
function sFLY(vfly)
	repeat task.wait() until plr and plr.Character and getRoot(plr.Character) and plr.Character:FindFirstChildOfClass("Humanoid")
	repeat task.wait() until IYMouse
	if flyKeyDown then flyKeyDown:Disconnect() end
	if flyKeyUp then flyKeyUp:Disconnect() end

	local T = getRoot(plr.Character)
	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 SPEED = 0

	local function FLY()
		FLYING = true
		local BG = Instance.new('BodyGyro')
		local BV = Instance.new('BodyVelocity')
		BG.P = 9e4
		BG.Parent = T
		BV.Parent = T
		BG.maxTorque = Vector3.new(9e9, 9e9, 9e9)
		BG.cframe = T.CFrame
		BV.velocity = Vector3.new(0, 0, 0)
		BV.maxForce = Vector3.new(9e9, 9e9, 9e9)
		task.spawn(function()
			repeat wait()
				if not vfly and Players.LocalPlayer.Character:FindFirstChildOfClass('Humanoid') then
					Players.LocalPlayer.Character:FindFirstChildOfClass('Humanoid').PlatformStand = true
				end
				if CONTROL.L + CONTROL.R ~= 0 or CONTROL.F + CONTROL.B ~= 0 or CONTROL.Q + CONTROL.E ~= 0 then
					SPEED = 50
				elseif SPEED ~= 0 then
					SPEED = 0
				end
				if CONTROL.L + CONTROL.R ~= 0 or CONTROL.F + CONTROL.B ~= 0 or CONTROL.Q + CONTROL.E ~= 0 then
					BV.velocity = ((workspace.CurrentCamera.CFrame.lookVector * (CONTROL.F + CONTROL.B)) + ((workspace.CurrentCamera.CFrame * CFrame.new(CONTROL.L + CONTROL.R, (CONTROL.F + CONTROL.B + CONTROL.Q + CONTROL.E) * 0.2, 0).p) - workspace.CurrentCamera.CFrame.p)) * SPEED
					lCONTROL = {F = CONTROL.F, B = CONTROL.B, L = CONTROL.L, R = CONTROL.R}
				else
					BV.velocity = Vector3.zero
				end
				BG.cframe = workspace.CurrentCamera.CFrame
			until not FLYING
			BG:Destroy()
			BV:Destroy()
			if Players.LocalPlayer.Character:FindFirstChildOfClass('Humanoid') then
				Players.LocalPlayer.Character:FindFirstChildOfClass('Humanoid').PlatformStand = false
			end
		end)
	end

	flyKeyDown = IYMouse.KeyDown:Connect(function(KEY)
		if KEY:lower() == 'w' then CONTROL.F = (vfly and vehicleflyspeed or iyflyspeed)
		elseif KEY:lower() == 's' then CONTROL.B = - (vfly and vehicleflyspeed or iyflyspeed)
		elseif KEY:lower() == 'a' then CONTROL.L = - (vfly and vehicleflyspeed or iyflyspeed)
		elseif KEY:lower() == 'd' then CONTROL.R = (vfly and vehicleflyspeed or iyflyspeed)
		elseif QEfly and KEY:lower() == 'e' then CONTROL.Q = (vfly and vehicleflyspeed or iyflyspeed)*2
		elseif QEfly and KEY:lower() == 'q' then CONTROL.E = -(vfly and vehicleflyspeed or iyflyspeed)*2 end
	end)

	flyKeyUp = IYMouse.KeyUp:Connect(function(KEY)
		if KEY:lower() == 'w' then CONTROL.F = 0
		elseif KEY:lower() == 's' then CONTROL.B = 0
		elseif KEY:lower() == 'a' then CONTROL.L = 0
		elseif KEY:lower() == 'd' then CONTROL.R = 0
		elseif KEY:lower() == 'e' then CONTROL.Q = 0
		elseif KEY:lower() == 'q' then CONTROL.E = 0 end
	end)

	FLY()
end
function NOFLY()
	FLYING = false
	if flyKeyDown then flyKeyDown:Disconnect() end
	if flyKeyUp then flyKeyUp:Disconnect() end
	if Players.LocalPlayer.Character:FindFirstChildOfClass('Humanoid') then
		Players.LocalPlayer.Character:FindFirstChildOfClass('Humanoid').PlatformStand = false
	end
end
page:Slider('WalkSpeed',1,2000,16,function(Speed)
	get()
	hum.WalkSpeed = Speed
end)
page:Slider('Jumppower',1,2000,16,function(Jump)
	get()
	hum.JumpPower = Jump
end)
page:Slider('HipHeight',1,2000,16,function(Height)
	get()
	hum.HipHeight = Height
end)
page:Button('Reset',function()
	get()
	hum.Health = 0
end)
page:Toggle('Fly', false, function(val)
	flyEnabled = val
	if flyEnabled then
		if flyMode == "CFrame" then
			startFlying()
		elseif flyMode == "IYFly" then
			sFLY(false)
		end
	else
		if flyMode == "CFrame" then
			stopFlying()
		elseif flyMode == "IYFly" then
			NOFLY()
		end
	end
end)

page:drop('Fly Method!', "Pick Method", false, { "CFrame", "IYFly" }, function(v)
	flyMode = v
	if flyEnabled then
		if v == "CFrame" then
			NOFLY()
			startFlying()
		elseif v == "IYFly" then
			stopFlying()
			sFLY(false)
		end
	end
end)
local page2 = Tab:page()
local Labelzz = page2:Label('Extra')
page2:Button('Infinite Yeild', function()
	loadstring(game:HttpGet("https://raw.githubusercontent.com/EdgeIY/infiniteyield/master/source"))()
end)

Features & Information

it has couple of fetures, and yes i used a lib that WASEN'T mine, join my discord server where we post scripts like these on a daily: https://discord.gg/S4xTpTcPSz

Community Comments (2)

whereareyougrandmawhereareyougrandmaApr 23, 2025

trash script.bro

ThatBoySaiThatBoySaiApr 24, 2025

ur trash bro

More Scripts for Universal Scripts