Run it
Copy the script and paste it into your executor.
Players = :()
RunService = :()
UserInputService = :()
Workspace = :()
localPlayer = Players.LocalPlayer
playerGui = localPlayer:()
keySources = {
{ , },
{ , },
}
monsterList = {
{
Name = ,
Path = { , },
AnchorParts = { , },
StateAttribute = ,
ChaseStates = { CHASE = , HUNT = , STALK = , KILL = },
Color = .(, , ),
},
{
Name = ,
Path = { },
AnchorParts = { },
StateAttribute = ,
ChaseStates = { chase = , hunt = , kill = },
Color = .(, , ),
},
{
Name = ,
Path = { },
AnchorParts = { },
StateAttribute = ,
ChaseStates = { chase = , hunt = },
Color = .(, , ),
},
}
monitorDistance =
minActiveHeight = -
maxDrawDistance =
keyColor = .(, , )
keyLabelColor = .(, , )
arrowGlyph =
keyModels = {}
monsterModels = {}
connections = {}
espOn =
unloaded =
(root, path)
node = root
_, segment (path)
node ==
node = node:(segment)
node
(model)
point = model:(, )
point point:()
point.WorldPosition
mesh = model:()
mesh mesh:()
mesh.Position
_, d (model:())
d:()
d.Position
(model, anchorParts)
_, partName (anchorParts)
part = model:(partName, )
part part:()
part.Position
_, d (model:())
d:() d.Transparency <
d.Position
root = model:() model:()
root root:()
root.Position
(position)
position ==
character = localPlayer.Character
root = character character:()
root
(root.Position - position).Magnitude
camera = Workspace.CurrentCamera
camera
(camera.CFrame.Position - position).Magnitude
(model, spec)
spec.StateAttribute
ok, value = (()
model:(spec.StateAttribute)
)
ok value ~=
(value)
(state, spec)
state
upper = .(state)
chaseState (spec.ChaseStates)
upper == .(chaseState)
(color)
arrow = .()
arrow.Name =
arrow.AnchorPoint = .(, )
arrow.BackgroundTransparency =
arrow.Size = .(, )
arrow.Font = .Font.GothamBlack
arrow.TextSize =
arrow.TextColor3 = color
arrow.TextStrokeTransparency =
arrow.TextStrokeColor3 = .(, , )
arrow.Text = arrowGlyph
arrow.Visible =
arrow.Parent = playerGui
arrow
(arrow, position, color)
camera = Workspace.CurrentCamera
camera
viewport = camera.ViewportSize
viewport.X <= viewport.Y <=
screenPoint, onScreen = camera:(position)
onScreen screenPoint.Z >
clampedX = .(screenPoint.X, , viewport.X - )
clampedY = .(screenPoint.Y, , viewport.Y - )
clampedX == screenPoint.X clampedY == screenPoint.Y
arrow.Visible =
arrow.Position = .(clampedX, clampedY)
relative = camera.CFrame:(position)
flat = .(relative.X, relative.Y)
flat.Magnitude <
flat = .(, )
flat = flat.Unit
relative.Z >
flat = -flat
halfX = viewport.X /
halfY = viewport.Y /
scale = .(
halfX / .(.(flat.X), ),
halfY / .(.(flat.Y), )
)
projectedX = halfX + flat.X * scale
projectedY = halfY - flat.Y * scale
arrow.Position = .(
.(projectedX, , viewport.X - ),
.(projectedY, , viewport.Y - )
)
arrow.TextColor3 = color
arrow.Visible =
(model)
(model) ==
highlight = .()
highlight.Name =
highlight.Adornee = model
highlight.DepthMode = .HighlightDepthMode.AlwaysOnTop
highlight.FillColor = keyColor
highlight.FillTransparency =
highlight.OutlineColor = keyColor
highlight.OutlineTransparency =
highlight.Parent = model
gui = .()
gui.Name =
gui.Adornee = model
gui.AlwaysOnTop =
gui.LightInfluence =
gui.Size = .(, )
gui.StudsOffsetWorldSpace = .(, , )
gui.MaxDistance = maxDrawDistance
gui.Parent = model
label = .()
label.Name =
label.BackgroundTransparency =
label.Size = .(, )
label.Font = .Font.GothamBold
label.TextSize =
label.TextColor3 = keyLabelColor
label.TextStrokeTransparency =
label.TextStrokeColor3 = .(, , )
label.Text =
label.Parent = gui
{
Model = model,
Highlight = highlight,
Gui = gui,
Label = label,
Arrow = (keyColor),
}
(model, spec)
(model, spec.AnchorParts) ==
highlight = .()
highlight.Name =
highlight.Adornee = model
highlight.DepthMode = .HighlightDepthMode.AlwaysOnTop
highlight.FillColor = spec.Color
highlight.FillTransparency =
highlight.OutlineColor = spec.Color
highlight.OutlineTransparency =
highlight.Parent = model
gui = .()
gui.Name =
gui.Adornee = model
gui.AlwaysOnTop =
gui.LightInfluence =
gui.Size = .(, )
gui.StudsOffsetWorldSpace = .(, , )
gui.MaxDistance = maxDrawDistance
gui.Parent = model
title = .()
title.Name =
title.BackgroundTransparency =
title.Size = .(, , , )
title.Font = .Font.GothamBlack
title.TextSize =
title.TextColor3 = spec.Color
title.TextStrokeTransparency =
title.TextStrokeColor3 = .(, , )
title.Text = spec.Name
title.Parent = gui
subtitle = .()
subtitle.Name =
subtitle.BackgroundTransparency =
subtitle.Position = .(, , , )
subtitle.Size = .(, , , )
subtitle.Font = .Font.GothamBold
subtitle.TextSize =
subtitle.TextColor3 = .(, , )
subtitle.TextStrokeTransparency =
subtitle.TextStrokeColor3 = .(, , )
subtitle.Text =
subtitle.Parent = gui
{
Model = model,
Spec = spec,
Highlight = highlight,
Gui = gui,
Title = title,
Subtitle = subtitle,
Arrow = (spec.Color),
}
(entry)
_, inst ({ entry.Highlight, entry.Gui, entry.Arrow })
inst
inst:()
()
found = {}
_, source (keySources)
container = (Workspace, source)
container
_, child (container:())
key = child:()
key key:()
.(found, key)
found
()
found = {}
_, spec (monsterList)
model = (Workspace, spec.Path)
model model.Parent
position = (model, spec.AnchorParts)
position position.Y > minActiveHeight
.(found, { Model = model, Spec = spec })
found
()
unloaded
liveKeys = {}
_, model (())
liveKeys[model] =
keyModels[model]
ok, entry = (buildKeyEsp, model)
ok entry
keyModels[model] = entry
model, entry (keyModels)
liveKeys[model] model.Parent
(entry)
keyModels[model] =
liveMonsters = {}
_, item (())
liveMonsters[item.Model] = item.Spec
monsterModels[item.Model]
ok, entry = (buildMonsterEsp, item.Model, item.Spec)
ok entry
monsterModels[item.Model] = entry
model, entry (monsterModels)
liveMonsters[model] model.Parent
(entry)
monsterModels[model] =
(entry)
position = (entry.Model)
position ==
distance = (position)
distance
entry.Label.Text = .. (.(distance + )) ..
entry.Arrow
(entry.Arrow, position, keyColor)
(entry)
position = (entry.Model, entry.Spec.AnchorParts)
position ==
distance = (position)
state = (entry.Model, entry.Spec)
chasing = (state, entry.Spec)
close = distance ~= distance <= monitorDistance
color = entry.Spec.Color
close
color = .(, , )
chasing
color = .(, , )
entry.Highlight.OutlineColor = color
entry.Highlight.FillColor = color
entry.Highlight.FillTransparency = close
entry.Title.TextColor3 = color
entry.Title.Text = close (entry.Spec.Name .. ) entry.Spec.Name
info = {}
state
.(info, .(state))
distance
.(info, (.(distance + )) .. )
close
.(info, )
entry.Subtitle.Text = .(info, )
entry.Arrow
(entry.Arrow, position, color)
(visible)
espOn = visible
_, entry (keyModels)
entry.Highlight.Enabled = visible
entry.Gui.Enabled = visible
visible entry.Arrow
entry.Arrow.Visible =
_, entry (monsterModels)
entry.Highlight.Enabled = visible
entry.Gui.Enabled = visible
visible entry.Arrow
entry.Arrow.Visible =
()
unloaded
unloaded =
espOn =
_, connection (connections)
connection:()
.(connections)
model, entry (keyModels)
(entry)
keyModels[model] =
model, entry (monsterModels)
(entry)
monsterModels[model] =
.(connections, Workspace.DescendantAdded:(()
.(syncEsp)
))
.(connections, Workspace.DescendantRemoving:(()
.(syncEsp)
))
.(connections, RunService.RenderStepped:(()
unloaded
model, entry (keyModels)
model.Parent
(updateKeyEsp, entry)
(entry)
keyModels[model] =
model, entry (monsterModels)
model.Parent
(updateMonsterEsp, entry)
(entry)
monsterModels[model] =
))
.(connections, UserInputService.InputBegan:((input, processed)
processed unloaded
input.KeyCode == .KeyCode.RightShift
( espOn)
input.KeyCode == .KeyCode.RightControl
()
))
.(()
unloaded
.()
(syncEsp)
)
()Key ESP Monster/Chaser ESP
Stay safe
Never paste your .ROBLOSECURITY cookie anywhere, and use an alt account with scripts.