-- [[ EVENT HUB: V.1 - BROOKHAVEN CARNAVAL (CLASSIC UI) ]] -- local player = game.Players.LocalPlayer local coreGui = game:GetService("CoreGui") -- Evitar duplicação de interface if coreGui:FindFirstChild("EventHubCarnaval") then coreGui["EventHubCarnaval"]:Destroy() end -- --- CRIANDO A INTERFACE BASE --- local ScreenGui = Instance.new("ScreenGui") ScreenGui.Name = "EventHubCarnaval" ScreenGui.Parent = coreGui ScreenGui.ResetOnSpawn = false -- Variáveis de Controle para o ESP local espAtivo = false local espObjects = {} -- --- FUNÇÃO AUXILIAR: ESP --- local function CriarESP(objeto) if not objeto:FindFirstChild("TicketESP") then local billboard = Instance.new("BillboardGui") billboard.Name = "TicketESP" billboard.AlwaysOnTop = true billboard.Size = UDim2.new(0, 100, 0, 50) billboard.StudsOffset = Vector3.new(0, 2, 0) billboard.Parent = objeto local label = Instance.new("TextLabel") label.Size = UDim2.new(1, 0, 1, 0) label.BackgroundTransparency = 1 label.Text = "TICKETS" label.TextColor3 = Color3.fromRGB(255, 255, 0) label.Font = Enum.Font.SourceSansBold label.TextSize = 14 label.Parent = billboard table.insert(espObjects, billboard) end end local function LimparESP() for _, esp in pairs(espObjects) do if esp then esp:Destroy() end end espObjects = {} end -- --- INTERFACE 1: BOLA FLUTUANTE (ABRIR MENU) --- local OpenButton = Instance.new("ImageButton") OpenButton.Name = "OpenButton" OpenButton.Parent = ScreenGui OpenButton.Position = UDim2.new(0, 20, 0.5, -25) OpenButton.Size = UDim2.new(0, 50, 0, 50) OpenButton.BackgroundColor3 = Color3.fromRGB(0, 0, 0) OpenButton.BackgroundTransparency = 0.2 OpenButton.Image = "rbxassetid://111149160951469" OpenButton.Visible = false -- Fica oculta enquanto o menu principal está aberto local OpenCorner = Instance.new("UICorner") OpenCorner.CornerRadius = UDim.new(1, 0) -- Deixa perfeitamente redonda (bola) OpenCorner.Parent = OpenButton -- --- INTERFACE 2: MENU PRINCIPAL (PRETO E ARRASTÁVEL) --- local MainFrame = Instance.new("Frame") MainFrame.Name = "MainFrame" MainFrame.Parent = ScreenGui MainFrame.Position = UDim2.new(0.5, -125, 0.5, -100) MainFrame.Size = UDim2.new(0, 250, 0, 220) MainFrame.BackgroundColor3 = Color3.fromRGB(15, 15, 15) MainFrame.BorderSizePixel = 1 MainFrame.BorderColor3 = Color3.fromRGB(40, 40, 40) MainFrame.Active = true MainFrame.Draggable = true -- Torna o menu arrastável nativamente -- Título do Menu local Title = Instance.new("TextLabel") Title.Name = "Title" Title.Parent = MainFrame Title.Size = UDim2.new(1, -35, 0, 30) Title.Position = UDim2.new(0, 10, 0, 0) Title.BackgroundTransparency = 1 Title.Text = "EVENT HUB: V.1" Title.TextColor3 = Color3.fromRGB(255, 255, 255) Title.Font = Enum.Font.SourceSansBold Title.TextSize = 16 Title.TextXAlignment = Enum.TextXAlignment.Left -- Botão de Fechar (X) local CloseButton = Instance.new("TextButton") CloseButton.Name = "CloseButton" CloseButton.Parent = MainFrame CloseButton.Size = UDim2.new(0, 30, 0, 30) CloseButton.Position = UDim2.new(1, -30, 0, 0) CloseButton.BackgroundTransparency = 1 CloseButton.Text = "X" CloseButton.TextColor3 = Color3.fromRGB(255, 50, 50) CloseButton.Font = Enum.Font.SourceSansBold CloseButton.TextSize = 18 -- Linha divisória de topo local Line = Instance.new("Frame") Line.Parent = MainFrame Line.Size = UDim2.new(1, 0, 0, 1) Line.Position = UDim2.new(0, 0, 0, 30) Line.BackgroundColor3 = Color3.fromRGB(40, 40, 40) Line.BorderSizePixel = 0 -- --- BOTÕES DE FUNÇÃO --- -- Estilo Padrão para os botões internos local function EstilarBotao(btn) btn.Size = UDim2.new(1, -20, 0, 35) btn.BackgroundColor3 = Color3.fromRGB(30, 30, 30) btn.BorderSizePixel = 1 btn.BorderColor3 = Color3.fromRGB(60, 60, 60) btn.TextColor3 = Color3.fromRGB(255, 255, 255) btn.Font = Enum.Font.SourceSans btn.TextSize = 14 end -- Botão 1: Coletar Tickets local BtnColetar = Instance.new("TextButton") BtnColetar.Parent = MainFrame BtnColetar.Position = UDim2.new(0, 10, 0, 45) BtnColetar.Text = "COLETAR TODOS OS TICKETS" EstilarBotao(BtnColetar) -- Botão 2: Alternador ESP (Ligar/Desligar) local BtnESP = Instance.new("TextButton") BtnESP.Parent = MainFrame BtnESP.Position = UDim2.new(0, 10, 0, 90) BtnESP.Text = "ESP TICKET: DESATIVADO" EstilarBotao(BtnESP) BtnESP.TextColor3 = Color3.fromRGB(255, 100, 100) -- Rodapé da Versão local Footer = Instance.new("TextLabel") Footer.Parent = MainFrame Footer.Size = UDim2.new(1, 0, 0, 20) Footer.Position = UDim2.new(0, 0, 1, -25) Footer.BackgroundTransparency = 1 Footer.Text = "Versão 1.0 - Carnaval 2026" Footer.TextColor3 = Color3.fromRGB(100, 100, 100) Footer.Font = Enum.Font.SourceSansItalic Footer.TextSize = 12 -- --- LÓGICA E FUNCIONALIDADES --- -- Sistema de Alternância Abrir/Fechar CloseButton.MouseButton1Click:Connect(function() MainFrame.Visible = false OpenButton.Visible = true end) OpenButton.MouseButton1Click:Connect(function() MainFrame.Visible = true OpenButton.Visible = false end) -- 1. Clique Coletar Tickets BtnColetar.MouseButton1Click:Connect(function() local character = player.Character or player.CharacterAdded:Wait() local rootPart = character:FindFirstChild("HumanoidRootPart") if not rootPart then return end for _, obj in pairs(workspace:GetDescendants()) do if obj.Name:lower():find("ticket") then local targetPos = nil if obj:IsA("Model") then targetPos = obj:GetPivot().Position elseif obj:IsA("BasePart") or obj:IsA("MeshPart") then targetPos = obj.Position end if targetPos then rootPart.CFrame = CFrame.new(targetPos + Vector3.new(0, 2, 0)) task.wait(0.5) end end end end) -- 2. Clique ESP Alternável BtnESP.MouseButton1Click:Connect(function() espAtivo = not espAtivo if espAtivo then BtnESP.Text = "ESP TICKET: ATIVADO" BtnESP.TextColor3 = Color3.fromRGB(100, 255, 100) for _, obj in pairs(workspace:GetDescendants()) do if obj.Name:lower():find("ticket") then if obj:IsA("Model") then local primary = obj.PrimaryPart or obj:FindFirstChildWhichIsA("BasePart") if primary then CriarESP(primary) end elseif obj:IsA("BasePart") or obj:IsA("MeshPart") then CriarESP(obj) end end end else BtnESP.Text = "ESP TICKET: DESATIVADO" BtnESP.TextColor3 = Color3.fromRGB(255, 100, 100) LimparESP() end end)