local UserInputService = game:GetService("UserInputService") local RunService = game:GetService("RunService") local Players = game:GetService("Players") local Workspace = game:GetService("Workspace") local player = Players.LocalPlayer local camera = Workspace.CurrentCamera -- 1. UI CREATION local screenGui = Instance.new("ScreenGui") screenGui.Name = "CoolGui" screenGui.ResetOnSpawn = false screenGui.Parent = player:WaitForChild("PlayerGui") -- Toggle Button (Draggable preference handled below) local toggleBtn = Instance.new("TextButton") toggleBtn.Size = UDim2.new(0, 60, 0, 40) toggleBtn.Position = UDim2.new(0, 20, 0.5, -20) toggleBtn.BackgroundColor3 = Color3.fromRGB(30, 30, 35) toggleBtn.Text = "Cool" toggleBtn.TextColor3 = Color3.fromRGB(0, 255, 150) toggleBtn.Font = Enum.Font.GothamBold toggleBtn.TextSize = 14 toggleBtn.Parent = screenGui Instance.new("UICorner", toggleBtn).CornerRadius = UDim.new(0, 8) -- Main Menu Frame local mainFrame = Instance.new("Frame") mainFrame.Size = UDim2.new(0, 320, 0, 380) mainFrame.Position = UDim2.new(0.5, -160, 0.5, -190) mainFrame.BackgroundColor3 = Color3.fromRGB(20, 20, 25) mainFrame.Visible = false mainFrame.Parent = screenGui Instance.new("UICorner", mainFrame).CornerRadius = UDim.new(0, 12) -- Header local title = Instance.new("TextLabel") title.Size = UDim2.new(1, 0, 0, 50) title.BackgroundTransparency = 1 title.Text = "COOL GUI" title.TextColor3 = Color3.fromRGB(0, 255, 150) title.Font = Enum.Font.GothamBlack title.TextSize = 20 title.Parent = mainFrame -- Tab System local tabContainer = Instance.new("Frame") tabContainer.Size = UDim2.new(1, 0, 0, 35) tabContainer.Position = UDim2.new(0, 0, 0, 50) tabContainer.BackgroundTransparency = 1 tabContainer.Parent = mainFrame local tabLayout = Instance.new("UIListLayout") tabLayout.FillDirection = Enum.FillDirection.Horizontal tabLayout.HorizontalAlignment = Enum.HorizontalAlignment.Center tabLayout.Padding = UDim.new(0, 10) tabLayout.Parent = tabContainer local contentContainer = Instance.new("Frame") contentContainer.Size = UDim2.new(1, -20, 1, -100) contentContainer.Position = UDim2.new(0, 10, 0, 95) contentContainer.BackgroundTransparency = 1 contentContainer.Parent = mainFrame local currentTab = nil local function createTab(name) local btn = Instance.new("TextButton") btn.Size = UDim2.new(0, 85, 1, 0) btn.BackgroundColor3 = Color3.fromRGB(40, 40, 45) btn.Text = name btn.TextColor3 = Color3.new(1, 1, 1) btn.Font = Enum.Font.GothamBold btn.Parent = tabContainer Instance.new("UICorner", btn).CornerRadius = UDim.new(0, 6) local scroll = Instance.new("ScrollingFrame") scroll.Size = UDim2.new(1, 0, 1, 0) scroll.BackgroundTransparency = 1 scroll.ScrollBarThickness = 3 scroll.Visible = false scroll.Parent = contentContainer Instance.new("UIListLayout", scroll).Padding = UDim.new(0, 8) btn.MouseButton1Click:Connect(function() if currentTab then currentTab.Visible = false end scroll.Visible = true currentTab = scroll end) return scroll end local mainTab = createTab("Features") local visTab = createTab("Visuals") local tpTab = createTab("Players") mainTab.Visible = true currentTab = mainTab -- 2. CORE LOGIC (Toggle & Drag) toggleBtn.MouseButton1Click:Connect(function() mainFrame.Visible = not mainFrame.Visible end) local function makeDraggable(obj) local dragging, dragInput, dragStart, startPos obj.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then dragging = true; dragStart = input.Position; startPos = obj.Position input.Changed:Connect(function() if input.UserInputState == Enum.UserInputState.End then dragging = false end end) end end) obj.InputChanged:Connect(function(input) if dragging and (input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch) then local delta = input.Position - dragStart obj.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y) end end) end makeDraggable(mainFrame) local function createButton(tab, text, callback) local b = Instance.new("TextButton") b.Size = UDim2.new(1, -10, 0, 40) b.BackgroundColor3 = Color3.fromRGB(35, 35, 40) b.Text = text b.TextColor3 = Color3.new(1, 1, 1) b.Font = Enum.Font.Gotham b.Parent = tab Instance.new("UICorner", b) b.MouseButton1Click:Connect(function() callback(b) end) return b end -- 3. FEATURES -- Flight local flying = false local flySpeed = 50 local bv, bg createButton(mainTab, "Fly: OFF", function(btn) flying = not flying btn.Text = "Fly: " .. (flying and "ON" or "OFF") btn.TextColor3 = flying and Color3.fromRGB(0, 255, 150) or Color3.new(1,1,1) local char = player.Character if flying and char and char:FindFirstChild("HumanoidRootPart") then bv = Instance.new("BodyVelocity", char.HumanoidRootPart) bv.MaxForce = Vector3.new(math.huge, math.huge, math.huge) bg = Instance.new("BodyGyro", char.HumanoidRootPart) bg.MaxTorque = Vector3.new(math.huge, math.huge, math.huge) task.spawn(function() while flying and char:FindFirstChild("Humanoid") do bv.Velocity = camera.CFrame.LookVector * flySpeed bg.CFrame = camera.CFrame task.wait() end if bv then bv:Destroy() end; if bg then bg:Destroy() end end) elseif bv then bv:Destroy(); bg:Destroy() end end) -- Rainbow Skin (With Color Reset) local rainbowOn = false local originalColors = {} createButton(visTab, "Rainbow Skin: OFF", function(btn) rainbowOn = not rainbowOn btn.Text = "Rainbow Skin: " .. (rainbowOn and "ON" or "OFF") btn.TextColor3 = rainbowOn and Color3.fromRGB(0, 255, 255) or Color3.new(1,1,1) local char = player.Character if not char then return end if rainbowOn then for _, part in pairs(char:GetChildren()) do if part:IsA("BasePart") then originalColors[part] = part.Color end end else for part, color in pairs(originalColors) do if part and part.Parent then part.Color = color end end originalColors = {} end end) RunService.RenderStepped:Connect(function() if rainbowOn and player.Character then local color = Color3.fromHSV(tick() % 5 / 5, 0.8, 1) for _, part in pairs(player.Character:GetChildren()) do if part:IsA("BasePart") then part.Color = color end end end end) -- ESP local espOn = false createButton(visTab, "Player ESP: OFF", function(btn) espOn = not espOn btn.Text = "Player ESP: " .. (espOn and "ON" or "OFF") if not espOn then for _, p in pairs(Players:GetPlayers()) do if p.Character and p.Character:FindFirstChild("Highlight") then p.Character.Highlight:Destroy() end end end end) RunService.Heartbeat:Connect(function() if espOn then for _, p in pairs(Players:GetPlayers()) do if p ~= player and p.Character and not p.Character:FindFirstChild("Highlight") then local h = Instance.new("Highlight", p.Character) h.FillColor = Color3.fromRGB(0, 255, 150) end end end end) -- Teleport Player List local function updateTP() for _, child in pairs(tpTab:GetChildren()) do if child:IsA("TextButton") then child:Destroy() end end createButton(tpTab, "🔄 Refresh List", updateTP) for _, p in pairs(Players:GetPlayers()) do if p ~= player then createButton(tpTab, p.DisplayName, function() if p.Character and player.Character then player.Character.HumanoidRootPart.CFrame = p.Character.HumanoidRootPart.CFrame end end) end end end updateTP()