Event hub
Key Required

Event hub

Brookhaven 🏡RPPao_scriptsPao_scripts 2.7K views 37 executesUpdated Jul 18, 2026
Unrated
00
Lua Script•210 lines (6776 chars)
-- [[ 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)

Features & Information

Event hub

Community Comments (0)

No comments yet for this script.

More Scripts for Brookhaven 🏡RP