local Players = game:GetService("Players") local RunService = game:GetService("RunService") local Player = Players.LocalPlayer if not Player then return end local PlayerGui = Player:WaitForChild("PlayerGui") -- Remove old detector local OldGui = PlayerGui:FindFirstChild("EntityDetector") if OldGui then OldGui:Destroy() end -------------------------------------------------- -- GUI -------------------------------------------------- local Gui = Instance.new("ScreenGui") Gui.Name = "EntityDetector" Gui.ResetOnSpawn = false Gui.Parent = PlayerGui local Toggle = Instance.new("TextButton") Toggle.Size = UDim2.new(0,260,0,50) Toggle.Position = UDim2.new(0,20,0,20) Toggle.BackgroundColor3 = Color3.fromRGB(20,20,20) Toggle.BorderColor3 = Color3.fromRGB(255,0,0) Toggle.TextColor3 = Color3.fromRGB(255,255,255) Toggle.Font = Enum.Font.GothamBold Toggle.TextScaled = true Toggle.Text = "DREADED SCANNER OFF" Toggle.Parent = Gui local Status = Instance.new("TextLabel") Status.Size = UDim2.new(0,260,0,70) Status.Position = UDim2.new(0,20,0,80) Status.BackgroundColor3 = Color3.fromRGB(15,15,15) Status.BorderColor3 = Color3.fromRGB(255,0,0) Status.TextColor3 = Color3.fromRGB(255,80,80) Status.Font = Enum.Font.GothamBold Status.TextScaled = true Status.Text = "STATUS: IDLE" Status.Parent = Gui -------------------------------------------------- -- SETTINGS -------------------------------------------------- local Enabled = false local ESPs = {} local function WarningPopup(Text) local Warning = Instance.new("TextLabel") Warning.Size = UDim2.new(0,400,0,80) Warning.Position = UDim2.new(0.5,-200,0.05,0) Warning.BackgroundColor3 = Color3.fromRGB(120,0,0) Warning.BorderColor3 = Color3.fromRGB(255,0,0) Warning.TextColor3 = Color3.new(1,1,1) Warning.TextScaled = true Warning.Font = Enum.Font.GothamBold Warning.Text = Text Warning.Parent = Gui task.delay(3,function() if Warning then Warning:Destroy() end end) end -------------------------------------------------- -- ESP -------------------------------------------------- local function AddESP(Part) local function WarningPopup(Text) local Warning = Instance.new("TextLabel") Warning.Size = UDim2.new(0,400,0,80) Warning.Position = UDim2.new(0.5,-200,0.05,0) Warning.BackgroundColor3 = Color3.fromRGB(120,0,0) Warning.BorderColor3 = Color3.fromRGB(255,0,0) Warning.TextColor3 = Color3.new(1,1,1) Warning.TextScaled = true Warning.Font = Enum.Font.GothamBold Warning.Text = Text Warning.Parent = Gui task.delay(3,function() if Warning then Warning:Destroy() end end) end if ESPs[Part] then return end -- Selection Box local Box = Instance.new("SelectionBox") Box.Name = "A60Box" Box.Adornee = Part Box.Color3 = Color3.fromRGB(255,0,0) Box.LineThickness = 0.05 Box.SurfaceTransparency = 1 Box.Parent = Part -- Distance Tag local Billboard = Instance.new("BillboardGui") Billboard.Name = "A60ESP" Billboard.Size = UDim2.new(0,220,0,70) Billboard.AlwaysOnTop = true Billboard.StudsOffset = Vector3.new(0,4,0) Billboard.Adornee = Part Billboard.Parent = Gui local Label = Instance.new("TextLabel") Label.Size = UDim2.new(1,0,1,0) Label.BackgroundTransparency = 1 Label.TextColor3 = Color3.fromRGB(255,0,0) Label.TextStrokeTransparency = 0 Label.TextScaled = true Label.Font = Enum.Font.GothamBold Label.Parent = Billboard ESPs[Part] = { Box = Box, Billboard = Billboard, Label = Label } local Box = Instance.new("BoxHandleAdornment") Box.Name = "A60Box" Box.Adornee = Part Box.AlwaysOnTop = true Box.ZIndex = 10 Box.Size = Part.Size + Vector3.new(4,4,4) Box.Transparency = 0.5 Box.Color3 = Color3.fromRGB(255,0,0) Box.Parent = Part Status.Text = "STATUS: ACTIVE\nTHREAT: EXTREME" end local function RemoveAllESP() for _, Data in pairs(ESPs) do if Data.Box then Data.Box:Destroy() end if Data.Billboard then Data.Billboard:Destroy() end end table.clear(ESPs) Status.Text = "STATUS: IDLE" end -------------------------------------------------- -- SCAN -------------------------------------------------- local function Scan() local Count = 0 for _, Obj in ipairs(workspace:GetDescendants()) do if Obj:IsA("BasePart") and string.lower(Obj.Name) == "monster" then Count = Count + 1 AddESP(Obj) end end if Count > 0 then Status.Text = "ENTITIES: " .. Count .. "\nTHREAT: EXTREME" Status.Text = "STATUS: SCANNING".. "\nTHREAT: NONE" end end -------------------------------------------------- -- TOGGLE -------------------------------------------------- Toggle.MouseButton1Click:Connect(function() Enabled = not Enabled if Enabled then Toggle.Text = "DREADED SCANNER ON" Scan() else Toggle.Text = "DREADED SCANNER OFF" RemoveAllESP() end end) -------------------------------------------------- -- NEW ENTITY DETECTION -------------------------------------------------- workspace.DescendantAdded:Connect(function(Obj) if not Enabled then return end if Obj:IsA("BasePart") and string.lower(Obj.Name) == "monster" then AddESP(Obj) WarningPopup( "⚠ ENTITY DETECTED ⚠\n" .. Obj.Name ) end end) workspace.DescendantRemoving:Connect(function(Obj) if not Enabled then return end if ESPs[Obj] then WarningPopup( "✓ ENTITY DESPAWNED ✓\n" .. Obj.Name ) local Data = ESPs[Obj] if Data.Box then Data.Box:Destroy() end if Data.Billboard then Data.Billboard:Destroy() end ESPs[Obj] = nil if next(ESPs) == nil then Status.Text = "STATUS: IDLE" end end end) -------------------------------------------------- -- DISTANCE UPDATE -------------------------------------------------- RunService.RenderStepped:Connect(function() if not Enabled then return end local Character = Player.Character local Root = Character and Character:FindFirstChild("HumanoidRootPart") if not Root then return end for Part, Data in pairs(ESPs) do if not Part.Parent then if Data.Box then Data.Box:Destroy() end if Data.Billboard then Data.Billboard:Destroy() end ESPs[Part] = nil else local Distance = math.floor( (Part.Position - Root.Position).Magnitude ) Data.Label.Text = "A-60 MULTI-MONSTER\n" .. Distance .. "m\n" .. "THREAT: EXTREME" end end end)