Universal Script – FLY - Verified script for Universal Roblox
Key RequiredUniversal

Universal Script – FLY

Universal ScriptTeamBaconTeamBacon 1.1K views 6.6K executesUpdated Oct 22, 2026
Unrated
00
Lua Script•157 lines (5137 chars)
-- Gui to Lua
-- Version: 3.2
-- Instances:
local ScreenGui = Instance.new("ScreenGui")
local Frame = Instance.new("Frame")
local TextLabel = Instance.new("TextLabel")
local TextButton = Instance.new("TextButton")

-- Properties:
ScreenGui.Parent = game.Players.LocalPlayer:WaitForChild("PlayerGui")
ScreenGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling

Frame.Parent = ScreenGui
Frame.BackgroundColor3 = Color3.fromRGB(43, 255, 121)
Frame.BorderColor3 = Color3.fromRGB(0, 0, 0)
Frame.BorderSizePixel = 0
Frame.Position = UDim2.new(0.113886848, 0, 0.225967541, 0)
Frame.Size = UDim2.new(0, 177, 0, 162)
Frame.Active = true -- Required for dragging to work smoothly

TextLabel.Parent = Frame
TextLabel.BackgroundColor3 = Color3.fromRGB(255, 85, 255)
TextLabel.BorderColor3 = Color3.fromRGB(0, 0, 0)
TextLabel.BorderSizePixel = 0
TextLabel.Size = UDim2.new(0, 177, 0, 50)
TextLabel.Font = Enum.Font.SourceSans
TextLabel.Text = "FLY SCRIPT"
TextLabel.TextColor3 = Color3.fromRGB(0, 0, 0)
TextLabel.TextSize = 14.000

TextButton.Parent = Frame
TextButton.BackgroundColor3 = Color3.fromRGB(151, 255, 128)
TextButton.BorderColor3 = Color3.fromRGB(0, 0, 0)
TextButton.BorderSizePixel = 0
TextButton.Position = UDim2.new(0, 0, 0.30864197, 0)
TextButton.Size = UDim2.new(0, 177, 0, 112)
TextButton.Font = Enum.Font.SourceSans
TextButton.Text = "FLY"
TextButton.TextColor3 = Color3.fromRGB(0, 0, 0)
TextButton.TextSize = 14.000

-- ==========================================
-- DRAGGABLE GUI LOGIC
-- ==========================================
local UserInputService = game:GetService("UserInputService")
local dragging
local dragInput
local dragStart
local startPos

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

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

Frame.InputChanged:Connect(function(input)
	if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then
		dragInput = input
	end
end)

UserInputService.InputChanged:Connect(function(input)
	if input == dragInput and dragging then
		update(input)
	end
end)

-- ==========================================
-- FLY SCRIPT LOGIC
-- ==========================================
local player = game.Players.LocalPlayer
local isFlying = false
local flySpeed = 50

local function toggleFly()
	isFlying = not isFlying
	TextButton.Text = isFlying and "UNFLY" or "FLY"
	
	local character = player.Character
	if not character then return end
	local humanoidRootPart = character:FindFirstChild("HumanoidRootPart")
	local humanoid = character:FindFirstChildOfClass("Humanoid")
	
	if not humanoidRootPart or not humanoid then return end
	
	if isFlying then
		humanoid.PlatformStand = true
		
		-- Fly Loop
		task.spawn(function()
			-- Create forces to hold character in air smoothly
			local bv = Instance.new("BodyVelocity")
			bv.Velocity = Vector3.new(0,0,0)
			bv.MaxForce = Vector3.new(10000, 10000, 10000)
			bv.Parent = humanoidRootPart
			
			local bg = Instance.new("BodyGyro")
			bg.CFrame = humanoidRootPart.CFrame
			bg.MaxTorque = Vector3.new(10000, 10000, 10000)
			bg.Parent = humanoidRootPart
			
			local camera = workspace.CurrentCamera
			
			while isFlying and character.Parent and humanoidRootPart.Parent do
				local moveDirection = Vector3.new(0, 0, 0)
				
				if UserInputService:IsKeyDown(Enum.KeyCode.W) then moveDirection += Vector3.new(0, 0, -1) end
				if UserInputService:IsKeyDown(Enum.KeyCode.S) then moveDirection += Vector3.new(0, 0, 1) end
				if UserInputService:IsKeyDown(Enum.KeyCode.A) then moveDirection += Vector3.new(-1, 0, 0) end
				if UserInputService:IsKeyDown(Enum.KeyCode.D) then moveDirection += Vector3.new(1, 0, 0) end
				if UserInputService:IsKeyDown(Enum.KeyCode.Space) then moveDirection += Vector3.new(0, 1, 0) end
				if UserInputService:IsKeyDown(Enum.KeyCode.LeftShift) then moveDirection += Vector3.new(0, -1, 0) end
				
				-- Align flight directions with where your camera is looking
				local cameraCFrame = camera.CFrame
				local lookVector = cameraCFrame.LookVector
				local rightVector = cameraCFrame.RightVector
				
				local direction = (lookVector * -moveDirection.Z) + (rightVector * moveDirection.X)
				if moveDirection.Y ~= 0 then
					direction = direction + Vector3.new(0, moveDirection.Y, 0)
				end
				
				if direction.Magnitude > 0 then
					bv.Velocity = direction.Unit * flySpeed
				else
					bv.Velocity = Vector3.new(0, 0, 0)
				end
				
				bg.CFrame = cameraCFrame
				task.wait()
			end
			
			-- Clean up objects when flying is turned off
			bv:Destroy()
			bg:Destroy()
		end)
	else
		humanoid.PlatformStand = false
	end
end

TextButton.MouseButton1Click:Connect(toggleFly)

How to Execute Universal Script – FLY

Step 1: Copy Code: Click the Copy Code button in the viewer above to grab the clean Lua loadstring.

Step 2: Launch Executor: Open a compatible, unpatched executor. If you need one, check our Roblox Executors Directory.

Step 3: Join Experience: Launch Roblox and join Universal Script.

Step 4: Attach & Run: Attach/inject your executor into the Roblox process, paste the code into the script tab, and press Execute.

Created By

TeamBacon
TeamBacon
Script Creator
View Author Profile

Features & Information

Execute Universal Script – FLY. Key system required, created by TeamBacon, updated Oct 22, 2026. Tested and working on supported executors.

Script Changelog (1)

@TeamBaconOct 22, 2026

FLYYYYYYYYYYYY

Community Comments (1)

TeamBaconTeamBaconOct 27, 2026

YESSSSSS I HAVE 6K EXECUTES THANK YOU SOOOOOO MUCH YALL IM GONNA WORK ON A SCRIPT

Frequently Asked Questions

How do I execute Universal Script – FLY in Roblox?

To run Universal Script – FLY, copy the Lua loadstring from the code viewer above, launch Roblox and join Universal Script, attach a working executor (such as Potassium, Solara, or Delta from our Executors directory), paste the code into your executor console, and click Execute.

Is Universal Script – FLY keyless or does it require an access key?

Universal Script – FLY requires an access key. You can retrieve the official key directly using the Get Script Key link provided above.

Is Universal Script – FLY currently safe and working?

This script is active and operational. Always test scripts using a secondary (alt) Roblox account to safeguard your main profile against anti-cheat bans.