
Key RequiredUniversal

-- Firehub Master Script - Delta Optimized (Self ESP & Settings Added)
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local LocalPlayer = Players.LocalPlayer
local PlayerGui = LocalPlayer:WaitForChild("PlayerGui")
-- Variables for Settings
local Settings = {
ShowSelfESP = false,
ESPEnabled = true
}
-- 1. Persistent GUI Setup
local ScreenGui = Instance.new("ScreenGui", PlayerGui)
ScreenGui.Name = "FirehubGUI"
ScreenGui.ResetOnSpawn = false
ScreenGui.IgnoreGuiInset = true
local MainFrame = Instance.new("Frame", ScreenGui)
MainFrame.Size = UDim2.new(0.3, 0, 0.4, 0)
MainFrame.Position = UDim2.new(0.5, 0, 0.5, 0)
MainFrame.BackgroundColor3 = Color3.fromRGB(40, 40, 40)
MainFrame.Active = true; MainFrame.Draggable = true
-- Settings Title
local Title = Instance.new("TextLabel", MainFrame)
Title.Text = "FIREHUB SETTINGS"; Title.Size = UDim2.new(1, 0, 0.2, 0)
Title.TextColor3 = Color3.new(1, 1, 1); Title.BackgroundColor3 = Color3.fromRGB(150, 0, 0)
-- Toggle Self ESP Button
local SelfESPBtn = Instance.new("TextButton", MainFrame)
SelfESPBtn.Text = "Toggle Self ESP"; SelfESPBtn.Size = UDim2.new(0.8, 0, 0.2, 0)
SelfESPBtn.Position = UDim2.new(0.1, 0, 0.3, 0)
SelfESPBtn.MouseButton1Click:Connect(function()
Settings.ShowSelfESP = not Settings.ShowSelfESP
SelfESPBtn.Text = "Self ESP: " .. (Settings.ShowSelfESP and "ON" or "OFF")
end)
-- 2. ESP Logic (Includes Self ESP Check)
local function getRoleColor(player)
local char = player.Character
local backpack = player:FindFirstChild("Backpack")
local function isMurderer(obj) return obj.Name:lower():find("knife") end
local function isSheriff(obj) return obj.Name:lower():find("gun") or obj.Name:lower():find("revolver") end
if (char and char:FindFirstChildOfClass("Tool") and isMurderer(char:FindFirstChildOfClass("Tool"))) or (backpack and backpack:FindFirstChildOfClass("Tool") and isMurderer(backpack:FindFirstChildOfClass("Tool"))) then
return Color3.fromRGB(255, 0, 0) -- Red
elseif (char and char:FindFirstChildOfClass("Tool") and isSheriff(char:FindFirstChildOfClass("Tool"))) or (backpack and backpack:FindFirstChildOfClass("Tool") and isSheriff(backpack:FindFirstChildOfClass("Tool"))) then
return Color3.fromRGB(0, 0, 255) -- Blue
end
return Color3.fromRGB(0, 255, 0) -- Green
end
local function applyESP(player)
if not player.Character then return end
-- Self ESP Check
if player == LocalPlayer and not Settings.ShowSelfESP then
if player.Character:FindFirstChild("SolidHighlight") then player.Character.SolidHighlight:Destroy() end
return
end
if not player.Character:FindFirstChild("SolidHighlight") then
local h = Instance.new("Highlight")
h.Name = "SolidHighlight"; h.Adornee = player.Character
h.FillTransparency = 0.3; h.OutlineTransparency = 0
h.DepthMode = Enum.HighlightDepthMode.AlwaysOnTop; h.Parent = player.Character
end
player.Character.SolidHighlight.FillColor = getRoleColor(player)
end
-- 3. Main Loop
RunService.RenderStepped:Connect(function()
if Settings.ESPEnabled then
for _, p in pairs(Players:GetPlayers()) do
pcall(function() applyESP(p) end)
end
end
end)



ai generated btw
@Wortexios so what's wrong with it 🤡
@read_thaw it's AI GENERATED that's what