local Players = game:GetService("Players") local UserInputService = game:GetService("UserInputService") local RunService = game:GetService("RunService") local player = Players.LocalPlayer -- UI CREATION local FlyGuiMain = Instance.new("ScreenGui") FlyGuiMain.Name = "FlyGui_Pro" FlyGuiMain.ResetOnSpawn = false FlyGuiMain.Parent = player:WaitForChild("PlayerGui") local MainFrame = Instance.new("Frame") MainFrame.Name = "Main" MainFrame.Size = UDim2.new(0, 500, 0, 300) MainFrame.Position = UDim2.new(0.5, -250, 0.5, -150) MainFrame.BackgroundColor3 = Color3.fromRGB(25, 25, 25) MainFrame.BorderSizePixel = 0 MainFrame.Active = true MainFrame.Parent = FlyGuiMain local function createBtn(name, text, pos, size, color, parent) local b = Instance.new("TextButton") b.Name = name b.Text = text b.Position = pos b.Size = size b.BackgroundColor3 = color b.BorderSizePixel = 0 b.Font = Enum.Font.SourceSansBold b.TextColor3 = Color3.new(1, 1, 1) b.TextSize = 16 b.Parent = parent return b end -- Header local Title = createBtn("Title", "Fly Gui - Make by My_Own_Script", UDim2.new(0,0,0,0), UDim2.new(0.9,0,0.12,0), Color3.fromRGB(0, 153, 188), MainFrame) local Close = createBtn("Close", "X", UDim2.new(0.9,0,0,0), UDim2.new(0.1,0,0.12,0), Color3.fromRGB(200, 0, 0), MainFrame) -- Left Side (Controls) local LeftPanel = Instance.new("Frame", MainFrame) LeftPanel.Size = UDim2.new(0.5, 0, 0.88, 0) LeftPanel.Position = UDim2.new(0, 0, 0.12, 0) LeftPanel.BackgroundTransparency = 1 local StartBtn = createBtn("Start", "START FLY", UDim2.new(0.05,0,0.05,0), UDim2.new(0.9,0,0.18,0), Color3.fromRGB(255, 140, 0), LeftPanel) local PlusBtn = createBtn("Plus", "+10", UDim2.new(0.05,0,0.25,0), UDim2.new(0.25,0,0.15,0), Color3.fromRGB(0, 32, 150), LeftPanel) local SpeedDisp = createBtn("Disp", "Speed: 50", UDim2.new(0.35,0,0.25,0), UDim2.new(0.3,0,0.15,0), Color3.fromRGB(67, 133, 200), LeftPanel) local MinusBtn = createBtn("Minus", "-10", UDim2.new(0.7,0,0.25,0), UDim2.new(0.25,0,0.15,0), Color3.fromRGB(204, 170, 0), LeftPanel) local NoclipBtn = createBtn("Noclip", "Noclip: OFF", UDim2.new(0.05,0,0.45,0), UDim2.new(0.9,0,0.15,0), Color3.fromRGB(60, 60, 60), LeftPanel) local ColorBtn = createBtn("Color", "Click here to Change ESP Color", UDim2.new(0.05,0,0.65,0), UDim2.new(0.9,0,0.3,0), Color3.fromRGB(45, 45, 45), LeftPanel) ColorBtn.TextWrapped = true -- Right Side (Player List) local RightPanel = Instance.new("ScrollingFrame", MainFrame) RightPanel.Size = UDim2.new(0.45, 0, 0.8, 0) RightPanel.Position = UDim2.new(0.52, 0, 0.15, 0) RightPanel.BackgroundColor3 = Color3.fromRGB(40, 40, 40) RightPanel.BorderSizePixel = 0 RightPanel.CanvasSize = UDim2.new(0, 0, 0, 0) local UIList = Instance.new("UIListLayout", RightPanel) -- LOGIC VARIABLES local flying, noclip = false, false local speed = 50 local espTarget = "None" local espColor = Color3.fromRGB(255, 0, 0) local ctrl = {f = 0, b = 0, l = 0, r = 0, u = 0, d = 0} -- DRAG LOGIC local dragging, dragStart, startPos Title.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then dragging = true; dragStart = input.Position; startPos = MainFrame.Position input.Changed:Connect(function() if input.UserInputState == Enum.UserInputState.End then dragging = false end end) end end) UserInputService.InputChanged:Connect(function(input) if dragging and input.UserInputType == Enum.UserInputType.MouseMovement then local delta = input.Position - dragStart MainFrame.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y) end end) -- ESP CLEAR FUNCTION local function clearAllESP() espTarget = "None" for _, p in pairs(Players:GetPlayers()) do if p.Character and p.Character:FindFirstChild("ESPHighlight") then p.Character.ESPHighlight.Enabled = false end end end -- ESP REFRESH SYSTEM local function updateESP() local allPlayers = Players:GetPlayers() local selectedList = {} if espTarget == "None" then clearAllESP() return elseif espTarget == "Everyone" then selectedList = allPlayers elseif espTarget == "Random" then if #allPlayers > 1 then local r; repeat r = allPlayers[math.random(#allPlayers)] until r ~= player selectedList = {r} end else local p = Players:FindFirstChild(espTarget) if p then selectedList = {p} end end -- Disable others for _, p in pairs(allPlayers) do if p.Character and p.Character:FindFirstChild("ESPHighlight") then p.Character.ESPHighlight.Enabled = false end end -- Apply New for _, p in pairs(selectedList) do if p ~= player and p.Character then local h = p.Character:FindFirstChild("ESPHighlight") or Instance.new("Highlight", p.Character) h.Name = "ESPHighlight" h.FillColor = espColor h.Enabled = true end end end -- UPDATE PLAYER LIST UI local function refreshPlayerList() for _, v in pairs(RightPanel:GetChildren()) do if v:IsA("TextButton") then v:Destroy() end end local function addListBtn(name, targetVal, color) local b = createBtn(name, name, UDim2.new(0,0,0,0), UDim2.new(1,0,0,30), color or Color3.fromRGB(50,50,50), RightPanel) b.MouseButton1Click:Connect(function() espTarget = targetVal updateESP() end) end -- Added unESP All (Clear) button addListBtn("[ UN-ESP ALL ]", "None", Color3.fromRGB(150, 0, 0)) addListBtn("[ EVERYONE ]", "Everyone", Color3.fromRGB(0, 100, 0)) addListBtn("[ RANDOM ]", "Random", Color3.fromRGB(100, 100, 0)) for _, p in pairs(Players:GetPlayers()) do if p ~= player then addListBtn(p.Name, p.Name) end end RightPanel.CanvasSize = UDim2.new(0,0,0, UIList.AbsoluteContentSize.Y) end Players.PlayerAdded:Connect(refreshPlayerList) Players.PlayerRemoving:Connect(refreshPlayerList) refreshPlayerList() -- BUTTONS StartBtn.MouseButton1Click:Connect(function() if flying then flying = false else flying = true; StartBtn.Text = "STOP FLY" local char = player.Character; local root = char.HumanoidRootPart local bg = Instance.new("BodyGyro", root); bg.maxTorque = Vector3.new(9e9, 9e9, 9e9); bg.P = 9e4 local bv = Instance.new("BodyVelocity", root); bv.maxForce = Vector3.new(9e9, 9e9, 9e9) task.spawn(function() while flying do RunService.RenderStepped:Wait() char.Humanoid.PlatformStand = true; local cam = workspace.CurrentCamera.CFrame bv.velocity = ((cam.LookVector * (ctrl.f + ctrl.b)) + (cam * CFrame.new(ctrl.l + ctrl.r, (ctrl.u + ctrl.d), 0).Position - cam.Position)).Unit * speed bg.cframe = cam if (ctrl.f+ctrl.b+ctrl.l+ctrl.r+ctrl.u+ctrl.d) == 0 then bv.velocity = Vector3.new(0,0,0) end end bg:Destroy(); bv:Destroy(); char.Humanoid.PlatformStand = false; StartBtn.Text = "START FLY" end) end end) NoclipBtn.MouseButton1Click:Connect(function() noclip = not noclip NoclipBtn.Text = noclip and "Noclip: ON" or "Noclip: OFF" NoclipBtn.BackgroundColor3 = noclip and Color3.fromRGB(0, 150, 0) or Color3.fromRGB(60, 60, 60) end) local colors = {Color3.new(1,0,0), Color3.new(0,1,0), Color3.new(0,0,1), Color3.new(1,1,0), Color3.new(1,0,1), Color3.new(0,1,1)} local colorIdx = 1 ColorBtn.MouseButton1Click:Connect(function() colorIdx = (colorIdx % #colors) + 1 espColor = colors[colorIdx] ColorBtn.TextColor3 = espColor updateESP() end) PlusBtn.MouseButton1Click:Connect(function() speed += 10; SpeedDisp.Text = "Speed: "..speed end) MinusBtn.MouseButton1Click:Connect(function() speed = math.max(0, speed-10); SpeedDisp.Text = "Speed: "..speed end) -- INPUTS UserInputService.InputBegan:Connect(function(i, g) if g then return end if i.KeyCode == Enum.KeyCode.W then ctrl.f = 1 elseif i.KeyCode == Enum.KeyCode.S then ctrl.b = -1 elseif i.KeyCode == Enum.KeyCode.A then ctrl.l = -1 elseif i.KeyCode == Enum.KeyCode.D then ctrl.r = 1 elseif i.KeyCode == Enum.KeyCode.E then ctrl.u = 1 elseif i.KeyCode == Enum.KeyCode.Q then ctrl.d = -1 end end) UserInputService.InputEnded:Connect(function(i) if i.KeyCode == Enum.KeyCode.W or i.KeyCode == Enum.KeyCode.S then ctrl.f, ctrl.b = 0, 0 elseif i.KeyCode == Enum.KeyCode.A or i.KeyCode == Enum.KeyCode.D then ctrl.l, ctrl.r = 0, 0 elseif i.KeyCode == Enum.KeyCode.E or i.KeyCode == Enum.KeyCode.Q then ctrl.u, ctrl.d = 0, 0 end end) RunService.Stepped:Connect(function() if noclip and player.Character then for _, v in pairs(player.Character:GetDescendants()) do if v:IsA("BasePart") then v.CanCollide = false end end end end) Close.MouseButton1Click:Connect(function() FlyGuiMain:Destroy() flying = false noclip = false end)