-- 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)