Run it
Copy the script and paste it into your executor.
Players = :()
Lighting = :()
RunService = :()
UserInputService = :()
HttpService = :()
CoreGui = :()
LocalPlayer = Players.LocalPlayer
env = ( ())
env.SOD_Unload (env.SOD_Unload)
Config = {
ItemESP = ,
MonsterESP = ,
PlayerESP = ,
FullBright = ,
InfStamina = ,
InstantPrompt = ,
MonsterWarn = ,
ItemFilter = ,
ItemColor = .(, , ),
HighValueColor = .(, , ),
MonsterColor = .(, , ),
PlayerColor = .(, , ),
HighValue = ,
MaxDistance = ,
MaxItems = ,
MaxMonsters = ,
WarnDistance = ,
HideDisabledPrompts = ,
HideInvisible = ,
StaleSeconds = ,
SpawnRadius = ,
MonsterBlacklist = {},
ESPInterval = ,
}
running =
connections = {}
(signal, fn)
c = signal:(fn)
connections[#connections + ] = c
c
CONFIG_FILE =
saveKeys = {, , , , , , , }
savedWinPos, dirtyAt = ,
() dirtyAt = .()
(()
isfile readfile (CONFIG_FILE)
data = HttpService:((CONFIG_FILE))
(data) ==
_, k (saveKeys)
data[k] ~= (data[k]) == (Config[k]) Config[k] = data[k]
(data.WinPos) == #data.WinPos == savedWinPos = data.WinPos
)
()
ok, h = (() gethui () )
ok h h
CoreGui
gui = .()
gui.Name =
gui.ResetOnSpawn =
gui.IgnoreGuiInset =
(() gui.Parent = () )
gui.Parent = LocalPlayer:()
espFolder = .()
espFolder.Name =
espFolder.Parent = gui
warnFrame = .()
warnFrame.Size = .(, , , )
warnFrame.BackgroundTransparency =
warnFrame.Visible =
warnFrame.Active =
warnFrame.Parent = gui
warnStroke = .()
warnStroke.Color = .(, , )
warnStroke.Thickness =
warnStroke.ApplyStrokeMode = .ApplyStrokeMode.Border
warnStroke.Transparency =
warnStroke.Parent = warnFrame
warnText = .()
warnText.Size = .(, , , )
warnText.Position = .(, -, , )
warnText.BackgroundTransparency =
warnText.TextColor3 = .(, , )
warnText.TextStrokeTransparency =
warnText.Font = .Font.GothamBold
warnText.TextSize =
warnText.Text =
warnText.Parent = warnFrame
main = .()
main.Size = .(, , , )
main.Position = .(, , , )
main.BackgroundColor3 = .(, , )
main.BorderSizePixel =
main.Parent = gui
.(, main).CornerRadius = .(, )
savedWinPos
(()
main.Position = .(savedWinPos[], savedWinPos[], savedWinPos[], savedWinPos[])
)
top = .()
top.Size = .(, , , )
top.BackgroundColor3 = .(, , )
top.BorderSizePixel =
top.Parent = main
.(, top).CornerRadius = .(, )
title = .()
title.Size = .(, -, , )
title.Position = .(, , , )
title.BackgroundTransparency =
title.Text =
title.TextColor3 = .(, , )
title.Font = .Font.GothamBold
title.TextSize =
title.TextXAlignment = .TextXAlignment.Left
title.Parent = top
dragging, dragStart, startPos = , ,
(top.InputBegan, (i)
i.UserInputType == .UserInputType.MouseButton1 i.UserInputType == .UserInputType.Touch
dragging, dragStart, startPos = , i.Position, main.Position
)
(UserInputService.InputChanged, (i)
dragging (i.UserInputType == .UserInputType.MouseMovement i.UserInputType == .UserInputType.Touch)
d = i.Position - dragStart
main.Position = .(startPos.X.Scale, startPos.X.Offset + d.X, startPos.Y.Scale, startPos.Y.Offset + d.Y)
)
(UserInputService.InputEnded, (i)
dragging (i.UserInputType == .UserInputType.MouseButton1 i.UserInputType == .UserInputType.Touch)
dragging =
()
)
(UserInputService.InputBegan, (i, gp)
gp i.KeyCode == .KeyCode.RightShift
main.Visible = main.Visible
)
COLOR_ON = .(, , )
COLOR_OFF = .(, , )
(name, y, key, onChange)
b = .()
b.Size = .(, -, , )
b.Position = .(, , , y)
b.Text =
b.AutoButtonColor =
b.Parent = main
.(, b).CornerRadius = .(, )
t = .()
t.Size = .(, -, , )
t.Position = .(, , , )
t.BackgroundTransparency =
t.Text = name
t.TextColor3 = .(, , )
t.Font = .Font.GothamMedium
t.TextSize =
t.TextXAlignment = .TextXAlignment.Left
t.Parent = b
s = .()
s.Size = .(, , , )
s.Position = .(, -, , )
s.BackgroundTransparency =
s.Font = .Font.GothamBold
s.TextSize =
s.Parent = b
()
on = Config[key]
b.BackgroundColor3 = on COLOR_ON COLOR_OFF
s.Text = on
s.TextColor3 = on .(, , ) .(, , )
()
(b.MouseButton1Click, ()
Config[key] = Config[key]
()
()
onChange (onChange, Config[key])
)
status = .()
status.Size = .(, -, , )
status.Position = .(, , , )
status.BackgroundTransparency =
status.Text =
status.TextColor3 = .(, , )
status.Font = .Font.Gotham
status.TextSize =
status.Parent = main
()
writefile
(()
data = {}
_, k (saveKeys) data[k] = Config[k]
p = main.Position
data.WinPos = {p.X.Scale, p.X.Offset, p.Y.Scale, p.Y.Offset}
(CONFIG_FILE, HttpService:(data))
)
lightProps = {, , , , , }
origLighting = {}
_, p (lightProps) origLighting[p] = Lighting[p]
fbValues = {
Brightness = , ClockTime = , FogEnd = , GlobalShadows = ,
OutdoorAmbient = .(, , ), Ambient = .(, , ),
}
()
k, v (fbValues) Lighting[k] ~= v Lighting[k] = v
()
k, v (origLighting) Lighting[k] = v
origHold = ({}, {__mode = })
(prompt, on)
(()
on
origHold[prompt] == origHold[prompt] = prompt.HoldDuration
prompt.HoldDuration ~= prompt.HoldDuration =
origHold[prompt] ~=
prompt.HoldDuration = origHold[prompt]
origHold[prompt] =
)
blacklist = {
, , , , , , ,
, , , , , , , ,
, , , , , , , ,
, ,
}
goodWords = {
, , , , , , , ,
, , , , , ,
, , , , , , ,
, ,
}
genericNames = {
handle = , part = , main = , root = ,
primarypart = , hitbox = , meshpart = , attachment =
}
valueKeys = {, , , , }
weightKeys = {, , , , , }
monsterWords = {, , , , , , , , , }
(name, list)
_, w (list)
name:(w, , )
(inst)
inst
inst:() ~=
inst:() ~=
inst:() ~=
(inst, nameLower)
inst
nameLower (nameLower, blacklist)
(inst)
nameLower (nameLower, goodWords)
par = inst.Parent
par par ~=
(par)
pn = par.Name:()
(pn, blacklist) (pn, goodWords)
(o, keys)
o
_, k (keys)
v = o:(k)
(v) == v
nv = o:(k)
nv (nv:() nv:()) nv.Value
(inst)
v = (inst, valueKeys)
v v
par = inst inst.Parent
par par ~= (par, valueKeys)
(inst)
w = (inst, weightKeys)
w w
par = inst inst.Parent
par par ~= (par, weightKeys)
(n)
s = (.(n + ))
r = s:():(, ):()
(r:(, ))
(w)
w >= (.(w + ))
s = .(, w)
s:(-) == s:(, -)
s
(prompt)
p = prompt.Parent
p
p:() p
p:()
pp = p.Parent
(pp pp:()) pp
p:()
p.PrimaryPart p:(, )
p:(, )
(inst)
base = inst
inst:() inst.Parent base = inst.Parent
base:() genericNames[base.Name:()]
base.Parent base.Parent ~=
base.Parent.Name
base.Name
prompts, monsters, spawnPoints = {}, {}, {}
(prompt)
prompts[prompt]
inst = prompt.Parent
inst
name = (inst)
nameLower = name:()
loot = (inst, nameLower)
prompts[prompt] = {
inst = inst,
part = (prompt),
name = name,
nameLower = nameLower,
loot = loot,
}
loot Config.InstantPrompt (prompt, )
(d)
d:()
(d)
d:()
m = d.Parent
m m:() monsters[m] =
d:()
spawnPoints[#spawnPoints + ] = d.Position
(obj)
obj:()
obj:() ~= (obj.Name:(), monsterWords)
monsters[obj] =
(.DescendantAdded, (d) (handleDescendant, d) )
(.DescendantRemoving, (d)
d:()
(d, )
prompts[d] =
d:()
d.Parent monsters[d.Parent] =
)
(.ChildAdded, (c) (handleChild, c) )
.(()
_, c (:()) (handleChild, c)
n =
_, d (:())
running
(handleDescendant, d)
n +=
n % == .()
)
posTrack = ({}, {__mode = })
(pos)
_, sp (spawnPoints)
(sp - pos).Magnitude <= Config.SpawnRadius
(plr)
plr plr == LocalPlayer
plr:() ==
kind = plr:()
kind ~= kind ~=
char = plr.Character
char
char:() ==
char:() ~=
(model, plr)
kind = model model:()
kind plr kind = plr:()
(kind) == kind ~=
plr plr.Name .. .. kind ..
(kind)
plr plr.Name ..
(model model.Name)
(model, part, now)
hum = model:()
hum hum.Health <=
model:() ~=
owner = Players:(model)
owner (owner:() == owner:() ~= )
Config.HideInvisible
parts, visible = ,
_, c (model:())
c:() c.Name ~=
parts +=
c.Transparency < visible +=
parts > visible ==
owner
pos = part.Position
tr = posTrack[model]
tr
tr = {pos = pos, t = now}
posTrack[model] = tr
(pos - tr.pos).Magnitude >
tr.pos, tr.t = pos, now
limit = part.Anchored Config.StaleSeconds
now - tr.t > limit (pos)
(color, height)
bb = .()
bb.Size = .(, , , height)
bb.StudsOffset = .(, , )
bb.AlwaysOnTop =
bb.MaxDistance = Config.MaxDistance
bb.Enabled =
bb.Parent = espFolder
l = .()
l.Size = .(, , , )
l.BackgroundTransparency =
l.TextColor3 = color
l.TextStrokeTransparency =
l.Font = .Font.GothamBold
l.TextSize =
l.Parent = bb
{bb = bb, label = l}
(tag, part, text, color)
part part.Parent
bb = tag.bb
bb.Adornee ~= part bb.Adornee = part
tag.label.Text ~= text tag.label.Text = text
color tag.label.TextColor3 ~= color tag.label.TextColor3 = color
bb.Enabled bb.Enabled =
(tag)
tag.bb.Enabled tag.bb.Enabled = tag.bb.Adornee =
(pool, from)
i = from, #pool (pool[i])
itemPool, monsterPool, monsterHL, playerTags = {}, {}, {}, {}
(pool, i, color, height)
pool[i] pool[i] = (color, height)
pool[i]
(i)
monsterHL[i]
h = .()
h.FillTransparency =
h.OutlineTransparency =
h.FillColor = .(, , )
h.OutlineColor = .(, , )
h.DepthMode = .HighlightDepthMode.AlwaysOnTop
h.Enabled =
h.Parent = espFolder
monsterHL[i] = h
monsterHL[i]
(Players.PlayerRemoving, (plr)
playerTags[plr]
(() playerTags[plr].bb:() )
playerTags[plr] =
)
staminaList, seenMax, stamWarned = {}, ({}, {__mode = }),
(n)
n = n:()
n:(, , ) n:(, , )
n:(, , ) n:(, , ) n:(, , )
()
.(staminaList)
char = LocalPlayer.Character
holders = {LocalPlayer}
char
holders[#holders + ] = char
hum = char:()
hum holders[#holders + ] = hum
_, h (holders)
k, v (h:())
(v) == (k)
staminaList[#staminaList + ] = {kind = , obj = h, key = k}
(o)
(o:() o:()) (o.Name)
staminaList[#staminaList + ] = {kind = , obj = o}
char _, d (char:()) (d)
_, c (LocalPlayer:())
(c)
c:() _, cc (c:()) (cc)
(obj, key, cur, extra)
t = seenMax[obj]
t t = {} seenMax[obj] = t
m = .(t[key] , cur, extra )
t[key] = m
m
()
_, e (staminaList)
o = e.obj
o o.Parent
e.kind ==
cur = o:(e.key)
(cur) ==
extra = o:()
m = (o, e.key, cur, (extra) == extra )
cur < m o:(e.key, m)
m = (o, , o.Value)
o.Value < m o.Value = m
env.SOD_Dump = ()
()
_, plr (Players:())
(, plr.Name)
(, plr:())
(, plr:())
(, (plr))
plr.Character
(, plr.Character:())
(, plr.Character:())
()
_, obj (:())
obj:() obj:() ~=
(, obj.Name, obj:())
()
found, mons, monPlr = {}, {}, {}
lastStatus, warnDist, startPosSaved = , ,
(a, b) a.dist < b.dist
(model, origin, maxDist, now, label)
model model.Parent
part = model:() model.PrimaryPart model:()
part part.Parent
(model, part, now)
dist = (part.Position - origin).Magnitude
dist > maxDist dist <
i = , #mons
mons[i].model == model
mons[#mons + ] = {model = model, part = part, dist = dist, label = label model.Name}
()
warnDist =
warnFrame.Visible =
()
char = LocalPlayer.Character
root = char char:()
root
(itemPool, )
(monsterPool, )
_, h (monsterHL) h.Enabled = h.Adornee =
_, t (playerTags) (t)
()
origin = root.Position
maxDist = Config.MaxDistance
now = .()
startPosSaved
startPosSaved =
spawnPoints[#spawnPoints + ] = origin
itemsShown, itemsTotal = ,
Config.ItemESP
.(found)
filter = Config.ItemFilter
prompt, e (prompts)
e.loot ( Config.HideDisabledPrompts prompt.Enabled)
(filter == e.nameLower:(filter, , ))
part = e.part
part part.Parent
part = (prompt)
e.part = part
part part.Parent
dist = (part.Position - origin).Magnitude
dist <= maxDist
found[#found + ] = {part = part, inst = e.inst, name = e.name, dist = dist}
itemsTotal = #found
.(found, sortByDist)
itemsShown = .(itemsTotal, Config.MaxItems)
i = , itemsShown
d = found[i]
v = (d.inst)
w = (d.inst)
hi = v v >= Config.HighValue
line2 = {}
v line2[#line2 + ] = .. (v)
w line2[#line2 + ] = (w) ..
line2[#line2 + ] = .(d.dist) ..
text = (hi ) .. d.name .. .. .(line2, )
((itemPool, i, Config.ItemColor, ), d.part, text,
hi Config.HighValueColor Config.ItemColor)
(itemPool, itemsShown + )
.(mons)
.(monPlr)
_, plr (Players:())
plr ~= LocalPlayer (plr) plr.Character
monPlr[plr] =
(plr.Character, origin, maxDist, now, (plr.Character, plr))
_, obj (:())
obj:() obj:() ~=
plr = Players:(obj)
plr ~= LocalPlayer
plr monPlr[plr] =
(obj, origin, maxDist, now, (obj, plr))
model (monsters)
model.Parent
monsters[model] =
posTrack[model] =
Players:(model)
Config.MonsterBlacklist[model.Name]
model:() ~= (model.Name:(), monsterWords)
(model, origin, maxDist, now, (model, ))
.(mons, sortByDist)
monShown =
Config.MonsterESP
i = , .(#mons, Config.MaxMonsters)
d = mons[i]
monShown +=
((monsterPool, monShown, Config.MonsterColor, ), d.part,
d.label .. .. .(d.dist) .. , Config.MonsterColor)
h = (monShown)
h.Adornee ~= d.model h.Adornee = d.model
h.Enabled =
(monsterPool, monShown + )
i = monShown + , #monsterHL
monsterHL[i].Enabled =
monsterHL[i].Adornee =
nearest = mons[]
Config.MonsterWarn nearest nearest.dist <= Config.WarnDistance
warnDist = nearest.dist
warnFrame.Visible =
t = .. .(nearest.dist) ..
warnText.Text ~= t warnText.Text = t
()
_, plr (Players:())
plr ~= LocalPlayer
tag = playerTags[plr]
show =
Config.PlayerESP monPlr[plr]
pc = plr.Character
hrp = pc pc:()
hum = pc pc:()
hrp hrp.Parent ( hum hum.Health > )
dist = (hrp.Position - origin).Magnitude
dist <= maxDist
tag
tag = (Config.PlayerColor, )
playerTags[plr] = tag
(tag, hrp, plr.Name .. .. .(dist) .. , Config.PlayerColor)
show =
show tag (tag)
st = .(, itemsTotal, #mons, #staminaList)
st ~= lastStatus lastStatus = st status.Text = st
(, , )
(, , )
(, , )
(, , , (v)
v () ()
)
(, , )
(, , , (v)
prompt, e (prompts) e.loot (prompt, v)
)
(, , , (v)
v ()
)
box = .()
box.Size = .(, -, , )
box.Position = .(, , , )
box.BackgroundColor3 = COLOR_OFF
box.BorderSizePixel =
box.Text = Config.ItemFilter
box.PlaceholderText =
box.PlaceholderColor3 = .(, , )
box.TextColor3 = .(, , )
box.Font = .Font.Gotham
box.TextSize =
box.ClearTextOnFocus =
box.Parent = main
.(, box).CornerRadius = .(, )
(box.FocusLost, ()
Config.ItemFilter = (box.Text:():())
()
)
()
running =
()
_, c (connections) (() c:() )
.(connections)
prompt (prompts) (prompt, )
(restoreLighting)
(() gui:() )
env.SOD_Unload =
()
env.SOD_Unload = unload
unloadBtn = .()
unloadBtn.Size = .(, -, , )
unloadBtn.Position = .(, , , )
unloadBtn.BackgroundColor3 = .(, , )
unloadBtn.Text =
unloadBtn.TextColor3 = .(, , )
unloadBtn.Font = .Font.GothamBold
unloadBtn.TextSize =
unloadBtn.Parent = main
.(, unloadBtn).CornerRadius = .(, )
(unloadBtn.MouseButton1Click, unload)
Config.FullBright (applyFullBright)
(scanStamina)
accESP, accStam, accLight, accSlow = , , ,
(RunService.Heartbeat, (dt)
running
accESP += dt accStam += dt accLight += dt accSlow += dt
accESP >= Config.ESPInterval
accESP =
ok, err = (refreshESP)
ok ( .. (err))
warnDist warnFrame.Visible
k = - .(warnDist / Config.WarnDistance, , )
pulse = (.(.() * ( + * k)) + ) /
warnStroke.Transparency = - ( + * k) * ( + * pulse)
accStam >=
accStam =
Config.InfStamina (fillStamina)
accLight >=
accLight =
Config.FullBright (applyFullBright)
dirtyAt .() - dirtyAt > dirtyAt = ()
accSlow >=
accSlow =
(scanStamina)
(()
prompt, e (prompts)
inst = e.inst
inst inst.Parent
e.loot
n = (inst)
(inst, n:())
e.loot, e.name, e.nameLower = , n, n:()
e.loot Config.InstantPrompt (prompt, )
)
)
()