M
ScriptKeyless
Well-suited for an explorer.
Delivery Not Guaranteed (MUSHROOM UPDATE)Desktop & mobile readyDelta
Description
This is simply to make it easier to find Transgressors. The information is based on the wiki: https://delivery-not-guarantee.fandom.com/wiki/Transgressor
GAMEDelivery Not Guaranteed (MUSHROOM UPDATE)
UPDATEDOct 19, 2026
ACCESSKeyless
PLATFORMDesktop & Mobile
Script source Luau
-- [[ BloxScripts Risk Notice ]]
-- This script has not been verified by BloxScripts.fun. Deal with caution.
--
-- Stay safe:
-- • Never log in on unofficial Roblox sites or lookalike domains.
-- • Real Roblox links use roblox.com (check the .com ending).
-- • Treat fake Roblox login / "claim reward" pages as phishing.
-- [[ End BloxScripts Risk Notice ]]
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local UserInputService = game:GetService("UserInputService")
local player = Players.LocalPlayer
local playerGui = player:WaitForChild("PlayerGui")
local CENTER = Vector3.new(32, 0, 0)
local INNER_RADIUS = 20000
local OUTER_RADIUS = 40000
local MIN_Y = 500
local MAX_Y = 550
local SEGMENTS = 96
local RED = Color3.fromRGB(255, 0, 0)
local running = true
-- Remove previous version
local oldGui = playerGui:FindFirstChild("RedESPBorder")
if oldGui then oldGui:Destroy() end
local gui = Instance.new("ScreenGui")
gui.Name = "RedESPBorder"
gui.ResetOnSpawn = false
gui.IgnoreGuiInset = true
gui.Parent = playerGui
local panel = Instance.new("Frame")
panel.Size = UDim2.fromOffset(220, 94)
panel.Position = UDim2.new(0, 15, 0.35, 0)
panel.BackgroundColor3 = Color3.fromRGB(25, 25, 25)
panel.BorderSizePixel = 0
panel.Active = true
panel.Parent = gui
local corner = Instance.new("UICorner")
corner.CornerRadius = UDim.new(0, 8)
corner.Parent = panel
local title = Instance.new("TextLabel")
title.Size = UDim2.new(1, 0, 0, 32)
title.BackgroundTransparency = 1
title.Text = "RED ESP BORDER"
title.TextColor3 = RED
title.TextSize = 16
title.Font = Enum.Font.GothamBold
title.Parent = panel
local button = Instance.new("TextButton")
button.Size = UDim2.new(1, -16, 0, 34)
button.Position = UDim2.fromOffset(8, 42)
button.BackgroundColor3 = RED
button.TextColor3 = Color3.new(1, 1, 1)
button.Text = "BORDER: ON"
button.TextSize = 14
button.Font = Enum.Font.GothamBold
button.Parent = panel
local bc = Instance.new("UICorner")
bc.CornerRadius = UDim.new(0, 6)
bc.Parent = button
-- Screen-space line pool
local lines = {}
local function createLine()
local line = Instance.new("Frame")
line.Name = "BorderLine"
line.AnchorPoint = Vector2.new(0.5, 0.5)
line.BorderSizePixel = 0
line.BackgroundColor3 = RED
line.BackgroundTransparency = 0.1
line.Visible = false
line.Parent = gui
return line
end
-- Four vertical edges for every sampled point on both rings.
-- Also draw the top and bottom outlines.
local MAX_LINES = (SEGMENTS * 2 * 3) + (SEGMENTS * 2)
for i = 1, MAX_LINES do
lines[i] = createLine()
end
local function projectPoint(camera, point)
local screen, visible = camera:WorldToViewportPoint(point)
return Vector2.new(screen.X, screen.Y), visible, screen.Z
end
local function drawLine(line, camera, a, b)
local pa, va, za = projectPoint(camera, a)
local pb, vb, zb = projectPoint(camera, b)
-- Hide segments behind the camera or outside the viewport.
-- WorldToViewportPoint does not clip the line to screen edges.
if za <= 0 or zb <= 0 or (not va and not vb) then
line.Visible = false
return
end
local delta = pb - pa
line.Position = UDim2.fromOffset(
(pa.X + pb.X) / 2,
(pa.Y + pb.Y) / 2
)
line.Size = UDim2.fromOffset(
math.max(1, delta.Magnitude),
2
)
line.Rotation = math.deg(math.atan2(delta.Y, delta.X))
line.Visible = running
end
local function ringPoint(radius, angle, y)
return Vector3.new(
CENTER.X + math.cos(angle) * radius,
y,
CENTER.Z + math.sin(angle) * radius
)
end
local function render()
local camera = workspace.CurrentCamera
if not camera then return end
local index = 1
local function add(a, b)
drawLine(lines[index], camera, a, b)
index += 1
end
for _, radius in ipairs({INNER_RADIUS, OUTER_RADIUS}) do
for i = 0, SEGMENTS - 1 do
local a1 = (i / SEGMENTS) * math.pi * 2
local a2 = ((i + 1) / SEGMENTS) * math.pi * 2
local bottom1 = ringPoint(radius, a1, MIN_Y)
local bottom2 = ringPoint(radius, a2, MIN_Y)
local top1 = ringPoint(radius, a1, MAX_Y)
local top2 = ringPoint(radius, a2, MAX_Y)
-- Vertical grid posts
add(bottom1, top1)
-- Top and bottom grid outlines
add(bottom1, bottom2)
add(top1, top2)
end
end
-- Hide any unused lines
for i = index, #lines do
lines[i].Visible = false
end
end
button.Activated:Connect(function()
running = not running
button.Text = running and "BORDER: ON" or "BORDER: OFF"
button.BackgroundColor3 = running
and RED
or Color3.fromRGB(70, 70, 70)
if not running then
for _, line in ipairs(lines) do
line.Visible = false
end
end
end)
-- Drag panel on touch and mouse
local dragging = false
local dragStart
local startPos
local dragInput
title.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1
or input.UserInputType == Enum.UserInputType.Touch then
dragging = true
dragStart = input.Position
startPos = panel.Position
input.Changed:Connect(function()
if input.UserInputState == Enum.UserInputState.End then
dragging = false
end
end)
end
end)
title.InputChanged:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseMovement
or input.UserInputType == Enum.UserInputType.Touch then
dragInput = input
end
end)
UserInputService.InputChanged:Connect(function(input)
if dragging and input == dragInput then
local d = input.Position - dragStart
panel.Position = UDim2.new(
startPos.X.Scale, startPos.X.Offset + d.X,
startPos.Y.Scale, startPos.Y.Offset + d.Y
)
end
end)
local connection = RunService.RenderStepped:Connect(render)
script.Destroying:Connect(function()
connection:Disconnect()
end)
print("[Red ESP Border] Loaded")
Review the source before using it. Executions count successful copies, capped at 10 per user and network per script in 24 hours.
Community discussion
0Start the conversation.


Your community, in one place