
KeylessUniversal

-- GUI 2 LUA - Fly Rigido estilo Infinite Yield --
-- Xeno Executor | PC + Mobile (joystick nativo)
-- MESMO DESIGN, apenas ESCALA MENOR no celular (UIScale)
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local UserInputService = game:GetService("UserInputService")
local LocalPlayer = Players.LocalPlayer
local Camera = workspace.CurrentCamera
local IS_MOBILE = UserInputService.TouchEnabled and not UserInputService.KeyboardEnabled
-- ============ ESCALA (so isso muda no mobile) ============
local UI_SCALE = IS_MOBILE and 0.62 or 1 -- mobile = 62% do tamanho | PC = 100%
-- ============ GUI (MESMO DESIGN ORIGINAL) ============
local ScreenGui_1 = Instance.new("ScreenGui")
ScreenGui_1.Name = "FlyVixGui"
ScreenGui_1.ResetOnSpawn = false
ScreenGui_1.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
ScreenGui_1.IgnoreGuiInset = true
ScreenGui_1.Parent = LocalPlayer:WaitForChild("PlayerGui")
local Frame_1 = Instance.new("Frame")
Frame_1.BackgroundColor3 = Color3.fromRGB(94, 94, 94)
Frame_1.BackgroundTransparency = 0.5
Frame_1.Parent = ScreenGui_1
Frame_1.Position = UDim2.new(0.715, 0, 0.467, 0)
Frame_1.Size = UDim2.new(0, 311, 0, 117)
Frame_1.Active = true
Frame_1.Draggable = true
local UICorner_1 = Instance.new("UICorner", Frame_1)
local UIGradient_1 = Instance.new("UIGradient", Frame_1)
UIGradient_1.Color = ColorSequence.new{
ColorSequenceKeypoint.new(0, Color3.fromRGB(24, 24, 24)),
ColorSequenceKeypoint.new(0.526, Color3.fromRGB(61, 61, 61)),
ColorSequenceKeypoint.new(1, Color3.fromRGB(255, 255, 255))
}
UIGradient_1.Rotation = -118
local UIStroke_1 = Instance.new("UIStroke", Frame_1)
UIStroke_1.ApplyStrokeMode = Enum.ApplyStrokeMode.Border
UIStroke_1.Thickness = 5
local Frame_2 = Instance.new("Frame")
Frame_2.BackgroundColor3 = Color3.fromRGB(94, 94, 94)
Frame_2.BackgroundTransparency = 0.5
Frame_2.Parent = Frame_1
Frame_2.Position = UDim2.new(0, 8, 0, 49)
Frame_2.Size = UDim2.new(0, 85, 0, 53)
local UICorner_2 = Instance.new("UICorner", Frame_2)
local UIGradient_2 = Instance.new("UIGradient", Frame_2)
UIGradient_2.Color = UIGradient_1.Color
UIGradient_2.Rotation = -118
local UIStroke_2 = Instance.new("UIStroke", Frame_2)
UIStroke_2.ApplyStrokeMode = Enum.ApplyStrokeMode.Border
UIStroke_2.Thickness = 5
local counter_1 = Instance.new("TextLabel")
counter_1.BackgroundTransparency = 1
counter_1.Name = "counter"
counter_1.Parent = Frame_2
counter_1.Size = UDim2.new(1, 0, 1, 0)
counter_1.Font = Enum.Font.FredokaOne
counter_1.Text = "0"
counter_1.TextColor3 = Color3.fromRGB(255, 255, 255)
counter_1.TextSize = 49
local UIStroke_3 = Instance.new("UIStroke", counter_1)
UIStroke_3.Thickness = 5
-- Botão ATIVAR
local actid_1 = Instance.new("ImageButton")
actid_1.BackgroundColor3 = Color3.fromRGB(169, 255, 179)
actid_1.Name = "actid"
actid_1.Parent = Frame_1
actid_1.Position = UDim2.new(0, 250, 0, 50)
actid_1.Size = UDim2.new(0, 55, 0, 55)
actid_1.ImageTransparency = 1
actid_1.AutoButtonColor = false
local UICorner_3 = Instance.new("UICorner", actid_1)
local UIStroke_4 = Instance.new("UIStroke", actid_1)
UIStroke_4.Thickness = 5
local Frame_3 = Instance.new("Frame")
Frame_3.BackgroundColor3 = Color3.fromRGB(4, 255, 0)
Frame_3.Parent = actid_1
Frame_3.Position = UDim2.new(0.054, 0, 0.054, 0)
Frame_3.Size = UDim2.new(0, 49, 0, 49)
local UICorner_4 = Instance.new("UICorner", Frame_3)
local Frame_4 = Instance.new("Frame")
Frame_4.BackgroundColor3 = Color3.fromRGB(169, 255, 179)
Frame_4.Parent = actid_1
Frame_4.Position = UDim2.new(0.054, 0, 0.054, 0)
Frame_4.Size = UDim2.new(0, 49, 0, 23)
local UICorner_5 = Instance.new("UICorner", Frame_4)
local TextLabel_1 = Instance.new("TextLabel")
TextLabel_1.BackgroundTransparency = 1
TextLabel_1.Parent = actid_1
TextLabel_1.Size = UDim2.new(1, 0, 1, 0)
TextLabel_1.Font = Enum.Font.FredokaOne
TextLabel_1.Text = "O"
TextLabel_1.TextColor3 = Color3.fromRGB(255, 255, 255)
TextLabel_1.TextSize = 43
local UIStroke_5 = Instance.new("UIStroke", TextLabel_1)
UIStroke_5.Thickness = 5
-- Botão SPEED -
local speedMinus = Instance.new("ImageButton")
speedMinus.BackgroundColor3 = Color3.fromRGB(253, 255, 149)
speedMinus.Name = "speedMinus"
speedMinus.Parent = Frame_1
speedMinus.Position = UDim2.new(0, 180, 0, 50)
speedMinus.Size = UDim2.new(0, 55, 0, 55)
speedMinus.ImageTransparency = 1
speedMinus.AutoButtonColor = false
local UICorner_6 = Instance.new("UICorner", speedMinus)
local UIStroke_6 = Instance.new("UIStroke", speedMinus)
UIStroke_6.Thickness = 5
local Frame_5 = Instance.new("Frame")
Frame_5.BackgroundColor3 = Color3.fromRGB(255, 238, 0)
Frame_5.Parent = speedMinus
Frame_5.Position = UDim2.new(0.054, 0, 0.054, 0)
Frame_5.Size = UDim2.new(0, 49, 0, 49)
local UICorner_7 = Instance.new("UICorner", Frame_5)
local Frame_6 = Instance.new("Frame")
Frame_6.BackgroundColor3 = Color3.fromRGB(253, 255, 149)
Frame_6.Parent = speedMinus
Frame_6.Position = UDim2.new(0.054, 0, 0.054, 0)
Frame_6.Size = UDim2.new(0, 49, 0, 23)
local UICorner_8 = Instance.new("UICorner", Frame_6)
local TextLabel_2 = Instance.new("TextLabel")
TextLabel_2.BackgroundTransparency = 1
TextLabel_2.Parent = speedMinus
TextLabel_2.Size = UDim2.new(1, 0, 1, 0)
TextLabel_2.Font = Enum.Font.FredokaOne
TextLabel_2.Text = "-"
TextLabel_2.TextColor3 = Color3.fromRGB(255, 255, 255)
TextLabel_2.TextSize = 58
local UIStroke_7 = Instance.new("UIStroke", TextLabel_2)
UIStroke_7.Thickness = 5
-- Botão SPEED +
local speedPlus = Instance.new("ImageButton")
speedPlus.BackgroundColor3 = Color3.fromRGB(169, 170, 255)
speedPlus.Name = "speedPlus"
speedPlus.Parent = Frame_1
speedPlus.Position = UDim2.new(0, 110, 0, 50)
speedPlus.Size = UDim2.new(0, 55, 0, 55)
speedPlus.ImageTransparency = 1
speedPlus.AutoButtonColor = false
local UICorner_9 = Instance.new("UICorner", speedPlus)
local UIStroke_8 = Instance.new("UIStroke", speedPlus)
UIStroke_8.Thickness = 5
local Frame_7 = Instance.new("Frame")
Frame_7.BackgroundColor3 = Color3.fromRGB(8, 0, 255)
Frame_7.Parent = speedPlus
Frame_7.Position = UDim2.new(0.054, 0, 0.054, 0)
Frame_7.Size = UDim2.new(0, 49, 0, 49)
local UICorner_10 = Instance.new("UICorner", Frame_7)
local Frame_8 = Instance.new("Frame")
Frame_8.BackgroundColor3 = Color3.fromRGB(169, 170, 255)
Frame_8.Parent = speedPlus
Frame_8.Position = UDim2.new(0.054, 0, 0.054, 0)
Frame_8.Size = UDim2.new(0, 49, 0, 23)
local UICorner_11 = Instance.new("UICorner", Frame_8)
local TextLabel_3 = Instance.new("TextLabel")
TextLabel_3.BackgroundTransparency = 1
TextLabel_3.Parent = speedPlus
TextLabel_3.Size = UDim2.new(1, 0, 1, 0)
TextLabel_3.Font = Enum.Font.FredokaOne
TextLabel_3.Text = "+"
TextLabel_3.TextColor3 = Color3.fromRGB(255, 255, 255)
TextLabel_3.TextSize = 43
local UIStroke_9 = Instance.new("UIStroke", TextLabel_3)
UIStroke_9.Thickness = 5
-- Imagem decorativa
local ImageLabel_1 = Instance.new("ImageLabel")
ImageLabel_1.BackgroundTransparency = 1
ImageLabel_1.Parent = Frame_1
ImageLabel_1.Position = UDim2.new(-0.147, 0, -0.422, 0)
ImageLabel_1.Rotation = 26
ImageLabel_1.Size = UDim2.new(0, 100, 0, 106)
ImageLabel_1.Image = "rbxassetid://7971626465"
-- Botão FECHAR
local cloze_1 = Instance.new("ImageButton")
cloze_1.BackgroundColor3 = Color3.fromRGB(255, 90, 90)
cloze_1.Name = "cloze"
cloze_1.Parent = Frame_1
cloze_1.Position = UDim2.new(0.941, 0, -0.193, 0)
cloze_1.Size = UDim2.new(0, 55, 0, 55)
cloze_1.ImageTransparency = 1
cloze_1.AutoButtonColor = false
local UICorner_12 = Instance.new("UICorner", cloze_1)
local UIStroke_10 = Instance.new("UIStroke", cloze_1)
UIStroke_10.Thickness = 5
local Frame_9 = Instance.new("Frame")
Frame_9.BackgroundColor3 = Color3.fromRGB(255, 0, 0)
Frame_9.Parent = cloze_1
Frame_9.Position = UDim2.new(0.054, 0, 0.054, 0)
Frame_9.Size = UDim2.new(0, 49, 0, 49)
local UICorner_13 = Instance.new("UICorner", Frame_9)
local Frame_10 = Instance.new("Frame")
Frame_10.BackgroundColor3 = Color3.fromRGB(255, 90, 90)
Frame_10.Parent = cloze_1
Frame_10.Position = UDim2.new(0.054, 0, 0.054, 0)
Frame_10.Size = UDim2.new(0, 49, 0, 23)
local UICorner_14 = Instance.new("UICorner", Frame_10)
local TextLabel_4 = Instance.new("TextLabel")
TextLabel_4.BackgroundTransparency = 1
TextLabel_4.Parent = cloze_1
TextLabel_4.Size = UDim2.new(1, 0, 1, 0)
TextLabel_4.Font = Enum.Font.FredokaOne
TextLabel_4.Text = "X"
TextLabel_4.TextColor3 = Color3.fromRGB(255, 255, 255)
TextLabel_4.TextSize = 43
local UIStroke_11 = Instance.new("UIStroke", TextLabel_4)
UIStroke_11.Thickness = 5
-- Título
local TextLabel_5 = Instance.new("TextLabel")
TextLabel_5.BackgroundTransparency = 1
TextLabel_5.Parent = Frame_1
TextLabel_5.Position = UDim2.new(0.061, 0, -0.008, 0)
TextLabel_5.Size = UDim2.new(0.5, 0, 0.4, 0)
TextLabel_5.Font = Enum.Font.FredokaOne
TextLabel_5.Text = "FlyVix"
TextLabel_5.TextColor3 = Color3.fromRGB(255, 255, 255)
TextLabel_5.TextSize = 46
local UIStroke_12 = Instance.new("UIStroke", TextLabel_5)
UIStroke_12.Thickness = 4.3
-- ============ ESCALA (aplica em tudo de uma vez) ============
-- UIScale comprime o menu inteiro mantendo o design 100% intacto
local uiScale = Instance.new("UIScale")
uiScale.Scale = UI_SCALE
uiScale.Parent = Frame_1
-- ============ LÓGICA DE FLY ============
local flyActive = false
local displayValue = 0
local SPEED_STEP = 1
local MULTIPLIER = 100
local MAX_DISPLAY = 50
local flyConnection = nil
local currentBV = nil
local currentBG = nil
local originalPlatformStand = false
local originalGravity = workspace.Gravity
local function updateCounter()
counter_1.Text = tostring(displayValue)
end
local function getRealSpeed()
return displayValue * MULTIPLIER
end
local function createFlyInstances()
local character = LocalPlayer.Character
if not character then return false end
local hrp = character:FindFirstChild("HumanoidRootPart")
local humanoid = character:FindFirstChildOfClass("Humanoid")
if not hrp or not humanoid then return false end
if currentBV then currentBV:Destroy() end
if currentBG then currentBG:Destroy() end
currentBV = Instance.new("BodyVelocity")
currentBV.Name = "FlyVix_BV"
currentBV.MaxForce = Vector3.new(math.huge, math.huge, math.huge)
currentBV.Velocity = Vector3.new(0, 0, 0)
currentBV.P = 1250
currentBV.Parent = hrp
currentBG = Instance.new("BodyGyro")
currentBG.Name = "FlyVix_BG"
currentBG.MaxTorque = Vector3.new(math.huge, math.huge, math.huge)
currentBG.P = 30000
currentBG.D = 500
currentBG.CFrame = hrp.CFrame
currentBG.Parent = hrp
humanoid.PlatformStand = true
return true
end
local function removeFlyInstances()
if currentBV then currentBV:Destroy() currentBV = nil end
if currentBG then currentBG:Destroy() currentBG = nil end
local character = LocalPlayer.Character
if character then
local humanoid = character:FindFirstChildOfClass("Humanoid")
if humanoid then
humanoid.PlatformStand = originalPlatformStand
end
end
workspace.Gravity = originalGravity
end
-- Direcao via joystick nativo (mobile) / WASD (PC)
local function getMoveDirection()
local character = LocalPlayer.Character
if not character then return Vector3.new(0, 0, 0) end
local humanoid = character:FindFirstChildOfClass("Humanoid")
if not humanoid then return Vector3.new(0, 0, 0) end
local moveDir = humanoid.MoveDirection
if moveDir.Magnitude > 0 then
return moveDir.Unit
end
if not IS_MOBILE then
local moveVector = Vector3.new(0, 0, 0)
if UserInputService:IsKeyDown(Enum.KeyCode.Space) then
moveVector = moveVector + Vector3.new(0, 1, 0)
end
if UserInputService:IsKeyDown(Enum.KeyCode.LeftControl)
or UserInputService:IsKeyDown(Enum.KeyCode.LeftShift) then
moveVector = moveVector - Vector3.new(0, 1, 0)
end
if moveVector.Magnitude > 0 then
return moveVector.Unit
end
end
return Vector3.new(0, 0, 0)
end
local function startFly()
if flyConnection then flyConnection:Disconnect() end
local character = LocalPlayer.Character
if character then
local humanoid = character:FindFirstChildOfClass("Humanoid")
if humanoid then
originalPlatformStand = humanoid.PlatformStand
end
end
originalGravity = workspace.Gravity
if not createFlyInstances() then return end
workspace.Gravity = 0
flyConnection = RunService.RenderStepped:Connect(function()
if not flyActive then return end
local char = LocalPlayer.Character
if not char then return end
local hrp = char:FindFirstChild("HumanoidRootPart")
if not hrp then return end
if not currentBV or not currentBV.Parent
or not currentBG or not currentBG.Parent then
createFlyInstances()
if not currentBV then return end
end
local dir = getMoveDirection()
currentBV.Velocity = dir * getRealSpeed()
currentBG.CFrame = Camera.CFrame
end)
end
local function stopFly()
if flyConnection then
flyConnection:Disconnect()
flyConnection = nil
end
removeFlyInstances()
end
local function toggleFly()
flyActive = not flyActive
if flyActive then
Frame_4.BackgroundColor3 = Color3.fromRGB(4, 255, 0)
Frame_3.BackgroundColor3 = Color3.fromRGB(0, 100, 0)
TextLabel_1.Text = "I"
startFly()
else
Frame_4.BackgroundColor3 = Color3.fromRGB(169, 255, 179)
Frame_3.BackgroundColor3 = Color3.fromRGB(4, 255, 0)
TextLabel_1.Text = "O"
stopFly()
end
end
-- ============ EVENTOS ============
actid_1.MouseButton1Click:Connect(toggleFly)
speedPlus.MouseButton1Click:Connect(function()
displayValue = math.min(displayValue + SPEED_STEP, MAX_DISPLAY)
updateCounter()
end)
speedMinus.MouseButton1Click:Connect(function()
displayValue = math.max(displayValue - SPEED_STEP, 0)
updateCounter()
end)
cloze_1.MouseButton1Click:Connect(function()
stopFly()
ScreenGui_1:Destroy()
end)
LocalPlayer.CharacterAdded:Connect(function()
if flyActive then
stopFly()
flyActive = false
Frame_4.BackgroundColor3 = Color3.fromRGB(169, 255, 179)
Frame_3.BackgroundColor3 = Color3.fromRGB(4, 255, 0)
TextLabel_1.Text = "O"
end
end)
UserInputService.InputBegan:Connect(function(input, gpe)
if gpe then return end
if input.KeyCode == Enum.KeyCode.F then
toggleFly()
elseif input.KeyCode == Enum.KeyCode.E then
displayValue = math.min(displayValue + SPEED_STEP, MAX_DISPLAY)
updateCounter()
elseif input.KeyCode == Enum.KeyCode.Q then
displayValue = math.max(displayValue - SPEED_STEP, 0)
updateCounter()
end
end)
updateCounter()
print("[FlyVix] Menu carregado! Design original, escala mobile = " .. UI_SCALE)
print("Display 1 = velocidade 100 | Passo 1 em 1 | Comeca em 0")
if IS_MOBILE then
print("Use o JOYSTICK do Roblox pra voar")
else
print("WASD = mover | Space = subir | Ctrl/Shift = descer")
end



Faz um script bom pra esse jogo pago dinheiro