
Key RequiredUniversal

-- Phenix Hub for Brookhaven RP
-- Modern Dark Theme GUI with Features
local Players = game:GetService("Players")
local LocalPlayer = Players.LocalPlayer
local TweenService = game:GetService("TweenService")
local UserInputService = game:GetService("UserInputService")
local RunService = game:GetService("RunService")
local Workspace = game:GetService("Workspace")
local Debris = game:GetService("Debris")
local ScreenGui = Instance.new("ScreenGui")
ScreenGui.Name = "PhenixHub"
ScreenGui.ResetOnSpawn = false
ScreenGui.Parent = game:GetService("CoreGui")
-- Theme Colors
local theme = {
BgPrimary = Color3.fromRGB(25, 25, 35),
BgSecondary = Color3.fromRGB(35, 35, 45),
BgTertiary = Color3.fromRGB(45, 45, 60),
Stroke = Color3.fromRGB(60, 60, 80),
TextPrimary = Color3.fromRGB(255, 255, 255),
TextSecondary = Color3.fromRGB(200, 200, 220),
Accent = Color3.fromRGB(255, 140, 0), -- Phenix orange
Error = Color3.fromRGB(255, 50, 50)
}
-- Helper Functions
local function createCorner(parent, radius)
local corner = Instance.new("UICorner")
corner.CornerRadius = UDim.new(0, radius or 12)
corner.Parent = parent
return corner
end
local function createStroke(parent, thickness, color)
local stroke = Instance.new("UIStroke")
stroke.Thickness = thickness or 1
stroke.Color = color or theme.Stroke
stroke.Parent = parent
return stroke
end
local function makeDraggable(topbar, frame)
local dragging = false
local dragStart = nil
local startPos = nil
topbar.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
dragging = true
dragStart = input.Position
startPos = frame.Position
end
end)
topbar.InputChanged:Connect(function(input)
if dragging and input.UserInputType == Enum.UserInputType.MouseMovement then
local delta = input.Position - dragStart
frame.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y)
end
end)
UserInputService.InputEnded:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
dragging = false
end
end)
end
local function notify(text)
local notif = ScreenGui:FindFirstChild("Notification")
if notif then notif:Destroy() end
notif = Instance.new("Frame")
notif.Name = "Notification"
notif.Size = UDim2.new(0, 300, 0, 60)
notif.Position = UDim2.new(0, -320, 0, 20)
notif.BackgroundColor3 = theme.BgSecondary
notif.Parent = ScreenGui
createCorner(notif, 10)
createStroke(notif, 2)
local label = Instance.new("TextLabel")
label.Size = UDim2.new(1, -20, 1, 0)
label.Position = UDim2.new(0, 10, 0, 0)
label.BackgroundTransparency = 1
label.Text = text
label.TextColor3 = theme.TextPrimary
label.TextScaled = true
label.Font = Enum.Font.Gotham
label.TextXAlignment = Enum.TextXAlignment.Left
label.Parent = notif
local ti = TweenInfo.new(0.3, Enum.EasingStyle.Quad, Enum.EasingDirection.Out)
TweenService:Create(notif, ti, {Position = UDim2.new(0, 20, 0, 20)}):Play()
wait(2)
local tiOut = TweenInfo.new(0.3, Enum.EasingStyle.Quad, Enum.EasingDirection.In)
TweenService:Create(notif, tiOut, {Position = UDim2.new(0, -320, 0, 20)}):Play()
game:GetService("Debris"):AddItem(notif, 0.4)
end
-- Main Frame
local MainFrame = Instance.new("Frame")
MainFrame.Size = UDim2.new(0, 0, 0, 0)
MainFrame.Position = UDim2.new(0.5, 0, 0.5, 0)
MainFrame.AnchorPoint = Vector2.new(0.5, 0.5)
MainFrame.BackgroundColor3 = theme.BgPrimary
MainFrame.Parent = ScreenGui
createCorner(MainFrame, 12)
createStroke(MainFrame, 2)
-- Open Animation
TweenService:Create(MainFrame, TweenInfo.new(0.5, Enum.EasingStyle.Back, Enum.EasingDirection.Out), {
Size = UDim2.new(0, 550, 0, 450)
}):Play()
-- Title Bar
local TitleBar = Instance.new("Frame")
TitleBar.Size = UDim2.new(1, 0, 0, 50)
TitleBar.BackgroundColor3 = Color3.fromRGB(20, 20, 30)
TitleBar.Parent = MainFrame
createCorner(TitleBar, 12)
local TitleLabel = Instance.new("TextLabel")
TitleLabel.Size = UDim2.new(1, -60, 1, 0)
TitleLabel.Position = UDim2.new(0, 15, 0, 0)
TitleLabel.BackgroundTransparency = 1
TitleLabel.Text = "Phenix Hub"
TitleLabel.TextColor3 = theme.Accent
TitleLabel.TextScaled = true
TitleLabel.Font = Enum.Font.GothamBold
TitleLabel.Parent = TitleBar
local CloseButton = Instance.new("TextButton")
CloseButton.Size = UDim2.new(0, 40, 0, 40)
CloseButton.Position = UDim2.new(1, -50, 0, 5)
CloseButton.BackgroundColor3 = theme.Error
CloseButton.Text = "✕"
CloseButton.TextColor3 = Color3.new(1,1,1)
CloseButton.TextScaled = true
CloseButton.Font = Enum.Font.GothamBold
CloseButton.Parent = TitleBar
createCorner(CloseButton, 8)
CloseButton.MouseButton1Click:Connect(function()
ScreenGui:Destroy()
end)
makeDraggable(TitleBar, MainFrame)
-- Tabs Bar
local TabsBar = Instance.new("Frame")
TabsBar.Size = UDim2.new(1, 0, 0, 45)
TabsBar.Position = UDim2.new(0, 0, 0, 50)
TabsBar.BackgroundTransparency = 1
TabsBar.Parent = MainFrame
local TabLayout = Instance.new("UIListLayout")
TabLayout.FillDirection = Enum.FillDirection.Horizontal
TabLayout.SortOrder = Enum.SortOrder.LayoutOrder
TabLayout.Padding = UDim.new(0, 0)
TabLayout.Parent = TabsBar
-- Content Area
local ContentArea = Instance.new("Frame")
ContentArea.Size = UDim2.new(1, 0, 1, -95)
ContentArea.Position = UDim2.new(0, 0, 0, 95)
ContentArea.BackgroundTransparency = 1
ContentArea.Parent = MainFrame
local ContentLayout = Instance.new("UIListLayout")
ContentLayout.FillDirection = Enum.FillDirection.Vertical
ContentLayout.Parent = ContentArea
-- Tab Management
local tabs = {"Home", "Player Tools", "Visuals", "Utilities"}
local tabButtons = {}
local tabContents = {}
for i, tabName in ipairs(tabs) do
-- Tab Button
local tabBtn = Instance.new("TextButton")
tabBtn.Size = UDim2.new(1 / #tabs, -4, 1, 0)
tabBtn.BackgroundTransparency = 1
tabBtn.Text = tabName
tabBtn.TextColor3 = theme.TextSecondary
tabBtn.TextScaled = true
tabBtn.Font = Enum.Font.GothamSemibold
tabBtn.LayoutOrder = i
tabBtn.Parent = TabsBar
tabButtons[i] = tabBtn
-- Tab Content
local tabContent = Instance.new("ScrollingFrame")
tabContent.Size = UDim2.new(1, -20, 1, -20)
tabContent.Position = UDim2.new(0, 10, 0, 10)
tabContent.BackgroundColor3 = theme.BgSecondary
tabContent.BorderSizePixel = 0
tabContent.ScrollBarThickness = 6
tabContent.ScrollBarImageColor3 = Color3.fromRGB(100, 100, 120)
tabContent.CanvasSize = UDim2.new(0, 0, 0, 0)
tabContent.Visible = (i == 1)
tabContent.Parent = ContentArea
createCorner(tabContent, 8)
createStroke(tabContent, 1)
tabContents[i] = tabContent
local contentList = Instance.new("UIListLayout")
contentList.Padding = UDim.new(0, 8)
contentList.SortOrder = Enum.SortOrder.LayoutOrder
contentList.Parent = tabContent
tabBtn.MouseButton1Click:Connect(function()
for j = 1, #tabs do
tabButtons[j].TextColor3 = theme.TextSecondary
tabContents[j].Visible = false
end
tabBtn.TextColor3 = theme.Accent
tabContent.Visible = true
end)
end
-- Home Tab
local homeLabel = Instance.new("TextLabel")
homeLabel.Size = UDim2.new(1, 0, 0, 100)
homeLabel.BackgroundTransparency = 1
homeLabel.Text = "Welcome to Phenix Hub\nBrookhaven Edition\n\nModern cheats at your fingertips."
homeLabel.TextColor3 = theme.TextPrimary
homeLabel.TextScaled = true
homeLabel.Font = Enum.Font.GothamBold
homeLabel.TextXAlignment = Enum.TextXAlignment.Center
homeLabel.Parent = tabContents[1]
-- Player Tools Tab (Player List with Teleport)
local playerListUpdated = false
local function updatePlayerList()
for _, child in pairs(tabContents[2]:GetChildren()) do
if child:IsA("TextButton") then child:Destroy() end
end
for _, player in pairs(Players:GetPlayers()) do
if player ~= LocalPlayer and player.Character then
local tpBtn = Instance.new("TextButton")
tpBtn.Size = UDim2.new(1, 0, 0, 45)
tpBtn.BackgroundColor3 = theme.BgTertiary
tpBtn.Text = "🚀 Teleport to " .. player.Name
tpBtn.TextColor3 = theme.TextPrimary
tpBtn.TextScaled = true
tpBtn.Font = Enum.Font.Gotham
tpBtn.Parent = tabContents[2]
createCorner(tpBtn, 8)
createStroke(tpBtn, 1)
tpBtn.MouseButton1Click:Connect(function()
if player.Character and player.Character:FindFirstChild("HumanoidRootPart") and LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("HumanoidRootPart") then
LocalPlayer.Character.HumanoidRootPart.CFrame = player.Character.HumanoidRootPart.CFrame * CFrame.new(0, 0, -2)
notify("Teleported to " .. player.Name)
end
end)
end
end
tabContents[2].CanvasSize = UDim2.new(0, 0, 0, tabContents[2].UIListLayout.AbsoluteContentSize.Y + 20)
end
Players.PlayerAdded:Connect(updatePlayerList)
Players.PlayerRemoving:Connect(updatePlayerList)
spawn(updatePlayerList)
-- Visuals Tab (ESP)
local espEnabled = false
local espObjects = {}
local espConnection
local function toggleESP()
espEnabled = not espEnabled
if espEnabled then
for _, player in pairs(Players:GetPlayers()) do
if player ~= LocalPlayer then createESP(player) end
end
espConnection = RunService.RenderStepped:Connect(updateESP)
notify("ESP Enabled")
else
if espConnection then espConnection:Disconnect() end
for player, obj in pairs(espObjects) do
if obj.box then obj.box:Remove() end
if obj.name then obj.name:Remove() end
end
espObjects = {}
notify("ESP Disabled")
end
end
function createESP(player)
local box = Drawing.new("Square")
box.Visible = false
box.Color = theme.Accent
box.Thickness = 2
box.Filled = false
box.Transparency = 0.8
local nameTag = Drawing.new("Text")
nameTag.Visible = false
nameTag.Color = Color3.new(1,1,1)
nameTag.Outline = true
nameTag.Center = true
nameTag.Size = 18
nameTag.Font = 2
espObjects[player] = {box = box, name = nameTag}
end
function updateESP()
local camera = Workspace.CurrentCamera
for player, obj in pairs(espObjects) do
if player.Character and player.Character:FindFirstChild("HumanoidRootPart") and player.Character:FindFirstChild("Head") then
local rootPart = player.Character.HumanoidRootPart
local head = player.Character.Head
local rootPos, onScreen = camera:WorldToViewportPoint(rootPart.Position)
local headPos = camera:WorldToViewportPoint(head.Position + Vector3.new(0, 0.6, 0))
local legPos = camera:WorldToViewportPoint(rootPart.Position - Vector3.new(0, 3.5, 0))
local height = math.abs(legPos.Y - headPos.Y)
local width = height * 0.4
obj.box.Size = Vector2.new(width, height)
obj.box.Position = Vector2.new(rootPos.X - width / 2, rootPos.Y - height / 2)
obj.box.Visible = onScreen
obj.name.Text = player.Name
obj.name.Position = Vector2.new(rootPos.X, rootPos.Y - height / 2 - 25)
obj.name.Visible = onScreen
else
obj.box.Visible = false
obj.name.Visible = false
end
end
end
local espToggle = Instance.new("TextButton")
espToggle.Size = UDim2.new(1, 0, 0, 50)
espToggle.BackgroundColor3 = theme.BgTertiary
espToggle.Text = "👁️ Toggle ESP (OFF)"
espToggle.TextColor3 = theme.TextPrimary
espToggle.TextScaled = true
espToggle.Font = Enum.Font.GothamBold
espToggle.Parent = tabContents[3]
createCorner(espToggle, 8)
createStroke(espToggle, 1)
espToggle.MouseButton1Click:Connect(toggleESP)
Players.PlayerAdded:Connect(function(p)
if espEnabled then
createESP(p)
end
end)
Players.PlayerRemoving:Connect(function(p)
if espObjects[p] then
if espObjects[p].box then espObjects[p].box:Remove() end
if espObjects[p].name then espObjects[p].name:Remove() end
espObjects[p] = nil
end
end)
-- Utilities Tab
local soundIdBox = Instance.new("TextBox")
soundIdBox.Size = UDim2.new(1, 0, 0, 45)
soundIdBox.BackgroundColor3 = theme.BgTertiary
soundIdBox.Text = "rbxassetid://131961136" -- Default trolly sound
soundIdBox.PlaceholderText = "Enter Sound ID (rbxassetid://...)"
soundIdBox.TextColor3 = theme.TextPrimary
soundIdBox.TextScaled = true
soundIdBox.Font = Enum.Font.Gotham
soundIdBox.Parent = tabContents[4]
createCorner(soundIdBox, 8)
createStroke(soundIdBox, 1)
local soundAllBtn = Instance.new("TextButton")
soundAllBtn.Size = UDim2.new(1, 0, 0, 45)
soundAllBtn.Position = UDim2.new(0, 0, 0, 55)
soundAllBtn.BackgroundColor3 = theme.BgTertiary
soundAllBtn.Text = "🔊 Sound All Players"
soundAllBtn.TextColor3 = theme.TextPrimary
soundAllBtn.TextScaled = true
soundAllBtn.Font = Enum.Font.GothamBold
soundAllBtn.Parent = tabContents[4]
createCorner(soundAllBtn, 8)
createStroke(soundAllBtn, 1)
soundAllBtn.MouseButton1Click:Connect(function()
for _, player in pairs(Players:GetPlayers()) do
if player ~= LocalPlayer and player.Character then
local sound = Instance.new("Sound")
sound.SoundId = soundIdBox.Text
sound.Volume = 0.5
sound.Parent = player.Character
sound:Play()
Debris:AddItem(sound, 10)
end
end
notify("Sound played for all players")
end)
local unbanBtn = Instance.new("TextButton")
unbanBtn.Size = UDim2.new(1, 0, 0, 45)
unbanBtn.Position = UDim2.new(0, 0, 0, 110)
unbanBtn.BackgroundColor3 = theme.BgTertiary
unbanBtn.Text = "🏠 Unban From All Houses"
unbanBtn.TextColor3 = theme.TextPrimary
unbanBtn.TextScaled = true
unbanBtn.Font = Enum.Font.GothamBold
unbanBtn.Parent = tabContents[4]
createCorner(unbanBtn, 8)
createStroke(unbanBtn, 1)
unbanBtn.MouseButton1Click:Connect(function()
local unbannedCount = 0
if Workspace:FindFirstChild("Houses") then
for _, house in pairs(Workspace.Houses:GetChildren()) do
if house.Name:find("House") and house:FindFirstChild("Info") then
local bans = house.Info:FindFirstChild("Bans")
if bans then
local myBan = bans:FindFirstChild(LocalPlayer.Name)
if myBan and myBan:IsA("BoolValue") then
myBan.Value = false
unbannedCount = unbannedCount + 1
end
end
end
end
end
notify("Unbanned from " .. unbannedCount .. " houses")
end)
local extraLabel = Instance.new("TextLabel")
extraLabel.Size = UDim2.new(1, 0, 0, 100)
extraLabel.Position = UDim2.new(0, 0, 0, 165)
extraLabel.BackgroundTransparency = 1
extraLabel.Text = "Extra Utilities\nComing Soon..."
extraLabel.TextColor3 = theme.TextSecondary
extraLabel.TextScaled = true
extraLabel.Font = Enum.Font.Gotham
extraLabel.TextXAlignment = Enum.TextXAlignment.Center
extraLabel.Parent = tabContents[4]


![Item Spawner - Bypass Gamepass [OPEN-SOURCE]](https://scriptblox.com/images/sb/rbx-2736e5de37c3d8bc17e5e9bd07d73e38-cc0a9732451c.png)
Bro these definitely chat gpt cause u did all these in like 2 weeks 💀
If not then 10/10 🎉