Run it
Copy the script and paste it into your executor.
Players = :()
TweenService = :()
UserInputService = :()
RunService = :()
SoundService = :()
LocalPlayer = Players.LocalPlayer
PlayerGui = LocalPlayer:()
VirtualInputManager
(()
VirtualInputManager = :(
)
)
(()
old = PlayerGui:(
)
old
old:()
)
Config = {
ToggleKey = .KeyCode.RightShift,
UIAnimations = ,
UIScale = ,
SoundsEnabled = ,
HoverSounds = ,
ClickSounds = ,
SoundVolume = ,
HoverSoundId =
,
ClickSoundId =
,
AutoVault = ,
VaultDistance = ,
AutoVaultCooldown = ,
AutoBreak = ,
BreakDistance = ,
AutoBreakCooldown = ,
AutoPalletStun = ,
PalletStunDistance = ,
PalletDropCooldown = ,
WalkSpeedEnabled = ,
WalkSpeed = ,
PlayerESP = ,
PlayerESPDistance = ,
ShowPlayerNames = ,
ShowPlayerRoles = ,
ShowPlayerHealth = ,
ChaserColor =
.(
,
,
),
RunnerColor =
.(
,
,
),
EliminatedColor =
.(
,
,
),
ObjectESP = ,
ShowObjectNames = ,
ObjectFillTransparency = ,
ObjectOutlineTransparency = ,
AutoTag = ,
TagDistance = ,
TagInterval = ,
ReturnAfterTag = ,
NotifyRoleChanges = ,
NotifyAutomation = ,
}
ObjectSettings = {
Pallet = {
Enabled = ,
Color =
.(
,
,
),
Distance = ,
},
SmallPallet = {
Enabled = ,
Color =
.(
,
,
),
Distance = ,
},
Window = {
Enabled = ,
Color =
.(
,
,
),
Distance = ,
},
SmallWindow = {
Enabled = ,
Color =
.(
,
,
),
Distance = ,
},
Vault1 = {
Enabled = ,
Color =
.(
,
,
),
Distance = ,
},
Vault2 = {
Enabled = ,
Color =
.(
,
,
),
Distance = ,
},
}
CustomObjects = {}
Character
Humanoid
RootPart
()
Character =
LocalPlayer.Character
LocalPlayer.CharacterAdded:()
Humanoid =
Character:(
)
RootPart =
Character:(
)
()
LocalPlayer.CharacterAdded:(
()
.()
()
)
(player)
player =
player LocalPlayer
teamValue =
player:(
)
teamValue
teamValue:(
)
teamValue.Value ==
teamValue.Value ==
()
() ==
()
() ==
HoverSound =
.(
)
HoverSound.Name =
HoverSound.SoundId =
Config.HoverSoundId
HoverSound.Volume =
Config.SoundVolume
HoverSound.Parent =
SoundService
ClickSound =
.(
)
ClickSound.Name =
ClickSound.SoundId =
Config.ClickSoundId
ClickSound.Volume =
Config.SoundVolume
ClickSound.Parent =
SoundService
()
Config.SoundsEnabled
Config.HoverSounds
HoverSound.Volume =
Config.SoundVolume
HoverSound:()
HoverSound:()
()
Config.SoundsEnabled
Config.ClickSounds
ClickSound.Volume =
Config.SoundVolume
ClickSound:()
ClickSound:()
()
VirtualInputManager
success =
(()
VirtualInputManager:(
,
.KeyCode.Space,
,
)
.()
VirtualInputManager:(
,
.KeyCode.Space,
,
)
)
success
Humanoid
Humanoid.Jump =
(object)
object
object:(
)
object.Position
object:(
)
object.PrimaryPart
object.PrimaryPart.Position
part =
object:(
,
)
part
part.Position
(object)
RootPart
.huge
position =
(
object
)
position
.huge
(
RootPart.Position -
position
).Magnitude
READY_PALLET_X =
-
READY_PALLET_Y =
READY_PALLET_Z =
PALLET_ANGLE_TOLERANCE =
(
pallet
)
pallet
pallet:(
)
orientation =
pallet.Orientation
xReady =
.(
orientation.X -
READY_PALLET_X
)
<= PALLET_ANGLE_TOLERANCE
yReady =
.(
orientation.Y -
READY_PALLET_Y
)
<= PALLET_ANGLE_TOLERANCE
zReady =
.(
orientation.Z -
READY_PALLET_Z
)
<= PALLET_ANGLE_TOLERANCE
xReady
yReady
zReady
(
pallet
)
pallet
pallet:(
)
(
pallet
)
(
position,
maxDistance
)
nearest
nearestDistance =
maxDistance
_, player (
Players:()
)
player ~= LocalPlayer
(player) ==
character =
player.Character
character
root =
character:(
)
root
distance =
(
root.Position -
position
).Magnitude
distance <=
nearestDistance
nearest =
player
nearestDistance =
distance
nearest,
nearestDistance
()
nearestPallet
nearestChaser
nearestDistance =
Config.PalletStunDistance
_, object (
:()
)
object:(
)
object.Name ==
(
object
)
chaser,
chaserDistance =
(
object.Position,
Config.PalletStunDistance
)
chaser
chaserDistance <=
nearestDistance
nearestPallet =
object
nearestChaser =
chaser
nearestDistance =
chaserDistance
nearestPallet,
nearestChaser,
nearestDistance
LastPalletDropTimes = {}
(
pallet
)
pallet
pallet.Parent
(
pallet
)
now =
.()
lastTime =
LastPalletDropTimes[pallet]
now - lastTime <
Config.PalletDropCooldown
LastPalletDropTimes[pallet] =
now
prompt =
pallet:(
,
)
prompt
used =
(()
(
prompt
)
used =
)
used
clickDetector =
pallet:(
,
)
clickDetector
used =
(()
(
clickDetector
)
used =
)
used
()
Config.AutoPalletStun
()
pallet,
chaser =
()
pallet
chaser
(
pallet
)
dropped =
(
pallet
)
dropped
.(
,
()
pallet
pallet.Parent
(
pallet
)
Config.NotifyAutomation
(
)
)
ESPWorldFolder =
.(
)
ESPWorldFolder.Name =
ESPWorldFolder.Parent =
ESPBillboardFolder =
.(
)
ESPBillboardFolder.Name =
ESPBillboardFolder.Parent =
PlayerGui
ObjectESPObjects = {}
PlayerESPObjects = {}
(
object
)
data =
ObjectESPObjects[
object
]
data
data.Highlight
data.Highlight:()
data.Billboard
data.Billboard:()
ObjectESPObjects[
object
] =
(
object,
settings
)
object
object:(
)
ObjectESPObjects[
object
]
highlight =
.(
)
highlight.Name =
highlight.Adornee =
object
highlight.FillColor =
settings.Color
highlight.OutlineColor =
settings.Color
highlight.FillTransparency =
Config.ObjectFillTransparency
highlight.OutlineTransparency =
Config.ObjectOutlineTransparency
highlight.DepthMode =
.HighlightDepthMode.AlwaysOnTop
highlight.Parent =
ESPWorldFolder
billboard
Config.ShowObjectNames
part
object:(
)
part =
object
object:(
)
part =
object.PrimaryPart
object:(
,
)
part
billboard =
.(
)
billboard.Name =
billboard.Adornee =
part
billboard.Size =
.(
,
)
billboard.StudsOffset =
.(
,
,
)
billboard.AlwaysOnTop =
billboard.Parent =
ESPBillboardFolder
label =
.(
)
label.Size =
.(
,
)
label.BackgroundTransparency =
label.Font =
.Font.GothamBold
label.TextSize =
label.TextColor3 =
settings.Color
label.TextStrokeTransparency =
label.Text =
object.Name
label.Parent =
billboard
ObjectESPObjects[
object
] = {
Highlight =
highlight,
Billboard =
billboard,
}
(
object
)
object
object:(
)
(
object
)
settings =
ObjectSettings[
object.Name
]
CustomObjects[
object.Name
]
Config.ObjectESP
settings
settings.Enabled
(
object
)
distance =
(
object
)
distance >
settings.Distance
data =
ObjectESPObjects[
object
]
data
data.Highlight.Enabled =
data.Billboard
data.Billboard.Enabled =
ObjectESPObjects[
object
]
(
object,
settings
)
data =
ObjectESPObjects[
object
]
data
data.Highlight.Enabled =
data.Highlight.FillColor =
settings.Color
data.Highlight.OutlineColor =
settings.Color
data.Highlight.FillTransparency =
Config.ObjectFillTransparency
data.Highlight.OutlineTransparency =
Config.ObjectOutlineTransparency
data.Billboard
data.Billboard.Enabled =
Config.ShowObjectNames
label =
data.Billboard:(
)
label
label.TextColor3 =
settings.Color
(
player
)
role =
(
player
)
role ==
Config.ChaserColor
role ==
Config.RunnerColor
Config.EliminatedColor
(
player
)
data =
PlayerESPObjects[
player
]
data
data.Highlight
data.Highlight:()
data.Billboard
data.Billboard:()
PlayerESPObjects[
player
] =
(
player
)
player ==
LocalPlayer
character =
player.Character
character
root =
character:(
)
root
(
player
)
color =
(
player
)
highlight =
.(
)
highlight.Name =
highlight.Adornee =
character
highlight.FillColor =
color
highlight.OutlineColor =
color
highlight.FillTransparency =
Config.ObjectFillTransparency
highlight.OutlineTransparency =
Config.ObjectOutlineTransparency
highlight.DepthMode =
.HighlightDepthMode.AlwaysOnTop
highlight.Parent =
ESPWorldFolder
billboard =
.(
)
billboard.Name =
billboard.Adornee =
root
billboard.Size =
.(
,
)
billboard.StudsOffset =
.(
,
,
)
billboard.AlwaysOnTop =
billboard.Parent =
ESPBillboardFolder
label =
.(
)
label.Size =
.(
,
)
label.BackgroundTransparency =
label.Font =
.Font.GothamBold
label.TextSize =
label.TextColor3 =
color
label.TextStrokeTransparency =
label.TextWrapped =
label.Parent =
billboard
PlayerESPObjects[
player
] = {
Highlight =
highlight,
Billboard =
billboard,
Label =
label,
}
(
player
)
player ==
LocalPlayer
Config.PlayerESP
(
player
)
character =
player.Character
character
(
player
)
root =
character:(
)
root
(
player
)
distance =
(
character
)
distance >
Config.PlayerESPDistance
data =
PlayerESPObjects[
player
]
data
data.Highlight.Enabled =
data.Billboard.Enabled =
PlayerESPObjects[
player
]
(
player
)
data =
PlayerESPObjects[
player
]
data
role =
(
player
)
color =
(
player
)
data.Highlight.Enabled =
data.Billboard.Enabled =
data.Highlight.FillColor =
color
data.Highlight.OutlineColor =
color
data.Highlight.FillTransparency =
Config.ObjectFillTransparency
data.Highlight.OutlineTransparency =
Config.ObjectOutlineTransparency
lines = {}
Config.ShowPlayerNames
.(
lines,
player.DisplayName
)
Config.ShowPlayerRoles
.(
lines,
..
role ..
)
Config.ShowPlayerHealth
humanoid =
character:(
)
humanoid
.(
lines,
.(
,
.(
humanoid.Health
),
.(
humanoid.MaxHealth
)
)
)
data.Label.Text =
.(
lines,
)
data.Label.TextColor3 =
color
(
name,
color,
distance
)
(name) ~=
name ==
CustomObjects[
name
] = {
Enabled =
,
Color =
color
.(
,
,
),
Distance =
distance
,
}
(
names,
maxDistance
)
nearest
nearestDistance =
maxDistance
_, object (
:()
)
names[
object.Name
]
distance =
(
object
)
distance <=
nearestDistance
nearest =
object
nearestDistance =
distance
nearest,
nearestDistance
VaultNames = {
Vault1 = ,
Vault2 = ,
}
LastVaultTime =
VaultLockedObject =
VaultRearmDistance =
(
maxDistance
)
nearest
nearestDistance =
maxDistance
_, object (
:()
)
VaultNames[
object.Name
]
distance =
(
object
)
distance <=
nearestDistance
nearest =
object
nearestDistance =
distance
_, object (
:()
)
object:(
)
object.Name ==
(
object
)
distance =
(
object
)
distance <=
nearestDistance
nearest =
object
nearestDistance =
distance
nearest
()
Config.AutoVault
Character
RootPart
Humanoid
now =
.()
now -
LastVaultTime <
Config.AutoVaultCooldown
VaultLockedObject
VaultLockedObject:(
)
VaultLockedObject =
distance =
(
VaultLockedObject
)
distance >
Config.VaultDistance
+ VaultRearmDistance
VaultLockedObject =
vault =
(
Config.VaultDistance
)
vault
vault.Name ==
(
vault
)
LastVaultTime =
now
VaultLockedObject =
vault
()
LastBreakTime =
()
Config.AutoBreak
()
now =
.()
now -
LastBreakTime <
Config.AutoBreakCooldown
pallet =
(
{
Pallet = ,
SmallPallet =
},
Config.BreakDistance
)
pallet
LastBreakTime =
now
()
TagActive =
TagTarget =
OriginalTagPosition =
()
RootPart
OriginalTagPosition =
RootPart.CFrame
()
Config.ReturnAfterTag
OriginalTagPosition
RootPart
RootPart.CFrame =
OriginalTagPosition
OriginalTagPosition =
(
returnPosition
)
TagActive =
TagTarget =
returnPosition
()
OriginalTagPosition =
(
maxDistance
)
RootPart
nearest
nearestDistance =
maxDistance
.huge
_, player (
Players:()
)
player ~= LocalPlayer
(player) ==
character =
player.Character
character
root =
character:(
)
root
distance =
(
RootPart.Position -
root.Position
).Magnitude
distance <
nearestDistance
nearest =
player
nearestDistance =
distance
nearest
()
runners = {}
_, player (
Players:()
)
player ~= LocalPlayer
(player) ==
.(
runners,
player
)
.(
runners,
(a, b)
a.Name <
b.Name
)
runners
(
target
)
target
target.Parent
RootPart
character =
target.Character
character
targetRoot =
character:(
)
targetRoot
RootPart.CFrame =
targetRoot.CFrame *
.(
,
,
-
)
ScreenGui =
.(
)
ScreenGui.Name =
ScreenGui.ResetOnSpawn =
ScreenGui.IgnoreGuiInset =
ScreenGui.ZIndexBehavior =
.ZIndexBehavior.Sibling
ScreenGui.Parent =
PlayerGui
UIScale =
.(
)
UIScale.Scale =
Config.UIScale
UIScale.Parent =
ScreenGui
NotificationHolder =
.(
)
NotificationHolder.AnchorPoint =
.(
,
)
NotificationHolder.Position =
.(
,
-,
,
-
)
NotificationHolder.Size =
.(
,
)
NotificationHolder.BackgroundTransparency =
NotificationHolder.Parent =
ScreenGui
NotificationLayout =
.(
)
NotificationLayout.VerticalAlignment =
.VerticalAlignment.Bottom
NotificationLayout.HorizontalAlignment =
.HorizontalAlignment.Right
NotificationLayout.Padding =
.(
,
)
NotificationLayout.Parent =
NotificationHolder
(
text
)
notification =
.(
)
notification.Size =
.(
,
)
notification.BackgroundColor3 =
.(
,
,
)
notification.BorderSizePixel =
notification.Parent =
NotificationHolder
corner =
.(
)
corner.CornerRadius =
.(
,
)
corner.Parent =
notification
stroke =
.(
)
stroke.Color =
.(
,
,
)
stroke.Transparency =
stroke.Parent =
notification
label =
.(
)
label.Position =
.(
,
)
label.Size =
.(
,
-,
,
)
label.BackgroundTransparency =
label.Font =
.Font.GothamMedium
label.TextSize =
label.TextColor3 =
.(
,
,
)
label.TextXAlignment =
.TextXAlignment.Left
label.Text =
text
label.Parent =
notification
notification.Position =
.(
,
,
,
)
TweenService:(
notification,
TweenInfo.(
,
.EasingStyle.Quint,
.EasingDirection.Out
),
{
Position =
.(
,
,
,
)
}
):()
.(
,
()
notification.Parent
tween =
TweenService:(
notification,
TweenInfo.(
,
.EasingStyle.Quint,
.EasingDirection.In
),
{
Position =
.(
,
,
,
)
}
)
tween:()
tween.Completed:(
()
notification
notification:()
)
)
Intro =
.(
)
Intro.Size =
.(
,
)
Intro.BackgroundTransparency =
Intro.Parent =
ScreenGui
IntroText =
.(
)
IntroText.AnchorPoint =
.(
,
)
IntroText.Position =
.(
,
)
IntroText.Size =
.(
,
)
IntroText.BackgroundTransparency =
IntroText.RichText =
IntroText.Font =
.Font.GothamBold
IntroText.TextSize =
IntroText.TextTransparency =
IntroText.Text =
..
IntroText.Parent =
Intro
TweenService:(
IntroText,
TweenInfo.(
,
.EasingStyle.Quint,
.EasingDirection.Out
),
{
TextTransparency =
}
):()
.()
TweenService:(
IntroText,
TweenInfo.(
,
.EasingStyle.Quint,
.EasingDirection.In
),
{
TextTransparency =
}
):()
.()
Intro:()
Accent =
.(
,
,
)
ButtonColor =
.(
,
,
)
SelectedColor =
.(
,
,
)
TextColor =
.(
,
,
)
MutedColor =
.(
,
,
)
Main =
.(
)
Main.AnchorPoint =
.(
,
)
Main.Position =
.(
,
)
Main.Size =
.(
,
)
Main.BackgroundColor3 =
.(
,
,
)
Main.BorderSizePixel =
Main.ClipsDescendants =
Main.Parent =
ScreenGui
MainCorner =
.(
)
MainCorner.CornerRadius =
.(
,
)
MainCorner.Parent =
Main
MainStroke =
.(
)
MainStroke.Color =
.(
,
,
)
MainStroke.Transparency =
MainStroke.Parent =
Main
Topbar =
.(
)
Topbar.Size =
.(
,
,
,
)
Topbar.BackgroundColor3 =
.(
,
,
)
Topbar.BorderSizePixel =
Topbar.Parent =
Main
Title =
.(
)
Title.Position =
.(
,
)
Title.Size =
.(
,
)
Title.BackgroundTransparency =
Title.RichText =
Title.Font =
.Font.GothamBold
Title.TextSize =
Title.TextXAlignment =
.TextXAlignment.Left
Title.Text =
..
Title.Parent =
Topbar
RoleLabel =
.(
)
RoleLabel.AnchorPoint =
.(
,
)
RoleLabel.Position =
.(
,
-,
,
)
RoleLabel.Size =
.(
,
)
RoleLabel.BackgroundTransparency =
RoleLabel.Font =
.Font.GothamMedium
RoleLabel.TextSize =
RoleLabel.TextColor3 =
.(
,
,
)
RoleLabel.TextXAlignment =
.TextXAlignment.Right
RoleLabel.Text =
..
()
RoleLabel.Parent =
Topbar
Dragging =
DragStart
StartPosition
Topbar.InputBegan:(
(input)
input.UserInputType ==
.UserInputType.MouseButton1
input.UserInputType ==
.UserInputType.Touch
Dragging =
DragStart =
input.Position
StartPosition =
Main.Position
)
UserInputService.InputChanged:(
(input)
Dragging
input.UserInputType ~=
.UserInputType.MouseMovement
input.UserInputType ~=
.UserInputType.Touch
delta =
input.Position -
DragStart
Main.Position =
.(
StartPosition.X.Scale,
StartPosition.X.Offset +
delta.X,
StartPosition.Y.Scale,
StartPosition.Y.Offset +
delta.Y
)
)
UserInputService.InputEnded:(
(input)
input.UserInputType ==
.UserInputType.MouseButton1
input.UserInputType ==
.UserInputType.Touch
Dragging =
)
Navigation =
.(
)
Navigation.Position =
.(
,
)
Navigation.Size =
.(
,
,
,
-
)
Navigation.BackgroundTransparency =
Navigation.Parent =
Main
NavigationLayout =
.(
)
NavigationLayout.Padding =
.(
,
)
NavigationLayout.SortOrder =
.SortOrder.LayoutOrder
NavigationLayout.Parent =
Navigation
Content =
.(
)
Content.Position =
.(
,
)
Content.Size =
.(
,
-,
,
-
)
Content.BackgroundTransparency =
Content.Parent =
Main
Tabs = {}
CurrentTab
(
name
)
tabName, tab (
Tabs
)
selected =
tabName == name
tab.Page.Visible =
selected
selected
TweenService:(
tab.Button,
TweenInfo.(
,
.EasingStyle.Quint,
.EasingDirection.Out
),
{
BackgroundColor3 =
SelectedColor
}
):()
tab.Label.TextColor3 =
.(
,
,
)
tab.Icon.ImageColor3 =
.(
,
,
)
TweenService:(
tab.Button,
TweenInfo.(
,
.EasingStyle.Quint,
.EasingDirection.Out
),
{
BackgroundColor3 =
ButtonColor
}
):()
tab.Label.TextColor3 =
TextColor
tab.Icon.ImageColor3 =
TextColor
CurrentTab =
name
(
name,
iconId
)
page =
.(
)
page.Name =
name
page.Size =
.(
,
)
page.BackgroundTransparency =
page.BorderSizePixel =
page.ScrollBarThickness =
page.ScrollBarImageColor3 =
Accent
page.AutomaticCanvasSize =
.AutomaticSize.Y
page.CanvasSize =
.()
page.Visible =
page.Parent =
Content
layout =
.(
)
layout.Padding =
.(
,
)
layout.SortOrder =
.SortOrder.LayoutOrder
layout.Parent =
page
button =
.(
)
button.Size =
.(
,
,
,
)
button.BackgroundColor3 =
ButtonColor
button.BorderSizePixel =
button.AutoButtonColor =
button.Text =
button.Parent =
Navigation
corner =
.(
)
corner.CornerRadius =
.(
,
)
corner.Parent =
button
icon =
.(
)
icon.Position =
.(
,
)
icon.Size =
.(
,
)
icon.BackgroundTransparency =
icon.Image =
..
(
iconId
)
icon.ImageColor3 =
TextColor
icon.Parent =
button
label =
.(
)
label.Position =
.(
,
)
label.Size =
.(
,
-,
,
)
label.BackgroundTransparency =
label.Font =
.Font.GothamSemibold
label.TextSize =
label.TextColor3 =
TextColor
label.TextXAlignment =
.TextXAlignment.Left
label.Text =
name
label.Parent =
button
tab = {
Page =
page,
Button =
button,
Icon =
icon,
Label =
label,
}
Tabs[
name
] =
tab
button.MouseEnter:(
()
()
)
button.MouseButton1Click:(
()
()
(
name
)
)
page
HAMMER_ICON =
EYE_ICON =
GEAR_ICON =
AutoPage =
(
,
HAMMER_ICON
)
ESPPage =
(
,
EYE_ICON
)
TagPage =
(
,
HAMMER_ICON
)
MovementPage =
(
,
GEAR_ICON
)
SettingsPage =
(
,
GEAR_ICON
)
(
parent,
text
)
label =
.(
)
label.Size =
.(
,
-,
,
)
label.BackgroundTransparency =
label.Font =
.Font.GothamBold
label.TextSize =
label.TextColor3 =
Accent
label.TextXAlignment =
.TextXAlignment.Left
label.Text =
.(
text
)
label.Parent =
parent
label
(
parent,
text,
callback,
height
)
button =
.(
)
button.Size =
.(
,
-,
,
height
)
button.BackgroundColor3 =
ButtonColor
button.BorderSizePixel =
button.AutoButtonColor =
button.Font =
.Font.GothamMedium
button.TextSize =
button.TextColor3 =
TextColor
button.Text =
text
button.Parent =
parent
corner =
.(
)
corner.CornerRadius =
.(
,
)
corner.Parent =
button
button.MouseEnter:(
()
()
TweenService:(
button,
TweenInfo.(
),
{
BackgroundColor3 =
.(
,
,
)
}
):()
)
button.MouseLeave:(
()
TweenService:(
button,
TweenInfo.(
),
{
BackgroundColor3 =
ButtonColor
}
):()
)
button.MouseButton1Click:(
()
()
callback
()
)
button
(
parent,
text,
description,
initial,
callback
)
enabled =
initial
holder =
.(
)
holder.Size =
.(
,
-,
,
)
holder.BackgroundColor3 =
ButtonColor
holder.BorderSizePixel =
holder.AutoButtonColor =
holder.Text =
holder.Parent =
parent
corner =
.(
)
corner.CornerRadius =
.(
,
)
corner.Parent =
holder
title =
.(
)
title.Position =
.(
,
)
title.Size =
.(
,
-,
,
)
title.BackgroundTransparency =
title.Font =
.Font.GothamSemibold
title.TextSize =
title.TextColor3 =
TextColor
title.TextXAlignment =
.TextXAlignment.Left
title.Text =
text
title.Parent =
holder
desc =
.(
)
desc.Position =
.(
,
)
desc.Size =
.(
,
-,
,
)
desc.BackgroundTransparency =
desc.Font =
.Font.Gotham
desc.TextSize =
desc.TextColor3 =
MutedColor
desc.TextXAlignment =
.TextXAlignment.Left
desc.Text =
description
desc.Parent =
holder
switch =
.(
)
switch.AnchorPoint =
.(
,
)
switch.Position =
.(
,
-,
,
)
switch.Size =
.(
,
)
switch.BorderSizePixel =
switch.Parent =
holder
switchCorner =
.(
)
switchCorner.CornerRadius =
.(
,
)
switchCorner.Parent =
switch
dot =
.(
)
dot.AnchorPoint =
.(
,
)
dot.Size =
.(
,
)
dot.BackgroundColor3 =
.(
,
,
)
dot.BorderSizePixel =
dot.Parent =
switch
dotCorner =
.(
)
dotCorner.CornerRadius =
.(
,
)
dotCorner.Parent =
dot
(
animated
)
targetColor
targetPosition
enabled
targetColor =
Accent
targetPosition =
.(
,
-,
,
)
targetColor =
.(
,
,
)
targetPosition =
.(
,
,
,
)
animated
TweenService:(
switch,
TweenInfo.(
),
{
BackgroundColor3 =
targetColor
}
):()
TweenService:(
dot,
TweenInfo.(
,
.EasingStyle.Quint,
.EasingDirection.Out
),
{
Position =
targetPosition
}
):()
switch.BackgroundColor3 =
targetColor
dot.Position =
targetPosition
()
holder.MouseEnter:(
()
()
)
holder.MouseButton1Click:(
()
()
enabled =
enabled
()
callback
(
enabled
)
)
holder
(
parent,
text,
value,
minimum,
maximum,
callback
)
holder =
.(
)
holder.Size =
.(
,
-,
,
)
holder.BackgroundColor3 =
ButtonColor
holder.BorderSizePixel =
holder.Parent =
parent
corner =
.(
)
corner.CornerRadius =
.(
,
)
corner.Parent =
holder
label =
.(
)
label.Position =
.(
,
)
label.Size =
.(
,
-,
,
)
label.BackgroundTransparency =
label.Font =
.Font.GothamSemibold
label.TextSize =
label.TextColor3 =
TextColor
label.TextXAlignment =
.TextXAlignment.Left
label.Text =
text
label.Parent =
holder
box =
.(
)
box.AnchorPoint =
.(
,
)
box.Position =
.(
,
-,
,
)
box.Size =
.(
,
)
box.BackgroundColor3 =
.(
,
,
)
box.BorderSizePixel =
box.Font =
.Font.GothamMedium
box.TextSize =
box.TextColor3 =
.(
,
,
)
box.Text =
(
value
)
box.ClearTextOnFocus =
box.Parent =
holder
boxCorner =
.(
)
boxCorner.CornerRadius =
.(
,
)
boxCorner.Parent =
box
box.FocusLost:(
()
number =
(
box.Text
)
number
box.Text =
(
value
)
number =
.(
number,
minimum,
maximum
)
value =
number
box.Text =
(
number
)
callback
(
number
)
)
holder
(
parent,
text,
color,
callback
)
holder =
.(
)
holder.Size =
.(
,
-,
,
)
holder.BackgroundColor3 =
ButtonColor
holder.BorderSizePixel =
holder.Parent =
parent
corner =
.(
)
corner.CornerRadius =
.(
,
)
corner.Parent =
holder
title =
.(
)
title.Position =
.(
,
)
title.Size =
.(
,
)
title.BackgroundTransparency =
title.Font =
.Font.GothamSemibold
title.TextSize =
title.TextColor3 =
TextColor
title.TextXAlignment =
.TextXAlignment.Left
title.Text =
text
title.Parent =
holder
values = {
.(
color.R *
),
.(
color.G *
),
.(
color.B *
),
}
boxes = {}
i = ,
box =
.(
)
box.Position =
.(
+
((i - ) * ),
)
box.Size =
.(
,
)
box.BackgroundColor3 =
.(
,
,
)
box.BorderSizePixel =
box.Font =
.Font.GothamMedium
box.TextSize =
box.TextColor3 =
.(
,
,
)
box.Text =
(
values[i]
)
box.ClearTextOnFocus =
box.Parent =
holder
c =
.(
)
c.CornerRadius =
.(
,
)
c.Parent =
box
boxes[i] =
box
apply =
.(
)
apply.AnchorPoint =
.(
,
)
apply.Position =
.(
,
-,
,
)
apply.Size =
.(
,
)
apply.BackgroundColor3 =
Accent
apply.BorderSizePixel =
apply.Font =
.Font.GothamBold
apply.TextSize =
apply.TextColor3 =
.(
,
,
)
apply.Text =
apply.Parent =
holder
applyCorner =
.(
)
applyCorner.CornerRadius =
.(
,
)
applyCorner.Parent =
apply
apply.MouseEnter:(
()
()
)
apply.MouseButton1Click:(
()
()
r =
.(
(
boxes[].Text
)
,
,
)
g =
.(
(
boxes[].Text
)
,
,
)
b =
.(
(
boxes[].Text
)
,
,
)
newColor =
.(
r,
g,
b
)
callback
(
newColor
)
)
holder
(
AutoPage,
)
(
AutoPage,
,
,
Config.AutoVault,
(value)
Config.AutoVault =
value
value
VaultLockedObject =
)
(
AutoPage,
,
Config.VaultDistance,
,
,
(value)
Config.VaultDistance =
value
)
(
AutoPage,
,
Config.AutoVaultCooldown,
,
,
(value)
Config.AutoVaultCooldown =
.(
,
value
)
)
(
AutoPage,
,
,
Config.AutoBreak,
(value)
Config.AutoBreak =
value
)
(
AutoPage,
,
Config.BreakDistance,
,
,
(value)
Config.BreakDistance =
value
)
(
AutoPage,
,
Config.AutoBreakCooldown,
,
,
(value)
Config.AutoBreakCooldown =
value
)
(
AutoPage,
)
(
AutoPage,
,
,
Config.AutoPalletStun,
(value)
Config.AutoPalletStun =
value
)
(
AutoPage,
,
Config.PalletStunDistance,
,
,
(value)
Config.PalletStunDistance =
value
)
(
AutoPage,
,
Config.PalletDropCooldown,
,
,
(value)
Config.PalletDropCooldown =
value
)
(
AutoPage,
,
()
VaultLockedObject =
LastVaultTime =
(
)
)
(
ESPPage,
)
(
ESPPage,
,
,
Config.PlayerESP,
(value)
Config.PlayerESP =
value
)
(
ESPPage,
,
Config.PlayerESPDistance,
,
,
(value)
Config.PlayerESPDistance =
value
)
(
ESPPage,
,
,
Config.ShowPlayerNames,
(value)
Config.ShowPlayerNames =
value
)
(
ESPPage,
,
,
Config.ShowPlayerRoles,
(value)
Config.ShowPlayerRoles =
value
)
(
ESPPage,
,
,
Config.ShowPlayerHealth,
(value)
Config.ShowPlayerHealth =
value
)
(
ESPPage,
,
Config.ChaserColor,
(color)
Config.ChaserColor =
color
)
(
ESPPage,
,
Config.RunnerColor,
(color)
Config.RunnerColor =
color
)
(
ESPPage,
,
Config.EliminatedColor,
(color)
Config.EliminatedColor =
color
)
(
ESPPage,
)
(
ESPPage,
,
,
Config.ObjectESP,
(value)
Config.ObjectESP =
value
)
(
ESPPage,
,
,
Config.ShowObjectNames,
(value)
Config.ShowObjectNames =
value
)
(
ESPPage,
,
.(
Config.ObjectFillTransparency *
),
,
,
(value)
Config.ObjectFillTransparency =
value /
)
(
ESPPage,
,
.(
Config.ObjectOutlineTransparency *
),
,
,
(value)
Config.ObjectOutlineTransparency =
value /
)
(
ESPPage,
)
(
ESPPage,
,
,
ObjectSettings.Pallet.Enabled,
(value)
ObjectSettings.Pallet.Enabled =
value
)
(
ESPPage,
,
ObjectSettings.Pallet.Distance,
,
,
(value)
ObjectSettings.Pallet.Distance =
value
)
(
ESPPage,
,
ObjectSettings.Pallet.Color,
(color)
ObjectSettings.Pallet.Color =
color
)
(
ESPPage,
,
,
ObjectSettings.SmallPallet.Enabled,
(value)
ObjectSettings.SmallPallet.Enabled =
value
)
(
ESPPage,
,
ObjectSettings.SmallPallet.Distance,
,
,
(value)
ObjectSettings.SmallPallet.Distance =
value
)
(
ESPPage,
,
ObjectSettings.SmallPallet.Color,
(color)
ObjectSettings.SmallPallet.Color =
color
)
(
ESPPage,
)
(
ESPPage,
,
,
ObjectSettings.Window.Enabled,
(value)
ObjectSettings.Window.Enabled =
value
)
(
ESPPage,
,
ObjectSettings.Window.Distance,
,
,
(value)
ObjectSettings.Window.Distance =
value
)
(
ESPPage,
,
ObjectSettings.Window.Color,
(color)
ObjectSettings.Window.Color =
color
)
(
ESPPage,
,
,
ObjectSettings.SmallWindow.Enabled,
function(value)
ObjectSettings.SmallWindow.Enabled =
value
end
)
AddNumberBox(
ESPPage,
"SmallWindow Distance",
ObjectSettings.SmallWindow.Distance,
1,
5000,
function(value)
ObjectSettings.SmallWindow.Distance =
value
end
)
AddRGB(
ESPPage,
"SmallWindow RGB",
ObjectSettings.SmallWindow.Color,
function(color)
ObjectSettings.SmallWindow.Color =
color
end
)
--============================================================
-- VAULT ESP
--============================================================
AddSection(
ESPPage,
"Vaults"
)
AddToggle(
ESPPage,
"Vault1",
"Highlight Vault1.",
ObjectSettings.Vault1.Enabled,
function(value)
ObjectSettings.Vault1.Enabled =
value
end
)
AddNumberBox(
ESPPage,
"Vault1 Distance",
ObjectSettings.Vault1.Distance,
1,
5000,
function(value)
ObjectSettings.Vault1.Distance =
value
end
)
AddRGB(
ESPPage,
"Vault1 RGB",
ObjectSettings.Vault1.Color,
function(color)
ObjectSettings.Vault1.Color =
color
end
)
AddToggle(
ESPPage,
"Vault2",
"Highlight Vault2.",
ObjectSettings.Vault2.Enabled,
function(value)
ObjectSettings.Vault2.Enabled =
value
end
)
AddNumberBox(
ESPPage,
"Vault2 Distance",
ObjectSettings.Vault2.Distance,
1,
5000,
function(value)
ObjectSettings.Vault2.Distance =
value
end
)
AddRGB(
ESPPage,
"Vault2 RGB",
ObjectSettings.Vault2.Color,
function(color)
ObjectSettings.Vault2.Color =
color
end
)
--============================================================
-- CUSTOM ESP
--============================================================
AddSection(
ESPPage,
"Custom ESP"
)
local CustomESPColor =
Color3.fromRGB(
255,
255,
255
)
local CustomESPDistance =
150
local CustomNameHolder =
Instance.new(
"Frame"
)
CustomNameHolder.Size =
UDim2.new(
1,
-5,
0,
47
)
CustomNameHolder.BackgroundColor3 =
ButtonColor
CustomNameHolder.BorderSizePixel =
0
CustomNameHolder.Parent =
ESPPage
local customNameCorner =
Instance.new(
"UICorner"
)
customNameCorner.CornerRadius =
UDim.new(
0,
9
)
customNameCorner.Parent =
CustomNameHolder
local CustomNameBox =
Instance.new(
"TextBox"
)
CustomNameBox.Position =
UDim2.fromOffset(
10,
8
)
CustomNameBox.Size =
UDim2.new(
1,
-125,
0,
30
)
CustomNameBox.BackgroundColor3 =
Color3.fromRGB(
19,
19,
25
)
CustomNameBox.BorderSizePixel =
0
CustomNameBox.Font =
Enum.Font.GothamMedium
CustomNameBox.TextSize =
11
CustomNameBox.TextColor3 =
Color3.new(
1,
1,
1
)
CustomNameBox.PlaceholderText =
"Object name..."
CustomNameBox.ClearTextOnFocus =
false
CustomNameBox.Parent =
CustomNameHolder
local customBoxCorner =
Instance.new(
"UICorner"
)
customBoxCorner.CornerRadius =
UDim.new(
0,
6
)
customBoxCorner.Parent =
CustomNameBox
local CustomAddButton =
Instance.new(
"TextButton"
)
CustomAddButton.AnchorPoint =
Vector2.new(
1,
0.5
)
CustomAddButton.Position =
UDim2.new(
1,
-8,
0.5,
0
)
CustomAddButton.Size =
UDim2.fromOffset(
100,
30
)
CustomAddButton.BackgroundColor3 =
Accent
CustomAddButton.BorderSizePixel =
0
CustomAddButton.Font =
Enum.Font.GothamBold
CustomAddButton.TextSize =
10
CustomAddButton.TextColor3 =
Color3.fromRGB(
20,
20,
25
)
CustomAddButton.Text =
"ADD ESP"
CustomAddButton.Parent =
CustomNameHolder
local customAddCorner =
Instance.new(
"UICorner"
)
customAddCorner.CornerRadius =
UDim.new(
0,
6
)
customAddCorner.Parent =
CustomAddButton
CustomAddButton.MouseEnter:Connect(
function()
PlayHover()
end
)
AddNumberBox(
ESPPage,
"Custom Distance",
CustomESPDistance,
1,
5000,
function(value)
CustomESPDistance =
value
end
)
AddRGB(
ESPPage,
"Custom RGB",
CustomESPColor,
function(color)
CustomESPColor =
color
end
)
CustomAddButton.MouseButton1Click:Connect(
function()
PlayClick()
local name =
CustomNameBox.Text
if name == "" then
Notify(
"Enter an object name."
)
return
end
AddCustomESP(
name,
CustomESPColor,
CustomESPDistance
)
Notify(
"Added ESP: " ..
name
)
CustomNameBox.Text =
""
end
)
--============================================================
-- TAG PAGE
--============================================================
AddSection(
TagPage,
"Tagging"
)
AddToggle(
TagPage,
"Auto Tag",
"Automatically follow the selected Runner.",
Config.AutoTag,
function(value)
if value
and not IsChaser() then
Notify(
"You aren't tagged!"
)
return
end
Config.AutoTag =
value
if value then
if not TagTarget
or GetRole(
TagTarget
) ~= "Runner" then
TagTarget =
FindNearestRunner(
Config.TagDistance
)
end
if TagTarget then
SaveTagPosition()
TagActive =
true
Notify(
"Auto Tag: " ..
TagTarget.DisplayName
)
else
Config.AutoTag =
false
Notify(
"No Runner found."
)
end
else
StopTagging(
true
)
end
end
)
AddNumberBox(
TagPage,
"Tag Distance",
Config.TagDistance,
5,
5000,
function(value)
Config.TagDistance =
value
end
)
AddNumberBox(
TagPage,
"Tag Interval",
Config.TagInterval,
0.05,
5,
function(value)
Config.TagInterval =
value
end
)
AddToggle(
TagPage,
"Return After Tag",
"Return to saved position after stopping.",
Config.ReturnAfterTag,
function(value)
Config.ReturnAfterTag =
value
end
)
AddButton(
TagPage,
"Tag Nearest Runner",
function()
if not IsChaser() then
Notify(
"You aren't tagged!"
)
return
end
local target =
FindNearestRunner(
Config.TagDistance
)
if not target then
Notify(
"No Runner within distance."
)
return
end
TagTarget =
target
SaveTagPosition()
TagActive =
true
Notify(
"Target: " ..
target.DisplayName
)
end
)
AddButton(
TagPage,
"Cycle Runner Target",
function()
if not IsChaser() then
Notify(
"You aren't tagged!"
)
return
end
local runners =
GetRunnerList()
if #runners == 0 then
Notify(
"No Runners."
)
return
end
local currentIndex =
0
for i, player in ipairs(
runners
) do
if player ==
TagTarget then
currentIndex =
i
break
end
end
local nextIndex =
currentIndex +
1
if nextIndex >
#runners then
nextIndex =
1
end
TagTarget =
runners[
nextIndex
]
Notify(
"Selected: " ..
TagTarget.DisplayName
)
end
)
AddButton(
TagPage,
"Stop Tagging",
function()
Config.AutoTag =
false
StopTagging(
true
)
Notify(
"Tagging stopped."
)
end
)
AddButton(
TagPage,
"Save Current Position",
function()
if RootPart then
OriginalTagPosition =
RootPart.CFrame
Notify(
"Position saved."
)
end
end
)
AddButton(
TagPage,
"Return To Saved Position",
function()
if OriginalTagPosition
and RootPart then
RootPart.CFrame =
OriginalTagPosition
OriginalTagPosition =
nil
Notify(
"Returned to saved position."
)
else
Notify(
"No position saved."
)
end
end
)
--============================================================
-- MOVEMENT PAGE
--============================================================
AddSection(
MovementPage,
"Movement"
)
AddToggle(
MovementPage,
"WalkSpeed Override",
"Continuously maintain the selected speed.",
Config.WalkSpeedEnabled,
function(value)
Config.WalkSpeedEnabled =
value
if not value
and Humanoid then
Humanoid.WalkSpeed =
16
end
end
)
AddNumberBox(
MovementPage,
"WalkSpeed",
Config.WalkSpeed,
1,
250,
function(value)
Config.WalkSpeed =
value
if Config.WalkSpeedEnabled
and Humanoid then
Humanoid.WalkSpeed =
value
end
end
)
AddButton(
MovementPage,
"Reset WalkSpeed",
function()
Config.WalkSpeed =
16
if Humanoid then
Humanoid.WalkSpeed =
16
end
Notify(
"WalkSpeed reset."
)
end
)
--============================================================
-- SETTINGS PAGE
--============================================================
AddSection(
SettingsPage,
"Interface"
)
AddToggle(
SettingsPage,
"UI Animations",
"Enable GUI tweens.",
Config.UIAnimations,
function(value)
Config.UIAnimations =
value
end
)
AddNumberBox(
SettingsPage,
"UI Scale %",
math.floor(
Config.UIScale *
100
),
70,
140,
function(value)
Config.UIScale =
value /
100
UIScale.Scale =
Config.UIScale
end
)
--============================================================
-- SETTINGS: SOUNDS
--============================================================
AddSection(
SettingsPage,
"Sounds"
)
AddToggle(
SettingsPage,
"Sounds",
"Enable Sha4kHub sounds.",
Config.SoundsEnabled,
function(value)
Config.SoundsEnabled =
value
end
)
AddToggle(
SettingsPage,
"Hover Sound",
"Hover sound 5852470908.",
Config.HoverSounds,
function(value)
Config.HoverSounds =
value
end
)
AddToggle(
SettingsPage,
"Click Sound",
"Click sound 140207837688369.",
Config.ClickSounds,
function(value)
Config.ClickSounds =
value
end
)
AddNumberBox(
SettingsPage,
"Sound Volume %",
math.floor(
Config.SoundVolume *
100
),
0,
100,
function(value)
Config.SoundVolume =
value /
100
end
)
--============================================================
-- SETTINGS: KEYBIND
--============================================================
AddSection(
SettingsPage,
"Keybind"
)
local KeybindButton
KeybindButton =
AddButton(
SettingsPage,
"Toggle Key: " ..
Config.ToggleKey.Name,
function()
Notify(
"Press a keyboard key..."
)
local connection
connection =
UserInputService.InputBegan:Connect(
function(
input,
processed
)
if processed then
return
end
if input.UserInputType ==
Enum.UserInputType.Keyboard then
Config.ToggleKey =
input.KeyCode
KeybindButton.Text =
"Toggle Key: " ..
Config.ToggleKey.Name
connection:Disconnect()
Notify(
"Key changed to " ..
Config.ToggleKey.Name
)
end
end
)
task.delay(
10,
function()
if connection then
connection:Disconnect()
end
end
)
end
)
--============================================================
-- SETTINGS: QUALITY OF LIFE
--============================================================
AddSection(
SettingsPage,
"Quality of Life"
)
AddToggle(
SettingsPage,
"Role Notifications",
"Notify when your role changes.",
Config.NotifyRoleChanges,
function(value)
Config.NotifyRoleChanges =
value
end
)
AddToggle(
SettingsPage,
"Automation Notifications",
"Notify about automation events.",
Config.NotifyAutomation,
function(value)
Config.NotifyAutomation =
value
end
)
AddButton(
SettingsPage,
"Reset Vault Lock",
function()
VaultLockedObject =
nil
LastVaultTime =
0
Notify(
"Vault system re-armed."
)
end
)
AddButton(
SettingsPage,
"Destroy Sha4kHub",
function()
for object in pairs(
ObjectESPObjects
) do
RemoveObjectESP(
object
)
end
for player in pairs(
PlayerESPObjects
) do
RemovePlayerESP(
player
)
end
ScreenGui:Destroy()
end
)
--============================================================
-- FLOATING BUTTON
--============================================================
local Floating =
Instance.new(
"TextButton"
)
Floating.AnchorPoint =
Vector2.new(
0,
0.5
)
Floating.Position =
UDim2.new(
0,
15,
0.5,
0
)
Floating.Size =
UDim2.fromOffset(
50,
50
)
Floating.BackgroundColor3 =
Color3.fromRGB(
24,
24,
31
)
Floating.BorderSizePixel =
0
Floating.AutoButtonColor =
false
Floating.Font =
Enum.Font.GothamBold
Floating.TextSize =
17
Floating.TextColor3 =
Accent
Floating.Text =
"S4"
Floating.Parent =
ScreenGui
local FloatingCorner =
Instance.new(
"UICorner"
)
FloatingCorner.CornerRadius =
UDim.new(
0,
12
)
FloatingCorner.Parent =
Floating
local FloatingStroke =
Instance.new(
"UIStroke"
)
FloatingStroke.Color =
Accent
FloatingStroke.Transparency =
0.35
FloatingStroke.Parent =
Floating
--============================================================
-- SHOW / HIDE GUI
--============================================================
local GUIVisible =
true
local OriginalMainSize =
UDim2.fromOffset(
600,
500
)
local function ToggleGUI()
GUIVisible =
not GUIVisible
if GUIVisible then
Main.Visible =
true
Main.Size =
UDim2.fromOffset(
550,
0
)
if Config.UIAnimations then
TweenService:Create(
Main,
TweenInfo.new(
0.3,
Enum.EasingStyle.Back,
Enum.EasingDirection.Out
),
{
Size =
OriginalMainSize
}
):Play()
else
Main.Size =
OriginalMainSize
end
else
if Config.UIAnimations then
local tween =
TweenService:Create(
Main,
TweenInfo.new(
0.2,
Enum.EasingStyle.Quint,
Enum.EasingDirection.In
),
{
Size =
UDim2.fromOffset(
550,
0
)
}
)
tween:Play()
tween.Completed:Once(
function()
if not GUIVisible then
Main.Visible =
false
end
end
)
else
Main.Visible =
false
end
end
end
Floating.MouseEnter:Connect(
function()
PlayHover()
TweenService:Create(
Floating,
TweenInfo.new(
0.15,
Enum.EasingStyle.Quint,
Enum.EasingDirection.Out
),
{
Size =
UDim2.fromOffset(
55,
55
)
}
):Play()
end
)
Floating.MouseLeave:Connect(
function()
TweenService:Create(
Floating,
TweenInfo.new(
0.15
),
{
Size =
UDim2.fromOffset(
50,
50
)
}
):Play()
end
)
Floating.MouseButton1Click:Connect(
function()
PlayClick()
ToggleGUI()
end
)
--============================================================
-- TOGGLE KEY
--============================================================
UserInputService.InputBegan:Connect(
function(
input,
processed
)
if processed then
return
end
if input.KeyCode ==
Config.ToggleKey then
ToggleGUI()
end
end
)
--============================================================
-- AUTOMATION LOOP
--============================================================
task.spawn(
function()
while ScreenGui.Parent do
if Character
and RootPart
and Humanoid then
--================================================
-- WALKSPEED
--================================================
if Config.WalkSpeedEnabled then
if Humanoid.WalkSpeed ~=
Config.WalkSpeed then
Humanoid.WalkSpeed =
Config.WalkSpeed
end
end
--================================================
-- AUTO PALLET STUN
--================================================
TryAutoPalletStun()
--================================================
-- AUTO VAULT
--================================================
TryAutoVault()
--================================================
-- AUTO BREAK
--================================================
TryAutoBreak()
end
task.wait(
0.05
)
end
end
)
--============================================================
-- TAG LOOP
--============================================================
task.spawn(
function()
while ScreenGui.Parent do
if Config.AutoTag then
-- Must remain Chaser.
if not IsChaser() then
Config.AutoTag =
false
StopTagging(
true
)
Notify(
"You aren't tagged!"
)
else
TagActive =
true
if not TagTarget
or not TagTarget.Parent
or GetRole(
TagTarget
) ~= "Runner" then
TagTarget =
FindNearestRunner(
Config.TagDistance
)
if not TagTarget then
Config.AutoTag =
false
StopTagging(
true
)
Notify(
"No Runner found."
)
end
end
if TagTarget then
if not OriginalTagPosition then
SaveTagPosition()
end
TeleportToTarget(
TagTarget
)
end
end
end
-- Manual / selected tagging.
if TagActive
and TagTarget
and not Config.AutoTag then
if not IsChaser() then
StopTagging(
true
)
elseif GetRole(
TagTarget
) ~= "Runner" then
StopTagging(
true
)
else
TeleportToTarget(
TagTarget
)
end
end
task.wait(
math.max(
0.05,
Config.TagInterval
)
)
end
end
)
--============================================================
-- ESP LOOP
--============================================================
task.spawn(
function()
while ScreenGui.Parent do
--================================================
-- PLAYER ESP
--================================================
for _, player in ipairs(
Players:GetPlayers()
) do
if player ~= LocalPlayer then
UpdatePlayerESP(
player
)
end
end
--================================================
-- OBJECT ESP
--================================================
for _, object in ipairs(
workspace:GetDescendants()
) do
if ObjectSettings[
object.Name
]
or
CustomObjects[
object.Name
] then
UpdateObjectESP(
object
)
end
end
task.wait(
0.2
)
end
end
)
--============================================================
-- WORKSPACE ESP EVENTS
--============================================================
workspace.DescendantAdded:Connect(
function(object)
if ObjectSettings[
object.Name
]
or
CustomObjects[
object.Name
] then
task.defer(
function()
local settings =
ObjectSettings[
object.Name
]
or
CustomObjects[
object.Name
]
if settings then
CreateObjectESP(
object,
settings
)
end
end
)
end
end
)
workspace.DescendantRemoving:Connect(
function(object)
RemoveObjectESP(
object
)
if VaultLockedObject ==
object then
VaultLockedObject =
nil
end
LastPalletDropTimes[
object
] = nil
end
)
--============================================================
-- PLAYER EVENTS
--============================================================
Players.PlayerAdded:Connect(
function(player)
player.CharacterAdded:Connect(
function()
task.wait(
0.4
)
if Config.PlayerESP then
CreatePlayerESP(
player
)
end
end
)
end
)
Players.PlayerRemoving:Connect(
function(player)
RemovePlayerESP(
player
)
if TagTarget ==
player then
TagTarget =
nil
if Config.AutoTag then
TagTarget =
FindNearestRunner(
Config.TagDistance
)
end
end
end
)
--============================================================
-- INITIAL PLAYER ESP
--============================================================
for _, player in ipairs(
Players:GetPlayers()
) do
if player ~= LocalPlayer then
if player.Character then
task.defer(
function()
CreatePlayerESP(
player
)
end
)
end
player.CharacterAdded:Connect(
function()
task.wait(
0.4
)
if Config.PlayerESP then
CreatePlayerESP(
player
)
end
end
)
end
end
--============================================================
-- ROLE WATCHER
--============================================================
local LastRole =
GetRole()
task.spawn(
function()
while ScreenGui.Parent do
local role =
GetRole()
RoleLabel.Text =
"Role: " ..
role
if role ~=
LastRole then
if Config.NotifyRoleChanges then
Notify(
"Role changed: " ..
role
)
end
--================================================
-- BECAME RUNNER
--================================================
if role ==
"Runner" then
Config.AutoTag =
false
TagActive =
false
ReturnToTagPosition()
TagTarget =
nil
end
--================================================
-- NO LONGER CHASER
--================================================
if role ~=
"Chaser" then
Config.AutoTag =
false
end
LastRole =
role
end
task.wait(
0.15
)
end
end
)
--============================================================
-- DEFAULT TAB
--============================================================
SwitchTab(
"Auto"
)
--============================================================
-- STARTUP
--============================================================
Notify(
"Sha4kHub loaded."
)
print(
"[Sha4kHub] Loaded."
)
print(
"[Sha4kHub] Role:",
GetRole()
)
print(
"[Sha4kHub] Auto Vault cooldown:",
Config.AutoVaultCooldown,
"second(s)"
)
print(
"[Sha4kHub] Auto Pallet Stun:",
Config.PalletStunDistance,
"stud trigger"
)With this you can: Highlight Pallets, Windows, Auto Break pallets, auto vault, Auto tag, Change Walkspeed and MORE! And is open source so you can mess with the code! just don't steal, or do idrc,