
Key RequiredUniversal

--[[
WARNING: Heads up! This script has not been verified by ScriptBlox. Use at your own risk!
]]
local player = game.Players.LocalPlayer
local UIS = game:GetService("UserInputService")
local TweenService = game:GetService("TweenService")
local char = player.Character or player.CharacterAdded:Wait()
local humanoid = char:WaitForChild("Humanoid")
local root = char:WaitForChild("HumanoidRootPart")
-- GUI
local screenGui = Instance.new("ScreenGui", game.CoreGui)
screenGui.Name = "m00lkiddfly"
-- Main Frame (Image Background)
local frame = Instance.new("ImageLabel", screenGui)
frame.Size = UDim2.new(0, 220, 0, 150)
frame.Position = UDim2.new(0, 20, 0, 200)
frame.BackgroundTransparency = 1
frame.Image = "rbxassetid://138439146066067"
frame.ScaleType = Enum.ScaleType.Stretch
frame.Active = true
frame.Draggable = true
-- Overlay
local overlay = Instance.new("Frame", frame)
overlay.Size = UDim2.new(1,0,1,0)
overlay.BackgroundColor3 = Color3.new(0,0,0)
overlay.BackgroundTransparency = 0.4
-- Rounded corners
local corner = Instance.new("UICorner", frame)
corner.CornerRadius = UDim.new(0, 12)
-- UI Scale (for animation)
local uiScale = Instance.new("UIScale", frame)
uiScale.Scale = 1
-- Title
local title = Instance.new("TextLabel", frame)
title.Size = UDim2.new(1, 0, 0, 30)
title.Text = "m00lkidd fly"
title.BackgroundTransparency = 1
title.TextColor3 = Color3.new(1,1,1)
-- Fly Button
local flyBtn = Instance.new("TextButton", frame)
flyBtn.Size = UDim2.new(1, -10, 0, 40)
flyBtn.Position = UDim2.new(0, 5, 0, 40)
flyBtn.Text = "FLY: OFF"
flyBtn.BackgroundColor3 = Color3.fromRGB(40,40,40)
flyBtn.TextColor3 = Color3.new(1,1,1)
-- Speed Box
local speedBox = Instance.new("TextBox", frame)
speedBox.Size = UDim2.new(1, -10, 0, 30)
speedBox.Position = UDim2.new(0, 5, 0, 90)
speedBox.PlaceholderText = "Speed (default 50)"
speedBox.BackgroundColor3 = Color3.fromRGB(40,40,40)
speedBox.TextColor3 = Color3.new(1,1,1)
-- Close Button
local closeBtn = Instance.new("TextButton", frame)
closeBtn.Size = UDim2.new(0, 25, 0, 25)
closeBtn.Position = UDim2.new(1, -30, 0, 5)
closeBtn.Text = "X"
closeBtn.BackgroundColor3 = Color3.fromRGB(80,0,0)
closeBtn.TextColor3 = Color3.new(1,1,1)
-- Open Button
local openBtn = Instance.new("TextButton", screenGui)
openBtn.Size = UDim2.new(0, 100, 0, 40)
openBtn.Position = UDim2.new(0, 20, 0, 200)
openBtn.Text = "OPEN GUI"
openBtn.Visible = false
openBtn.BackgroundColor3 = Color3.fromRGB(40,40,40)
openBtn.TextColor3 = Color3.new(1,1,1)
-- Variables
local flying = false
local speed = 50
local shiftSpeed = 120
local bodyVel, bodyGyro
local keys = {
W=false,A=false,S=false,D=false,
Space=false,Ctrl=false,Shift=false
}
-- Typing check
local function isTyping()
return UIS:GetFocusedTextBox() ~= nil
end
-- Animation
local function openAnim()
frame.Visible = true
uiScale.Scale = 0.6
frame.ImageTransparency = 1
TweenService:Create(uiScale, TweenInfo.new(0.25), {Scale = 1}):Play()
TweenService:Create(frame, TweenInfo.new(0.25), {ImageTransparency = 0}):Play()
end
local function closeAnim()
local t1 = TweenService:Create(uiScale, TweenInfo.new(0.25), {Scale = 0.6})
local t2 = TweenService:Create(frame, TweenInfo.new(0.25), {ImageTransparency = 1})
t1:Play()
t2:Play()
t1.Completed:Wait()
frame.Visible = false
end
-- Input
UIS.InputBegan:Connect(function(input, gp)
if gp or isTyping() then return end
if input.KeyCode == Enum.KeyCode.W then keys.W = true end
if input.KeyCode == Enum.KeyCode.A then keys.A = true end
if input.KeyCode == Enum.KeyCode.S then keys.S = true end
if input.KeyCode == Enum.KeyCode.D then keys.D = true end
if input.KeyCode == Enum.KeyCode.Space then keys.Space = true end
if input.KeyCode == Enum.KeyCode.LeftControl then keys.Ctrl = true end
if input.KeyCode == Enum.KeyCode.LeftShift then keys.Shift = true end
if input.KeyCode == Enum.KeyCode.R then
if frame.Visible then
closeAnim()
openBtn.Visible = true
else
openAnim()
openBtn.Visible = false
end
end
end)
UIS.InputEnded:Connect(function(input)
if input.KeyCode == Enum.KeyCode.W then keys.W = false end
if input.KeyCode == Enum.KeyCode.A then keys.A = false end
if input.KeyCode == Enum.KeyCode.S then keys.S = false end
if input.KeyCode == Enum.KeyCode.D then keys.D = false end
if input.KeyCode == Enum.KeyCode.Space then keys.Space = false end
if input.KeyCode == Enum.KeyCode.LeftControl then keys.Ctrl = false end
if input.KeyCode == Enum.KeyCode.LeftShift then keys.Shift = false end
end)
-- Speed
speedBox.FocusLost:Connect(function()
local num = tonumber(speedBox.Text)
if num then speed = num end
end)
-- Fly
local function startFly()
bodyVel = Instance.new("BodyVelocity")
bodyVel.MaxForce = Vector3.new(1,1,1)*1e5
bodyVel.Parent = root
bodyGyro = Instance.new("BodyGyro")
bodyGyro.MaxTorque = Vector3.new(1,1,1)*1e5
bodyGyro.Parent = root
humanoid.PlatformStand = true
while flying do
local cam = workspace.CurrentCamera
local dir = Vector3.new()
if keys.W then dir += cam.CFrame.LookVector end
if keys.S then dir -= cam.CFrame.LookVector end
if keys.A then dir -= cam.CFrame.RightVector end
if keys.D then dir += cam.CFrame.RightVector end
if keys.Space then dir += Vector3.new(0,1,0) end
if keys.Ctrl then dir -= Vector3.new(0,1,0) end
local currentSpeed = keys.Shift and shiftSpeed or speed
if dir.Magnitude > 0 then
bodyVel.Velocity = dir.Unit * currentSpeed
else
bodyVel.Velocity = Vector3.new()
end
bodyGyro.CFrame = cam.CFrame
task.wait()
end
end
local function stopFly()
if bodyVel then bodyVel:Destroy() end
if bodyGyro then bodyGyro:Destroy() end
humanoid.PlatformStand = false
end
local function toggleFly()
flying = not flying
flyBtn.Text = flying and "FLY: ON" or "FLY: OFF"
if flying then startFly() else stopFly() end
end
-- Buttons
flyBtn.MouseButton1Click:Connect(toggleFly)
closeBtn.MouseButton1Click:Connect(function()
closeAnim()
openBtn.Visible = true
end)
openBtn.MouseButton1Click:Connect(function()
openAnim()
openBtn.Visible = false
end)



its fly ui