
Key RequiredUniversal

-- [[ 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)No comments yet for this script.



