-- KS HUB - Estilo Cartola Hub (Brookhaven - Final 2026) -- Créditos como primeira aba | Bolinha KS arrastável | Discord + redes sociais local Players = game:GetService("Players") local TweenService = game:GetService("TweenService") local UserInputService = game:GetService("UserInputService") local StarterGui = game:GetService("StarterGui") local RunService = game:GetService("RunService") local Lighting = game:GetService("Lighting") local ReplicatedStorage = game:GetService("ReplicatedStorage") local TeleportService = game:GetService("TeleportService") local player = Players.LocalPlayer local gui = Instance.new("ScreenGui") gui.Name = "KS_HUB_Cartola_Final" gui.ResetOnSpawn = false gui.Parent = game:GetService("CoreGui") print("KS HUB v2 - Brookhaven 2026 - Carregando...") -- // Bolinha KS (arrastável) local toggle = Instance.new("TextButton") toggle.Size = UDim2.new(0, 70, 0, 70) toggle.Position = UDim2.new(0, 20, 0.5, -35) toggle.BackgroundColor3 = Color3.fromRGB(15, 15, 25) toggle.Text = "KS" toggle.TextColor3 = Color3.fromRGB(180, 180, 255) toggle.Font = Enum.Font.GothamBold toggle.TextSize = 26 toggle.Parent = gui local toggleCorner = Instance.new("UICorner") toggleCorner.CornerRadius = UDim.new(1, 0) toggleCorner.Parent = toggle -- Sistema de drag local dragging, dragInput, dragStart, startPos toggle.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then dragging = true dragStart = input.Position startPos = toggle.Position input.Changed:Connect(function() if input.UserInputState == Enum.UserInputState.End then dragging = false end end) end end) toggle.InputChanged:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then dragInput = input end end) RunService.RenderStepped:Connect(function() if dragging and dragInput then local delta = dragInput.Position - dragStart toggle.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y) end end) toggle.MouseEnter:Connect(function() TweenService:Create(toggle, TweenInfo.new(0.2), {BackgroundColor3 = Color3.fromRGB(35, 35, 60)}):Play() end) toggle.MouseLeave:Connect(function() TweenService:Create(toggle, TweenInfo.new(0.2), {BackgroundColor3 = Color3.fromRGB(15, 15, 25)}):Play() end) -- // Menu principal local menu = Instance.new("Frame") menu.Size = UDim2.new(0.42, 0, 0.72, 0) menu.Position = UDim2.new(0.29, 0, 0.14, 0) menu.BackgroundColor3 = Color3.fromRGB(18, 18, 28) menu.BorderSizePixel = 0 menu.Visible = false menu.Parent = gui local menuCorner = Instance.new("UICorner") menuCorner.CornerRadius = UDim.new(0, 12) menuCorner.Parent = menu local menuStroke = Instance.new("UIStroke") menuStroke.Color = Color3.fromRGB(60, 60, 90) menuStroke.Thickness = 2 menuStroke.Parent = menu -- Título local title = Instance.new("TextLabel") title.Size = UDim2.new(1, 0, 0, 45) title.BackgroundColor3 = Color3.fromRGB(25, 25, 40) title.Text = "KS HUB • Brookhaven" title.TextColor3 = Color3.fromRGB(200, 200, 255) title.Font = Enum.Font.GothamBlack title.TextSize = 22 title.Parent = menu -- Botão X local closeBtn = Instance.new("TextButton") closeBtn.Size = UDim2.new(0, 40, 0, 40) closeBtn.Position = UDim2.new(1, -50, 0, 2) closeBtn.BackgroundColor3 = Color3.fromRGB(200, 50, 50) closeBtn.Text = "X" closeBtn.TextColor3 = Color3.new(1,1,1) closeBtn.Font = Enum.Font.GothamBold closeBtn.TextSize = 20 closeBtn.Parent = title local closeCorner = Instance.new("UICorner") closeCorner.CornerRadius = UDim.new(0, 8) closeCorner.Parent = closeBtn -- Abas laterais local tabsFrame = Instance.new("ScrollingFrame") tabsFrame.Size = UDim2.new(0.35, 0, 1, -45) tabsFrame.Position = UDim2.new(0, 0, 0, 45) tabsFrame.BackgroundTransparency = 1 tabsFrame.ScrollBarThickness = 0 tabsFrame.Parent = menu local tabsList = Instance.new("UIListLayout") tabsList.SortOrder = Enum.SortOrder.LayoutOrder tabsList.Padding = UDim.new(0, 6) tabsList.Parent = tabsFrame -- Área de conteúdo local content = Instance.new("ScrollingFrame") content.Size = UDim2.new(0.65, 0, 1, -45) content.Position = UDim2.new(0.35, 0, 0, 45) content.BackgroundTransparency = 1 content.ScrollBarThickness = 5 content.ScrollBarImageColor3 = Color3.fromRGB(90, 90, 120) content.ScrollingDirection = Enum.ScrollingDirection.Y content.CanvasSize = UDim2.new(0, 0, 0, 0) content.Parent = menu local contentList = Instance.new("UIListLayout") contentList.SortOrder = Enum.SortOrder.LayoutOrder contentList.Padding = UDim.new(0, 10) contentList.Parent = content contentList:GetPropertyChangedSignal("AbsoluteContentSize"):Connect(function() content.CanvasSize = UDim2.new(0, 0, 0, contentList.AbsoluteContentSize.Y + 50) end) -- Funções auxiliares local function createTabButton(name) local btn = Instance.new("TextButton") btn.Size = UDim2.new(1, -10, 0, 45) btn.BackgroundColor3 = Color3.fromRGB(28, 28, 40) btn.Text = name btn.TextColor3 = Color3.fromRGB(180, 180, 220) btn.Font = Enum.Font.GothamSemibold btn.TextSize = 16 btn.Parent = tabsFrame local btnCorner = Instance.new("UICorner") btnCorner.CornerRadius = UDim.new(0, 8) btnCorner.Parent = btn return btn end local function createFunctionButton(text, callback, toggleable) local btn = Instance.new("TextButton") btn.Size = UDim2.new(1, -20, 0, 55) btn.BackgroundColor3 = Color3.fromRGB(35, 35, 50) btn.Text = text btn.TextColor3 = Color3.fromRGB(220, 220, 255) btn.Font = Enum.Font.Gotham btn.TextSize = 15 btn.TextXAlignment = Enum.TextXAlignment.Left btn.Parent = content local pad = Instance.new("UIPadding", btn) pad.PaddingLeft = UDim.new(0, 15) local btnCorner = Instance.new("UICorner") btnCorner.CornerRadius = UDim.new(0, 8) btnCorner.Parent = btn local state = false local function updateVisual() if toggleable then btn.BackgroundColor3 = state and Color3.fromRGB(60, 90, 60) or Color3.fromRGB(35, 35, 50) end end btn.MouseButton1Click:Connect(function() if toggleable then state = not state updateVisual() end if callback then callback(state) end if not toggleable then StarterGui:SetCore("SendNotification", { Title = "KS HUB", Text = text .. " executado!", Duration = 2.5 }) end end) btn.MouseEnter:Connect(function() if not (toggleable and state) then TweenService:Create(btn, TweenInfo.new(0.15), {BackgroundColor3 = Color3.fromRGB(50, 50, 70)}):Play() end end) btn.MouseLeave:Connect(function() if not (toggleable and state) then TweenService:Create(btn, TweenInfo.new(0.15), {BackgroundColor3 = Color3.fromRGB(35, 35, 50)}):Play() end end) return btn end -- Abas local tabNames = {"Créditos", "Home", "Player", "Visual", "Lugares", "Diversão", "Farm", "Troll"} local tabButtons = {} for _, name in ipairs(tabNames) do local btn = createTabButton(name) tabButtons[name] = btn end -- Variáveis de estado importantes local noclipConnection local flyConnection local flySpeed = 50 local flying = false -- Funções reais úteis para Brookhaven local function toggleNoClip(state) if state then if noclipConnection then noclipConnection:Disconnect() end noclipConnection = RunService.Stepped:Connect(function() if player.Character then for _, part in player.Character:GetDescendants() do if part:IsA("BasePart") then part.CanCollide = false end end end end) else if noclipConnection then noclipConnection:Disconnect() noclipConnection = nil end end end local function toggleFly(state) local char = player.Character if not char or not char:FindFirstChild("HumanoidRootPart") then return end local root = char.HumanoidRootPart local bodyVelocity = char:FindFirstChild("BV_KS") or Instance.new("BodyVelocity") local bodyGyro = char:FindFirstChild("BG_KS") or Instance.new("BodyGyro") bodyVelocity.Name = "BV_KS" bodyGyro.Name = "BG_KS" bodyVelocity.MaxForce = Vector3.new(1e9, 1e9, 1e9) bodyGyro.MaxTorque = Vector3.new(1e9, 1e9, 1e9) bodyGyro.P = 9e4 bodyVelocity.Parent = root bodyGyro.Parent = root flying = state if state then spawn(function() while flying and char and char.Parent do local moveDirection = Vector3.new(0,0,0) if UserInputService:IsKeyDown(Enum.KeyCode.W) then moveDirection += Vector3.new(0,0,-1) end if UserInputService:IsKeyDown(Enum.KeyCode.S) then moveDirection += Vector3.new(0,0,1) end if UserInputService:IsKeyDown(Enum.KeyCode.A) then moveDirection += Vector3.new(-1,0,0) end if UserInputService:IsKeyDown(Enum.KeyCode.D) then moveDirection += Vector3.new(1,0,0) end if UserInputService:IsKeyDown(Enum.KeyCode.Space) then moveDirection += Vector3.new(0,1,0) end if UserInputService:IsKeyDown(Enum.KeyCode.LeftControl) then moveDirection += Vector3.new(0,-1,0) end bodyVelocity.Velocity = (moveDirection * flySpeed) * (root.CFrame.LookVector + Vector3.new(0,moveDirection.Y*2,0)) bodyGyro.CFrame = workspace.CurrentCamera.CFrame task.wait() end bodyVelocity:Destroy() bodyGyro:Destroy() end) else bodyVelocity:Destroy() bodyGyro:Destroy() end end -- Lógica de troca de aba for name, btn in pairs(tabButtons) do btn.MouseButton1Click:Connect(function() -- Visual da aba selecionada for _, b in pairs(tabButtons) do b.BackgroundColor3 = Color3.fromRGB(28, 28, 40) end btn.BackgroundColor3 = Color3.fromRGB(60, 60, 90) -- Limpa conteúdo anterior for _, child in content:GetChildren() do if child:IsA("GuiButton") or child:IsA("GuiLabel") then child:Destroy() end end if name == "Créditos" then local creditLabel = Instance.new("TextLabel") creditLabel.Size = UDim2.new(1, -20, 0, 260) creditLabel.BackgroundTransparency = 1 creditLabel.RichText = true creditLabel.Text = "KS HUB - Brookhaven\n\n" .. "Criador/Desenvolvedor:\n" .. "samuel_mi244\n\n" .. "Redes sociais:\n" .. "• Discord: https://discord.gg/dquaVUGR\n" .. "• TikTok: samuel_mi244\n" .. "• Instagram: samuel_mi244\n" .. "• YouTube: samuel_mi244\n\n" .. "Feito com carinho especialmente para Brookhaven!\nObrigado por usar ♥" creditLabel.TextColor3 = Color3.fromRGB(220, 220, 255) creditLabel.Font = Enum.Font.GothamSemibold creditLabel.TextSize = 18 creditLabel.TextWrapped = true creditLabel.TextXAlignment = Enum.TextXAlignment.Left creditLabel.Parent = content local pad = Instance.new("UIPadding", creditLabel) pad.PaddingLeft = UDim.new(0, 15) pad.PaddingTop = UDim.new(0, 12) elseif name == "Home" then createFunctionButton("Rejoin (Mudar de servidor)", function() TeleportService:Teleport(game.PlaceId) end) createFunctionButton("Anti-AFK (Em desenvolvimento)", function() end) createFunctionButton("Fullbright (Sem neblina)", function() Lighting.Brightness = 3 Lighting.GlobalShadows = false Lighting.FogEnd = 999999 Lighting.Ambient = Color3.fromRGB(180,180,180) end) createFunctionButton("Resetar Personagem", function() if player.Character then player.Character:BreakJoints() end end) elseif name == "Player" then createFunctionButton("Speed = 80", function() local hum = player.Character and player.Character:FindFirstChildWhichIsA("Humanoid") if hum then hum.WalkSpeed = 80 end end) createFunctionButton("Jump Power = 150", function() local hum = player.Character and player.Character:FindFirstChildWhichIsA("Humanoid") if hum then hum.JumpPower = 150 end end) createFunctionButton("Altura Infinita (Semi)", function() local hum = player.Character and player.Character:FindFirstChildWhichIsA("Humanoid") if hum then hum.HipHeight = 25 end end) createFunctionButton("Invisibilidade (Local)", function() if player.Character then for _, part in player.Character:GetDescendants() do if part:IsA("BasePart") or part:IsA("Decal") then part.Transparency = 1 end end end end) elseif name == "Visual" then createFunctionButton("NoClip", toggleNoClip, true) createFunctionButton("Fly (WASD + Space/Ctrl)", toggleFly, true) createFunctionButton("ESP Players (Em breve)", function() end) elseif name == "Lugares" then createFunctionButton("Ir para Escola", function() player.Character:PivotTo(CFrame.new(-370, 20, -300)) end) createFunctionButton("Ir para Banco", function() player.Character:PivotTo(CFrame.new(-300, 20, 100)) end) createFunctionButton("Ir para Praia", function() player.Character:PivotTo(CFrame.new(300, 5, 800)) end) elseif name == "Diversão" then createFunctionButton("Spam Chat 'KS HUB'", function() spawn(function() for i = 1, 30 do game:GetService("ReplicatedStorage").DefaultChatSystemChatEvents.SayMessageRequest:FireServer("KS HUB é top!", "All") task.wait(0.4) end end) end) createFunctionButton("Troll - Teleport Random", function() local hum = player.Character and player.Character:FindFirstChild("HumanoidRootPart") if hum then hum.CFrame = hum.CFrame + Vector3.new(math.random(-300,300), 0, math.random(-300,300)) end end) elseif name == "Farm" then createFunctionButton("Auto Farm Money (Simples - teste)", function() spawn(function() while task.wait(0.8) do game:GetService("ReplicatedStorage").Remotes.BuyMoney:FireServer(999999999) end end) end) elseif name == "Troll" then createFunctionButton("Kick Everyone (Fake)", function() StarterGui:SetCore("SendNotification", {Title="Troll", Text="Tentativa de kick global (apenas visual)", Duration=4}) end) createFunctionButton("Fling Players (Muito bugado)", function() local hum = player.Character and player.Character:FindFirstChild("HumanoidRootPart") if hum then hum.Velocity = Vector3.new(0, 100000, 0) end end) end end) end -- Toggle do menu local open = false local function toggleMenu() open = not open menu.Visible = open TweenService:Create(toggle, TweenInfo.new(0.25, Enum.EasingStyle.Quad), { BackgroundColor3 = open and Color3.fromRGB(50, 50, 90) or Color3.fromRGB(15, 15, 25) }):Play() end toggle.MouseButton1Click:Connect(toggleMenu) closeBtn.MouseButton1Click:Connect(toggleMenu) UserInputService.InputBegan:Connect(function(input, gpe) if gpe then return end if input.KeyCode == Enum.KeyCode.RightControl then toggleMenu() end end) -- Abre créditos automaticamente for name, btn in pairs(tabButtons) do if name == "Créditos" then btn.BackgroundColor3 = Color3.fromRGB(60, 60, 90) btn:Activate() -- simula clique para carregar créditos break end end print("KS HUB carregado com sucesso!") print("• Clique/arraste o KS para abrir") print("• RightControl = toggle menu")