print("[OM Mines ESP] Now loading... Made by lil2kki <3") if _G.ChaseTrapESP_Connections then for _, v in pairs(_G.ChaseTrapESP_Connections) do pcall(function() v:Disconnect() end) end end _G.ChaseTrapESP_Connections = {} if _G.ChaseTrapESP_Objects then for _, v in pairs(_G.ChaseTrapESP_Objects) do pcall(function() v:Destroy() end) end end _G.ChaseTrapESP_Objects = {} local LocalPlayer = game:GetService("Players").LocalPlayer local TrapsESP = {} local KnownTrapSize = Vector3.new(16, 16, 16) local function MakeESP(trap) if not trap or trap.Name ~= "Union" or trap.Parent.Name ~= "Traps" then return end if TrapsESP[trap] then return end local espData = {} local box = Instance.new("BoxHandleAdornment") box.Size = KnownTrapSize box.Color3 = Color3.fromRGB(200, 0, 0) box.Transparency = 0.5 box.ZIndex = 10 box.Adornee = trap box.Parent = trap table.insert(_G.ChaseTrapESP_Objects, box) espData.box = box local glowBox = Instance.new("BoxHandleAdornment") glowBox.Size = Vector3.new(1, 1, 1) + KnownTrapSize glowBox.Color3 = Color3.fromRGB(255, 0, 0) glowBox.Transparency = 0.75 glowBox.AlwaysOnTop = true glowBox.ZIndex = 5 glowBox.Adornee = trap glowBox.Parent = trap table.insert(_G.ChaseTrapESP_Objects, glowBox) espData.glowBox = glowBox local bill = Instance.new("BillboardGui") bill.Size = UDim2.new(0, 120, 0, 35) bill.StudsOffset = Vector3.new(0, 0, 0) bill.AlwaysOnTop = true bill.MaxDistance = 400 bill.Parent = trap table.insert(_G.ChaseTrapESP_Objects, bill) espData.bill = bill local dist = Instance.new("TextLabel") dist.TextSize = 30 dist.Size = UDim2.new(1, 0, 0, 1) dist.Position = UDim2.new(0, 0, 0, 0) dist.BackgroundTransparency = 1 dist.Text = "huh" dist.TextColor3 = Color3.fromRGB(150, 50, 50) dist.Font = Enum.Font.GothamMedium dist.TextXAlignment = Enum.TextXAlignment.Center dist.TextYAlignment = Enum.TextYAlignment.Center dist.Parent = bill table.insert(_G.ChaseTrapESP_Objects, dist) espData.dist = dist TrapsESP[trap] = espData end local function UpdateESP() local root = LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("HumanoidRootPart") local rootPos = root and root.Position or Vector3.new(0, 0, 0) for trap, espData in pairs(TrapsESP) do if not trap or not trap.Parent then TrapsESP[trap] = nil continue end if root then local dist = (rootPos - trap.Position).Magnitude if dist < 25 then espData.box.Color3 = Color3.fromRGB(255, 0, 0) espData.glowBox.Color3 = Color3.fromRGB(255, 0, 0) espData.dist.TextColor3 = Color3.fromRGB(255, 0, 0) elseif dist < 60 then espData.box.Color3 = Color3.fromRGB(200, 100, 0) espData.glowBox.Color3 = Color3.fromRGB(200, 100, 0) espData.dist.TextColor3 = Color3.fromRGB(200, 100, 0) else espData.box.Color3 = Color3.fromRGB(150, 50, 50) espData.glowBox.Color3 = Color3.fromRGB(150, 50, 50) espData.dist.TextColor3 = Color3.fromRGB(150, 50, 50) end espData.dist.Text = "\nMINE\n[" .. string.format("%.0f", dist) .. "m]" end end end local function Cleanup() for trap, _ in pairs(TrapsESP) do if trap and trap.Parent then local esp = trap:FindFirstChild("ESP") if esp then esp:Destroy() end end end TrapsESP = {} end local Projectile = workspace:FindFirstChild("Projectile") or workspace:WaitForChild("Projectile") table.insert(_G.ChaseTrapESP_Connections, Projectile.DescendantAdded:Connect(function(child) if child.Name == "Union" and child.Parent.Name == "Traps" then task.wait(0.05) MakeESP(child) end end)) local function TrackRemoval(trap) table.insert(_G.ChaseTrapESP_Connections, trap.AncestryChanged:Connect(function() if not trap.Parent then TrapsESP[trap] = nil if conn then pcall(function() conn:Disconnect() end) end end end)) end for _, trap in pairs(Projectile:GetDescendants()) do if trap.Name == "Union" and trap.Parent.Name == "Traps" then MakeESP(trap) TrackRemoval(trap) end end table.insert(_G.ChaseTrapESP_Connections, game:GetService("RunService").Heartbeat:Connect(UpdateESP)) print("[OM Mines ESP] Ready!")