local Workspace = game:GetService("Workspace") local RunService = game:GetService("RunService") local allPrompts = {} local function isValidPrompt(prompt) return prompt and prompt:IsA("ProximityPrompt") and prompt.Enabled end local function addPrompt(prompt) if isValidPrompt(prompt) then allPrompts[prompt] = true prompt.HoldDuration = 0 end end local function removePrompt(prompt) allPrompts[prompt] = nil end for _, prompt in ipairs(Workspace:GetDescendants()) do if prompt:IsA("ProximityPrompt") then addPrompt(prompt) end end Workspace.DescendantAdded:Connect(function(descendant) if descendant:IsA("ProximityPrompt") then addPrompt(descendant) end end) Workspace.DescendantRemoving:Connect(function(descendant) if descendant:IsA("ProximityPrompt") then removePrompt(descendant) end end) RunService.Heartbeat:Connect(function() for prompt, _ in pairs(allPrompts) do if prompt and prompt.Enabled and prompt.ActionText == "Examine" then pcall(function() prompt:InputHoldBegin() prompt:InputHoldEnd() end) end end end) local Civilians = workspace:WaitForChild("Civilians") local function updateESP(model, status) local root = model:FindFirstChild("HumanoidRootPart") if not root then return end local gui = model:FindFirstChild("StatusESP") if not gui then gui = Instance.new("BillboardGui") gui.Name = "StatusESP" gui.Adornee = root gui.AlwaysOnTop = true gui.Size = UDim2.new(0, 60, 0, 12) gui.StudsOffset = Vector3.new(0, 3, 0) gui.Parent = model local label = Instance.new("TextLabel") label.Name = "Label" label.Size = UDim2.new(1, 0, 1, 0) label.BackgroundTransparency = 1 label.Font = Enum.Font.Gotham label.TextScaled = true label.TextStrokeTransparency = 0.5 label.Parent = gui end local label = gui:FindFirstChild("Label") if not label then return end if status == "Zombie" then label.Text = "Infected" label.TextColor3 = Color3.fromRGB(255, 0, 0) elseif status == "Safe" then label.Text = "Safe" label.TextColor3 = Color3.fromRGB(0, 255, 0) elseif status == "Quarantine" then label.Text = "Quarantine" label.TextColor3 = Color3.fromRGB(255, 255, 0) else gui:Destroy() end end local function handleModel(model) if not model:IsA("Model") then return end local humanoid = model:FindFirstChildWhichIsA("Humanoid") local status = model:FindFirstChild("SymptomStatus") local root = model:FindFirstChild("HumanoidRootPart") if not (humanoid and status and root) then return end updateESP(model, status.Value) status:GetPropertyChangedSignal("Value"):Connect(function() updateESP(model, status.Value) end) humanoid.Died:Connect(function() if status.Value == "Zombie" then local esp = model:FindFirstChild("StatusESP") if esp then esp:Destroy() end end end) end for _, model in ipairs(Civilians:GetChildren()) do handleModel(model) end Civilians.ChildAdded:Connect(function(model) task.defer(function() handleModel(model) end) end) while true do for _, model in ipairs(Civilians:GetChildren()) do handleModel(model) end wait(2) end