local Players = game:GetService("Players") local UserInputService = game:GetService("UserInputService") local RunService = game:GetService("RunService") local player = Players.LocalPlayer -- Infinite Jump (tapping jump multiple times lets you fly upwards) UserInputService.JumpRequest:Connect(function() local character = player.Character if character then local humanoid = character:FindFirstChildOfClass("Humanoid") if humanoid then humanoid:ChangeState(Enum.HumanoidStateType.Jumping) end end end) -- Fly variables local flying = false local flySpeed = 50 local flyVelocity = nil local flyAttachment = nil local dirStates = { forward = false, backward = false, left = false, right = false, up = false, down = false } local function startFly() local character = player.Character if not character then return end local rootPart = character:FindFirstChild("HumanoidRootPart") if not rootPart then return end -- Clean up previous if flyVelocity then flyVelocity:Destroy() end if flyAttachment then flyAttachment:Destroy() end flyAttachment = Instance.new("Attachment") flyAttachment.Parent = rootPart flyVelocity = Instance.new("LinearVelocity") flyVelocity.Attachment0 = flyAttachment flyVelocity.MaxForce = 4000 flyVelocity.VectorVelocity = Vector3.new(0, 0, 0) flyVelocity.Parent = rootPart flying = true end local function stopFly() if flyVelocity then flyVelocity:Destroy() flyVelocity = nil end if flyAttachment then flyAttachment:Destroy() flyAttachment = nil end flying = false end local function updateFly() if not flying then return end local character = player.Character if not character then return end local rootPart = character:FindFirstChild("HumanoidRootPart") if not rootPart or not flyVelocity then return end local camera = workspace.CurrentCamera local vel = Vector3.new(0, 0, 0) -- PC keys if UserInputService:IsKeyDown(Enum.KeyCode.W) or dirStates.forward then vel = vel + camera.CFrame.LookVector * flySpeed end if UserInputService:IsKeyDown(Enum.KeyCode.S) or dirStates.backward then vel = vel - camera.CFrame.LookVector * flySpeed end if UserInputService:IsKeyDown(Enum.KeyCode.A) or dirStates.left then vel = vel - camera.CFrame.RightVector * flySpeed end if UserInputService:IsKeyDown(Enum.KeyCode.D) or dirStates.right then vel = vel + camera.CFrame.RightVector * flySpeed end if UserInputService:IsKeyDown(Enum.KeyCode.Space) or dirStates.up then vel = vel + Vector3.new(0, 1, 0) * flySpeed end if UserInputService:IsKeyDown(Enum.KeyCode.LeftShift) or dirStates.down then vel = vel + Vector3.new(0, -1, 0) * flySpeed end flyVelocity.VectorVelocity = vel end -- Toggle fly with F key (works on PC) UserInputService.InputBegan:Connect(function(input, gameProcessed) if gameProcessed then return end if input.KeyCode == Enum.KeyCode.F then if flying then stopFly() else startFly() end end end) -- Update loop RunService.Heartbeat:Connect(updateFly) -- Mobile GUI with buttons local isMobile = UserInputService.TouchEnabled and not UserInputService.KeyboardEnabled if isMobile then local screenGui = Instance.new("ScreenGui") screenGui.Name = "InfiniteYieldFly" screenGui.ResetOnSpawn = false screenGui.Parent = player:WaitForChild("PlayerGui") local frame = Instance.new("Frame") frame.Size = UDim2.new(0, 280, 0, 280) frame.Position = UDim2.new(0, 20, 0.5, -140) frame.BackgroundColor3 = Color3.fromRGB(40, 40, 40) frame.BackgroundTransparency = 0.15 frame.Active = true frame.Draggable = true frame.Parent = screenGui local uicorner = Instance.new("UICorner") uicorner.CornerRadius = UDim.new(0, 12) uicorner.Parent = frame local stroker = Instance.new("UIStroke") stroker.Color = Color3.fromRGB(255, 255, 255) stroker.Thickness = 2 stroker.Transparency = 0.5 stroker.Parent = frame -- Fly toggle button local flyToggle = Instance.new("TextButton") flyToggle.Size = UDim2.new(1, -20, 0, 50) flyToggle.Position = UDim2.new(0, 10, 0, 10) flyToggle.BackgroundColor3 = Color3.fromRGB(200, 50, 50) flyToggle.Text = "FLY: OFF" flyToggle.TextColor3 = Color3.new(1, 1, 1) flyToggle.TextScaled = true flyToggle.Font = Enum.Font.GothamBold flyToggle.Parent = frame local toggleCorner = Instance.new("UICorner") toggleCorner.CornerRadius = UDim.new(0, 8) toggleCorner.Parent = flyToggle flyToggle.MouseButton1Click:Connect(function() if flying then stopFly() flyToggle.Text = "FLY: OFF" flyToggle.BackgroundColor3 = Color3.fromRGB(200, 50, 50) else startFly() flyToggle.Text = "FLY: ON" flyToggle.BackgroundColor3 = Color3.fromRGB(50, 200, 50) end end) -- Directions grid local gridLayout = Instance.new("UIGridLayout") gridLayout.CellSize = UDim2.new(0.45, 0, 0, 50) gridLayout.CellPadding = UDim2.new(0.05, 0, 0, 5) gridLayout.SortOrder = Enum.SortOrder.LayoutOrder gridLayout.Parent = frame local dirButtons = { {name = "↑ FORWARD", dir = "forward", order = 1}, {name = "← LEFT", dir = "left", order = 2}, {name = "→ RIGHT", dir = "right", order = 3}, {name = "↓ BACK", dir = "backward", order = 4}, {name = "▲ UP", dir = "up", order = 5}, {name = "▼ DOWN", dir = "down", order = 6} } for _, btnData in ipairs(dirButtons) do local btn = Instance.new("TextButton") btn.Name = btnData.name btn.Text = btnData.name btn.TextColor3 = Color3.new(1, 1, 1) btn.TextScaled = true btn.BackgroundColor3 = Color3.fromRGB(70, 70, 70) btn.Font = Enum.Font.Gotham btn.LayoutOrder = btnData.order btn.Parent = frame local btnCorner = Instance.new("UICorner") btnCorner.CornerRadius = UDim.new(0, 8) btnCorner.Parent = btn local btnStroke = Instance.new("UIStroke") btnStroke.Color = Color3.fromRGB(100, 100, 100) btnStroke.Thickness = 1 btnStroke.Parent = btn -- Hold to move btn.MouseButton1Down:Connect(function() dirStates[btnData.dir] = true end) btn.MouseButton1Up:Connect(function() dirStates[btnData.dir] = false end) btn.TouchTap:Connect(function() dirStates[btnData.dir] = false end) btn.MouseLeave:Connect(function() dirStates[btnData.dir] = false end) end end print("Simple Infinite Yield Client Hack Loaded! Infinite Jump always on. Fly with F key (PC) or GUI buttons (Mobile).")