Run it
Copy the script and paste it into your executor.
Players = :()
Workspace = :()
CollectionService = :()
UserInputService = :()
RunService = :()
Lighting = :()
Stats = :()
TeleportService = :()
player = Players.LocalPlayer
playerGui = player:()
SCAN_INTERVAL =
PROX_UPDATE_INTERVAL =
PLAYER_UPDATE_INTERVAL =
MAX_ESP_TARGETS =
previousShutdown = .__ClientESPPanelShutdown
(previousShutdown) ==
(previousShutdown)
running =
scanQueued =
scanning =
MAX_WAYPOINTS =
OPTIONS = {
PromptsEnabled = ,
ProximityPrompts = ,
ClickDetectors = ,
TaggedObjects = ,
Collectibles = ,
Tools = ,
UnanchoredParts = ,
ShowHighlights = ,
ShowLabels = ,
ShowDistance = ,
ThroughWalls = ,
RedAfterInteraction = ,
ShowWaypoints = ,
WaypointLines = ,
AutoDeathWaypoint = ,
PlayerESP = ,
PlayerDisplayNames = ,
ProxPrompts = ,
ProxTouch = ,
ProxSeats = ,
ProxItems = ,
ClickTeleport = ,
}
COLORS = {
Cyan = .(, , ),
Red = .(, , ),
Green = .(, , ),
Yellow = .(, , ),
Purple = .(, , ),
}
colorNames = {, , , , }
colorIndex =
tracked = {}
playerCharacters = {}
interacted = ({}, {__mode = })
connections = {}
promptOriginal = ({}, {__mode = })
promptChangeConnection
promptAddedConnection
trackedCount =
gui = .()
gui.Name =
gui.ResetOnSpawn =
gui.IgnoreGuiInset =
gui.DisplayOrder =
gui.Parent = playerGui
main = .()
main.Name =
main.Size = .(, )
main.Position = .(, , , -)
main.BackgroundColor3 = .(, , )
main.BorderSizePixel =
main.ClipsDescendants =
main.Parent = gui
mainCorner = .()
mainCorner.CornerRadius = .(, )
mainCorner.Parent = main
mainStroke = .()
mainStroke.Color = .(, , )
mainStroke.Thickness =
mainStroke.Parent = main
titleBar = .()
titleBar.Name =
titleBar.Size = .(, , , )
titleBar.BackgroundColor3 = .(, , )
titleBar.BorderSizePixel =
titleBar.Active =
titleBar.Parent = main
title = .()
title.Size = .(, -, , )
title.Position = .(, )
title.BackgroundTransparency =
title.Text =
title.TextColor3 = .(, , )
title.Font = .Font.GothamBold
title.TextSize =
title.TextXAlignment = .TextXAlignment.Left
title.Parent = titleBar
closeButton = .()
closeButton.Name =
closeButton.Size = .(, )
closeButton.Position = .(, -, , )
closeButton.BackgroundColor3 = .(, , )
closeButton.Text =
closeButton.TextColor3 = .(, , )
closeButton.Font = .Font.GothamBold
closeButton.TextSize =
closeButton.Parent = titleBar
.(, closeButton).CornerRadius = .(, )
minimizeButton = .()
minimizeButton.Name =
minimizeButton.Size = .(, )
minimizeButton.Position = .(, -, , )
minimizeButton.BackgroundColor3 = .(, , )
minimizeButton.Text =
minimizeButton.TextColor3 = .(, , )
minimizeButton.Font = .Font.GothamBold
minimizeButton.TextSize =
minimizeButton.Parent = titleBar
.(, minimizeButton).CornerRadius = .(, )
subtitle = .()
subtitle.Size = .(, -, , )
subtitle.Position = .(, )
subtitle.BackgroundTransparency =
subtitle.Text =
subtitle.TextColor3 = .(, , )
subtitle.Font = .Font.Gotham
subtitle.TextSize =
subtitle.Parent = main
tabBar = .()
tabBar.Name =
tabBar.Position = .(, )
tabBar.Size = .(, -, , )
tabBar.BackgroundTransparency =
tabBar.Parent = main
tabGrid = .()
tabGrid.CellSize = .(, -, , )
tabGrid.CellPadding = .(, )
tabGrid.SortOrder = .SortOrder.LayoutOrder
tabGrid.Parent = tabBar
content = .()
content.Name =
content.Position = .(, )
content.Size = .(, -, , -)
content.BackgroundTransparency =
content.ClipsDescendants =
content.Parent = main
status = .()
status.Name =
status.Position = .(, , , -)
status.Size = .(, -, , )
status.BackgroundTransparency =
status.Text =
status.TextColor3 = .(, , )
status.Font = .Font.Gotham
status.TextSize =
status.TextXAlignment = .TextXAlignment.Left
status.Parent = main
minimized =
minimizeButton.Activated:(()
minimized = minimized
content.Visible = minimized
tabBar.Visible = minimized
status.Visible = minimized
subtitle.Visible = minimized
main.Size = minimized
.(, )
.(, )
minimizeButton.Text = minimized
)
dragging =
dragStart
startPosition
dragInput
titleBar.InputBegan:((input)
input.UserInputType == .UserInputType.MouseButton1
input.UserInputType == .UserInputType.Touch
dragging =
dragStart = input.Position
startPosition = main.Position
input.Changed:(()
input.UserInputState == .UserInputState.End
dragging =
)
)
titleBar.InputChanged:((input)
input.UserInputType == .UserInputType.MouseMovement
input.UserInputType == .UserInputType.Touch
dragInput = input
)
dragConnection = UserInputService.InputChanged:((input)
dragging input == dragInput
delta = input.Position - dragStart
main.Position = .(
startPosition.X.Scale,
startPosition.X.Offset + delta.X,
startPosition.Y.Scale,
startPosition.Y.Offset + delta.Y
)
)
keyConnection = UserInputService.InputBegan:((input, processed)
processed
input.KeyCode == .KeyCode.RightControl
main.Visible = main.Visible
)
pages = {}
tabButtons = {}
tabOrder =
currentPage
currentBody
allSections = {}
TAB_ACTIVE = .(, , )
TAB_IDLE = .(, , )
()
currentBody currentPage
(name)
tabName, page (pages)
page.Visible = tabName == name
tabButtons[tabName].BackgroundColor3 = tabName == name
TAB_ACTIVE
TAB_IDLE
(name, text)
tabOrder +=
button = .()
button.Name = name ..
button.LayoutOrder = tabOrder
button.BackgroundColor3 = TAB_IDLE
button.Text = text
button.TextColor3 = .(, , )
button.Font = .Font.GothamBold
button.TextSize =
button.Parent = tabBar
.(, button).CornerRadius = .(, )
page = .()
page.Name = name ..
page.Size = .(, )
page.BackgroundTransparency =
page.BorderSizePixel =
page.ScrollBarThickness =
page.ScrollBarImageColor3 = .(, , )
page.AutomaticCanvasSize = .AutomaticSize.Y
page.CanvasSize = .()
page.ScrollingDirection = .ScrollingDirection.Y
page.Visible =
page.Parent = content
pageLayout = .()
pageLayout.Padding = .(, )
pageLayout.SortOrder = .SortOrder.LayoutOrder
pageLayout.Parent = page
pagePadding = .()
pagePadding.PaddingTop = .(, )
pagePadding.PaddingBottom = .(, )
pagePadding.PaddingLeft = .(, )
pagePadding.PaddingRight = .(, )
pagePadding.Parent = page
pages[name] = page
tabButtons[name] = button
button.Activated:(()
(name)
)
(name)
currentPage = pages[name]
currentBody =
(text)
container = .()
container.Size = .(, -, , )
container.AutomaticSize = .AutomaticSize.Y
container.BackgroundTransparency =
container.Parent = currentPage
containerLayout = .()
containerLayout.Padding = .(, )
containerLayout.SortOrder = .SortOrder.LayoutOrder
containerLayout.Parent = container
header = .()
header.Size = .(, , , )
header.LayoutOrder =
header.BackgroundColor3 = .(, , )
header.TextColor3 = .(, , )
header.Font = .Font.GothamBold
header.TextSize =
header.TextXAlignment = .TextXAlignment.Left
header.Parent = container
.(, header).CornerRadius = .(, )
body = .()
body.Size = .(, , , )
body.AutomaticSize = .AutomaticSize.Y
body.BackgroundTransparency =
body.LayoutOrder =
body.Parent = container
bodyLayout = .()
bodyLayout.Padding = .(, )
bodyLayout.SortOrder = .SortOrder.LayoutOrder
bodyLayout.Parent = body
collapsed =
(state)
collapsed = state
body.Visible = state
header.Text = (state ) .. text
()
header.Activated:(()
( collapsed)
)
.(allSections, setCollapsed)
currentBody = body
body
(text, color)
button = .()
button.Size = .(, -, , )
button.BackgroundColor3 = color .(, , )
button.TextColor3 = .(, , )
button.Font = .Font.Gotham
button.TextSize =
button.Text = text
button.AutoButtonColor =
button.Parent = ()
.(, button).CornerRadius = .(, )
button
activeSlider
sliderMoveConnection = UserInputService.InputChanged:((input)
activeSlider
(input.UserInputType == .UserInputType.MouseMovement
input.UserInputType == .UserInputType.Touch)
(input.Position.X)
)
sliderEndConnection = UserInputService.InputEnded:((input)
input.UserInputType == .UserInputType.MouseButton1
input.UserInputType == .UserInputType.Touch
activeSlider =
)
(label, minValue, maxValue, defaultValue, decimals, callback)
holder = .()
holder.Size = .(, -, , )
holder.BackgroundColor3 = .(, , )
holder.BorderSizePixel =
holder.Parent = ()
.(, holder).CornerRadius = .(, )
titleLabel = .()
titleLabel.Size = .(, -, , )
titleLabel.Position = .(, )
titleLabel.BackgroundTransparency =
titleLabel.TextColor3 = .(, , )
titleLabel.Font = .Font.Gotham
titleLabel.TextSize =
titleLabel.TextXAlignment = .TextXAlignment.Left
titleLabel.Parent = holder
track = .()
track.Position = .(, , , )
track.Size = .(, -, , )
track.BackgroundColor3 = .(, , )
track.BorderSizePixel =
track.Parent = holder
.(, track).CornerRadius = .(, )
fill = .()
fill.Size = .(, )
fill.BackgroundColor3 = .(, , )
fill.BorderSizePixel =
fill.Parent = track
.(, fill).CornerRadius = .(, )
knob = .()
knob.Size = .(, )
knob.AnchorPoint = .(, )
knob.Position = .(, )
knob.BackgroundColor3 = .(, , )
knob.BorderSizePixel =
knob.Parent = track
.(, knob).CornerRadius = .(, )
hit = .()
hit.Position = .(, )
hit.Size = .(, , , )
hit.BackgroundTransparency =
hit.Text =
hit.AutoButtonColor =
hit.Parent = holder
value = defaultValue
(newValue, silent)
newValue = .(newValue, minValue, maxValue)
factor = ^ decimals
newValue = .(newValue * factor + ) / factor
value = newValue
alpha = (newValue - minValue) / (maxValue - minValue)
fill.Size = .(alpha, , , )
knob.Position = .(alpha, , , )
titleLabel.Text = label .. .. (newValue)
silent callback
(newValue)
(x)
alpha = .(
(x - track.AbsolutePosition.X) / .(track.AbsoluteSize.X, ),
,
)
(minValue + (maxValue - minValue) * alpha)
hit.InputBegan:((input)
input.UserInputType == .UserInputType.MouseButton1
input.UserInputType == .UserInputType.Touch
activeSlider = fromX
(input.Position.X)
)
(defaultValue, )
{
set = setValue,
get = ()
value
,
}
(placeholder, callback)
box = .()
box.Size = .(, -, , )
box.BackgroundColor3 = .(, , )
box.PlaceholderText = placeholder
box.PlaceholderColor3 = .(, , )
box.Text =
box.TextColor3 = .(, , )
box.Font = .Font.Gotham
box.TextSize =
box.ClearTextOnFocus =
box.Parent = ()
.(, box).CornerRadius = .(, )
box.FocusLost:(()
(box.Text)
)
box
(instance)
OPTIONS.RedAfterInteraction interacted[instance]
COLORS.Red
COLORS[colorNames[colorIndex]]
(instance)
instance:()
(instance)
instance:()
(instance)
name = instance.Name:()
name:(, , )
name:(, , )
name:(, , )
name:(, , )
name:(, , )
(instance)
(instance) (instance)
instance.Parent
instance
()
.(playerCharacters)
_, plr (Players:())
plr.Character
playerCharacters[plr.Character] =
(instance)
current = instance.Parent
current current ~= Workspace
playerCharacters[current]
current = current.Parent
(instance)
OPTIONS.ProximityPrompts (instance)
OPTIONS.ClickDetectors (instance)
OPTIONS.TaggedObjects
CollectionService:(instance, )
OPTIONS.Collectibles (instance)
OPTIONS.Tools instance:()
OPTIONS.UnanchoredParts
instance:()
instance.Anchored
(instance)
(instance)
data = tracked[instance]
data
data.highlight
data.highlight:()
data.billboard
data.billboard:()
tracked[instance] =
(instance)
instance
interacted[instance] =
data = tracked[instance]
OPTIONS.RedAfterInteraction data data.highlight
data.highlight.FillColor = COLORS.Red
data.highlight.OutlineColor = COLORS.Red
(instance)
connections[instance]
(instance)
connections[instance] = instance.Triggered:((who)
who == player
(instance)
((instance))
)
(instance)
connections[instance] = instance.MouseClick:((who)
who == player
(instance)
((instance))
)
(instance)
target = (instance)
target target.Parent
adorneePart
target:()
adorneePart = target
target:() target:()
adorneePart = target:(, )
adorneePart
data = tracked[instance]
data
data = {}
tracked[instance] = data
color = (instance)
OPTIONS.ShowHighlights
data.highlight data.highlight.Parent
highlight = .()
highlight.Name =
highlight:(, )
highlight.Adornee = target
highlight.Parent = gui
data.highlight = highlight
data.highlight.FillColor = color
data.highlight.OutlineColor = color
data.highlight.DepthMode = OPTIONS.ThroughWalls
.HighlightDepthMode.AlwaysOnTop
.HighlightDepthMode.Occluded
data.highlight.Enabled =
data.highlight
data.highlight:()
data.highlight =
OPTIONS.ShowLabels OPTIONS.ShowDistance
data.billboard data.billboard.Parent
billboard = .()
billboard.Name =
billboard:(, )
billboard.Size = .(, )
billboard.StudsOffset = .(, , )
billboard.Adornee = adorneePart
billboard.Parent = gui
label = .()
label.Name =
label.Size = .(, )
label.BackgroundTransparency =
label.TextColor3 = color
label.TextStrokeTransparency =
label.Font = .Font.GothamBold
label.TextSize =
label.Parent = billboard
data.billboard = billboard
data.label = label
text =
OPTIONS.ShowLabels
text = target.Name
OPTIONS.ShowDistance
character = player.Character
root = character character:()
root
distance = .(
(root.Position - adorneePart.Position).Magnitude
)
text ~=
text ..=
text ..= distance ..
data.label.Text = text
data.label.TextColor3 = color
data.billboard.AlwaysOnTop = OPTIONS.ThroughWalls
data.billboard
data.billboard:()
data.billboard =
data.label =
()
OPTIONS.ProximityPrompts
OPTIONS.ClickDetectors
OPTIONS.TaggedObjects
OPTIONS.Collectibles
OPTIONS.Tools
OPTIONS.UnanchoredParts
waypoints = {}
waypointCounter =
waypointListFrame
refreshWaypointList
waypointFolder = .()
waypointFolder.Name =
waypointFolder.Parent = Workspace
()
character = player.Character
character character:()
ownedAttachments = ({}, {__mode = })
(root)
attachment = root:()
attachment
attachment = .()
attachment.Name =
attachment.Parent = root
ownedAttachments[attachment] =
attachment
lastTeleportOrigin
(position, label, heightOffset)
root = ()
root
status.Text =
lastTeleportOrigin = root.CFrame
rotation = root.CFrame - root.CFrame.Position
root.CFrame = .(position + .(, heightOffset , )) * rotation
root.AssemblyLinearVelocity = .zero
root.AssemblyAngularVelocity = .zero
status.Text = .. (label)
()
root = ()
root lastTeleportOrigin
status.Text =
current = root.CFrame
root.CFrame = lastTeleportOrigin
lastTeleportOrigin = current
root.AssemblyLinearVelocity = .zero
root.AssemblyAngularVelocity = .zero
status.Text =
(wp, isNearest)
root = ()
show = OPTIONS.ShowWaypoints
distance
root
distance = .((root.Position - wp.position).Magnitude)
wp.billboard.Enabled = show
text = wp.name
distance
text ..= .. distance ..
wp.label.Text = text
wp.label.TextColor3 = wp.color
wp.label.TextSize = isNearest
wp.beam.Color = ColorSequence.(wp.color)
lineOn = show OPTIONS.WaypointLines root ~=
wp.beam.Enabled = lineOn
lineOn
wp.beam.Attachment1 = (root)
wp.distanceLabel wp.distanceLabel.Parent
wp.distanceLabel.Text = distance (distance .. )
()
root = ()
nearest
nearestDistance
root
_, wp (waypoints)
d = (root.Position - wp.position).Magnitude
nearestDistance d < nearestDistance
nearest = wp
nearestDistance = d
_, wp (waypoints)
(wp, wp == nearest)
(wp)
index = .(waypoints, wp)
index
.(waypoints, index)
wp.part wp.part:()
wp.billboard wp.billboard:()
()
()
i = #waypoints, , -
wp = .(waypoints, i)
wp.part wp.part:()
wp.billboard wp.billboard:()
()
(customName, customPosition, customColorName)
#waypoints >= MAX_WAYPOINTS
status.Text = .. MAX_WAYPOINTS ..
position = customPosition
position
root = ()
root
status.Text =
position = root.Position
waypointCounter +=
colorIdx = .(colorNames, customColorName )
wp = {
name = customName ( .. waypointCounter),
position = position,
colorIndex = colorIdx,
color = COLORS[colorNames[colorIdx]],
}
part = .()
part.Name =
part.Anchored =
part.CanCollide =
part.CanQuery =
part.CanTouch =
part.Transparency =
part.Size = .(, , )
part.Position = wp.position
part.Parent = waypointFolder
wp.part = part
marker = .()
marker.Parent = part
beam = .()
beam.Attachment0 = marker
beam.Width0 =
beam.Width1 =
beam.FaceCamera =
beam.LightEmission =
beam.Color = ColorSequence.(wp.color)
beam.Transparency = NumberSequence.()
beam.Enabled =
beam.Parent = part
wp.beam = beam
billboard = .()
billboard.Name =
billboard.Size = .(, )
billboard.StudsOffset = .(, , )
billboard.AlwaysOnTop =
billboard.Adornee = part
billboard.Enabled = OPTIONS.ShowWaypoints
billboard.Parent = gui
wp.billboard = billboard
label = .()
label.Size = .(, )
label.BackgroundTransparency =
label.TextColor3 = wp.color
label.TextStrokeTransparency =
label.Font = .Font.GothamBold
label.TextSize =
label.Parent = billboard
wp.label = label
.(waypoints, wp)
(wp)
()
status.Text = .. wp.name
refreshWaypointList = ()
waypointListFrame
_, child (waypointListFrame:())
child:()
child:()
i, wp (waypoints)
row = .()
row.Size = .(, -, , )
row.BackgroundColor3 = .(, , )
row.BorderSizePixel =
row.LayoutOrder = i
row.Parent = waypointListFrame
.(, row).CornerRadius = .(, )
nameBox = .()
nameBox.Size = .(, -, , )
nameBox.Position = .(, )
nameBox.BackgroundColor3 = .(, , )
nameBox.Text = wp.name
nameBox.PlaceholderText =
nameBox.TextColor3 = .(, , )
nameBox.PlaceholderColor3 = .(, , )
nameBox.Font = .Font.Gotham
nameBox.TextSize =
nameBox.TextXAlignment = .TextXAlignment.Left
nameBox.ClearTextOnFocus =
nameBox.ClipsDescendants =
nameBox.Parent = row
.(, nameBox).CornerRadius = .(, )
namePadding = .()
namePadding.PaddingLeft = .(, )
namePadding.Parent = nameBox
nameBox.FocusLost:(()
newName = nameBox.Text:():(, )
newName ==
nameBox.Text = wp.name
wp.name = newName
nameBox.Text = newName
(wp)
status.Text = .. newName
)
delete = .()
delete.Size = .(, )
delete.Position = .(, -, , )
delete.BackgroundColor3 = .(, , )
delete.Text =
delete.TextColor3 = .(, , )
delete.Font = .Font.GothamBold
delete.TextSize =
delete.Parent = row
.(, delete).CornerRadius = .(, )
delete.Activated:(()
(wp)
)
colorBtn = .()
colorBtn.Size = .(, )
colorBtn.Position = .(, -, , )
colorBtn.BackgroundColor3 = wp.color
colorBtn.Text =
colorBtn.Parent = row
.(, colorBtn).CornerRadius = .(, )
colorBtn.Activated:(()
wp.colorIndex = wp.colorIndex % #colorNames +
wp.color = COLORS[colorNames[wp.colorIndex]]
colorBtn.BackgroundColor3 = wp.color
(wp)
)
distanceLabel = .()
distanceLabel.Size = .(, )
distanceLabel.Position = .(, -, , )
distanceLabel.BackgroundTransparency =
distanceLabel.Text =
distanceLabel.TextColor3 = .(, , )
distanceLabel.Font = .Font.Gotham
distanceLabel.TextSize =
distanceLabel.TextXAlignment = .TextXAlignment.Right
distanceLabel.Parent = row
wp.distanceLabel = distanceLabel
tpButton = .()
tpButton.Size = .(, )
tpButton.Position = .(, -, , )
tpButton.BackgroundColor3 = .(, , )
tpButton.Text =
tpButton.TextColor3 = .(, , )
tpButton.Font = .Font.GothamBold
tpButton.TextSize =
tpButton.Parent = row
.(, tpButton).CornerRadius = .(, )
tpButton.Activated:(()
(wp.position, wp.name, )
)
()
deathConnection
(character)
humanoid = character:(, )
root = character:(, )
humanoid root
deathConnection deathConnection:()
deathConnection = humanoid.Died:(()
running OPTIONS.AutoDeathWaypoint
(, root.Position, )
)
characterConnection = player.CharacterAdded:((character)
.(hookCharacter, character)
)
player.Character
.(hookCharacter, player.Character)
.(()
running
.()
running
()
)
playerTracked = {}
(plr)
data = playerTracked[plr]
data
data.highlight
data.highlight:()
data.billboard
data.billboard:()
playerTracked[plr] =
(plr)
OPTIONS.PlayerDisplayNames
plr.DisplayName
plr.Name
()
running
OPTIONS.PlayerESP
plr (playerTracked)
(plr)
localRoot = ()
color = COLORS[colorNames[colorIndex]]
seen = {}
_, plr (Players:())
plr ~= player
character = plr.Character
root = character character:()
head = character character:()
adornee = head root
character adornee
seen[plr] =
data = playerTracked[plr]
data
data = {}
playerTracked[plr] = data
OPTIONS.ShowHighlights
data.highlight
data.highlight.Parent
data.highlight.Adornee ~= character
data.highlight
data.highlight:()
highlight = .()
highlight.Name =
highlight.Adornee = character
highlight.Parent = gui
data.highlight = highlight
data.highlight.FillColor = color
data.highlight.OutlineColor = color
data.highlight.DepthMode = OPTIONS.ThroughWalls
.HighlightDepthMode.AlwaysOnTop
.HighlightDepthMode.Occluded
data.highlight.Enabled =
data.highlight
data.highlight:()
data.highlight =
OPTIONS.ShowLabels OPTIONS.ShowDistance
data.billboard
data.billboard.Parent
data.billboard.Adornee ~= adornee
data.billboard
data.billboard:()
billboard = .()
billboard.Name =
billboard.Size = .(, )
billboard.StudsOffset = .(, , )
billboard.Adornee = adornee
billboard.Parent = gui
label = .()
label.Name =
label.Size = .(, )
label.BackgroundTransparency =
label.TextStrokeTransparency =
label.Font = .Font.GothamBold
label.TextSize =
label.Parent = billboard
data.billboard = billboard
data.label = label
text =
OPTIONS.ShowLabels
text = (plr)
OPTIONS.ShowDistance localRoot
distance = .(
(localRoot.Position - adornee.Position).Magnitude
)
text ~=
text ..=
text ..= distance ..
data.label.Text = text
data.label.TextColor3 = color
data.billboard.AlwaysOnTop = OPTIONS.ThroughWalls
data.billboard
data.billboard:()
data.billboard =
data.label =
plr (playerTracked)
seen[plr]
(plr)
.(()
running
.(PLAYER_UPDATE_INTERVAL)
running OPTIONS.PlayerESP
()
)
PROX_RANGES = {, , , , , .huge}
proxRangeIndex =
MAX_PROX_RENDER =
TOUCH_NEAR =
proxCandidates = {}
proxConnections = {}
proxVisuals = {}
proxDiscoveryActive =
proxNearest
SENSOR_WORDS = {
, , , , ,
, , , , ,
}
(name)
name = name:()
_, word (SENSOR_WORDS)
name:(word, , )
(zone, excludeList)
params = OverlapParams.()
params.FilterType = .RaycastFilterType.Exclude
params.MaxParts =
filter = .(excludeList)
.(filter, zone)
params.FilterDescendantsInstances = filter
ok, parts = (()
Workspace:(zone, params)
)
ok
_, part (parts)
part.Anchored
part.Name
(instance)
instance:()
instance:()
instance:() instance:()
(instance)
kind = (instance)
kind
proxCandidates[instance] = kind
instance:()
part = instance.Parent
part part:()
proxCandidates[part] = proxCandidates[part]
instance:() (instance.Name)
proxCandidates[instance] = proxCandidates[instance]
()
proxDiscoveryActive
proxDiscoveryActive =
proxConnections.added = Workspace.DescendantAdded:(considerProx)
proxConnections.removing = Workspace.DescendantRemoving:((instance)
proxCandidates[instance] =
)
.(()
index, instance (Workspace:())
running proxDiscoveryActive
(instance)
index % ==
.()
)
(instance)
data = proxVisuals[instance]
data
data.highlight
data.highlight:()
data.billboard
data.billboard:()
proxVisuals[instance] =
()
instance (proxVisuals)
(instance)
()
proxDiscoveryActive =
_, connection (proxConnections)
connection:()
.(proxConnections)
.(proxCandidates)
(instance, kind)
kind ==
instance:() (instance)
hasTouch = instance:() ~=
sensorNamed = (instance.Name)
solid = instance.CanCollide
valid = (hasTouch ( solid sensorNamed))
(sensorNamed solid)
valid
{
instance = instance,
kind = kind,
part = instance,
target = instance,
position = instance.Position,
reach = TOUCH_NEAR + instance.Size.Magnitude / ,
name = instance.Name,
}
holder = instance.Parent
holder
part
highlightTarget
position
holder:()
parentPart = holder.Parent
parentPart parentPart:()
part = parentPart
highlightTarget = parentPart
position = holder.WorldPosition
holder:()
part = holder
highlightTarget = holder
position = holder.Position
holder:()
part = holder.PrimaryPart holder:(, )
highlightTarget = holder
position = holder:().Position
part position
kind ==
instance.Enabled
{
instance = instance,
kind = kind,
part = part,
target = highlightTarget,
position = position,
reach = instance.MaxActivationDistance,
name = instance.ActionText ~= instance.ActionText holder.Name,
}
(part)
kind == part.CanTouch
kind == instance.Disabled
{
instance = instance,
kind = kind,
part = part,
target = highlightTarget,
position = position,
reach = TOUCH_NEAR + part.Size.Magnitude / ,
name = part.Name,
}
()
running
anyEnabled = OPTIONS.ProxPrompts
OPTIONS.ProxTouch
OPTIONS.ProxSeats
OPTIONS.ProxItems
anyEnabled
proxNearest =
()
()
()
root = ()
root
proxNearest =
()
()
maxRange = PROX_RANGES[proxRangeIndex]
list = {}
instance, kind (proxCandidates)
instance.Parent
proxCandidates[instance] =
(kind == OPTIONS.ProxPrompts)
(kind == OPTIONS.ProxTouch)
(kind == OPTIONS.ProxSeats)
(kind == OPTIONS.ProxItems)
info = (instance, kind)
info
distance = (root.Position - info.position).Magnitude
distance <= maxRange
info.distance = distance
.(list, info)
.(list, (a, b)
a.distance < b.distance
)
proxNearest = list[]
excludeList = {}
character (playerCharacters)
.(excludeList, character)
keep = {}
index = , .(#list, MAX_PROX_RENDER)
info = list[index]
instance = info.instance
keep[instance] =
inRange
info.kind ==
inRange = info.distance <= info.reach
inRange = info.distance - info.part.Size.Magnitude / <= TOUCH_NEAR
itemName
info.kind ==
itemName = (info.part, excludeList)
color
info.kind ==
color = itemName COLORS.Red COLORS.Purple
color = inRange COLORS.Green COLORS.Yellow
data = proxVisuals[instance]
data
data = {}
proxVisuals[instance] = data
data.highlight
data.highlight.Parent
data.highlight.Adornee ~= info.target
data.highlight
data.highlight:()
highlight = .()
highlight.Name =
highlight.Adornee = info.target
highlight.Parent = gui
data.highlight = highlight
data.highlight.FillColor = color
data.highlight.OutlineColor = color
data.highlight.DepthMode = OPTIONS.ThroughWalls
.HighlightDepthMode.AlwaysOnTop
.HighlightDepthMode.Occluded
data.highlight.Enabled =
data.billboard
data.billboard.Parent
data.billboard.Adornee ~= info.part
data.billboard
data.billboard:()
billboard = .()
billboard.Name =
billboard.Size = .(, )
billboard.StudsOffset = .(, , )
billboard.Adornee = info.part
billboard.Parent = gui
label = .()
label.Name =
label.Size = .(, )
label.BackgroundTransparency =
label.TextStrokeTransparency =
label.Font = .Font.GothamBold
label.TextSize =
label.Parent = billboard
data.billboard = billboard
data.label = label
kindText = info.kind ==
info.kind ==
info.kind ==
suffix =
info.kind ==
itemName
suffix = .. itemName
inRange
suffix =
data.label.Text = .(
,
kindText,
info.name,
.(info.distance),
suffix
)
data.label.TextColor3 = color
data.billboard.AlwaysOnTop = OPTIONS.ThroughWalls
instance (proxVisuals)
keep[instance]
(instance)
.(()
running
.(PROX_UPDATE_INTERVAL)
running (OPTIONS.ProxPrompts OPTIONS.ProxTouch OPTIONS.ProxSeats OPTIONS.ProxItems)
()
)
teleportListFrame
(leavingPlayer)
teleportListFrame
_, child (teleportListFrame:())
child:()
child:()
order =
_, plr (Players:())
plr ~= player plr ~= leavingPlayer
order +=
row = .()
row.Size = .(, -, , )
row.BackgroundColor3 = .(, , )
row.BorderSizePixel =
row.LayoutOrder = order
row.Parent = teleportListFrame
.(, row).CornerRadius = .(, )
nameLabel = .()
nameLabel.Size = .(, -, , )
nameLabel.Position = .(, )
nameLabel.BackgroundTransparency =
nameLabel.Text = (plr)
nameLabel.TextColor3 = .(, , )
nameLabel.Font = .Font.Gotham
nameLabel.TextSize =
nameLabel.TextXAlignment = .TextXAlignment.Left
nameLabel.TextTruncate = .TextTruncate.AtEnd
nameLabel.Parent = row
tpButton = .()
tpButton.Size = .(, )
tpButton.Position = .(, -, , )
tpButton.BackgroundColor3 = .(, , )
tpButton.Text =
tpButton.TextColor3 = .(, , )
tpButton.Font = .Font.GothamBold
tpButton.TextSize =
tpButton.Parent = row
.(, tpButton).CornerRadius = .(, )
tpButton.Activated:(()
character = plr.Character
targetRoot = character character:()
targetRoot
(
targetRoot.Position + targetRoot.CFrame.LookVector * -,
(plr)
)
status.Text = (plr) ..
)
playerAddedConnection = Players.PlayerAdded:(()
()
)
playerRemovingConnection = Players.PlayerRemoving:((leaving)
(leaving)
)
clickTeleportConnection = UserInputService.InputBegan:((input, processed)
processed OPTIONS.ClickTeleport
input.UserInputType ~= .UserInputType.MouseButton1
UserInputService:(.KeyCode.LeftControl)
atMouse = playerGui:(UserInputService:().X, UserInputService:().Y)
_, object (atMouse)
object:(gui)
camera = Workspace.CurrentCamera
camera
mouse = UserInputService:()
ray = camera:(mouse.X, mouse.Y)
params = RaycastParams.()
params.FilterType = .RaycastFilterType.Exclude
params.FilterDescendantsInstances = {player.Character, waypointFolder}
result = Workspace:(ray.Origin, ray.Direction * , params)
result
(result.Position, )
)
()
running scanning
() (OPTIONS.ShowHighlights OPTIONS.ShowLabels OPTIONS.ShowDistance)
instance, connection (connections)
connection:()
connections[instance] =
instance (tracked)
(instance)
status.Text = OPTIONS.PlayerESP
()
scanning =
seen = {}
count =
index, instance (Workspace:())
running
scanning =
(instance)
count +=
count <= MAX_ESP_TARGETS
seen[instance] =
OPTIONS.RedAfterInteraction
(instance) (instance)
(instance)
(instance)
index % ==
.()
instance (tracked)
seen[instance] instance.Parent
(instance)
instance, connection (connections)
instance.Parent OPTIONS.RedAfterInteraction
connection:()
connections[instance] =
scanning =
status.Text = .(, .(count, MAX_ESP_TARGETS), count, SCAN_INTERVAL)
()
running scanQueued
scanQueued =
.(, ()
scanQueued =
running
()
)
toggleButtons = {}
toggleSetters = {}
(label, key, callback, noScan)
button = (label .. )
toggleButtons[key] = button
()
enabled = OPTIONS[key]
button.Text = label .. .. (enabled )
button.BackgroundColor3 = enabled
.(, , )
.(, , )
toggleSetters[key] = (value)
OPTIONS[key] = value
callback
(value)
()
button.Activated:(()
toggleSetters[key]( OPTIONS[key])
noScan
()
)
()
button
(, )
(, )
(, )
(, )
(, )
(, )
(, )
(, )
()
()
()
(, )
(, )
(, )
(, )
(, )
(, )
()
()
(, , updatePlayerESP)
nameModeButton = ()
nameModeButton.Activated:(()
OPTIONS.PlayerDisplayNames = OPTIONS.PlayerDisplayNames
nameModeButton.Text =
.. (OPTIONS.PlayerDisplayNames )
nameModeButton.BackgroundColor3 = OPTIONS.PlayerDisplayNames
.(, , )
.(, , )
()
()
)
()
()
(, )
(, )
(, )
(, )
(, )
promptOverrideApplied =
(, , (enabled)
promptOverrideApplied =
index, instance (Workspace:())
(instance)
promptOriginal[instance] ==
promptOriginal[instance] = instance.Enabled
instance.Enabled = enabled
index % == .()
status.Text = enabled
)
promptAddedConnection = Workspace.DescendantAdded:((instance)
running (instance) promptOverrideApplied
promptOriginal[instance] = instance.Enabled
instance.Enabled = OPTIONS.PromptsEnabled
)
()
()
(, , updateProximityESP)
toggle("Touch Triggers", "ProxTouch", updateProximityESP)
toggle("Seats", "ProxSeats", updateProximityESP)
toggle("Item Triggers", "ProxItems", updateProximityESP)
local function proxRangeText()
local range = PROX_RANGES[proxRangeIndex]
return "Proximity Range: " .. (range == math.huge and "Any" or (range .. " studs"))
end
local proxRangeButton = makeButton(proxRangeText())
proxRangeButton.Activated:Connect(function()
proxRangeIndex += 1
if proxRangeIndex > #PROX_RANGES then
proxRangeIndex = 1
end
proxRangeButton.Text = proxRangeText()
updateProximityESP()
end)
local proxLegend = Instance.new("TextLabel")
proxLegend.Size = UDim2.new(1, -4, 0, 40)
proxLegend.BackgroundTransparency = 1
proxLegend.Text = "Green = inside activation range, Yellow = nearby. Item Triggers: purple = sensor zone that reacts to loose items, red = an item is inside it. Shows the closest 25."
proxLegend.TextColor3 = Color3.fromRGB(150, 150, 170)
proxLegend.Font = Enum.Font.Gotham
proxLegend.TextSize = 10
proxLegend.TextWrapped = true
proxLegend.TextXAlignment = Enum.TextXAlignment.Left
proxLegend.Parent = uiParent()
useTab("waypoints")
section("WAYPOINTS")
toggle("Show Waypoints", "ShowWaypoints", updateAllWaypoints)
toggle("Waypoint Lines", "WaypointLines", updateAllWaypoints)
toggle("Auto Death Waypoint", "AutoDeathWaypoint")
local addWaypointButton = makeButton(
"Add Waypoint Here",
Color3.fromRGB(45, 95, 115)
)
addWaypointButton.Activated:Connect(function()
addWaypoint()
end)
local clearWaypointsButton = makeButton(
"Clear All Waypoints",
Color3.fromRGB(105, 75, 35)
)
local confirmClear = false
clearWaypointsButton.Activated:Connect(function()
if #waypoints == 0 then
status.Text = "No waypoints to clear"
return
end
if not confirmClear then
confirmClear = true
clearWaypointsButton.Text = "Click again to confirm"
task.delay(3, function()
confirmClear = false
if clearWaypointsButton.Parent then
clearWaypointsButton.Text = "Clear All Waypoints"
end
end)
return
end
confirmClear = false
clearWaypointsButton.Text = "Clear All Waypoints"
clearWaypoints()
status.Text = "All waypoints cleared"
end)
waypointListFrame = Instance.new("Frame")
waypointListFrame.Name = "WaypointList"
waypointListFrame.Size = UDim2.new(1, -4, 0, 0)
waypointListFrame.AutomaticSize = Enum.AutomaticSize.Y
waypointListFrame.BackgroundTransparency = 1
waypointListFrame.Parent = uiParent()
local waypointListLayout = Instance.new("UIListLayout")
waypointListLayout.Padding = UDim.new(0, 4)
waypointListLayout.SortOrder = Enum.SortOrder.LayoutOrder
waypointListLayout.Parent = waypointListFrame
useTab("teleport")
section("TELEPORT")
toggle("Ctrl+Click Teleport", "ClickTeleport")
local tpNearestButton = makeButton(
"Teleport To Nearest Trigger",
Color3.fromRGB(45, 95, 115)
)
tpNearestButton.Activated:Connect(function()
if proxNearest then
teleportTo(proxNearest.position, proxNearest.name)
else
status.Text = "Turn on a Proximity Trigger option first"
end
end)
local tpBackButton = makeButton(
"Teleport Back",
Color3.fromRGB(105, 75, 35)
)
tpBackButton.Activated:Connect(teleportBack)
section("TELEPORT TO PLAYER")
teleportListFrame = Instance.new("Frame")
teleportListFrame.Name = "PlayerTeleportList"
teleportListFrame.Size = UDim2.new(1, -4, 0, 0)
teleportListFrame.AutomaticSize = Enum.AutomaticSize.Y
teleportListFrame.BackgroundTransparency = 1
teleportListFrame.Parent = uiParent()
local teleportListLayout = Instance.new("UIListLayout")
teleportListLayout.Padding = UDim.new(0, 4)
teleportListLayout.SortOrder = Enum.SortOrder.LayoutOrder
teleportListLayout.Parent = teleportListFrame
refreshPlayerTeleportList()
useTab("esp")
section("HIGHLIGHT COLOR")
local colorButton = makeButton("Color: Cyan", COLORS.Cyan)
colorButton.Activated:Connect(function()
colorIndex += 1
if colorIndex > #colorNames then
colorIndex = 1
end
colorButton.Text = "Color: " .. colorNames[colorIndex]
colorButton.BackgroundColor3 = COLORS[colorNames[colorIndex]]
requestScan()
end)
useTab("misc")
section("CONTROLS")
local scanButton = makeButton(
"Scan Now",
Color3.fromRGB(50, 80, 135)
)
scanButton.Activated:Connect(scan)
local clearButton = makeButton(
"Clear Interaction History",
Color3.fromRGB(105, 75, 35)
)
clearButton.Activated:Connect(function()
interacted = setmetatable({}, {__mode = "k"})
requestScan()
end)
local disableButton = makeButton(
"Disable All ESP",
Color3.fromRGB(110, 65, 65)
)
disableButton.Activated:Connect(function()
local keys = {
"ProximityPrompts",
"ClickDetectors",
"TaggedObjects",
"Collectibles",
"Tools",
"UnanchoredParts",
"ShowHighlights",
"ShowLabels",
"ShowDistance",
"ThroughWalls",
"RedAfterInteraction",
"ShowWaypoints",
"WaypointLines",
"AutoDeathWaypoint",
"PlayerESP",
"ProxPrompts",
"ProxTouch",
"ProxSeats",
"ProxItems",
"ClickTeleport",
}
for _, key in ipairs(keys) do
OPTIONS[key] = false
end
updateAllWaypoints()
updatePlayerESP()
updateProximityESP()
for _, key in ipairs(keys) do
local setter = toggleSetters[key]
if setter then
setter(false)
end
end
requestScan()
status.Text = "All ESP disabled"
end)
local killButton = makeButton(
"KILL GUI",
Color3.fromRGB(170, 40, 45)
)
local function killGUI()
if not running then
return
end
running = false
for _, connection in pairs(connections) do
if connection then
connection:Disconnect()
end
end
table.clear(connections)
for instance in pairs(tracked) do
removeVisuals(instance)
end
clearProxVisuals()
stopProxDiscovery()
playerAddedConnection:Disconnect()
playerRemovingConnection:Disconnect()
clickTeleportConnection:Disconnect()
for plr in pairs(playerTracked) do
removePlayerVisuals(plr)
end
clearWaypoints()
waypointFolder:Destroy()
if deathConnection then deathConnection:Disconnect() end
if promptAddedConnection then promptAddedConnection:Disconnect() end
for prompt, wasEnabled in pairs(promptOriginal) do
if prompt.Parent then prompt.Enabled = wasEnabled end
end
for attachment in pairs(ownedAttachments) do
if attachment.Parent then attachment:Destroy() end
end
dragConnection:Disconnect()
keyConnection:Disconnect()
sliderMoveConnection:Disconnect()
sliderEndConnection:Disconnect()
characterConnection:Disconnect()
local root = getRoot()
local rootAttachment = root and root:FindFirstChild("ClientESPWaypointRootAttachment")
if rootAttachment then
rootAttachment:Destroy()
end
gui:Destroy()
if _G.__ClientESPPanelShutdown == killGUI then
_G.__ClientESPPanelShutdown = nil
end
end
_G.__ClientESPPanelShutdown = killGUI
killButton.Activated:Connect(killGUI)
closeButton.Activated:Connect(killGUI)
--// Automatically scan once every 5 seconds.
--// No continuous RenderStepped scanning.
task.spawn(function()
while running and gui.Parent do
task.wait(SCAN_INTERVAL)
if running and gui.Parent then
scan()
end
end
end)
status.Text = "Ready | ESP off | scan every 5s when enabled"1. ESP target types These all start OFF and can be enabled individually. - Proximity Prompts ESP — highlights objects with ProximityPrompt instances. - Click Detectors ESP — highlights objects with ClickDetector instances. - Tagged Interactables ESP — finds objects tagged Interactable using CollectionService. - Collectibles ESP — searches for names containing coin, currency, collectible, token, or gem. - Tools ESP — highlights Tool instances. - Unanchored Parts ESP — highlights parts that aren't anchored. 2. Visual options - Show Highlights — adds colored outlines and fills to detected objects. - Show Labels — displays the object's name above it. - Show Distance — displays the distance from your character in studs. - Through Walls — allows highlights and labels to appear through walls. - Red After Interaction — changes a tracked object's highlight to red after you interact with it. 3. Color customization The color button cycles through five colors: Cyan Red Green Yellow Purple 4. GUI controls - Draggable window — drag the panel by its title bar. - X button — closes the GUI and stops its scanning loop. - KILL GUI — also closes the GUI, disconnects tracked interaction list

Universal