Run it
Copy the script and paste it into your executor.
Players = :()
RunService = :()
Lighting = :()
VirtualInputManager = :()
GuiService = :()
UserInputService = :()
ReplicatedStorage = :()
mFloor = .floor
mMax = .max
mAbs = .abs
tWait = .wait
tSpawn = .spawn
v3 = .new
v2 = .new
ud2 = .new
c3 = .fromRGB
tSort = .sort
tInsert = .insert
tTick =
localPlayer = Players.LocalPlayer
PlayerGui = localPlayer:()
MapPath = :()
Challenge = ReplicatedStorage:()
isMobile = UserInputService.TouchEnabled UserInputService.KeyboardEnabled
isPC = UserInputService.KeyboardEnabled
Settings = {
LockersVents = ,
BeastESP = ,
SurvivorESP = ,
ExitESP = ,
ComputerESP = ,
HatchESP = ,
PoisonESP = ,
TrapsESP = ,
EventESP =
}
MAX_DISTANCE_LOCKER =
BEAST_WARNING_DISTANCE =
COLORS = {
ComputerTable = (, , ),
ExitDoor = (, , ),
BeastPlayer = (, , ),
BeastNear = (, , ),
SurvivorPlayer = (, , ),
InteractionObj = (, , ),
Poison = (, , ),
Hatch = (, , ),
Trap = (, , ),
Event = (, , )
}
indicatorGui =
cachedMapObjects = {}
cachedPoisons = {}
cachedTraps = {}
cachedEvents = {}
cachedHatch =
lastThrottledUpdate =
lastEventFolderCheck =
CUSTOM_FONT = Font.(, .FontWeight.Bold, .FontStyle.Normal)
(obj)
obj
h = obj:()
b = obj:()
w = obj:()
h h:()
b b:()
w w:()
()
Lighting.Brightness =
Lighting.ClockTime =
Lighting.FogEnd =
Lighting.GlobalShadows =
Lighting.OutdoorAmbient = (, , )
Lighting.Ambient = (, , )
_, effect (Lighting:())
effect:() effect:() effect:()
effect.Enabled =
(obj, color)
h = obj:()
h
h = .()
h.Name =
h.Adornee = obj
h.FillTransparency =
h.OutlineTransparency =
h.DepthMode = .HighlightDepthMode.AlwaysOnTop
h.Archivable =
h.Parent = obj
h.FillColor = color
h.OutlineColor = color
h
(obj)
obj:() obj:()
cachedEvents[obj] =
()
folder = MapPath:()
folder
_, obj (folder:()) (obj)
folder.ChildAdded:(checkEventObj)
(obj)
name = obj.Name
name == obj:()
cachedMapObjects[obj] =
name ==
cachedMapObjects[obj] =
name == name ==
cachedMapObjects[obj] =
name ==
cachedMapObjects[obj] =
name ==
()
(obj)
cachedMapObjects[obj] =
_, obj (MapPath:()) (obj)
MapPath.DescendantAdded:(addMapObject)
MapPath.DescendantRemoving:(removeMapObject)
(obj)
obj.Name == obj:()
cachedPoisons[obj] =
obj.Name ==
cachedTraps[obj] =
(obj.Name == obj.Name == ) (obj:() obj:())
cachedHatch = obj
_, obj (:()) (obj)
.DescendantAdded:(checkWorkspaceObj)
.DescendantRemoving:((obj)
cachedPoisons[obj] cachedPoisons[obj] =
cachedTraps[obj] cachedTraps[obj] =
cachedHatch == obj cachedHatch =
cachedEvents[obj] cachedEvents[obj] =
)
(text, color, name, strokeColor)
billboard = .()
billboard.Name = name
billboard.AlwaysOnTop =
billboard.Size = (, , , )
billboard.StudsOffset = (, , )
billboard.MaxDistance = .huge
billboard.Archivable =
textLabel = .()
textLabel.Name =
textLabel.Size = (, , , )
textLabel.BackgroundTransparency =
textLabel.Text = text
textLabel.TextColor3 = color
textLabel.TextStrokeTransparency =
textLabel.TextStrokeColor3 = strokeColor .(, , )
textLabel.Font = .Font.GothamBold
textLabel.TextSize =
textLabel.TextWrapped =
textLabel.Parent = billboard
billboard
(player)
player == localPlayer
()
indicatorGui
ind = indicatorGui:(player.Name .. )
ind ind:()
()
tag = PlayerGui:(player.Name .. )
tag tag:()
player.Character
()
()
isBeast = player:()
espState = isBeast Settings.BeastESP Settings.SurvivorESP
espState ==
(player.Character)
()
()
hrp = player.Character:()
myHrp = localPlayer.Character localPlayer.Character:()
hrp
()
()
distance = myHrp (hrp.Position - myHrp.Position).Magnitude
color = COLORS.SurvivorPlayer
isBeast
color = (distance <= BEAST_WARNING_DISTANCE localPlayer:()) COLORS.BeastNear COLORS.BeastPlayer
(player.Character, color)
existingTag = PlayerGui:(player.Name .. )
chosenPower = player:()
prefix = isBeast ( .. (chosenPower):() .. )
espState ==
existingTag existingTag:()
()
nametagText = prefix .. player.Name .. .. (distance) ..
existingTag
label = existingTag:()
label label.Text = nametagText; label.TextColor3 = color
nametag = (nametagText, color, player.Name .. )
nametag.Adornee = hrp
nametag.Parent = PlayerGui
isBeast localPlayer:()
indicatorGui indicatorGui.Parent
indicatorGui indicatorGui:()
indicatorGui = .()
indicatorGui.Name =
indicatorGui.IgnoreGuiInset = ; indicatorGui.Parent = PlayerGui
indName = player.Name ..
indicator = indicatorGui:(indName)
indicator
indicator = .()
indicator.Name = indName; indicator.BackgroundTransparency =
indicator.Font = .Font.GothamBold; indicator.TextSize =
indicator.TextStrokeTransparency = ; indicator.Size = (, , , )
indicator.AnchorPoint = (, ); indicator.Parent = indicatorGui
indicator.Text = prefix .. .. (distance) ..
indicator.TextColor3 = color
camera = .CurrentCamera
screenPos, onScreen = camera:(hrp.Position)
onScreen
indicator.Visible =
viewportCenter = camera.ViewportSize /
direction = (screenPos.X, screenPos.Y) - viewportCenter
screenPos.Z < direction = -direction
maxScale = ((direction.X) / (viewportCenter.X - ), (direction.Y) / (viewportCenter.Y - ))
maxScale == maxScale =
indicator.Position = (, viewportCenter.X + direction.X / maxScale, , viewportCenter.Y + direction.Y / maxScale)
indicator.Visible =
()
()
myHrp = localPlayer.Character localPlayer.Character:()
isPoisonerActive =
_, p (Players:())
p:() p:() == isPoisonerActive = ;
eventObj, _ (cachedEvents)
Settings.EventESP == (eventObj);
eventObj.Parent
points = eventObj:()
textColor = (, , )
strokeColor = (, , )
points ==
textColor = (, , )
points ==
textColor = (, , )
points ==
textColor = (, , )
strokeColor = (, , )
(eventObj, textColor)
Settings.EventESP ==
pos = eventObj:().Position
dist = myHrp ((pos - myHrp.Position).Magnitude)
tagText = points .. .. dist ..
existingTag = eventObj:()
existingTag
label = existingTag:()
label
label.Text = tagText
label.TextColor3 = textColor
label.TextStrokeColor3 = strokeColor
tag = (tagText, textColor, , strokeColor)
tag.Adornee = eventObj.PrimaryPart eventObj:() eventObj
tag.Parent = eventObj
Settings.EventESP ==
existingTag = eventObj:()
existingTag existingTag:()
cachedEvents[eventObj] =
poisonPart, _ (cachedPoisons)
Settings.PoisonESP == (poisonPart);
poisonPart.Parent isPoisonerActive
(poisonPart, COLORS.Poison)
Settings.PoisonESP ==
existingTag = poisonPart:()
existingTag existingTag:()
dist = myHrp ((poisonPart.Position - myHrp.Position).Magnitude)
tagText = .. dist ..
existingTag = poisonPart:()
existingTag
label = existingTag:()
label label.Text = tagText
tag = (tagText, COLORS.Poison)
tag.Adornee = poisonPart; tag.Parent = poisonPart
poisonPart.Parent (poisonPart)
cachedPoisons[poisonPart] =
trap, _ (cachedTraps)
Settings.TrapsESP == (trap);
trap.Parent
(trap, COLORS.Trap)
Settings.TrapsESP ==
existingTag = trap:()
existingTag existingTag:()
pos = trap:() trap:().Position trap.Position
dist = myHrp ((pos - myHrp.Position).Magnitude)
tagText = .. dist ..
existingTag = trap:()
existingTag
label = existingTag:()
label label.Text = tagText
tag = (tagText, COLORS.Trap)
tag.Adornee = trap:() (trap.PrimaryPart trap:()) trap
tag.Parent = trap
cachedTraps[trap] =
cachedHatch cachedHatch.Parent
Settings.HatchESP == (cachedHatch)
(cachedHatch, COLORS.Hatch)
Settings.HatchESP ==
existingTag = cachedHatch:()
existingTag existingTag:()
pos = cachedHatch:() cachedHatch:().Position cachedHatch.Position
dist = myHrp ((pos - myHrp.Position).Magnitude)
tagText = .. dist ..
existingTag = cachedHatch:()
existingTag
label = existingTag:()
label label.Text = tagText
tag = (tagText, COLORS.Hatch)
tag.Adornee = cachedHatch:() (cachedHatch.PrimaryPart cachedHatch:()) cachedHatch
tag.Parent = cachedHatch
cachedHatch cachedHatch.Parent cachedHatch =
()
localPlayer:()
tag = localPlayer.Character localPlayer.Character:(, )
tag tag.Enabled =
myChar = localPlayer.Character
myHrp = myChar myChar:()
myHrp
beastFoundNear =
_, p (Players:())
p ~= localPlayer p:() p.Character
bHrp = p.Character:()
bHrp (bHrp.Position - myHrp.Position).Magnitude <= BEAST_WARNING_DISTANCE beastFoundNear = ;
warningTag = myHrp:()
beastFoundNear
warningTag
warningTag = (, (, , ), )
warningTag.Size = (, , , ); warningTag.StudsOffset = (, , )
lbl = warningTag:(); lbl.TextSize =
warningTag.Parent = myHrp
warningTag.Enabled =
warningTag warningTag.Enabled =
()
char = localPlayer.Character
hrp = char char:()
obj, objType (cachedMapObjects)
objType ==
Settings.ComputerESP == (obj);
progress = obj:()
progress progress >= (obj)
(obj, COLORS.ComputerTable)
Settings.ComputerESP ==
existingTag = obj:()
existingTag existingTag:()
existingTag = obj:()
existingTag
label = existingTag:()
label label.Text = (progress) ..
tag = ((progress) .. , COLORS.ComputerTable)
screen = obj:()
tag.Adornee = screen (obj:() (obj.PrimaryPart obj:()) obj)
tag.Parent = obj
objType ==
Settings.ExitESP == (obj) (obj, COLORS.ExitDoor)
objType ==
Settings.LockersVents == (obj);
hrp
pos = obj:() obj:().Position obj.Position
(hrp.Position - pos).Magnitude <= MAX_DISTANCE_LOCKER (obj, COLORS.InteractionObj)
h = obj:() h h:()
objType == h = obj:() h h:()
(player)
player == localPlayer
player.CharacterAdded:(() () (player) )
Players.PlayerAdded:(hookPlayer)
_, player (Players:()) (player)
Players.PlayerRemoving:((player)
indicatorGui
ind = indicatorGui:(player.Name .. )
ind ind:()
tag = PlayerGui:(player.Name .. )
tag tag:()
)
(p)
attr = p:()
attr attr
val = p:()
val (val:() val:()) val.Value
()
players = Players:()
_, p (players) p:()
playerData = {}
_, p (players) (playerData, {player = p, chance = (p)})
(playerData, (a, b) a.chance > b.chance )
#playerData ==
highestChance = playerData[].chance
secondHighestChance =
i = , #playerData playerData[i].chance < highestChance secondHighestChance = playerData[i].chance;
highestCount =
_, d (playerData) d.chance == highestChance highestCount = highestCount +
secondHighestCount =
secondHighestChance _, d (playerData) d.chance == secondHighestChance secondHighestCount = secondHighestChance +
checkSecond = (#players > )
lines = {}
_, d (playerData)
colorStr =
chance = d.chance
chance == highestChance
checkSecond colorStr = (highestCount == )
colorStr = (highestCount <= )
secondHighestChance chance == secondHighestChance checkSecond
highestCount == colorStr = (secondHighestCount == )
(lines, .. colorStr .. .. d.player.Name .. .. chance .. )
.(lines, )
predGui = .()
predGui.Name = ; predGui.ResetOnSpawn = ; predGui.Parent = PlayerGui
settingsContainer = .()
settingsContainer.Name = ; settingsContainer.Size = (, , , ); settingsContainer.Position = (, , , )
settingsContainer.BackgroundColor3 = (, , ); settingsContainer.BackgroundTransparency =
settingsContainer.BorderSizePixel = ; settingsContainer.BorderColor3 = (, , ); settingsContainer.ZIndex = ; settingsContainer.Parent = predGui
cornerContainer = .(); cornerContainer.CornerRadius = .(, ); cornerContainer.Parent = settingsContainer
settingsBtn = .()
settingsBtn.Name = ; settingsBtn.Size = (, , , ); settingsBtn.Position = (, -, , -)
settingsBtn.BackgroundTransparency = ; settingsBtn.Image = ; settingsBtn.ZIndex = ; settingsBtn.Parent = settingsContainer
mainFrame = .()
mainFrame.Name = ; mainFrame.BackgroundColor3 = (, , ); mainFrame.BackgroundTransparency = ; mainFrame.BorderSizePixel =
mainFrame.Size = isMobile (, , , ) (, , , )
mainFrame.Position = isMobile (, , , -) (, -, , )
mainFrame.ClipsDescendants = ; mainFrame.ZIndex = ; mainFrame.Parent = predGui
mainCorner = .(); mainCorner.CornerRadius = .(, ); mainCorner.Parent = mainFrame
tabFrame = .()
tabFrame.Name = ; tabFrame.BackgroundColor3 = (, , ); tabFrame.BackgroundTransparency = ; tabFrame.BorderSizePixel =
tabFrame.Size = (, , , ); tabFrame.Position = (, , , ); tabFrame.ZIndex = ; tabFrame.Parent = mainFrame
tabCorner = .(); tabCorner.CornerRadius = .(, ); tabCorner.Parent = tabFrame
tabSharpMask = .()
tabSharpMask.Name = ; tabSharpMask.Size = (, , , ); tabSharpMask.Position = (, , , )
tabSharpMask.BackgroundColor3 = tabFrame.BackgroundColor3; tabSharpMask.BackgroundTransparency = tabFrame.BackgroundTransparency
tabSharpMask.BorderSizePixel = ; tabSharpMask.ZIndex = ; tabSharpMask.Parent = tabFrame
tabTitle = .()
tabTitle.Size = (, , , ); tabTitle.BackgroundTransparency = ; tabTitle.FontFace = CUSTOM_FONT; tabTitle.TextSize = isMobile
tabTitle.TextColor3 = (, , ); tabTitle.Text = ; tabTitle.ZIndex = ; tabTitle.Parent = tabFrame
settingsFrame = .()
settingsFrame.Name = ; settingsFrame.Size = (, , , ); settingsFrame.Position = (, , , )
settingsFrame.BackgroundColor3 = (, , ); settingsFrame.BackgroundTransparency = ; settingsFrame.BorderSizePixel =
settingsFrame.Visible = ; settingsFrame.ZIndex = ; settingsFrame.Parent = predGui
settingsCorner = .(); settingsCorner.CornerRadius = .(, ); settingsCorner.Parent = settingsFrame
settingsHeader = .()
settingsHeader.Size = (, , , ); settingsHeader.BackgroundColor3 = (, , ); settingsHeader.BackgroundTransparency =
settingsHeader.BorderSizePixel = ; settingsHeader.ZIndex = ; settingsHeader.Parent = settingsFrame
headerCorner = .(); headerCorner.CornerRadius = .(, ); headerCorner.Parent = settingsHeader
headerSharpMask = .()
headerSharpMask.Name = ; headerSharpMask.Size = (, , , ); headerSharpMask.Position = (, , , )
headerSharpMask.BackgroundColor3 = settingsHeader.BackgroundColor3; headerSharpMask.BackgroundTransparency = settingsHeader.BackgroundTransparency
headerSharpMask.BorderSizePixel = ; headerSharpMask.ZIndex = ; headerSharpMask.Parent = settingsHeader
settingsTitle = .()
settingsTitle.Size = (, , , ); settingsTitle.BackgroundTransparency = ; settingsTitle.Text =
settingsTitle.TextColor3 = (, , ); settingsTitle.Font = .Font.GothamBold; settingsTitle.TextSize =
settingsTitle.TextXAlignment = .TextXAlignment.Center; settingsTitle.ZIndex = ; settingsTitle.Parent = settingsHeader
settingsScroll = .()
settingsScroll.Size = (, -, , -); settingsScroll.Position = (, , , ); settingsScroll.BackgroundTransparency =
settingsScroll.BorderSizePixel = ; settingsScroll.ScrollBarThickness = ; settingsScroll.CanvasSize = (, , , )
settingsScroll.ScrollingDirection = .ScrollingDirection.Y; settingsScroll.ZIndex = ; settingsScroll.Parent = settingsFrame
UIList = .(); UIList.Padding = .(, ); UIList.HorizontalAlignment = .HorizontalAlignment.Center; UIList.Parent = settingsScroll
(val, isSimple)
val == , (, , )
isSimple , (, , )
val == , (, , )
val == , (, , )
, (, , )
(name, settingKey)
btn = .()
btn.Size = (, , , )
isSimple = (settingKey == settingKey == )
textState, colorState = (Settings[settingKey], isSimple)
btn.BackgroundColor3 = colorState; btn.Text = name .. .. textState
btn.TextColor3 = (, , ); btn.Font = .Font.GothamBold; btn.TextSize = ; btn.ZIndex = ; btn.Parent = settingsScroll
corner = .(); corner.CornerRadius = .(, ); corner.Parent = btn
btn.MouseButton1Click:(()
isSimple Settings[settingKey] = (Settings[settingKey] == )
Settings[settingKey] = (Settings[settingKey] + ) %
newTextState, newColorState = (Settings[settingKey], isSimple)
btn.BackgroundColor3 = newColorState; btn.Text = name .. .. newTextState
)
(, )
(, )
(, )
(, )
(, )
(, )
(, )
(, )
(, )
settingsScroll.CanvasSize = (, , , UIList.AbsoluteContentSize.Y + )
settingsBtn.MouseButton1Click:(() settingsFrame.Visible = settingsFrame.Visible )
scroll = .()
scroll.Name = ; scroll.Size = (, -, , -); scroll.Position = (, , , ); scroll.BackgroundTransparency =
scroll.BorderSizePixel = ; scroll.CanvasSize = (, , , ); scroll.ScrollBarThickness = ; scroll.ScrollingDirection = .ScrollingDirection.Y; scroll.ZIndex = ; scroll.Parent = mainFrame
predLabel = .()
predLabel.Size = (, , , ); predLabel.AutomaticSize = .AutomaticSize.Y; predLabel.BackgroundTransparency = ; predLabel.FontFace = CUSTOM_FONT; predLabel.TextSize = isMobile
predLabel.TextColor3 = (, , ); predLabel.TextXAlignment = .TextXAlignment.Left; predLabel.TextYAlignment = .TextYAlignment.Top; predLabel.RichText = ; predLabel.ZIndex = ; predLabel.Parent = scroll
(()
msg = ()
msg predLabel.Text = msg; mainFrame.Visible = ; scroll.CanvasSize = (, , , predLabel.TextBounds.Y)
mainFrame.Visible =
()
)
RunService.Heartbeat:(()
_, player (Players:()) (player)
(); (); ()
now = ()
now - lastThrottledUpdate >=
lastThrottledUpdate = now
()
now - lastEventFolderCheck >=
lastEventFolderCheck = now
()
)
Challenge.OnClientEvent:((Type, Computer, Start, End)
Type ~=
Difference = End - Start; Time = Start + (Difference / )
Challenge:(Computer, Type, Time)
challengeUI = PlayerGui:(, )
challengeUI challengeUI:()
)
mt = (); oldNewIndex = mt.__newindex; (mt, )
mt.__newindex = ((t, k, v)
() t:()
k == v = v + k == v =
(t, k, v)
)
(mt, )
(()
char = localPlayer.Character; hum = char char:()
hum hum.WalkSpeed = hum.WalkSpeed; hum.JumpHeight =
()
)
FEATURES: • Fullbright • Player and Beast ESPs, also displays the beast's chosen power • Off screen indicators for the beasts • Beast distance warning • Object ESPs, including computer (with progress percentage), exits, lockers, vents, and hatch • ESPs for the poisoner's poison puddle and the trapper's bear traps • Beast chance menu in the lobby, you can view every player's beast chances, red names will be the Beast, pink names might be the beast • Auto skill checks for computers • Dynamic speed boost, you're always slightly faster than normal with +1 speed to every action you take (note: this part uses metatable hooks and __index, which is detectable in some games but not in 10 player flee, just be aware of any updates to the game they might add the anti cheat to this method) PATCH NOTES: • Added a settings button so you can toggle on and off certain ESP features • [EVENT] Added egg ESP (note that the eggs will only appear after 1 computer is hacked) • Fixed* the Haunter ESP glitch (I haven't tested it out yet) • Fixed the Stalker ESP glitch, you should be able to see where they are now