
KeylessUniversal

-- Create the initial GUI
local player = game.Players.LocalPlayer
local screenGui = Instance.new("ScreenGui", player:WaitForChild("PlayerGui"))
screenGui.Name = "FlyGui"
local background = Instance.new("Frame", screenGui)
background.Size = UDim2.new(0, 300, 0, 150) -- Size of the draggable GUI
background.BackgroundColor3 = Color3.fromRGB(128, 0, 128) -- Purple
background.BackgroundTransparency = 0.3
background.Position = UDim2.new(0.5, -150, 0.5, -75) -- Initial position
-- Variables for dragging the GUI
local dragging = false
local dragInput, startPos, startDragPos
-- Make the background draggable (mouse & touch input)
local function beginDrag(input)
dragging = true
startPos = background.Position
startDragPos = input.Position
input.Consumed = true
end
local function updateDrag(input)
if dragging then
local delta = input.Position - startDragPos
background.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y)
end
end
local function endDrag(input)
dragging = false
end
-- Connect dragging events for both mouse and touch input
background.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
beginDrag(input)
end
end)
background.InputChanged:Connect(function(input)
if (input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch) and dragging then
updateDrag(input)
end
end)
background.InputEnded:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
endDrag(input)
end
end)
-- Toggle Fly Button
local button = Instance.new("TextButton", background)
button.Size = UDim2.new(0, 200, 0, 50)
button.Position = UDim2.new(0.5, -100, 0.5, -25)
button.Text = "Toggle Fly"
button.BackgroundColor3 = Color3.fromRGB(200, 100, 255)
button.TextScaled = true
button.Font = Enum.Font.SourceSansBold
button.TextColor3 = Color3.new(1, 1, 1)
-- Close Button
local closeButton = Instance.new("TextButton", background)
closeButton.Size = UDim2.new(0, 40, 0, 40)
closeButton.Position = UDim2.new(1, -45, 0, 5)
closeButton.Text = "X"
closeButton.BackgroundColor3 = Color3.fromRGB(255, 50, 50)
closeButton.TextColor3 = Color3.new(1, 1, 1)
closeButton.Font = Enum.Font.SourceSansBold
closeButton.TextScaled = true
closeButton.ZIndex = 2
-- Fly logic
local flying = false
local bodyVel = nil
button.MouseButton1Click:Connect(function()
local character = player.Character or player.CharacterAdded:Wait()
local humanoidRootPart = character:WaitForChild("HumanoidRootPart")
if not flying then
-- Start flying
bodyVel = Instance.new("BodyVelocity")
bodyVel.Velocity = Vector3.new(0, 50, 0)
bodyVel.MaxForce = Vector3.new(0, math.huge, 0)
bodyVel.P = 1250
bodyVel.Parent = humanoidRootPart
flying = true
button.Text = "Unfly"
else
-- Stop flying
if bodyVel then
bodyVel:Destroy()
end
flying = false
button.Text = "Fly"
end
end)
-- Close (hide) GUI
closeButton.MouseButton1Click:Connect(function()
screenGui.Enabled = false -- This hides the GUI instead of destroying it
end)
-- Show Fly GUI button (appears when the GUI is hidden)
local showButton = Instance.new("TextButton", player.PlayerGui)
showButton.Size = UDim2.new(0, 200, 0, 50)
showButton.Position = UDim2.new(0.5, -100, 0.5, 100)
showButton.Text = "Show Fly GUI"
showButton.BackgroundColor3 = Color3.fromRGB(100, 255, 100)
showButton.TextScaled = true
showButton.Font = Enum.Font.SourceSansBold
showButton.TextColor3 = Color3.new(1, 1, 1)
-- Show the GUI again when this button is tapped
showButton.MouseButton1Click:Connect(function()
screenGui.Enabled = true -- Show the GUI again
showButton:Destroy() -- Remove the "Show Fly GUI" button after it's used
end)No comments yet for this script.



