-- Universal Fly Script (Professional GUI with Animations & Indicators) local Players = game:GetService("Players") local RunService = game:GetService("RunService") local UserInputService = game:GetService("UserInputService") local TweenService = game:GetService("TweenService") local player = Players.LocalPlayer local character = player.Character or player.CharacterAdded:Wait() local root = character:WaitForChild("HumanoidRootPart") -- Fly Variables local flying = false local speed = 2 local dir = Vector3.zero -- GUI Setup local screenGui = Instance.new("ScreenGui") screenGui.Name = "FlyGUI" screenGui.Parent = player:WaitForChild("PlayerGui") -- Key Gate local keyFrame = Instance.new("Frame") keyFrame.Size = UDim2.new(0, 300, 0, 100) keyFrame.Position = UDim2.new(0.5, -150, 0.5, -50) keyFrame.BackgroundColor3 = Color3.fromRGB(20, 20, 20) keyFrame.BorderSizePixel = 0 keyFrame.Active = true keyFrame.Draggable = true keyFrame.Parent = screenGui local keyBox = Instance.new("TextBox") keyBox.Size = UDim2.new(0, 280, 0, 40) keyBox.Position = UDim2.new(0, 10, 0, 30) keyBox.PlaceholderText = "Enter Key..." keyBox.TextColor3 = Color3.fromRGB(255, 255, 255) keyBox.BackgroundColor3 = Color3.fromRGB(50, 50, 50) keyBox.BorderSizePixel = 0 keyBox.Font = Enum.Font.SourceSans keyBox.TextSize = 20 keyBox.Parent = keyFrame -- Main GUI local mainFrame = Instance.new("Frame") mainFrame.Size = UDim2.new(0, 280, 0, 160) mainFrame.Position = UDim2.new(0.5, -140, 0.5, -80) mainFrame.BackgroundColor3 = Color3.fromRGB(30, 30, 30) mainFrame.BorderSizePixel = 0 mainFrame.Active = true mainFrame.Draggable = true mainFrame.Visible = false mainFrame.Parent = screenGui -- Title local title = Instance.new("TextLabel") title.Size = UDim2.new(1, 0, 0, 30) title.BackgroundTransparency = 1 title.Text = "Universal Fly Script" title.TextColor3 = Color3.fromRGB(255, 255, 255) title.Font = Enum.Font.SourceSansBold title.TextSize = 20 title.Parent = mainFrame -- Fly Button with Glow local flyButton = Instance.new("TextButton") flyButton.Size = UDim2.new(0, 120, 0, 40) flyButton.Position = UDim2.new(0, 10, 0, 40) flyButton.BackgroundColor3 = Color3.fromRGB(50, 50, 50) flyButton.BorderSizePixel = 0 flyButton.Text = "Fly: OFF" flyButton.TextColor3 = Color3.fromRGB(255, 255, 255) flyButton.Font = Enum.Font.SourceSans flyButton.TextSize = 18 flyButton.Parent = mainFrame local glow = Instance.new("Frame") glow.Size = flyButton.Size glow.Position = flyButton.Position glow.BackgroundColor3 = Color3.fromRGB(0, 170, 255) glow.BorderSizePixel = 0 glow.BackgroundTransparency = 0.8 glow.ZIndex = 0 glow.Parent = mainFrame glow.Visible = false -- Active Fly Indicator local indicator = Instance.new("Frame") indicator.Size = UDim2.new(0, 15, 0, 15) indicator.Position = UDim2.new(0, 135, 0, 50) indicator.BackgroundColor3 = Color3.fromRGB(0, 170, 255) indicator.BorderSizePixel = 0 indicator.Visible = false indicator.AnchorPoint = Vector2.new(0.5, 0.5) indicator.Parent = mainFrame -- Hover & Press Effects flyButton.MouseEnter:Connect(function() TweenService:Create(flyButton, TweenInfo.new(0.2), {BackgroundColor3 = Color3.fromRGB(70,70,70)}):Play() end) flyButton.MouseLeave:Connect(function() local color = flying and Color3.fromRGB(0,170,255) or Color3.fromRGB(50,50,50) TweenService:Create(flyButton, TweenInfo.new(0.2), {BackgroundColor3 = color}):Play() end) flyButton.MouseButton1Click:Connect(function() flying = not flying if flying then startFly() else stopFly() end flyButton.Text = flying and "Fly: ON" or "Fly: OFF" local color = flying and Color3.fromRGB(0,170,255) or Color3.fromRGB(50,50,50) TweenService:Create(flyButton, TweenInfo.new(0.3), {BackgroundColor3 = color}):Play() -- Glow & indicator glow.Visible = flying indicator.Visible = flying if flying then TweenService:Create(indicator, TweenInfo.new(0.5, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut, -1, true), {BackgroundTransparency = 0.5}):Play() end -- Pop animation TweenService:Create(flyButton, TweenInfo.new(0.1), {Size = UDim2.new(0,130,0,44), Position = UDim2.new(0,5,0,38)}):Play() wait(0.1) TweenService:Create(flyButton, TweenInfo.new(0.1), {Size = UDim2.new(0,120,0,40), Position = UDim2.new(0,10,0,40)}):Play() end) -- Speed Slider local speedLabel = Instance.new("TextLabel") speedLabel.Size = UDim2.new(0,80,0,20) speedLabel.Position = UDim2.new(0,10,0,95) speedLabel.BackgroundTransparency = 1 speedLabel.Text = "Speed: "..speed speedLabel.TextColor3 = Color3.fromRGB(255,255,255) speedLabel.Font = Enum.Font.SourceSans speedLabel.TextSize = 16 speedLabel.TextXAlignment = Enum.TextXAlignment.Left speedLabel.Parent = mainFrame local speedSlider = Instance.new("Frame") speedSlider.Size = UDim2.new(0,150,0,10) speedSlider.Position = UDim2.new(0,80,0,100) speedSlider.BackgroundColor3 = Color3.fromRGB(70,70,70) speedSlider.Parent = mainFrame local sliderHandle = Instance.new("Frame") sliderHandle.Size = UDim2.new(0,10,0,20) sliderHandle.Position = UDim2.new(speed/20,0,-0.5,0) sliderHandle.BackgroundColor3 = Color3.fromRGB(200,200,200) sliderHandle.Parent = speedSlider -- Slider Drag with Tween local dragging = false local function updateSpeed(x) local relative = math.clamp(x-speedSlider.AbsolutePosition.X,0,speedSlider.AbsoluteSize.X) speed = math.floor((relative/speedSlider.AbsoluteSize.X)*20) speed = math.max(speed,1) speedLabel.Text = "Speed: "..speed TweenService:Create(sliderHandle, TweenInfo.new(0.1), {Position=UDim2.new(relative/speedSlider.AbsoluteSize.X,0,-0.5,0)}):Play() end sliderHandle.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then dragging = true end end) UserInputService.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then dragging = false end end) UserInputService.InputChanged:Connect(function(input) if dragging and input.UserInputType == Enum.UserInputType.MouseMovement then updateSpeed(input.Position.X) end end) -- Fly Functions function startFly() local bv = Instance.new("BodyVelocity") bv.Name = "FlyVelocity" bv.MaxForce = Vector3.new(1e6,1e6,1e6) bv.Parent = root end function stopFly() local bv = root:FindFirstChild("FlyVelocity") if bv then bv:Destroy() end root.Velocity = Vector3.zero end -- Noclip RunService.Stepped:Connect(function() for _,p in pairs(character:GetDescendants()) do if p:IsA("BasePart") then p.CanCollide = not flying end end end) RunService.RenderStepped:Connect(function() if flying then local cam = workspace.CurrentCamera.CFrame local move = cam:VectorToWorldSpace(dir) local bv = root:FindFirstChild("FlyVelocity") if bv then bv.Velocity = move*(speed*50) end end end) -- Key Gate Logic local function checkKey() if keyBox.Text=="officialFly123" then keyBox.Text = "Loading Script..." wait(0.5) TweenService:Create(keyFrame, TweenInfo.new(0.5), {BackgroundTransparency=1}):Play() wait(0.5) keyFrame:Destroy() mainFrame.Visible = true TweenService:Create(mainFrame, TweenInfo.new(0.5), {BackgroundTransparency=0}):Play() else keyBox.Text="Wrong Key!" wait(1) screenGui:Destroy() end end keyBox.FocusLost:Connect(function(enter) if enter then checkKey() end end) -- Keyboard movement & GUI toggle UserInputService.InputBegan:Connect(function(input,gpe) if gpe then return end if input.KeyCode==Enum.KeyCode.W then dir=Vector3.new(dir.X,dir.Y,-1) end if input.KeyCode==Enum.KeyCode.S then dir=Vector3.new(dir.X,dir.Y,1) end if input.KeyCode==Enum.KeyCode.A then dir=Vector3.new(-1,dir.Y,dir.Z) end if input.KeyCode==Enum.KeyCode.D then dir=Vector3.new(1,dir.Y,dir.Z) end if input.KeyCode==Enum.KeyCode.Space then dir=Vector3.new(dir.X,1,dir.Z) end if input.KeyCode==Enum.KeyCode.LeftControl then dir=Vector3.new(dir.X,-1,dir.Z) end if input.KeyCode==Enum.KeyCode.F then flying = not flying if flying then startFly() else stopFly() end flyButton.Text = flying and "Fly: ON" or "Fly: OFF" local color = flying and Color3.fromRGB(0,170,255) or Color3.fromRGB(50,50,50) TweenService:Create(flyButton, TweenInfo.new(0.3), {BackgroundColor3=color}):Play() glow.Visible=flying indicator.Visible=flying end if input.KeyCode==Enum.KeyCode.K then mainFrame.Visible=not mainFrame.Visible end end) UserInputService.InputEnded:Connect(function(input) if input.KeyCode==Enum.KeyCode.W or input.KeyCode==Enum.KeyCode.S then dir=Vector3.new(dir.X,dir.Y,0) end if input.KeyCode==Enum.KeyCode.A or input.KeyCode==Enum.KeyCode.D then dir=Vector3.new(0,dir.Y,dir.Z) end if input.KeyCode==Enum.KeyCode.Space or input.KeyCode==Enum.KeyCode.LeftControl then dir=Vector3.new(dir.X,0,dir.Z) end end)