RnD En*y Detector
Key Required

RnD En*y Detector

Rooms & Doors (Hidden & Tactics)Angelo191681Angelo191681 808 views 31 executesUpdated Jun 27, 2026
Unrated
00
Lua Script•296 lines (6255 chars)
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)

Features & Information

Note: This only Detects Entity Like A-60 And A-60’

Community Comments (0)

No comments yet for this script.

More Scripts for Rooms & Doors (Hidden & Tactics)