Run it
Copy the script and paste it into your executor.
()
Players = :()
RunService = :()
UserInputService = :()
Lighting = :()
ReplicatedStorage = :()
Workspace = :()
Teams = :()
GuiService = :()
VirtualInputManager = :()
LocalPlayer = Players.LocalPlayer
Camera = Workspace.CurrentCamera
Character, Humanoid, Root
isMobile = UserInputService.TouchEnabled UserInputService.KeyboardEnabled
UI = {}
ok, result = (, )
ModernV2 = ok result
ModernV2
loaderOk, loaderResult = (()
source = :()
fn, compileErr = (source)
fn (compileErr)
()
)
loaderOk
ModernV2 = loaderResult
(, loaderResult)
fallbackOk, fallbackResult = (()
source = :()
fn, compileErr = (source)
fn (compileErr)
()
)
fallbackOk
ModernV2 = fallbackResult
(, fallbackResult)
isMobile UI.Mobile =
(, isMobile )
HttpService = :()
UIConfigPath =
KysUI_Solid =
KysUI_Color =
(()
isfile readfile (UIConfigPath)
data = HttpService:((UIConfigPath))
KysUI_Solid = data.Solid
KysUI_Color = data.Color
)
KysUI_Color ==
KysUI_Color =
ModernV2
(()
ModernV2:({
Name = ,
Accent = .(, , ),
Outline = .(, , ),
Text = .(, , ),
PlaceholderText = .(, , )
})
)
MenuIcon
ModernV2 ModernV2.CreateMenuIcon
MenuIcon = ModernV2:({
Image = ,
Size = ,
IconColor = .(, , ),
BGColor = .(, , ),
StrokeColor = .(, , ),
StrokeThick = ,
Draggable = ,
})
Window
ModernV2
Window = ModernV2:({
Title = ,
Content = ,
Uitransparent = ,
Size = .(, ),
Color = .(, , ),
Image = ,
ShowUser = ,
Search = ,
ConfigEnabled = ,
NotifyOnCallbackError = ,
Loadingscreen = ,
Enable3DRenderer = ,
Keybind = ,
Config = {
ConfigFolder = ,
AutoSaveFile = ,
AutoSave = ,
AutoLoad = ,
Overwrite = ,
Format = ,
ShowAutoSaveToggle = ,
TextGradient = ,
}
})
MenuIcon Window.AttachMenuIcon
Window:(MenuIcon)
Window:({
Username = LocalPlayer.DisplayName,
Profile = ModernV2.UserProfile,
Expires = ,
})
Window:({
Name = ,
Icon = ,
Content = ,
DiscordInvite = ,
SupportedExecutors = { , , , , },
UnsupportedExecutors = { },
Segments = {
Details = { Text = , Icon = },
Script = { Text = , Icon = },
UI = { Text = , Icon = , Show = }
},
Changelog = {
{
Title = ,
Description = ,
},
{
Title = ,
Description = ,
},
{
Title = ,
Description = ,
},
{
Title = ,
Description = ,
},
{
Title = ,
Description = ,
},
{
Title = ,
Description = ,
},
{
Title = ,
Description = ,
},
{
Title = ,
Description = ,
},
{
Title = ,
Description = ,
},
{
Title = ,
Description = ,
},
{
Title = ,
Description = ,
},
{
Title = ,
Description = ,
},
{
Title = ,
Description = ,
},
{
Title = ,
Description = ,
},
},
UIChangelog = {
{
Title = ,
Date = ,
Description = ,
},
}
})
isMobile
_cursorOn =
_cursorManual =
(state)
_cursorOn = state
_cursorManual =
(()
UserInputService.MouseIconEnabled = state
UserInputService.MouseBehavior = state
.MouseBehavior.Default
.MouseBehavior.LockCenter
)
char = LocalPlayer.Character
humanoid = char char:()
humanoid
humanoid.AutoRotate = state
UserInputService.InputBegan:((input, gameProcessed)
input.KeyCode == .KeyCode.LeftAlt input.KeyCode == .KeyCode.RightAlt
( _cursorOn)
)
.(()
_cursorManual
(()
_cursorOn
UserInputService.MouseBehavior = .MouseBehavior.Default
UserInputService.MouseIconEnabled =
UserInputService.MouseBehavior = .MouseBehavior.LockCenter
UserInputService.MouseIconEnabled =
)
.()
)
LocalPlayer.CharacterAdded:(()
.()
_cursorOn ()
)
()
DrawingAvailable = (()
isMobile
ok, result = (()
() == .new ~=
)
ok result
)()
(typ)
DrawingAvailable
ok, res = (() .(typ) )
ok res
(obj)
obj obj.Remove (() obj:() )
MobileESP = {}
(v, min, max)
.(min, .(max, v))
().VD = ().VD {
AutoSkillcheck = ,
AutoSkillcheckMode = ,
HideSkillUI = ,
Fullbright = ,
Speed = ,
SpeedValue = ,
Jump = ,
JumpValue = ,
InfiniteJump = ,
Noclip = ,
Moonwalk = ,
MoonwalkButton = ,
MoonwalkButtonLocked = ,
MoonwalkZigzagSpeed = ,
MoonwalkBoostPower = ,
AimLock = ,
AimLockButton = ,
AimLockButtonLocked = ,
AimLockMaxDistance = ,
InvisibleNotVisual = ,
InvisibleSpeed = ,
AntiAFK = ,
BypassGate = ,
Destroyed = ,
AUTO_LeaveGen = ,
AUTO_LeaveDist = ,
AUTO_Attack = ,
AUTO_AttackRange = ,
HITBOX_Enabled = ,
HITBOX_Size = ,
TOF_SilentAim = ,
TOF_Laser = ,
TOF_WallCheck = ,
TOF_BlockKnocked = ,
TOF_TargetMode = ,
TOF_Key = ,
FLASH_SilentAim = ,
FLASH_Laser = ,
FLASH_TargetPart = ,
FLASH_Range = ,
FLASH_Smooth = ,
SURV_FleeKiller = ,
SURV_FleeDistance = ,
SURV_SwiftVault = ,
SURV_SwiftVaultV2 = ,
SURV_SwiftVaultSpeed = ,
SURV_AutoPallet = ,
SURV_AutoPalletDist = ,
SURV_AutoParry = ,
SURV_ParryDistance = ,
SURV_ShowParryCircle = ,
SURV_FakeParry = ,
SURV_FakeParryAnim = ,
SURV_FakeGen = ,
SURV_AntiKnock = ,
KILLER_DestroyPallets = ,
KILLER_NoPalletStun = ,
KILLER_AutoHook = ,
KILLER_AutoBreakGene = ,
KILLER_BlockVaults = ,
KILLER_BlockPallets = ,
KILLER_BlockPalletDrop = ,
KILLER_BypassCooldown = ,
KILLER_BypassLeap = ,
KILLER_AntiBlind = ,
KILLER_NoSlowdown = ,
KILLER_CustomMasked = ,
SPEED_Enabled = ,
SPEED_Value = ,
SPEED_Method = ,
NO_Fog = ,
NoCutscene = ,
CAM_FOVEnabled = ,
CAM_FOV = ,
CAM_ThirdPerson = ,
CAM_ShiftLock = ,
CAM_InfinityZoom = ,
AntiFallDamage = ,
FLING_Enabled = ,
FLING_Strength = ,
BEAT_Survivor = ,
BEAT_Killer = ,
TP_Offset = ,
VIS_KystKiller = ,
VIS_SpectatorCounter = ,
VIS_KillerPerks = ,
VIS_PredictMap = ,
VIS_HideSurvivorIcon = ,
VIS_ShowPingFPS = ,
VIS_ShowHookCounter = ,
VIS_WeatherTheme = ,
CROSS_Enabled = ,
CROSS_Style = ,
CROSS_Size = ,
CROSS_Thickness = ,
CROSS_Gap = ,
CROSS_PosX = ,
CROSS_PosY = ,
CROSS_Color = .(, , ),
ESP_ClosestHook = ,
AIM_Enabled = ,
AIM_UseRMB = ,
AIM_FOV = ,
AIM_Smooth = ,
AIM_TargetPart = ,
AIM_VisCheck = ,
AIM_ShowFOV = ,
AIM_Predict = ,
SURV_FirstPerson = ,
SPEAR_Aimbot = ,
SPEAR_Gravity = ,
SPEAR_Speed = ,
RADAR_Enabled = ,
RADAR_Size = ,
RADAR_Range = ,
RADAR_Transparency = ,
RADAR_Circle = ,
RADAR_ShowKiller = ,
RADAR_ShowSurvivor = ,
RADAR_ShowGenerator = ,
RADAR_ShowPallet = ,
RADAR_ShowHook = ,
RADAR_ShowGate = ,
RADAR_ShowWindow = ,
RADAR_ShowZombie = ,
SURV_WarnKiller = ,
SURV_AutoDodgeSpear =
}
VD = ().VD
CrosshairGui =
()
CrosshairGui
(() CrosshairGui:() )
CrosshairGui =
()
()
VD.CROSS_Enabled
cam = .CurrentCamera
cam
style = VD.CROSS_Style
size = (VD.CROSS_Size)
gap = (VD.CROSS_Gap)
thick = (VD.CROSS_Thickness)
color = (VD.CROSS_Color) == VD.CROSS_Color .(, , )
offsetX = (VD.CROSS_PosX)
offsetY = (VD.CROSS_PosY)
ok, core = (() :() )
parent = (ok core) core :().LocalPlayer:()
parent
CrosshairGui = .()
CrosshairGui.Name =
CrosshairGui.DisplayOrder =
CrosshairGui.IgnoreGuiInset =
CrosshairGui.Parent = parent
centerFrame = .()
centerFrame.Name =
centerFrame.BackgroundTransparency =
centerFrame.Position = .(, offsetX, , offsetY)
centerFrame.Size = .(,,,)
centerFrame.Parent = CrosshairGui
style ==
dot = .()
dot.AnchorPoint = .(, )
dot.Size = .(, size * , , size * )
dot.BackgroundColor3 = color
dot.BorderSizePixel =
corner = .()
corner.CornerRadius = .(, )
corner.Parent = dot
dot.Parent = centerFrame
style == style ==
length = size *
i = ,
line = .()
line.AnchorPoint = .(, )
line.BackgroundColor3 = color
line.BorderSizePixel =
angle = (i - ) *
style == angle = angle +
line.Rotation = angle
line.Size = .(, length, , thick)
rad = .(angle)
dirX = .(rad)
dirY = .(rad)
dist = gap + (length / )
line.Position = .(, .(dirX * dist + ), , .(dirY * dist + ))
line.Parent = centerFrame
style ==
half = gap + size *
t = .()
t.BackgroundColor3 = color; t.BorderSizePixel = ; t.AnchorPoint = .(, )
t.Size = .(, half * + thick, , thick)
t.Position = .(, , , -half)
t.Parent = centerFrame
b = .()
b.BackgroundColor3 = color; b.BorderSizePixel = ; b.AnchorPoint = .(, )
b.Size = .(, half * + thick, , thick)
b.Position = .(, , , half)
b.Parent = centerFrame
l = .()
l.BackgroundColor3 = color; l.BorderSizePixel = ; l.AnchorPoint = .(, )
l.Size = .(, thick, , half * - thick)
l.Position = .(, -half, , )
l.Parent = centerFrame
r = .()
r.BackgroundColor3 = color; r.BorderSizePixel = ; r.AnchorPoint = .(, )
r.Size = .(, thick, , half * - thick)
r.Position = .(, half, , )
r.Parent = centerFrame
().VD_UpdateCrosshair = VD_UpdateCrosshair
VD_DefaultOffFlags = {
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
}
_, flagName (VD_DefaultOffFlags)
VD[flagName] =
VD.TOF_Laser == VD.TOF_Laser =
VD.TOF_WallCheck == VD.TOF_WallCheck =
VD.TOF_BlockKnocked == VD.TOF_BlockKnocked =
VD.TOF_TargetMode == VD.TOF_TargetMode =
VD.TOF_Key == VD.TOF_Key =
VD.FLASH_TargetPart == VD.FLASH_TargetPart =
VD.FLASH_Laser == VD.FLASH_Laser =
VD.FLASH_Range == VD.FLASH_Range =
VD.FLASH_Smooth == VD.FLASH_Smooth =
()
gethui ()
ok, core = (() :() )
ok core core
LocalPlayer:()
VD_ChamsFolder =
()
pg = ()
pg
VD_ChamsFolder VD_ChamsFolder.Parent VD_ChamsFolder
f = pg:()
f
f = .()
f.Name =
f.Parent = pg
VD_ChamsFolder = f
f
ConfigFolderName =
HttpService = :()
makefolder isfolder (ConfigFolderName)
(ConfigFolderName)
().CurrentConfigName =
()
list = {}
listfiles isfolder (ConfigFolderName)
_, file ((ConfigFolderName))
file:(-) ==
filename = file:()
filename
.(list, filename)
#list == .(list, )
list
(name)
name = (name name ~= ) name ().CurrentConfigName
name name == name =
path = ConfigFolderName .. .. name ..
(()
writefile
(path, HttpService:(VD))
)
VD_To_Flag = {
InfiniteJump = ,
KILLER_AntiBlind = ,
Fullbright = ,
AIM_VisCheck = ,
AutoSkillcheck = ,
AutoSkillcheckMode = ,
HideSkillUI = ,
SpeedValue = ,
AIM_Enabled = ,
HITBOX_Size = ,
SURV_FleeKiller = ,
SURV_FleeDistance = ,
SURV_AutoVault = ,
SURV_FastVault = ,
SURV_VaultSpeed = ,
SURV_AutoPallet = ,
SURV_AutoPalletDist = ,
SURV_AutoParry = ,
SURV_ParryDistance = ,
SURV_ShowParryCircle = ,
SURV_FakeParry = ,
SURV_FakeParryAnim = ,
SURV_FakeGen = ,
SURV_AntiKnock = ,
KILLER_DestroyPallets = ,
KILLER_AutoBreakGene = ,
KILLER_BlockVaults = ,
KILLER_BlockPallets = ,
KILLER_BlockPalletDrop = ,
KILLER_BypassCooldown = ,
KILLER_BypassLeap = ,
KILLER_FakeAttack = ,
KILLER_BypassVeilCooldown = ,
KILLER_CustomMasked = ,
Speed = ,
CAM_FOV = ,
CAM_FOVEnabled = ,
FLING_Strength = ,
Noclip = ,
Moonwalk = ,
MoonwalkButton = ,
MoonwalkButtonLocked = ,
MoonwalkZigzagSpeed = ,
MoonwalkBoostPower = ,
AimLock = ,
AimLockButton = ,
AimLockButtonLocked = ,
AimLockMaxDistance = ,
BEAT_Killer = ,
AIM_Predict = ,
AIM_ShowFOV = ,
KILLER_AutoHook = ,
Jump = ,
KILLER_NoSlowdown = ,
SPEAR_Gravity = ,
AIM_UseRMB = ,
CAM_ShiftLock = ,
Destroyed = ,
AUTO_AttackRange = ,
AIM_FOV = ,
KILLER_NoPalletStun = ,
CAM_ThirdPerson = ,
CAM_InfinityZoom = ,
AntiFallDamage = ,
InvisibleNotVisual = ,
InvisibleSpeed = ,
AntiAFK = ,
BypassGate = ,
HITBOX_Enabled = ,
TOF_SilentAim = ,
TOF_Laser = ,
TOF_WallCheck = ,
TOF_BlockKnocked = ,
TOF_TargetMode = ,
TOF_Key = ,
FLASH_SilentAim = ,
FLASH_Laser = ,
FLASH_TargetPart = ,
FLASH_Range = ,
FLASH_Smooth = ,
NO_Fog = ,
NoCutscene = ,
FLING_Enabled = ,
AIM_Smooth = ,
SPEAR_Speed = ,
SPEAR_Aimbot = ,
SURV_FirstPerson = ,
JumpValue = ,
AUTO_Attack = ,
BEAT_Survivor = ,
SURV_WarnKiller = ,
VIS_KystKiller = ,
VIS_SpectatorCounter = ,
VIS_KillerPerks = ,
VIS_PredictMap = ,
VIS_HideSurvivorIcon = ,
VIS_ShowPingFPS = ,
VIS_ShowHookCounter = ,
}
(name)
name = (name name ~= ) name ().CurrentConfigName
name name == name =
path = ConfigFolderName .. .. name ..
(()
readfile isfile (path)
data = HttpService:((path))
key, value (data)
VD[key] = value
flagName = VD_To_Flag[key]
flagName Window Window.ConfigElements Window.ConfigElements[flagName]
(()
elem = Window.ConfigElements[flagName]
elem.Set elem:(value)
)
().KYS_SyncLoadedFeatures (().KYS_SyncLoadedFeatures)
)
(name)
name = (name name ~= ) name ().CurrentConfigName
name name == name ==
path = ConfigFolderName .. .. name ..
(()
isfile (path) delfile
(path)
(, name)
)
originalLighting = {
Brightness = Lighting.Brightness,
ClockTime = Lighting.ClockTime,
FogEnd = Lighting.FogEnd,
FogStart = Lighting.FogStart,
GlobalShadows = Lighting.GlobalShadows,
OutdoorAmbient = Lighting.OutdoorAmbient
}
atm = Lighting:()
blur = Lighting:()
cc = Lighting:()
sr = Lighting:()
atm
originalLighting.Atmosphere = {
Density = atm.Density,
Offset = atm.Offset,
Glare = atm.Glare,
Haze = atm
.Haze
}
blur originalLighting.Blur = { Size = blur.Size }
cc originalLighting.ColorCorrection = { Enabled = cc.Enabled }
sr originalLighting.SunRays = { Enabled = sr.Enabled }
().VD_CurrentSky =
().VD_ParticleAnchor =
KYS_WeatherPresets = {
[] = {},
[] = {
Lighting = { FogColor = .(, , ), FogEnd = , ClockTime = , OutdoorAmbient = .(, , ) },
Atmosphere = { Density = , Color = .(, , ), Decay = .(, , ), Haze = , Glare = },
Particle = { Texture = , Color = ColorSequence.(.(, , )), Size = NumberSequence.(), Rate = , Speed = NumberRange.(, ), Lifetime = NumberRange.(, ), EmissionDirection = .NormalId.Bottom, RotSpeed = NumberRange.(-, ) }
},
[] = {
Lighting = { FogColor = .(, , ), FogEnd = , OutdoorAmbient = .(, , ), Brightness = , ClockTime = },
CC = { TintColor = .(, , ), Contrast = , Saturation = - },
Particle = { Texture = , AnchorSize = .(, , ), CameraOffset = .(, , -), Squash = NumberSequence.(), Color = ColorSequence.(.(, , )), Size = NumberSequence.(), Rate = , Speed = NumberRange.(, ), Lifetime = NumberRange.(, ), EmissionDirection = .NormalId.Bottom, Transparency = NumberSequence.(), Acceleration = .(-, -, ), SpreadAngle = .(, ), LightEmission = }
},
[] = {
Lighting = { FogColor = .(, , ), FogEnd = , OutdoorAmbient = .(, , ), ClockTime = },
CC = { TintColor = .(, , ), Contrast = , Saturation = },
Particle = { Texture = , AnchorSize = .(, , ), CameraOffset = .(, , -), Squash = NumberSequence.(), Color = ColorSequence.({ ColorSequenceKeypoint.(, .(, , )), ColorSequenceKeypoint.(, .(, , )), ColorSequenceKeypoint.(, .(, , )) }), Size = NumberSequence.(), Rate = , Speed = NumberRange.(, ), Lifetime = NumberRange.(, ), EmissionDirection = .NormalId.Bottom, Rotation = NumberRange.(, ), RotSpeed = NumberRange.(-, ), Transparency = NumberSequence.(), Acceleration = .(, -, ), SpreadAngle = .(, ), LightEmission = }
},
[] = {
Lighting = { FogColor = .(, , ), FogEnd = , OutdoorAmbient = .(, , ), ClockTime = },
CC = { TintColor = .(, , ), Saturation = },
Particle = { Texture = , AnchorSize = .(, , ), CameraOffset = .(, , -), Squash = NumberSequence.(), Color = ColorSequence.({ ColorSequenceKeypoint.(, .(, , )), ColorSequenceKeypoint.(, .(, , )), ColorSequenceKeypoint.(, .(, , )) }), Size = NumberSequence.(), Rate = , Speed = NumberRange.(, ), Lifetime = NumberRange.(, ), EmissionDirection = .NormalId.Bottom, Rotation = NumberRange.(, ), RotSpeed = NumberRange.(-, ), Transparency = NumberSequence.(), Acceleration = .(, -, ), SpreadAngle = .(, ), LightEmission = }
},
[] = {
Lighting = { FogColor = .(, , ), FogEnd = , OutdoorAmbient = .(, , ), ClockTime = , Brightness = },
CC = { TintColor = .(, , ), Contrast = , Saturation = }
},
[] = {
Lighting = { FogColor = .(, , ), FogEnd = , OutdoorAmbient = .(, , ), ClockTime = , Brightness = },
CC = { TintColor = .(, , ), Contrast = , Saturation = },
Atmosphere = { Density = , Color = .(, , ), Decay = .(, , ), Haze = , Glare = }
},
[] = {
Lighting = { FogColor = .(, , ), FogEnd = , OutdoorAmbient = .(, , ), ClockTime = , Brightness = },
CC = { TintColor = .(, , ), Contrast = , Saturation = },
Particle = { Texture = , Color = ColorSequence.(.(, , )), Size = NumberSequence.(), Rate = , Speed = NumberRange.(, ), Lifetime = NumberRange.(, ), EmissionDirection = .NormalId.Bottom, Transparency = NumberSequence.() }
},
[] = {
Lighting = { FogColor = .(, , ), FogEnd = , OutdoorAmbient = .(, , ), ClockTime = , Brightness = },
CC = { TintColor = .(, , ), Contrast = , Saturation = }
},
[] = {
Lighting = { FogColor = .(, , ), FogEnd = , OutdoorAmbient = .(, , ), Brightness = , ClockTime = },
CC = { TintColor = .(, , ), Contrast = , Saturation = - }
}
}
(themeName)
theme = KYS_WeatherPresets[themeName]
theme theme = KYS_WeatherPresets[]
().VD_CurrentSky ().VD_CurrentSky.Parent ().VD_CurrentSky:()
().VD_CurrentSky =
().VD_WeatherCC ().VD_WeatherCC.Parent ().VD_WeatherCC:()
().VD_WeatherCC =
().VD_WeatherAtmosphere ().VD_WeatherAtmosphere.Parent ().VD_WeatherAtmosphere:()
().VD_WeatherAtmosphere =
theme.Atmosphere
atm = .()
atm.Name =
k, v (theme.Atmosphere) (() atm[k] = v )
atm.Parent = Lighting
().VD_WeatherAtmosphere = atm
theme.CC
cc = .()
cc.Name =
k, v (theme.CC) (() cc[k] = v )
cc.Parent = Lighting
().VD_WeatherCC = cc
theme.Lighting
k, v (theme.Lighting)
(() Lighting[k] = v )
VD.Fullbright VD.NO_Fog
Lighting.Brightness = originalLighting.Brightness
Lighting.ClockTime = originalLighting.ClockTime
Lighting.FogEnd = originalLighting.FogEnd
Lighting.OutdoorAmbient = originalLighting.OutdoorAmbient
VD.Fullbright (VD_SetFullbright, )
VD.NO_Fog (VD_SetNoFog, )
().VD_ParticleAnchor ().VD_ParticleAnchor.Parent
().VD_ParticleAnchor:()
().VD_ParticleAnchor =
theme.Particle
anchor = .()
anchor.Name =
anchor.Transparency =
anchor.CanCollide =
anchor.Anchored =
anchor.Size = theme.Particle.AnchorSize .(, , )
anchor:(, theme.Particle.CameraOffset theme.Particle.CameraOffset.X )
anchor:(, theme.Particle.CameraOffset theme.Particle.CameraOffset.Y )
anchor:(, theme.Particle.CameraOffset theme.Particle.CameraOffset.Z )
pe = .()
pe.Name =
pe.Enabled =
pe.EmissionDirection = .NormalId.Bottom
pe.LockedToPart =
pe.ZOffset =
pe.LightEmission =
pe.SpreadAngle = .(, )
(() pe.Shape = .ParticleEmitterShape.Box )
(() pe.ShapeStyle = .ParticleEmitterShapeStyle.Volume )
k, v (theme.Particle)
k ~= k ~=
(() pe[k] = v )
pe.Parent = anchor
themeName ==
nearRain = .()
nearRain.Name =
nearRain.Enabled =
nearRain.Texture =
nearRain.Color = ColorSequence.(.(, , ))
nearRain.Transparency = NumberSequence.()
nearRain.Size = NumberSequence.()
nearRain.Squash = NumberSequence.()
nearRain.Rate =
nearRain.Speed = NumberRange.(, )
nearRain.Lifetime = NumberRange.(, )
nearRain.EmissionDirection = .NormalId.Bottom
nearRain.Acceleration = .(-, -, )
nearRain.SpreadAngle = .(, )
nearRain.LockedToPart =
nearRain.ZOffset =
nearRain.LightEmission =
(() nearRain.Shape = .ParticleEmitterShape.Box )
(() nearRain.ShapeStyle = .ParticleEmitterShapeStyle.Volume )
nearRain.Parent = anchor
rainSheet = .()
rainSheet.Name =
rainSheet.Enabled =
rainSheet.Texture =
rainSheet.Color = ColorSequence.(.(, , ))
rainSheet.Transparency = NumberSequence.()
rainSheet.Size = NumberSequence.()
rainSheet.Squash = NumberSequence.()
rainSheet.Rate =
rainSheet.Speed = NumberRange.(, )
rainSheet.Lifetime = NumberRange.(, )
rainSheet.EmissionDirection = .NormalId.Bottom
rainSheet.Acceleration = .(-, -, )
rainSheet.SpreadAngle = .(, )
rainSheet.LockedToPart =
rainSheet.ZOffset =
rainSheet.LightEmission =
(() rainSheet.Shape = .ParticleEmitterShape.Box )
(() rainSheet.ShapeStyle = .ParticleEmitterShapeStyle.Volume )
rainSheet.Parent = anchor
themeName ==
bigLeaves = .()
bigLeaves.Name =
bigLeaves.Enabled =
bigLeaves.Texture =
bigLeaves.Color = ColorSequence.({
ColorSequenceKeypoint.(, .(, , )),
ColorSequenceKeypoint.(, .(, , )),
ColorSequenceKeypoint.(, .(, , )),
ColorSequenceKeypoint.(, .(, , ))
})
bigLeaves.Transparency = NumberSequence.()
bigLeaves.Size = NumberSequence.({
NumberSequenceKeypoint.(, ),
NumberSequenceKeypoint.(, ),
NumberSequenceKeypoint.(, )
})
bigLeaves.Squash = NumberSequence.()
bigLeaves.Rate =
bigLeaves.Speed = NumberRange.(, )
bigLeaves.Lifetime = NumberRange.(, )
bigLeaves.EmissionDirection = .NormalId.Bottom
bigLeaves.Rotation = NumberRange.(, )
bigLeaves.RotSpeed = NumberRange.(-, )
bigLeaves.Acceleration = .(, -, )
bigLeaves.SpreadAngle = .(, )
bigLeaves.LockedToPart =
bigLeaves.ZOffset =
bigLeaves.LightEmission =
(() bigLeaves.Shape = .ParticleEmitterShape.Box )
(() bigLeaves.ShapeStyle = .ParticleEmitterShapeStyle.Volume )
bigLeaves.Parent = anchor
anchor.Parent =
().VD_ParticleAnchor = anchor
theme.Particle.Texture
.(()
(()
:():({pe})
)
)
(VD_UpdateWeatherAnchor)
()
anchor = ().VD_ParticleAnchor
anchor
anchor.Parent ~=
(() anchor.Parent = )
camera = .CurrentCamera
camera
offset = .(
anchor:() ,
anchor:() ,
anchor:()
)
worldPos = camera.CFrame.Position
+ camera.CFrame.RightVector * offset.X
+ .(, offset.Y, )
+ camera.CFrame.LookVector * .(offset.Z)
anchor.CFrame = .(worldPos)
char = LocalPlayer.Character
char char:()
head = char.Head
anchor.CFrame = .(head.Position + .(, , ))
(char)
Character = char LocalPlayer.Character
Character
.(()
Humanoid = Character:(, )
Root = Character:(, )
)
Humanoid, Root = ,
()
LocalPlayer.CharacterAdded:(updateChar)
LocalPlayer.CharacterRemoving:((char)
char == Character char == LocalPlayer.Character
Character, Humanoid, Root = , ,
)
TeamColor = .(, , )
EnemyColor = .(, , )
(player)
LocalPlayer.Team player.Team player.Team == LocalPlayer.Team
(player)
(player) TeamColor EnemyColor
KYS_WorldReg
().KYS_oldNamecall =
()
().KYS_AntiFailHooked
().KYS_AntiFailHooked =
.(()
ok, err = (()
Remotes = ReplicatedStorage:(, )
Events = ReplicatedStorage:(, )
Remotes
()
_genv = ()
_genv.KYS_oldNamecall = (, , (self, ...)
method = ()
VD.AntiFallDamage method ==
ok, name = (() self.Name:() )
ok (name:() name:() name:())
VD.KILLER_InfFrenzy method ==
ok, name = (() self.Name )
ok (name == name == )
VD.KILLER_SilentAimFlask method ==
ok, name = (() self.Name )
ok name ==
args = {...}
closest =
minDst = .huge
lp = :().LocalPlayer
myPos = lp.Character lp.Character:() lp.Character.HumanoidRootPart.Position
myPos
_, v (:():())
v ~= lp v.Character v.Character:()
v.Character:()
dst = (v.Character.HumanoidRootPart.Position - myPos).Magnitude
dst < minDst
minDst = dst
closest = v
closest
targetPos = closest.Character.HumanoidRootPart.Position
args[] (args[]) ==
args[] = (targetPos - args[]).Unit
(method)
_genv.(self, (args))
method == ()
flashRemote = _genv.KYS_FlashlightActivateRemote
flashRemote self == flashRemote _genv.KYS_SetFlashlightAimActive
args = { ... }
(_genv.KYS_SetFlashlightAimActive, args[] == , args[])
_genv.KYS_oldNamecall
_genv.(self, ...)
)
()
)
ok (, err)
)
()
().KYS_fpWasSet =
().KYS_fpOriginal =
()
().KYS_fpWasSet
().KYS_fpWasSet =
(()
().KYS_fpOriginal
LocalPlayer.CameraMode = ().KYS_fpOriginal.CameraMode .CameraMode.Classic
LocalPlayer.CameraMaxZoomDistance = ().KYS_fpOriginal.CameraMaxZoomDistance
LocalPlayer.CameraMinZoomDistance = ().KYS_fpOriginal.CameraMinZoomDistance
LocalPlayer.CameraMode = .CameraMode.Classic
LocalPlayer.CameraMaxZoomDistance =
)
char = LocalPlayer.Character
char
head = char:()
head head.LocalTransparencyModifier =
_, obj (char:())
obj:()
handle = obj:()
handle handle.LocalTransparencyModifier =
().KYS_fpOriginal =
RunService.RenderStepped:(()
(()
VD.SURV_FirstPerson
isSurvivor = LocalPlayer.Team LocalPlayer.Team.Name ==
isSurvivor
().KYS_fpWasSet
().KYS_fpOriginal = {
CameraMode = LocalPlayer.CameraMode,
CameraMaxZoomDistance = LocalPlayer.CameraMaxZoomDistance,
CameraMinZoomDistance = LocalPlayer.CameraMinZoomDistance,
}
LocalPlayer.CameraMode ~= .CameraMode.LockFirstPerson
LocalPlayer.CameraMode = .CameraMode.LockFirstPerson
LocalPlayer.CameraMaxZoomDistance ~=
LocalPlayer.CameraMaxZoomDistance =
char = LocalPlayer.Character
char
head = char:()
head
head.LocalTransparencyModifier =
_, obj (char:())
obj:()
handle = obj:()
handle
handle.LocalTransparencyModifier =
().KYS_fpWasSet =
().KYS_fpWasSet
()
().KYS_fpWasSet
()
)
)
().KYS_VD_VisualESP_Cleanup
(().KYS_VD_VisualESP_Cleanup)
LP = LocalPlayer
KYS_Dead =
KYS_ControlsAdded =
KYS_ESPState = {
PlayerMasterESP = ,
WorldMasterESP = ,
ESPFillTransparency = ,
ESPOutlineTransparency = ,
ESPTextSize = ,
SurvivorESP = ,
KillerESP = ,
SpectatorESP = ,
Nametags = ,
DistanceESP = ,
SurvivorItemsESP = ,
SurvivorColor = .(, , ),
KillerColor = .(, , ),
SpectatorColor = .(, , ),
GeneratorESP = ,
HookESP = ,
GateESP = ,
WindowESP = ,
PalletESP = ,
SCPZombieESP = ,
WorldNametags = ,
WorldDistanceESP = ,
GeneratorColor = .(, , ),
HookColor = .(, , ),
GateColor = .(, , ),
WindowColor = .(, , ),
PalletColor = .(, , ),
SCPZombieColor = .(, , ),
}
().KYS_VD_VisualESP_State = KYS_ESPState
KYS_WorldReg = {
Generator = {},
Hook = {},
Gate = {},
Window = {},
Palletwrong = {},
SCPZombie = {},
}
KYS_MapAdd, KYS_MapRem = {}, {}
KYS_PlayerConns = {}
KYS_Connections = {}
KYS_PalletState = ({}, { __mode = })
KYS_WindowState = ({}, { __mode = })
KYS_InstanceIds = ({}, { __mode = })
KYS_KystId =
KYS_PlayerLoopThread =
KYS_WorldLoopThread =
KYS_ESPFolder =
KYS_DisplayNames = {
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
}
(inst)
inst
ok, parent = (() inst.Parent )
ok parent ~=
(n, lo, hi)
n = (n) lo
n < lo lo
n > hi hi
n
(player)
id = player player.UserId
id id ~= (id)
(player player.Name )
(inst)
inst
id = KYS_InstanceIds[inst]
id id
KYS_KystId = KYS_KystId +
id = (KYS_KystId)
KYS_InstanceIds[inst] = id
id
()
okCore, core = (() :() )
okCore core core
gethui
okHui, hui = (gethui)
okHui hui hui
playerGui = LP LP:()
playerGui playerGui
Workspace
()
KYS_ESPFolder KYS_ESPFolder.Parent
KYS_ESPFolder
parent = ()
old = parent:() parent:()
old old:()
folder = .()
folder.Name =
folder.Parent = parent
KYS_ESPFolder = folder
folder
(prefix, keepName)
folder = ()
keptExact =
_, child ipairs(folder:GetChildren()) do
if child.Name:sub(1, #prefix) == prefix then
if child.Name == keepName and not keptExact then
keptExact = true
else
child:Destroy()
end
end
end
end
local function KYS_SafeNotify(title, content, duration)
pcall(function()
if Window and Window.Notify then
Window:Notify({
Title = title,
Content = content,
Duration = duration or 2,
Icon = "lucide:info",
})
end
end)
end
local function KYS_ValidPart(part)
return part and KYS_Alive(part) and part:IsA("BasePart")
end
local function KYS_FirstBasePart(inst)
if not KYS_Alive(inst) then return nil end
if inst:IsA("BasePart") then return inst end
if inst:IsA("Model") then
if inst.PrimaryPart and inst.PrimaryPart:IsA("BasePart") and KYS_Alive(inst.PrimaryPart) then
return inst.PrimaryPart
end
local part = inst:FindFirstChildWhichIsA("BasePart", true)
if KYS_ValidPart(part) then return part end
end
if inst:IsA("Tool") then
local handle = inst:FindFirstChild("Handle") or inst:FindFirstChildWhichIsA("BasePart")
if KYS_ValidPart(handle) then return handle end
end
return nil
end
local function KYS_GetRole(player)
local teamName = player.Team and player.Team.Name and player.Team.Name:lower() or ""
if teamName:find("killer") then return "Killer" end
if teamName:find("survivor") then return "Survivor" end
if teamName:find("spect") then return "Spectator" end
return "Survivor"
end
local function KYS_PlayerRoleEnabled(player)
local role = KYS_GetRole(player)
if role == "Killer" then return KYS_ESPState.KillerESP end
if role == "Spectator" then return KYS_ESPState.SpectatorESP end
return KYS_ESPState.SurvivorESP
end
local function KYS_PlayerColor(player)
local role = KYS_GetRole(player)
if role == "Killer" then return KYS_ESPState.KillerColor end
if role == "Spectator" then return KYS_ESPState.SpectatorColor end
return KYS_ESPState.SurvivorColor
end
getgenv().KYS_VD_VisualESP_HasPlayerText = function(player)
if not player or player == LP then return false end
return KYS_ESPState.PlayerMasterESP
and KYS_PlayerRoleEnabled(player)
and (KYS_ESPState.Nametags or KYS_ESPState.DistanceESP)
end
local function KYS_EnsureHighlight(name, adornee, color, isPlayer)
if not (adornee and KYS_Alive(adornee)) then return nil end
local folder = KYS_GetESPFolder()
KYS_ClearPrefix(name, name)
local hl = folder:FindFirstChild(name)
if not hl then
hl = Instance.new("Highlight")
hl.Name = name
hl.DepthMode = Enum.HighlightDepthMode.AlwaysOnTop
hl.Parent = folder
end
hl.Adornee = adornee
hl.FillColor = color
hl.OutlineColor = color
if isPlayer then
hl.FillTransparency = KYS_ESPState.ESPFillTransparency
hl.OutlineTransparency = KYS_ESPState.ESPOutlineTransparency
else
hl.FillTransparency = 0.98
hl.OutlineTransparency = 0.5
end
hl.Enabled = true
return hl
end
local function KYS_DestroyChild(name)
local folder = KYS_GetESPFolder()
local child = folder:FindFirstChild(name)
if child then child:Destroy() end
end
local function KYS_ClearPlayerESP(player)
if not player or player == LP then return end
local key = KYS_PlayerKey(player)
KYS_DestroyChild("KYS_PlayerHL_" .. key)
KYS_DestroyChild("KYS_PlayerTag_" .. key)
KYS_DestroyChild("KYS_PlayerItem_" .. key)
end
local function KYS_ClearAllPlayerESP()
for _, player in ipairs(Players:GetPlayers()) do
if player ~= LP then
KYS_ClearPlayerESP(player)
end
end
end
local function KYS_GetSurvivorItem(player)
local character = player.Character
if not character then return nil end
for _, obj in ipairs(character:GetDescendants()) do
if obj:IsA("Tool") or obj:IsA("Accessory") or obj:IsA("Model") then
if KYS_DisplayNames[obj.Name] then
return obj.Name
end
end
end
return nil
end
local function KYS_GetItemImageId(itemName)
local itemsFolder = ReplicatedStorage:FindFirstChild("Items")
if not itemsFolder then return nil end
local itemObj = itemsFolder:FindFirstChild(itemName)
if not itemObj then return nil end
if itemObj:IsA("Decal") or itemObj:IsA("Texture") then return itemObj.Texture end
local texture = itemObj:FindFirstChildWhichIsA("Decal", true) or itemObj:FindFirstChildWhichIsA("Texture", true)
if texture then return texture.Texture end
local namedTexture = itemObj:FindFirstChild("Texture", true)
if namedTexture and (namedTexture:IsA("Decal") or namedTexture:IsA("Texture")) then
return namedTexture.Texture
end
return nil
end
local function KYS_SetBillboardLine(parent, index, count, data)
local label = parent:FindFirstChild("Line" .. index)
if not label then
label = Instance.new("TextLabel")
label.Name = "Line" .. index
label.BackgroundTransparency = 1
label.BorderSizePixel = 0
label.Font = Enum.Font.Gotham
label.TextStrokeTransparency = 0.65
label.TextStrokeColor3 = Color3.new(0, 0, 0)
label.Parent = parent
end
label.Size = UDim2.new(1, 0, 1 / count, 0)
label.Position = UDim2.new(0, 0, (index - 1) / count, 0)
label.TextSize = KYS_ESPState.ESPTextSize
label.TextColor3 = data.Color
label.Text = data.Text
end
local function KYS_PruneBillboardLines(parent, count)
for _, child in ipairs(parent:GetChildren()) do
if child:IsA("TextLabel") then
local index = tonumber(child.Name:match("%d+"))
if index and index > count then
child:Destroy()
end
end
end
end
local function KYS_UpdatePlayerTag(player, character, head, color)
local key = KYS_PlayerKey(player)
local tagName = "KYS_PlayerTag_" .. key
local folder = KYS_GetESPFolder()
KYS_ClearPrefix("KYS_PlayerTag_" .. key, tagName)
if not KYS_ValidPart(head) then
KYS_DestroyChild(tagName)
return
end
local lines = {}
local root = LP.Character and LP.Character:FindFirstChild("HumanoidRootPart")
local targetRoot = character and character:FindFirstChild("HumanoidRootPart")
local distanceText = ""
if KYS_ESPState.DistanceESP and root and targetRoot then
distanceText = "[" .. tostring(math.floor((root.Position - targetRoot.Position).Magnitude)) .. "m]"
end
local nameText = KYS_ESPState.Nametags and player.Name or ""
local mainLine = ""
if nameText ~= "" and distanceText ~= "" then
mainLine = nameText .. " " .. distanceText
elseif nameText ~= "" then
mainLine = nameText
elseif distanceText ~= "" then
mainLine = distanceText
end
if mainLine ~= "" then
table.insert(lines, { Text = mainLine, Color = color })
end
if #lines == 0 then
KYS_DestroyChild(tagName)
return
end
local tag = folder:FindFirstChild(tagName)
if not tag then
tag = Instance.new("BillboardGui")
tag.Name = tagName
tag.AlwaysOnTop = true
tag.LightInfluence = 0
tag.MaxDistance = 0
tag.Parent = folder
end
tag.Adornee = head
tag.Enabled = true
tag.Size = UDim2.new(0, 220, 0, #lines * 20)
tag.StudsOffset = Vector3.new(0, 2.65, 0)
for i, data in ipairs(lines) do
KYS_SetBillboardLine(tag, i, #lines, data)
end
KYS_PruneBillboardLines(tag, #lines)
end
local function KYS_UpdatePlayerItemIcon(player, torso)
local key = KYS_PlayerKey(player)
local iconName = "KYS_PlayerItem_" .. key
local folder = KYS_GetESPFolder()
KYS_ClearPrefix("KYS_PlayerItem_" .. key, iconName)
if not KYS_ValidPart(torso) then
KYS_DestroyChild(iconName)
return
end
local itemName = KYS_GetSurvivorItem(player)
local imageId = itemName and KYS_GetItemImageId(itemName) or nil
if not imageId then
KYS_DestroyChild(iconName)
return
end
local icon = folder:FindFirstChild(iconName)
if not icon then
icon = Instance.new("BillboardGui")
icon.Name = iconName
icon.AlwaysOnTop = true
icon.LightInfluence = 0
icon.MaxDistance = 0
icon.Size = UDim2.fromOffset(20, 20)
icon.StudsOffset = Vector3.new(0, 0, -1.6)
icon.Parent = folder
local image = Instance.new("ImageLabel")
image.Name = "ImageLabel"
image.BackgroundTransparency = 1
image.Size = UDim2.fromScale(1, 1)
image.Parent = icon
end
icon.Adornee = torso
icon.Enabled = true
local image = icon:FindFirstChild("ImageLabel")
if image then image.Image = imageId end
end
local KYS_ApplyPlayerESP
KYS_ApplyPlayerESP = function(player)
if KYS_Dead or not player or player == LP then return end
local character = player.Character
if not (character and KYS_Alive(character)) then
KYS_ClearPlayerESP(player)
return
end
local key = KYS_PlayerKey(player)
local enabled = KYS_ESPState.PlayerMasterESP and KYS_PlayerRoleEnabled(player)
if not enabled then
KYS_ClearPlayerESP(player)
return
end
local color = KYS_PlayerColor(player)
local head = character:FindFirstChild("Head")
local torso = character:FindFirstChild("HumanoidRootPart") or character:FindFirstChild("UpperTorso") or character:FindFirstChild("Torso")
KYS_EnsureHighlight("KYS_PlayerHL_" .. key, character, color, true)
KYS_UpdatePlayerTag(player, character, head, color)
if KYS_GetRole(player) == "Survivor" and KYS_ESPState.SurvivorItemsESP then
KYS_UpdatePlayerItemIcon(player, torso)
else
KYS_DestroyChild("KYS_PlayerItem_" .. key)
end
end
local function KYS_RefreshAllPlayers()
for _, player in ipairs(Players:GetPlayers()) do
if player ~= LP then
pcall(KYS_ApplyPlayerESP, player)
end
end
end
local function KYS_StartPlayerLoop()
if KYS_PlayerLoopThread then return end
KYS_PlayerLoopThread = task.spawn(function()
while not KYS_Dead and KYS_ESPState.PlayerMasterESP do
KYS_RefreshAllPlayers()
task.wait(0.25)
end
KYS_PlayerLoopThread = nil
end)
end
local function KYS_WatchPlayer(player)
if player == LP then return end
if KYS_PlayerConns[player] then
for _, conn in ipairs(KYS_PlayerConns[player]) do
if conn then pcall(function() conn:Disconnect() end) end
end
end
KYS_PlayerConns[player] = {}
table.insert(KYS_PlayerConns[player], player.CharacterAdded:Connect(function(char)
KYS_ClearPlayerESP(player)
task.delay(0.15, function()
if not KYS_Dead then pcall(KYS_ApplyPlayerESP, player) end
end)
end))
table.insert(KYS_PlayerConns[player], player.CharacterRemoving:Connect(function()
KYS_ClearPlayerESP(player)
end))
table.insert(KYS_PlayerConns[player], player:GetPropertyChangedSignal("Team"):Connect(function()
KYS_ClearPlayerESP(player)
pcall(KYS_ApplyPlayerESP, player)
end))
if player.Character then
pcall(KYS_ApplyPlayerESP, player)
end
end
local function KYS_UnwatchPlayer(player)
KYS_ClearPlayerESP(player)
if KYS_PlayerConns[player] then
for _, conn in ipairs(KYS_PlayerConns[player]) do
if conn then pcall(function() conn:Disconnect() end) end
end
end
KYS_PlayerConns[player] = nil
end
local function KYS_PickWorldPart(model, cat)
if not (model and KYS_Alive(model)) then return nil end
if cat == "Generator" then
local hitbox = model:FindFirstChild("HitBox", true) or model:FindFirstChild("GeneratorPoint", true)
if KYS_ValidPart(hitbox) then return hitbox end
elseif cat == "Palletwrong" then
local candidates = {
model:FindFirstChild("HumanoidRootPart", true),
model:FindFirstChild("PrimaryPartPallet", true),
model:FindFirstChild("Primary1", true),
model:FindFirstChild("Primary2", true),
model:FindFirstChild("PalletPoint", true),
model:FindFirstChild("PalletPointSlide", true),
}
for _, part in ipairs(candidates) do
if KYS_ValidPart(part) then return part end
end
elseif cat == "Window" then
local vault = model:FindFirstChild("VaultPoint", true) or model:FindFirstChild("VaultTrigger", true)
if KYS_ValidPart(vault) then return vault end
elseif cat == "SCPZombie" then
local root = model:FindFirstChild("HumanoidRootPart", true)
if KYS_ValidPart(root) then return root end
local torso = model:FindFirstChild("UpperTorso", true) or model:FindFirstChild("Torso", true)
if KYS_ValidPart(torso) then return torso end
return nil
end
return KYS_FirstBasePart(model)
end
local function KYS_GeneratorLabel(model)
local pct = tonumber(model:GetAttribute("RepairProgress")) or 0
if pct >= 0 and pct <= 1.001 then pct = pct * 100 end
pct = KYS_Clamp(pct, 0, 100)
local repairers = tonumber(model:GetAttribute("PlayersRepairingCount")) or 0
local paused = model:GetAttribute("ProgressPaused") == true
local kickcount = tonumber(model:GetAttribute("kickcount")) or 0
local abyss50 = model:GetAttribute("Abyss50Triggered") == true
local parts = { "Gen " .. tostring(math.floor(pct + 0.5)) .. "%" }
if repairers > 0 then table.insert(parts, "(" .. repairers .. "p)") end
if paused then table.insert(parts, "Pause") end
if abyss50 then table.insert(parts, "Warn") end
if kickcount > 0 then table.insert(parts, "K:" .. kickcount) end
local hue = KYS_Clamp((pct / 100) * 0.33, 0, 0.33)
return table.concat(parts, " "), Color3.fromHSV(hue, 1, 1)
end
local function KYS_HasBasePart(model)
if not (model and KYS_Alive(model)) then return false end
return model:FindFirstChildWhichIsA("BasePart", true) ~= nil
end
local function KYS_IsPalletGone(model)
if not KYS_Alive(model) then return true end
if not model:IsDescendantOf(Workspace) then return true end
if KYS_PalletState[model] == "DEST" then return true end
local ok, destroyed = pcall(function() return model:GetAttribute("Destroyed") end)
if ok and destroyed == true then return true end
return not KYS_HasBasePart(model)
end
local function KYS_WorldKey(cat, model)
return "KYS_World_" .. cat .. "_" .. KYS_EspId(model)
end
local function KYS_ClearWorldVisual(cat, model)
if not model then return end
KYS_DestroyChild(KYS_WorldKey(cat, model) .. "_HL")
KYS_DestroyChild(KYS_WorldKey(cat, model) .. "_Tag")
end
local function KYS_RemoveWorldEntry(cat, model)
if not KYS_WorldReg[cat] or not KYS_WorldReg[cat][model] then return end
KYS_ClearWorldVisual(cat, model)
KYS_WorldReg[cat][model] = nil
end
local function KYS_EnsureWorldEntry(cat, model)
if not KYS_Alive(model) or not KYS_WorldReg[cat] or KYS_WorldReg[cat][model] then return end
if cat == "Palletwrong" and KYS_IsPalletGone(model) then return end
local part = KYS_PickWorldPart(model, cat)
if not KYS_ValidPart(part) then return end
KYS_WorldReg[cat][model] = { part = part }
end
local function KYS_RegisterWorldDescendant(obj)
if not KYS_Alive(obj) then return end
local validCats = { Generator = true, Hook = true, Gate = true, Window = true, Palletwrong = true }
if obj:IsA("Model") then
if validCats[obj.Name] then
KYS_EnsureWorldEntry(obj.Name, obj)
return
end
local lower = obj.Name:lower()
if lower:find("scp") or lower:find("zombie") then
KYS_EnsureWorldEntry("SCPZombie", obj)
end
return
end
if obj:IsA("BasePart") then
local parent = obj.Parent
while parent and parent ~= Workspace do
if parent:IsA("Model") then
if validCats[parent.Name] then
KYS_EnsureWorldEntry(parent.Name, parent)
return
end
local lower = parent.Name:lower()
if lower:find("scp") or lower:find("zombie") then
KYS_EnsureWorldEntry("SCPZombie", parent)
return
end
end
parent = parent.Parent
end
end
end
local function KYS_UnregisterWorldDescendant(obj)
if not obj then return end
local validCats = { Generator = true, Hook = true, Gate = true, Window = true, Palletwrong = true }
if obj:IsA("Model") then
if validCats[obj.Name] then
KYS_RemoveWorldEntry(obj.Name, obj)
return
end
local lower = obj.Name:lower()
if lower:find("scp") or lower:find("zombie") then
KYS_RemoveWorldEntry("SCPZombie", obj)
end
return
end
if obj:IsA("BasePart") then
for cat, models in pairs(KYS_WorldReg) do
for model, entry in pairs(models) do
if entry.part == obj then
KYS_RemoveWorldEntry(cat, model)
end
end
end
end
end
local function KYS_AttachESPRoot(root)
if not root or KYS_MapAdd[root] then return end
KYS_MapAdd[root] = root.DescendantAdded:Connect(KYS_RegisterWorldDescendant)
KYS_MapRem[root] = root.DescendantRemoving:Connect(KYS_UnregisterWorldDescendant)
for _, descendant in ipairs(root:GetDescendants()) do
KYS_RegisterWorldDescendant(descendant)
end
end
local function KYS_RefreshESPRoots()
for _, conn in pairs(KYS_MapAdd) do
if conn then pcall(function() conn:Disconnect() end) end
end
for _, conn in pairs(KYS_MapRem) do
if conn then pcall(function() conn:Disconnect() end) end
end
KYS_MapAdd, KYS_MapRem = {}, {}
for cat, models in pairs(KYS_WorldReg) do
for model in pairs(models) do
KYS_ClearWorldVisual(cat, model)
end
KYS_WorldReg[cat] = {}
end
local map = Workspace:FindFirstChild("Map")
local map1 = Workspace:FindFirstChild("Map1")
if map then KYS_AttachESPRoot(map) end
if map1 then KYS_AttachESPRoot(map1) end
end
local function KYS_LabelForPallet(model)
local state = KYS_PalletState[model] or "UP"
if state == "DOWN" then return "Pallet (down)" end
if state == "DEST" then return "Pallet (destroyed)" end
if state == "SLIDE" then return "Pallet (slide)" end
return "Pallet"
end
local function KYS_LabelForWindow(model)
local state = KYS_WindowState[model] or "READY"
if state == "BUSY" then return "Window (busy)" end
return "Window"
end
local function KYS_AnyWorldEnabled()
return KYS_ESPState.WorldMasterESP and (
KYS_ESPState.GeneratorESP or
KYS_ESPState.HookESP or
KYS_ESPState.GateESP or
KYS_ESPState.WindowESP or
KYS_ESPState.PalletESP or
KYS_ESPState.SCPZombieESP
)
end
local function KYS_WorldCategoryData(cat)
if cat == "Generator" then return KYS_ESPState.GeneratorESP, KYS_ESPState.GeneratorColor end
if cat == "Hook" then return KYS_ESPState.HookESP, KYS_ESPState.HookColor end
if cat == "Gate" then return KYS_ESPState.GateESP, KYS_ESPState.GateColor end
if cat == "Window" then return KYS_ESPState.WindowESP, KYS_ESPState.WindowColor end
if cat == "Palletwrong" then return KYS_ESPState.PalletESP, KYS_ESPState.PalletColor end
if cat == "SCPZombie" then return KYS_ESPState.SCPZombieESP, KYS_ESPState.SCPZombieColor end
return false, Color3.new(1, 1, 1)
end
local function KYS_UpdateWorldTag(cat, model, part, color)
local key = KYS_WorldKey(cat, model)
local tagName = key .. "_Tag"
local folder = KYS_GetESPFolder()
KYS_ClearPrefix(tagName, tagName)
if not KYS_ValidPart(part) then
KYS_DestroyChild(tagName)
return
end
local lines = {}
local root = LP.Character and LP.Character:FindFirstChild("HumanoidRootPart")
local distanceText = ""
if KYS_ESPState.WorldDistanceESP and root then
distanceText = "[" .. tostring(math.floor((root.Position - part.Position).Magnitude)) .. "m]"
end
local nameText = ""
local labelColor = color
if KYS_ESPState.WorldNametags then
if cat == "Generator" then
local txt, genColor = KYS_GeneratorLabel(model)
nameText = txt
labelColor = genColor
elseif cat == "Palletwrong" then
nameText = KYS_LabelForPallet(model)
elseif cat == "Window" then
nameText = KYS_LabelForWindow(model)
elseif cat == "SCPZombie" then
nameText = model.Name
else
nameText = cat
end
end
local mainLine = ""
if nameText ~= "" and distanceText ~= "" then
mainLine = nameText .. " " .. distanceText
elseif nameText ~= "" then
mainLine = nameText
elseif distanceText ~= "" then
mainLine = distanceText
end
if mainLine ~= "" then
table.insert(lines, { Text = mainLine, Color = labelColor })
end
if #lines == 0 then
KYS_DestroyChild(tagName)
return
end
local tag = folder:FindFirstChild(tagName)
if not tag then
tag = Instance.new("BillboardGui")
tag.Name = tagName
tag.AlwaysOnTop = true
tag.LightInfluence = 0
tag.MaxDistance = 0
tag.Parent = folder
end
tag.Adornee = part
tag.Enabled = true
tag.Size = UDim2.new(0, 220, 0, #lines * 20)
tag.StudsOffset = Vector3.new(0, 2.5, 0)
for i, data in ipairs(lines) do
KYS_SetBillboardLine(tag, i, #lines, data)
end
KYS_PruneBillboardLines(tag, #lines)
end
local function KYS_ClearAllWorldESP()
for cat, models in pairs(KYS_WorldReg) do
for model in pairs(models) do
KYS_ClearWorldVisual(cat, model)
end
end
end
local function KYS_StartWorldLoop()
if KYS_WorldLoopThread then return end
KYS_WorldLoopThread = task.spawn(function()
while not KYS_Dead and KYS_AnyWorldEnabled() do
for cat, models in pairs(KYS_WorldReg) do
local enabled, color = KYS_WorldCategoryData(cat)
if enabled and KYS_ESPState.WorldMasterESP then
local n = 0
for model, entry in pairs(models) do
if cat == "Palletwrong" and KYS_IsPalletGone(model) then
KYS_RemoveWorldEntry(cat, model)
elseif model and KYS_Alive(model) then
local part = entry.part
if not KYS_ValidPart(part) or (model:IsA("Model") and not part:IsDescendantOf(model)) then
entry.part = KYS_PickWorldPart(model, cat)
part = entry.part
end
if KYS_ValidPart(part) then
local key = KYS_WorldKey(cat, model)
KYS_EnsureHighlight(key .. "_HL", model, color, false)
KYS_UpdateWorldTag(cat, model, part, color)
else
KYS_RemoveWorldEntry(cat, model)
end
else
KYS_RemoveWorldEntry(cat, model)
end
n = n + 1
if n % 60 == 0 then task.wait() end
end
else
for model in pairs(models) do
KYS_ClearWorldVisual(cat, model)
end
end
end
task.wait(0.25)
end
KYS_WorldLoopThread = nil
end)
end
local function KYS_Selected(selected, name)
if type(selected) ~= "table" then return false end
if selected[name] ~= nil then return selected[name] == true end
for _, value in pairs(selected) do
if value == name then return true end
end
return false
end
getgenv().KYS_AddVisualESPControls = function(VisualTabRef)
if not VisualTabRef or KYS_ControlsAdded then return end
KYS_ControlsAdded = true
local settingsSection = VisualTabRef:AddSection({
Position = "Center",
Name = "Highlight ESP Settings",
Icon = "solar:settings-bold",
Box = true,
BoxBorder = true,
Opened = false,
})
settingsSection:AddSlider({
Name = "ESP Fill Transparency",
Flag = "KYS ESP Fill Transparency",
Min = 0,
Max = 1,
Default = KYS_ESPState.ESPFillTransparency,
Increment = 0.01,
Callback = function(value)
KYS_ESPState.ESPFillTransparency = value
KYS_RefreshAllPlayers()
end,
})
settingsSection:AddSlider({
Name = "ESP Outline Transparency",
Flag = "KYS ESP Outline Transparency",
Min = 0,
Max = 1,
Default = KYS_ESPState.ESPOutlineTransparency,
Increment = 0.01,
Callback = function(value)
KYS_ESPState.ESPOutlineTransparency = value
KYS_RefreshAllPlayers()
end,
})
settingsSection:AddSlider({
Name = "ESP Text Size",
Flag = "KYS ESP Text Size",
Min = 8,
Max = 22,
Default = KYS_ESPState.ESPTextSize,
Increment = 1,
Callback = function(value)
KYS_ESPState.ESPTextSize = value
KYS_RefreshAllPlayers()
end,
})
local playerSection = VisualTabRef:AddSection({
Position = "Center",
Name = "Player Highlight ESP",
Icon = "solar:users-group-rounded-bold",
Box = true,
BoxBorder = true,
Opened = false,
})
playerSection:AddToggle({
Name = "Enable Player ESP",
Flag = "KYS Enable Player ESP",
Default = false,
Callback = function(state)
KYS_ESPState.PlayerMasterESP = state
if state then
KYS_StartPlayerLoop()
KYS_RefreshAllPlayers()
else
KYS_ClearAllPlayerESP()
end
end,
})
playerSection:AddDropdown({
Name = "Select Player ESP",
Flag = "KYS Select Player ESP",
Values = { "Survivor ESP", "Killer ESP", "Spectator ESP", "Survivor Items ESP" },
Multi = true,
AllowNone = true,
Default = {},
Callback = function(selected)
KYS_ESPState.SurvivorESP = KYS_Selected(selected, "Survivor ESP")
KYS_ESPState.KillerESP = KYS_Selected(selected, "Killer ESP")
KYS_ESPState.SpectatorESP = KYS_Selected(selected, "Spectator ESP")
KYS_ESPState.SurvivorItemsESP = KYS_Selected(selected, "Survivor Items ESP")
if KYS_ESPState.PlayerMasterESP then
KYS_StartPlayerLoop()
KYS_RefreshAllPlayers()
else
KYS_ClearAllPlayerESP()
end
end,
})
playerSection:AddToggle({
Name = "Player Nametags",
Flag = "KYS Player Nametags",
Default = false,
Callback = function(state)
KYS_ESPState.Nametags = state
if KYS_ESPState.PlayerMasterESP then
KYS_StartPlayerLoop()
KYS_RefreshAllPlayers()
else
KYS_ClearAllPlayerESP()
end
end,
})
playerSection:AddToggle({
Name = "Player Distance ESP",
Flag = "KYS Player Distance ESP",
Default = false,
Callback = function(state)
KYS_ESPState.DistanceESP = state
if KYS_ESPState.PlayerMasterESP then
KYS_StartPlayerLoop()
KYS_RefreshAllPlayers()
else
KYS_ClearAllPlayerESP()
end
end,
})
playerSection:AddToggle({
Name = "Survivor Killer Warning (!)",
Flag = "Survivor Killer Warning",
Default = false,
Callback = function(state)
VD.SURV_WarnKiller = state
end,
})
pcall(function() playerSection:AddDivider({ Text = "Colors" }) end)
playerSection:AddColorPicker({ Name = "Survivor Color", Flag = "KYS Survivor Color", Default = KYS_ESPState.SurvivorColor, Callback = function(color) KYS_ESPState.SurvivorColor = color; KYS_RefreshAllPlayers() end })
playerSection:AddColorPicker({ Name = "Killer Color", Flag = "KYS Killer Color", Default = KYS_ESPState.KillerColor, Callback = function(color) KYS_ESPState.KillerColor = color; KYS_RefreshAllPlayers() end })
playerSection:AddColorPicker({ Name = "Spectator Color", Flag = "KYS Spectator Color", Default = KYS_ESPState.SpectatorColor, Callback = function(color) KYS_ESPState.SpectatorColor = color; KYS_RefreshAllPlayers() end })
local worldSection = VisualTabRef:AddSection({
Position = "Center",
Name = "World Highlight ESP",
Icon = "solar:map-point-wave-bold",
Box = true,
BoxBorder = true,
Opened = false,
})
worldSection:AddToggle({
Name = "Enable World ESP",
Flag = "KYS Enable World ESP",
Default = false,
Callback = function(state)
KYS_ESPState.WorldMasterESP = state
if state then
KYS_RefreshESPRoots()
if KYS_AnyWorldEnabled() then KYS_StartWorldLoop() end
else
KYS_ClearAllWorldESP()
end
end,
})
worldSection:AddDropdown({
Name = "Select World Objects",
Flag = "KYS Select World Objects",
Values = { "Generators", "Hooks", "Gates", "Windows", "Pallets", "SCP / Zombie" },
Multi = true,
AllowNone = true,
Default = {},
Callback = function(selected)
KYS_ESPState.GeneratorESP = KYS_Selected(selected, "Generators")
KYS_ESPState.HookESP = KYS_Selected(selected, "Hooks")
KYS_ESPState.GateESP = KYS_Selected(selected, "Gates")
KYS_ESPState.WindowESP = KYS_Selected(selected, "Windows")
KYS_ESPState.PalletESP = KYS_Selected(selected, "Pallets")
KYS_ESPState.SCPZombieESP = KYS_Selected(selected, "SCP / Zombie")
if KYS_ESPState.WorldMasterESP and KYS_AnyWorldEnabled() then
KYS_RefreshESPRoots()
KYS_StartWorldLoop()
else
KYS_ClearAllWorldESP()
end
end,
})
worldSection:AddToggle({
Name = "World Nametags",
Flag = "KYS World Nametags",
Default = false,
Callback = function(state)
KYS_ESPState.WorldNametags = state
if KYS_ESPState.WorldMasterESP and KYS_AnyWorldEnabled() then KYS_StartWorldLoop() else KYS_ClearAllWorldESP() end
end,
})
worldSection:AddToggle({
Name = "World Distance ESP",
Flag = "KYS World Distance ESP",
Default = false,
Callback = function(state)
KYS_ESPState.WorldDistanceESP = state
if KYS_ESPState.WorldMasterESP and KYS_AnyWorldEnabled() then KYS_StartWorldLoop() else KYS_ClearAllWorldESP() end
end,
})
pcall(function() worldSection:AddDivider({ Text = "Colors" }) end)
worldSection:AddColorPicker({ Name = "Generator Color", Flag = "KYS Generator Color", Default = KYS_ESPState.GeneratorColor, Callback = function(color) KYS_ESPState.GeneratorColor = color end })
worldSection:AddColorPicker({ Name = "Hook Color", Flag = "KYS Hook Color", Default = KYS_ESPState.HookColor, Callback = function(color) KYS_ESPState.HookColor = color end })
worldSection:AddColorPicker({ Name = "Gate Color", Flag = "KYS Gate Color", Default = KYS_ESPState.GateColor, Callback = function(color) KYS_ESPState.GateColor = color end })
worldSection:AddColorPicker({ Name = "Window Color", Flag = "KYS Window Color", Default = KYS_ESPState.WindowColor, Callback = function(color) KYS_ESPState.WindowColor = color end })
worldSection:AddColorPicker({ Name = "Pallet Color", Flag = "KYS Pallet Color", Default = KYS_ESPState.PalletColor, Callback = function(color) KYS_ESPState.PalletColor = color end })
worldSection:AddColorPicker({ Name = "SCP / Zombie Color", Flag = "KYS SCP Zombie Color", Default = KYS_ESPState.SCPZombieColor, Callback = function(color) KYS_ESPState.SCPZombieColor = color end })
end
for _, player in ipairs(Players:GetPlayers()) do
KYS_WatchPlayer(player)
end
table.insert(KYS_Connections, Players.PlayerAdded:Connect(KYS_WatchPlayer))
table.insert(KYS_Connections, Players.PlayerRemoving:Connect(KYS_UnwatchPlayer))
table.insert(KYS_Connections, Workspace.ChildAdded:Connect(function(child)
if child.Name == "Map" or child.Name == "Map1" then
KYS_AttachESPRoot(child)
if KYS_ESPState.WorldMasterESP and KYS_AnyWorldEnabled() then KYS_StartWorldLoop() end
end
end))
table.insert(KYS_Connections, Workspace.ChildRemoved:Connect(function(child)
if child.Name == "Map" or child.Name == "Map1" then
KYS_RefreshESPRoots()
end
end))
KYS_RefreshESPRoots()
getgenv().KYS_VD_VisualESP_Cleanup = function()
KYS_Dead = true
KYS_ClearAllPlayerESP()
KYS_ClearAllWorldESP()
for _, conn in ipairs(KYS_Connections) do
if conn then pcall(function() conn:Disconnect() end) end
end
for _, conns in pairs(KYS_PlayerConns) do
for _, conn in ipairs(conns) do
if conn then pcall(function() conn:Disconnect() end) end
end
end
for _, conn in pairs(KYS_MapAdd) do
if conn then pcall(function() conn:Disconnect() end) end
end
for _, conn in pairs(KYS_MapRem) do
if conn then pcall(function() conn:Disconnect() end) end
end
if KYS_ESPFolder and KYS_ESPFolder.Parent then
KYS_ESPFolder:Destroy()
end
end
KYS_SafeNotify("Visual ESP", "Highlight ESP V2 loaded. Anti double nametag aktif.", 3)
end
-- =====================================================
-- FULLBRIGHT
-- =====================================================
task.spawn(function()
while not VD.Destroyed do
if VD.Fullbright then
local weatherTheme = VD.VIS_WeatherTheme and KYS_WeatherPresets[VD.VIS_WeatherTheme]
local keepWeatherLighting = VD.VIS_WeatherTheme and VD.VIS_WeatherTheme ~= "Default" and weatherTheme and weatherTheme.Lighting
if keepWeatherLighting then
for k, v in pairs(weatherTheme.Lighting) do
pcall(function() Lighting[k] = v end)
end
Lighting.Brightness = math.max(Lighting.Brightness, 2)
Lighting.GlobalShadows = false
if VD.NO_Fog then
Lighting.FogStart = 0
Lighting.FogEnd = 100000
end
else
Lighting.Brightness = 2
Lighting.ClockTime = 14
Lighting.GlobalShadows = false
Lighting.OutdoorAmbient = Color3.fromRGB(128, 128, 128)
Lighting.FogStart = 0
Lighting.FogEnd = 100000
end
for _, v in pairs(Lighting:GetChildren()) do
if v:IsA("Atmosphere") and v.Name ~= "VD_WeatherAtmosphere" then
v.Density = 0; v.Offset = 0; v.Glare = 0; v.Haze = 0
end
if v:IsA("BlurEffect") then v.Size = 0 end
if v:IsA("ColorCorrectionEffect") and v.Name ~= "VD_WeatherCC" then v.Enabled = false end
if v:IsA("SunRaysEffect") then v.Enabled = false end
end
else
if VD.VIS_WeatherTheme and VD.VIS_WeatherTheme ~= "Default" and KYS_WeatherPresets[VD.VIS_WeatherTheme] then
local theme = KYS_WeatherPresets[VD.VIS_WeatherTheme]
if theme.Lighting then
for k, v in pairs(theme.Lighting) do
pcall(function() Lighting[k] = v end)
end
end
else
Lighting.Brightness = originalLighting.Brightness
Lighting.ClockTime = originalLighting.ClockTime
Lighting.FogEnd = originalLighting.FogEnd
Lighting.FogStart = originalLighting.FogStart or 0
Lighting.GlobalShadows = originalLighting.GlobalShadows
Lighting.OutdoorAmbient = originalLighting.OutdoorAmbient
for _, v in pairs(Lighting:GetChildren()) do
if v:IsA("Atmosphere") and originalLighting.Atmosphere then
v.Density = originalLighting.Atmosphere.Density or 0.3
v.Offset = originalLighting.Atmosphere.Offset or 0.25
v.Glare = originalLighting.Atmosphere.Glare or 0
v.Haze = originalLighting.Atmosphere.Haze or 0
end
if v:IsA("BlurEffect") and originalLighting.Blur then v.Size = originalLighting.Blur.Size or 0 end
if v:IsA("ColorCorrectionEffect") and originalLighting.ColorCorrection then
v.Enabled = originalLighting
.ColorCorrection.Enabled or false
end
if v:IsA("SunRaysEffect") and originalLighting.SunRays then
v.Enabled = originalLighting.SunRays.Enabled or
false
end
end
end
end
task.wait(0.5)
end
end)
-- =====================================================-- =====================================================
-- MOVEMENT & NOCLIP
-- =====================================================
local originalCanCollide = {}
RunService.Stepped:Connect(function()
if VD.Noclip then
local char = LocalPlayer.Character
if char then
for _, descendant in ipairs(char:GetDescendants()) do
if descendant:IsA("BasePart") then
if originalCanCollide[descendant] == nil then
originalCanCollide[descendant] = descendant.CanCollide
end
descendant.CanCollide = false
end
end
end
end
end)
getgenv().VD_DisableNoclip = function()
for part, canCollide in pairs(originalCanCollide) do
if part and part.Parent then
pcall(function() part.CanCollide = canCollide end)
end
end
originalCanCollide = {}
end
LocalPlayer.CharacterRemoving:Connect(function(char)
if char == LocalPlayer.Character then
originalCanCollide = {}
end
end)
RunService.Heartbeat:Connect(function(deltaTime)
local myChar = LocalPlayer.Character
local myHum = myChar and myChar:FindFirstChildOfClass("Humanoid")
if myHum then
if VD.Speed and myHum.WalkSpeed ~= VD.SpeedValue then myHum.WalkSpeed = VD.SpeedValue end
if VD.Jump and myHum.JumpPower ~= VD.JumpValue then myHum.JumpPower = VD.JumpValue end
end
end)
UserInputService.JumpRequest:Connect(function()
local myChar = LocalPlayer.Character
local myHum = myChar and myChar:FindFirstChildOfClass("Humanoid")
if VD.InfiniteJump and myHum then
myHum:ChangeState(Enum.HumanoidStateType.Jumping)
end
end)
-- =====================================================
-- HIDE SKILL CHECK UI
-- =====================================================
local cachedPlayerGui = LocalPlayer:WaitForChild("PlayerGui")
RunService.RenderStepped:Connect(function()
if VD.HideSkillUI then
if not cachedPlayerGui then cachedPlayerGui = LocalPlayer:FindFirstChild("PlayerGui") end
local a = cachedPlayerGui and cachedPlayerGui:FindFirstChild("SkillCheckPromptGui")
local b = cachedPlayerGui and cachedPlayerGui:FindFirstChild("SkillCheckPromptGui-con")
if a and a.Enabled then a.Enabled = false end
if b and b.Enabled then b.Enabled = false end
end
end)
-- =====================================================
-- AUTO PARRY + AUTO SKILLCHECK (ported from survivor)
-- =====================================================
function VD_Notify(title, content, duration)
pcall(function()
if Window and Window.Notify then
Window:Notify({
Title = title,
Content = content,
Duration = duration or 2,
Icon = "lucide:info",
})
end
end)
end
-- =====================================================
-- SILENT AIM: TWIST OF FATE
-- =====================================================
(function()
local KYS_ToFState = {
Connection = nil,
LaserBeam = nil,
TargetGui = nil,
InputBegan = nil,
InputEnded = nil,
TouchInput = nil,
IsAiming = false,
SavedUIPos = UDim2.new(0.5, -120, 0, 110),
SCPCache = {},
SCPCacheTimer = 0,
}
local KYS_ToFKeyCodes = {
None = nil,
Q = Enum.KeyCode.Q,
E = Enum.KeyCode.E,
R = Enum.KeyCode.R,
T = Enum.KeyCode.T,
F = Enum.KeyCode.F,
G = Enum.KeyCode.G,
H = Enum.KeyCode.H,
J = Enum.KeyCode.J,
K = Enum.KeyCode.K,
L = Enum.KeyCode.L,
X = Enum.KeyCode.X,
Z = Enum.KeyCode.Z,
}
local function KYS_ToFGetEvent()
local remotes = ReplicatedStorage:FindFirstChild("Remotes")
local items = remotes and remotes:FindFirstChild("Items")
local tof = items and items:FindFirstChild("Twist of Fate")
local fire = tof and tof:FindFirstChild("Fire")
if fire and fire:IsA("RemoteEvent") then
return fire
end
return nil
end
local function KYS_ToFGetGunObject()
local char = LocalPlayer.Character
if not char then return nil end
local baseToF = char:FindFirstChild("Twist of Fate", true)
if not baseToF then return nil end
local rightArm = baseToF:FindFirstChild("Right Arm")
if rightArm then
local gunPart = rightArm:FindFirstChild("gun")
if gunPart then return gunPart end
local emperorGun = rightArm:FindFirstChild("EmperorGun")
if emperorGun then return emperorGun end
end
return baseToF
end
local function KYS_ToFIsTargetVisible(originPos, targetPos, targetCharacter)
local direction = targetPos - originPos
local distance = direction.Magnitude
if distance < 0.1 then return true end
local rayParams = RaycastParams.new()
rayParams.FilterType = Enum.RaycastFilterType.Exclude
local excludeList = {}
local localChar = LocalPlayer.Character
if localChar then table.insert(excludeList, localChar) end
if targetCharacter and targetCharacter ~= localChar then table.insert(excludeList, targetCharacter) end
if KYS_ToFState.LaserBeam then table.insert(excludeList, KYS_ToFState.LaserBeam) end
rayParams.FilterDescendantsInstances = excludeList
local result = workspace:Raycast(originPos, direction.Unit * distance, rayParams)
return result == nil
end
local function KYS_ToFGetSCPs()
if tick() - KYS_ToFState.SCPCacheTimer < 0.5 then
return KYS_ToFState.SCPCache
end
local newTargets = {}
local mapFolder = workspace:FindFirstChild("Map")
if mapFolder then
for _, container in pairs(mapFolder:GetDescendants()) do
if container:IsA("Model") then
local attributes = container:GetAttributes()
if container:GetAttribute("CorpseCreated0492") or next(attributes) ~= nil then
local root = container:FindFirstChild("HumanoidRootPart")
if root then table.insert(newTargets, root) end
end
end
end
end
KYS_ToFState.SCPCache = newTargets
KYS_ToFState.SCPCacheTimer = tick()
return KYS_ToFState.SCPCache
end
local function KYS_ToFGetTargetPosition()
local gunObj = KYS_ToFGetGunObject()
local char = LocalPlayer.Character
if not (gunObj and char) then return nil, nil, nil, nil end
local hrp = char:FindFirstChild("HumanoidRootPart")
if not hrp then return nil, nil, nil, nil end
local myPos = hrp.Position
local originPos
if char:GetAttribute("IsCarried") then
originPos = hrp.Position + (hrp.CFrame.LookVector * 2)
else
pcall(function()
originPos = gunObj:IsA("BasePart") and gunObj.Position
or (gunObj:FindFirstChildOfClass("BasePart") and gunObj:FindFirstChildOfClass("BasePart").Position)
end)
originPos = originPos or Vector3.new(myPos.X, myPos.Y + 1.5, myPos.Z)
end
local function predictTarget(torso, targetCharacter)
local targetPos = torso.Position
if VD.TOF_WallCheck and not KYS_ToFIsTargetVisible(originPos, targetPos, targetCharacter) then
return nil, nil, nil, nil
end
local targetVel = Vector3.new(0, 0, 0)
local rootPart = targetCharacter and (targetCharacter:FindFirstChild("HumanoidRootPart") or torso)
if rootPart then targetVel = rootPart.Velocity end
local directionRaw = targetPos - originPos
local distance = directionRaw.Magnitude
if distance < 0.1 then return nil, nil, nil, nil end
if distance < 5 then return directionRaw.Unit, gunObj, originPos, targetPos end
local travelTime = distance / 400
local predictedPos = targetPos + (targetVel * travelTime)
for _ = 1, 2 do
local newDist = (predictedPos - originPos).Magnitude
travelTime = newDist / 400
predictedPos = targetPos + (targetVel * travelTime)
end
local finalDirection = predictedPos - originPos
if finalDirection.Magnitude < 0.1 then return nil, nil, nil, nil end
return finalDirection.Unit, gunObj, originPos, predictedPos
end
local targetMode = VD.TOF_TargetMode or "Killer"
if targetMode == "Killer" then
local closestTorso, closestChar, shortestDist = nil, nil, math.huge
for _, player in ipairs(Players:GetPlayers()) do
if player ~= LocalPlayer and player.Team and player.Team.Name == "Killer" and player.Character then
local torso = player.Character:FindFirstChild("Torso")
or player.Character:FindFirstChild("UpperTorso")
or player.Character:FindFirstChild("HumanoidRootPart")
if torso then
local dist = (myPos - torso.Position).Magnitude
if dist < shortestDist then
shortestDist = dist
closestTorso = torso
closestChar = player.Character
end
end
end
end
if not closestTorso then return nil, nil, nil, nil end
return predictTarget(closestTorso, closestChar)
elseif targetMode == "Survivors" then
local bestTorso, bestChar, bestDot = nil, nil, -math.huge
local cam = workspace.CurrentCamera
local camLook = cam.CFrame.LookVector
for _, player in ipairs(Players:GetPlayers()) do
if player ~= LocalPlayer and player.Team and player.Team.Name == "Survivors" and player.Character then
local torso = player.Character:FindFirstChild("Torso")
or player.Character:FindFirstChild("UpperTorso")
or player.Character:FindFirstChild("HumanoidRootPart")
if torso then
local dirToTarget = torso.Position - cam.CFrame.Position
if dirToTarget.Magnitude > 0.1 then
local dot = camLook:Dot(dirToTarget.Unit)
if dot > 0.5 and dot > bestDot then
bestDot = dot
bestTorso = torso
bestChar = player.Character
end
end
end
end
end
if not bestTorso then return nil, nil, nil, nil end
return predictTarget(bestTorso, bestChar)
elseif targetMode == "Zombie" then
local bestPart, bestDot = nil, -math.huge
local cam = workspace.CurrentCamera
local camLook = cam.CFrame.LookVector
for _, root in ipairs(KYS_ToFGetSCPs()) do
if root and root.Parent then
local dirToTarget = root.Position - cam.CFrame.Position
if dirToTarget.Magnitude > 0.1 then
local dot = camLook:Dot(dirToTarget.Unit)
if dot > 0.5 and dot > bestDot then
bestDot = dot
bestPart = root
end
end
end
end
if not bestPart then return nil, nil, nil, nil end
return predictTarget(bestPart, bestPart.Parent)
end
return nil, nil, nil, nil
end
local function KYS_ToFUpdateLaser(originPos, targetPos)
if not KYS_ToFState.LaserBeam then
local laser = Instance.new("Part")
laser.Name = "ToFLaser"
laser.Anchored = true
laser.CanCollide = false
laser.CanTouch = false
laser.CastShadow = false
laser.Material = Enum.Material.Neon
laser.Color = Color3.fromRGB(255, 50, 50)
laser.Parent = workspace
KYS_ToFState.LaserBeam = laser
end
local dist = (targetPos - originPos).Magnitude
KYS_ToFState.LaserBeam.Size = Vector3.new(0.05, 0.05, dist)
KYS_ToFState.LaserBeam.CFrame = CFrame.new((originPos + targetPos) / 2, targetPos)
KYS_ToFState.LaserBeam.Transparency = 0
end
local function KYS_ToFClearLaser()
if KYS_ToFState.LaserBeam then
pcall(function() KYS_ToFState.LaserBeam:Destroy() end)
KYS_ToFState.LaserBeam = nil
end
end
local AimConfig = {
Pistol_BlockKnocked = true,
}
local function IsDowned(char)
local hrp = char and char:FindFirstChild("HumanoidRootPart")
if not hrp then return true end
local state = char:GetAttribute("State")
return state == "Downed" or state == "Dead"
end
local function KYS_ToFGetMobileShootButton()
local playerGui = LocalPlayer:FindFirstChild("PlayerGui")
local survivorMob = playerGui and playerGui:FindFirstChild("Survivor-mob")
local controls = survivorMob and survivorMob:FindFirstChild("Controls")
local guiMob = controls and controls:FindFirstChild("Gui-mob")
if not guiMob then return nil end
local directNames = { "attack", "Attack", "shoot", "Shoot", "fire", "Fire" }
for _, name in ipairs(directNames) do
local btn = guiMob:FindFirstChild(name, true)
if btn and btn:IsA("GuiObject") then return btn end
end
for _, obj in ipairs(guiMob:GetDescendants()) do
if obj:IsA("GuiButton") and obj.Visible then
return obj
end
end
return guiMob:IsA("GuiObject") and guiMob or nil
end
local function KYS_ToFIsTouchOnShootButton(input)
local shootButton = KYS_ToFGetMobileShootButton()
if not (shootButton and shootButton.Visible) then return false end
local pos = input.Position
local absPos = shootButton.AbsolutePosition
local absSize = shootButton.AbsoluteSize
return pos.X >= absPos.X and pos.X <= absPos.X + absSize.X
and pos.Y >= absPos.Y and pos.Y <= absPos.Y + absSize.Y
end
local function KYS_ToFDoShoot()
if not VD.TOF_SilentAim then return end
AimConfig.Pistol_BlockKnocked = VD.TOF_BlockKnocked ~= false
local char = LocalPlayer.Character
if char then
if AimConfig.Pistol_BlockKnocked and IsDowned(char) then
return
end
end
local targetDirection, gunObject, originPos, targetPos = KYS_ToFGetTargetPosition()
if not (targetDirection and gunObject and targetPos and originPos) then return end
local tofEvent = KYS_ToFGetEvent()
if not tofEvent then return end
local freshDirection = targetPos - originPos
if freshDirection.Magnitude < 0.1 then return end
pcall(function()
tofEvent:FireServer(gunObject, freshDirection.Unit)
end)
end
local KYS_ToFModeButtons = {}
local function KYS_ToFRefreshTargetButtons()
local modes = {
Killer = { Color3.fromRGB(180, 45, 45), Color3.fromRGB(255, 180, 180) },
Survivors = { Color3.fromRGB(25, 80, 150), Color3.fromRGB(160, 210, 255) },
Zombie = { Color3.fromRGB(120, 80, 10), Color3.fromRGB(255, 210, 100) },
}
for modeName, btn in pairs(KYS_ToFModeButtons) do
if btn and btn.Parent then
local active = modeName == (VD.TOF_TargetMode or "Killer")
local colors = modes[modeName]
btn.BackgroundColor3 = active and colors[1] or Color3.fromRGB(30, 32, 40)
btn.TextColor3 = active and colors[2] or Color3.fromRGB(155, 160, 175)
end
end
end
local function KYS_ToFSetTargetMode(modeName, notify)
if modeName ~= "Killer" and modeName ~= "Survivors" and modeName ~= "Zombie" then return end
VD.TOF_TargetMode = modeName
KYS_ToFRefreshTargetButtons()
if notify then VD_Notify("Target Mode", modeName, 1) end
end
local function KYS_ToFCreateTargetSelectorUI()
local parent = GetSafeGuiParent()
if not parent then return end
if KYS_ToFState.TargetGui and KYS_ToFState.TargetGui.Parent then return end
local old = parent:FindFirstChild("ToFTargetSelector")
if old then pcall(function() old:Destroy() end) end
local gui = Instance.new("ScreenGui")
gui.Name = "ToFTargetSelector"
gui.ResetOnSpawn = false
gui.IgnoreGuiInset = true
gui.Parent = parent
local frame = Instance.new("Frame")
frame.Name = "Main"
frame.Size = UDim2.new(0, 180, 0, 126)
frame.Position = KYS_ToFState.SavedUIPos
frame.BackgroundColor3 = Color3.fromRGB(16, 18, 24)
frame.BorderSizePixel = 0
frame.Active = true
frame.Parent = gui
Instance.new("UICorner", frame).CornerRadius = UDim.new(0, 8)
local stroke = Instance.new("UIStroke", frame)
stroke.Color = Color3.fromRGB(96, 72, 160)
stroke.Thickness = 1
local header = Instance.new("Frame")
header.Size = UDim2.new(1, 0, 0, 28)
header.BackgroundColor3 = Color3.fromRGB(24, 26, 34)
header.BorderSizePixel = 0
header.Parent = frame
Instance.new("UICorner", header).CornerRadius = UDim.new(0, 8)
local headerFix = Instance.new("Frame")
headerFix.Size = UDim2.new(1, 0, 0, 10)
headerFix.Position = UDim2.new(0, 0, 1, -10)
headerFix.BackgroundColor3 = Color3.fromRGB(24, 26, 34)
headerFix.BorderSizePixel = 0
headerFix.Parent = header
local headerDiv = Instance.new("Frame")
headerDiv.Size = UDim2.new(1, 0, 0, 1)
headerDiv.Position = UDim2.new(0, 0, 1, -1)
headerDiv.BackgroundColor3 = Color3.fromRGB(48, 42, 72)
headerDiv.BorderSizePixel = 0
headerDiv.Parent = header
local dragArea = Instance.new("Frame")
dragArea.Size = UDim2.new(1, -34, 1, 0)
dragArea.BackgroundTransparency = 1
dragArea.Parent = header
local minimizeBtn = Instance.new("TextButton")
minimizeBtn.Size = UDim2.new(0, 28, 1, 0)
minimizeBtn.Position = UDim2.new(1, -30, 0, 0)
minimizeBtn.BackgroundTransparency = 1
minimizeBtn.Text = "-"
minimizeBtn.TextColor3 = Color3.fromRGB(185, 190, 205)
minimizeBtn.Font = Enum.Font.GothamBold
minimizeBtn.TextSize = 14
minimizeBtn.Parent = header
local headerLbl = Instance.new("TextLabel")
headerLbl.Size = UDim2.new(1, -44, 1, 0)
headerLbl.Position = UDim2.new(0, 10, 0, 0)
headerLbl.BackgroundTransparency = 1
headerLbl.Text = "TOF TARGET MODE"
headerLbl.TextColor3 = Color3.fromRGB(210, 215, 230)
headerLbl.Font = Enum.Font.GothamBold
headerLbl.TextSize = 10
headerLbl.TextXAlignment = Enum.TextXAlignment.Left
headerLbl.Parent = header
local btnContainer = Instance.new("Frame")
btnContainer.Size = UDim2.new(1, -16, 0, 86)
btnContainer.Position = UDim2.new(0, 8, 0, 34)
btnContainer.BackgroundTransparency = 1
btnContainer.Parent = frame
local layout = Instance.new("UIListLayout", btnContainer)
layout.FillDirection = Enum.FillDirection.Vertical
layout.SortOrder = Enum.SortOrder.LayoutOrder
layout.Padding = UDim.new(0, 5)
local isMinimized = false
minimizeBtn.MouseButton1Click:Connect(function()
isMinimized = not isMinimized
minimizeBtn.Text = isMinimized and "+" or "-"
btnContainer.Visible = not isMinimized
frame.Size = isMinimized and UDim2.new(0, 180, 0, 28) or UDim2.new(0, 180, 0, 126)
end)
local modes = {
{ Internal = "Killer", Display = "KILLER K" },
{ Internal = "Survivors", Display = "SURVIVOR J" },
{ Internal = "Zombie", Display = "ZOMBIE L" },
}
KYS_ToFModeButtons = {}
for i, mode in ipairs(modes) do
local btn = Instance.new("TextButton")
btn.Size = UDim2.new(1, 0, 0, 25)
btn.BorderSizePixel = 0
btn.Font = Enum.Font.GothamBold
btn.TextSize = 11
btn.Text = mode.Display
btn.TextXAlignment = Enum.TextXAlignment.Center
btn.LayoutOrder = i
btn.Parent = btnContainer
Instance.new("UICorner", btn).CornerRadius = UDim.new(0, 6)
local btnStroke = Instance.new("UIStroke", btn)
btnStroke.Color = Color3.fromRGB(58, 62, 78)
btnStroke.Thickness = 1
btn.MouseButton1Click:Connect(function()
KYS_ToFSetTargetMode(mode.Internal, false)
end)
btn.InputEnded:Connect(function(input)
if input.UserInputType == Enum.UserInputType.Touch then
KYS_ToFSetTargetMode(mode.Internal, false)
end
end)
KYS_ToFModeButtons[mode.Internal] = btn
end
KYS_ToFRefreshTargetButtons()
local dragging = false
local dragStart, startPos
dragArea.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
dragStart = input.Position
startPos = frame.Position
dragging = true
end
end)
dragArea.InputEnded:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
dragging = false
end
end)
UserInputService.InputChanged:Connect(function(input)
if not dragging then return end
if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then
local delta = input.Position - dragStart
local newPos = UDim2.new(
startPos.X.Scale,
startPos.X.Offset + delta.X,
startPos.Y.Scale,
startPos.Y.Offset + delta.Y
)
frame.Position = newPos
KYS_ToFState.SavedUIPos = newPos
end
end)
KYS_ToFState.TargetGui = gui
end
local function KYS_ToFDestroyTargetSelectorUI()
if KYS_ToFState.TargetGui then
pcall(function() KYS_ToFState.TargetGui:Destroy() end)
KYS_ToFState.TargetGui = nil
end
KYS_ToFModeButtons = {}
end
local function KYS_ToFStartConnection()
if KYS_ToFState.Connection then return end
KYS_ToFState.Connection = RunService.Heartbeat:Connect(function()
if not VD.TOF_SilentAim or not KYS_ToFState.IsAiming then
if KYS_ToFState.LaserBeam then KYS_ToFState.LaserBeam.Transparency = 1 end
return
end
local _, _, originPos, targetPos = KYS_ToFGetTargetPosition()
if originPos and targetPos then
pcall(function()
local char = LocalPlayer.Character
local hrp = char and char:FindFirstChild("HumanoidRootPart")
if hrp and not char:GetAttribute("IsCarried") then
hrp.CFrame = CFrame.new(hrp.Position, Vector3.new(targetPos.X, hrp.Position.Y, targetPos.Z))
end
end)
if VD.TOF_Laser then
KYS_ToFUpdateLaser(originPos, targetPos)
elseif KYS_ToFState.LaserBeam then
KYS_ToFState.LaserBeam.Transparency = 1
end
elseif KYS_ToFState.LaserBeam then
KYS_ToFState.LaserBeam.Transparency = 1
end
end)
end
local function KYS_ToFStopConnection()
if KYS_ToFState.Connection then
pcall(function() KYS_ToFState.Connection:Disconnect() end)
KYS_ToFState.Connection = nil
end
KYS_ToFState.IsAiming = false
KYS_ToFClearLaser()
end
local function KYS_ToFDisconnectInputs()
if KYS_ToFState.InputBegan then pcall(function() KYS_ToFState.InputBegan:Disconnect() end) end
if KYS_ToFState.InputEnded then pcall(function() KYS_ToFState.InputEnded:Disconnect() end) end
KYS_ToFState.InputBegan = nil
KYS_ToFState.InputEnded = nil
end
local KYS_SetToFSilentAim
local function KYS_ToFEnsureInputs()
if not KYS_ToFState.InputBegan then
KYS_ToFState.InputBegan = UserInputService.InputBegan:Connect(function(input, gameProcessed)
if gameProcessed then return end
local keyCode = KYS_ToFKeyCodes[VD.TOF_Key or "None"]
if keyCode and input.UserInputType == Enum.UserInputType.Keyboard and input.KeyCode == keyCode then
KYS_SetToFSilentAim(not VD.TOF_SilentAim)
return
end
if not VD.TOF_SilentAim then return end
if input.UserInputType == Enum.UserInputType.MouseButton1
or (input.UserInputType == Enum.UserInputType.Touch and KYS_ToFIsTouchOnShootButton(input)) then
KYS_ToFState.IsAiming = true
if input.UserInputType == Enum.UserInputType.Touch then
KYS_ToFState.TouchInput = input
end
KYS_ToFDoShoot()
return
end
if input.UserInputType == Enum.UserInputType.Keyboard then
if input.KeyCode == Enum.KeyCode.K then
KYS_ToFSetTargetMode("Killer", true)
elseif input.KeyCode == Enum.KeyCode.J then
KYS_ToFSetTargetMode("Survivors", true)
elseif input.KeyCode == Enum.KeyCode.L then
KYS_ToFSetTargetMode("Zombie", true)
end
end
end)
end
if not KYS_ToFState.InputEnded then
KYS_ToFState.InputEnded = UserInputService.InputEnded:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1
or (input.UserInputType == Enum.UserInputType.Touch and input == KYS_ToFState.TouchInput) then
KYS_ToFState.IsAiming = false
if input == KYS_ToFState.TouchInput then KYS_ToFState.TouchInput = nil end
if KYS_ToFState.LaserBeam then KYS_ToFState.LaserBeam.Transparency = 1 end
end
end)
end
end
KYS_SetToFSilentAim = function(enabled)
VD.TOF_SilentAim = enabled and true or false
KYS_ToFEnsureInputs()
if VD.TOF_SilentAim then
KYS_ToFCreateTargetSelectorUI()
KYS_ToFStartConnection()
else
KYS_ToFDestroyTargetSelectorUI()
KYS_ToFStopConnection()
end
end
KYS_ToFEnsureInputs()
getgenv().KYS_SetToFSilentAim = KYS_SetToFSilentAim
getgenv().KYS_ToFClearLaser = KYS_ToFClearLaser
getgenv().KYS_ToFSetTargetMode = KYS_ToFSetTargetMode
end)();
-- =====================================================
-- HIDE SURVIVOR ICON
-- =====================================================
(function()
local KYS_HideSurvivorIconState = {
Connection = nil,
Originals = {},
}
local KYS_HideSurvivorIconImage = "rbxassetid://80891639562743"
local KYS_HideSurvivorIconText = "NxH"
local function KYS_GetSurvivorSlots()
local slots = {}
local playerGui = LocalPlayer:FindFirstChild("PlayerGui")
if not playerGui then return slots end
for _, gui in ipairs(playerGui:GetChildren()) do
if not (gui:IsA("ScreenGui") and gui.Name:match("%-mob$")) then
continue
end
local frame = gui and gui:FindFirstChild("Frame")
if frame then
for i = 1, 5 do
local survivorFrame = frame:FindFirstChild("Survivor" .. i)
local imageLabel = survivorFrame and survivorFrame:FindFirstChild("ImageLabel")
local textLabel = survivorFrame and survivorFrame:FindFirstChild("TextLabel")
if (imageLabel and imageLabel:IsA("ImageLabel")) or (textLabel and textLabel:IsA("TextLabel")) then
table.insert(slots, {
ImageLabel = imageLabel,
TextLabel = textLabel,
})
end
end
end
end
return slots
end
local function KYS_ApplyHideSurvivorIcon()
for _, slot in ipairs(KYS_GetSurvivorSlots()) do
local imageLabel = slot.ImageLabel
if imageLabel and imageLabel:IsA("ImageLabel") then
if not KYS_HideSurvivorIconState.Originals[imageLabel] then
KYS_HideSurvivorIconState.Originals[imageLabel] = {
Image = imageLabel.Image,
ImageColor3 = imageLabel.ImageColor3,
ImageTransparency = imageLabel.ImageTransparency,
ImageRectOffset = imageLabel.ImageRectOffset,
ImageRectSize = imageLabel.ImageRectSize,
ScaleType = imageLabel.ScaleType,
}
end
imageLabel.Image = KYS_HideSurvivorIconImage
imageLabel.ImageColor3 = Color3.fromRGB(255, 255, 255)
imageLabel.ImageTransparency = 0
imageLabel.ImageRectOffset = Vector2.new(0, 0)
imageLabel.ImageRectSize = Vector2.new(0, 0)
imageLabel.ScaleType = Enum.ScaleType.Crop
end
local textLabel = slot.TextLabel
if textLabel and textLabel:IsA("TextLabel") then
if not KYS_HideSurvivorIconState.Originals[textLabel] then
KYS_HideSurvivorIconState.Originals[textLabel] = {
Text = textLabel.Text,
TextColor3 = textLabel.TextColor3,
TextTransparency = textLabel.TextTransparency,
}
end
textLabel.Text = KYS_HideSurvivorIconText
textLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
textLabel.TextTransparency = 0
end
end
end
local function KYS_RestoreSurvivorIcons()
for object, original in pairs(KYS_HideSurvivorIconState.Originals) do
if object and object.Parent and original then
pcall(function()
if original.Image ~= nil and object:IsA("ImageLabel") then
object.Image = original.Image
object.ImageColor3 = original.ImageColor3
object.ImageTransparency = original.ImageTransparency
object.ImageRectOffset = original.ImageRectOffset
object.ImageRectSize = original.ImageRectSize
object.ScaleType = original.ScaleType
end
if original.Text ~= nil and object:IsA("TextLabel") then
object.Text = original.Text
object.TextColor3 = original.TextColor3
object.TextTransparency = original.TextTransparency
end
end)
end
end
KYS_HideSurvivorIconState.Originals = {}
end
local function KYS_SetHideSurvivorIcon(enabled)
VD.VIS_HideSurvivorIcon = enabled and true or false
if VD.VIS_HideSurvivorIcon then
KYS_ApplyHideSurvivorIcon()
if not KYS_HideSurvivorIconState.Connection then
KYS_HideSurvivorIconState.Connection = RunService.Heartbeat:Connect(function()
if VD.VIS_HideSurvivorIcon then
KYS_ApplyHideSurvivorIcon()
end
end)
end
else
if KYS_HideSurvivorIconState.Connection then
pcall(function() KYS_HideSurvivorIconState.Connection:Disconnect() end)
KYS_HideSurvivorIconState.Connection = nil
end
KYS_RestoreSurvivorIcons()
end
end
getgenv().KYS_SetHideSurvivorIcon = KYS_SetHideSurvivorIcon
end)();
-- =====================================================
-- SHOW HOOK COUNTER (SURVIVOR & KILLER)
-- =====================================================
(function()
local KYS_HookCounterState = {
Connection = nil,
}
local function KYS_UpdateHookCounter(enabled)
local playerGui = LocalPlayer:FindFirstChild("PlayerGui")
if not playerGui then return end
for _, gui in ipairs(playerGui:GetChildren()) do
if gui:IsA("ScreenGui") and gui.Name:match("%-mob$") then
local frame = gui:FindFirstChild("Frame")
if frame then
for i = 1, 5 do
local survivorFrame = frame:FindFirstChild("Survivor" .. i)
local imageLabel = survivorFrame and survivorFrame:FindFirstChild("ImageLabel")
local textLabel = survivorFrame and survivorFrame:FindFirstChild("TextLabel")
if imageLabel and textLabel then
-- Handle original Counter if exists
local counter = imageLabel:FindFirstChild("Counter")
if counter then
pcall(function()
if counter.Visible ~= enabled then
counter.Visible = enabled
end
end)
end
-- Handle Custom Text Hook Counter
local labelName = "KYS_CustomHookCounter"
local customLabel = imageLabel:FindFirstChild(labelName)
if enabled then
local playerName = textLabel.Text
local player = nil
for _, p in ipairs(game.Players:GetPlayers()) do
if p.Name == playerName or p.DisplayName == playerName then
player = p
break
end
end
local hookCount = 0
if player then
hookCount = player:GetAttribute("HookCount") or (player.Character and player.Character:GetAttribute("HookCount")) or 0
end
if not customLabel then
customLabel = Instance.new("TextLabel")
customLabel.Name = labelName
customLabel.Size = UDim2.new(1, 0, 0.35, 0)
customLabel.Position = UDim2.new(0, 0, 0.65, 0)
customLabel.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
customLabel.BackgroundTransparency = 0.5
customLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
customLabel.TextStrokeColor3 = Color3.fromRGB(0, 0, 0)
customLabel.TextStrokeTransparency = 0
customLabel.TextScaled = true
customLabel.Font = Enum.Font.SourceSansBold
customLabel.Parent = imageLabel
end
customLabel.Visible = true
if hookCount >= 3 then
customLabel.Text = "DEAD"
customLabel.TextColor3 = Color3.fromRGB(255, 75, 75)
else
customLabel.Text = "Hooks: " .. tostring(hookCount)
if hookCount == 2 then
customLabel.TextColor3 = Color3.fromRGB(255, 140, 0)
elseif hookCount == 1 then
customLabel.TextColor3 = Color3.fromRGB(255, 215, 0)
else
customLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
end
end
else
if customLabel then
customLabel.Visible = false
end
end
end
end
end
end
end
end
local function KYS_SetShowHookCounter(enabled)
VD.VIS_ShowHookCounter = enabled and true or false
if VD.VIS_ShowHookCounter then
KYS_UpdateHookCounter(true)
if not KYS_HookCounterState.Connection then
KYS_HookCounterState.Connection = RunService.Heartbeat:Connect(function()
if VD.VIS_ShowHookCounter then
KYS_UpdateHookCounter(true)
end
end)
end
else
if KYS_HookCounterState.Connection then
pcall(function() KYS_HookCounterState.Connection:Disconnect() end)
KYS_HookCounterState.Connection = nil
end
KYS_UpdateHookCounter(false)
-- Delete the custom label to keep GUI clean
local playerGui = LocalPlayer:FindFirstChild("PlayerGui")
if playerGui then
for _, gui in ipairs(playerGui:GetChildren()) do
if gui:IsA("ScreenGui") and gui.Name:match("%-mob$") then
local frame = gui:FindFirstChild("Frame")
if frame then
for i = 1, 5 do
local survivorFrame = frame:FindFirstChild("Survivor" .. i)
local imageLabel = survivorFrame and survivorFrame:FindFirstChild("ImageLabel")
customLabel = imageLabel and imageLabel:FindFirstChild("KYS_CustomHookCounter")
if customLabel then
pcall(function() customLabel:Destroy() end)
end
end
end
end
end
end
end
end
getgenv().KYS_SetShowHookCounter = KYS_SetShowHookCounter
end)();
-- =====================================================
-- SHOW PING & FPS
-- =====================================================
(function()
local KYS_PingFPSState = {
Gui = nil,
Connection = nil,
Frames = 0,
LastUpdate = 0,
}
local function KYS_GetPingValue()
local ok, value = pcall(function()
local stats = game:GetService("Stats")
local network = stats and stats:FindFirstChild("Network")
local serverStats = network and network:FindFirstChild("ServerStatsItem")
local dataPing = serverStats and serverStats:FindFirstChild("Data Ping")
if dataPing and dataPing.GetValue then
return math.floor(dataPing:GetValue() + 0.5)
end
if dataPing and dataPing.GetValueString then
local raw = tostring(dataPing:GetValueString())
return tonumber(raw:match("%d+"))
end
end)
if ok and value then return value end
return nil
end
local function KYS_CreatePingFPSGui()
local parent = GetSafeGuiParent()
if not parent then return nil end
local old = parent:FindFirstChild("KYS_PingFPSGui")
if old then pcall(function() old:Destroy() end) end
local sg = Instance.new("ScreenGui")
sg.Name = "KYS_PingFPSGui"
sg.ResetOnSpawn = false
sg.IgnoreGuiInset = true
sg.Parent = parent
local frame = Instance.new("Frame")
frame.Name = "Main"
frame.Size = UDim2.new(0, 118, 0, 44)
frame.Position = UDim2.new(0, 12, 0, 120)
frame.BackgroundColor3 = Color3.fromRGB(16, 18, 24)
frame.BackgroundTransparency = 0.1
frame.BorderSizePixel = 0
frame.Parent = sg
Instance.new("UICorner", frame).CornerRadius = UDim.new(0, 8)
local stroke = Instance.new("UIStroke", frame)
stroke.Color = Color3.fromRGB(96, 72, 160)
stroke.Thickness = 1
local label = Instance.new("TextLabel")
label.Name = "PingFPSLabel"
label.Size = UDim2.new(1, -12, 1, -8)
label.Position = UDim2.new(0, 6, 0, 4)
label.BackgroundTransparency = 1
label.Font = Enum.Font.GothamBold
label.TextSize = 13
label.TextColor3 = Color3.fromRGB(230, 235, 245)
label.TextXAlignment = Enum.TextXAlignment.Left
label.TextYAlignment = Enum.TextYAlignment.Center
label.Text = "PING: --ms\nFPS: --"
label.Parent = frame
return sg
end
local function KYS_SetShowPingFPS(enabled)
VD.VIS_ShowPingFPS = enabled and true or false
if VD.VIS_ShowPingFPS then
KYS_PingFPSState.Gui = KYS_PingFPSState.Gui or KYS_CreatePingFPSGui()
KYS_PingFPSState.Frames = 0
KYS_PingFPSState.LastUpdate = tick()
if not KYS_PingFPSState.Connection then
KYS_PingFPSState.Connection = RunService.RenderStepped:Connect(function()
if not VD.VIS_ShowPingFPS then return end
KYS_PingFPSState.Frames = KYS_PingFPSState.Frames + 1
local now = tick()
if now - KYS_PingFPSState.LastUpdate < 0.5 then return end
local fps = math.floor(KYS_PingFPSState.Frames / (now - KYS_PingFPSState.LastUpdate) + 0.5)
local ping = KYS_GetPingValue()
KYS_PingFPSState.Frames = 0
KYS_PingFPSState.LastUpdate = now
if not (KYS_PingFPSState.Gui and KYS_PingFPSState.Gui.Parent) then
KYS_PingFPSState.Gui = KYS_CreatePingFPSGui()
end
local label = KYS_PingFPSState.Gui and KYS_PingFPSState.Gui:FindFirstChild("PingFPSLabel", true)
if label then
label.Text = ("PING: %sms\nFPS: %d"):format(ping and tostring(ping) or "--", fps)
end
end)
end
else
if KYS_PingFPSState.Connection then
pcall(function() KYS_PingFPSState.Connection:Disconnect() end)
KYS_PingFPSState.Connection = nil
end
if KYS_PingFPSState.Gui then
pcall(function() KYS_PingFPSState.Gui:Destroy() end)
KYS_PingFPSState.Gui = nil
end
end
end
getgenv().KYS_SetShowPingFPS = KYS_SetShowPingFPS
end)();
-- =====================================================
-- SILENT AIM: FLASHLIGHT
-- =====================================================
(function()
local KYS_FlashlightAimState = {
Connection = nil,
LaserBeam = nil,
FlashlightPart = nil,
Active = false,
}
local function KYS_GetFlashlightActivateRemote()
local remotes = ReplicatedStorage:FindFirstChild("Remotes")
local items = remotes and remotes:FindFirstChild("Items")
local flashlight = items and items:FindFirstChild("Flashlight")
local activate = flashlight and flashlight:FindFirstChild("Activate")
if activate and activate:IsA("RemoteEvent") then
return activate
end
return nil
end
local function KYS_GetFlashlightTargetPart(char)
if not char then return nil end
local preferred = VD.FLASH_TargetPart or "Head"
local part = char:FindFirstChild(preferred)
if part and part:IsA("BasePart") then return part end
return char:FindFirstChild("Head")
or char:FindFirstChild("UpperTorso")
or char:FindFirstChild("Torso")
or char:FindFirstChild("HumanoidRootPart")
end
local function KYS_IsAliveCharacter(char)
local hum = char and char:FindFirstChildOfClass("Humanoid")
if not hum or hum.Health <= 0 then return false end
local state = char:GetAttribute("State")
return state ~= "Dead"
end
local function KYS_GetFlashlightTarget()
local localChar = LocalPlayer.Character
local localRoot = localChar and localChar:FindFirstChild("HumanoidRootPart")
if not localRoot then return nil end
local maxRange = tonumber(VD.FLASH_Range) or 120
local bestPart, bestScore = nil, math.huge
for _, player in ipairs(Players:GetPlayers()) do
if player ~= LocalPlayer and player.Character and KYS_IsAliveCharacter(player.Character) then
local isKiller = player.Team and player.Team.Name == "Killer"
if isKiller then
local part = KYS_GetFlashlightTargetPart(player.Character)
if part then
local dist = (localRoot.Position - part.Position).Magnitude
if dist <= maxRange and dist < bestScore then
bestScore = dist
bestPart = part
end
end
end
end
end
return bestPart
end
local function KYS_ClearFlashlightLaser()
if KYS_FlashlightAimState.LaserBeam then
pcall(function() KYS_FlashlightAimState.LaserBeam:Destroy() end)
KYS_FlashlightAimState.LaserBeam = nil
end
end
local function KYS_GetFlashlightOrigin(cam)
local source = KYS_FlashlightAimState.FlashlightPart
if typeof and typeof(source) == "Instance" then
if source:IsA("BasePart") then
return source.Position
end
local part = source:FindFirstChildWhichIsA("BasePart", true)
if part then
return part.Position
end
end
local char = LocalPlayer.Character
local hand = char and (
char:FindFirstChild("RightHand")
or char:FindFirstChild("Right Arm")
or char:FindFirstChild("HumanoidRootPart")
)
if hand and hand:IsA("BasePart") then
return hand.Position
end
return cam and cam.CFrame.Position or nil
end
local function KYS_UpdateFlashlightLaser(originPos, targetPos)
if not KYS_FlashlightAimState.LaserBeam then
local laser = Instance.new("Part")
laser.Name = "FlashlightSilentAimLaser"
laser.Anchored = true
laser.CanCollide = false
laser.CanTouch = false
laser.CastShadow = false
laser.Material = Enum.Material.Neon
laser.Color = Color3.fromRGB(80, 220, 255)
laser.Transparency = 0
laser.Parent = workspace
KYS_FlashlightAimState.LaserBeam = laser
end
local dist = (targetPos - originPos).Magnitude
if dist < 0.1 then return end
local laser = KYS_FlashlightAimState.LaserBeam
laser.Size = Vector3.new(0.16, 0.16, dist)
laser.CFrame = CFrame.new((originPos + targetPos) / 2, targetPos)
laser.Transparency = 0
end
local function KYS_FlashlightAimStep()
if false then
if KYS_FlashlightAimState.LaserBeam then
KYS_FlashlightAimState.LaserBeam.Transparency = 1
end
return
end
if not (VD.FLASH_SilentAim and KYS_FlashlightAimState.Active) then
if KYS_FlashlightAimState.LaserBeam then
KYS_FlashlightAimState.LaserBeam.Transparency = 1
end
return
end
local cam = workspace.CurrentCamera
local targetPart = KYS_GetFlashlightTarget()
if not (cam and targetPart) then
if KYS_FlashlightAimState.LaserBeam then
KYS_FlashlightAimState.LaserBeam.Transparency = 1
end
return
end
local targetPos = targetPart.Position
local smooth = math.clamp(tonumber(VD.FLASH_Smooth) or 0.35, 0.05, 1)
local originPos = KYS_GetFlashlightOrigin(cam)
if VD.FLASH_Laser and originPos then
KYS_UpdateFlashlightLaser(originPos, targetPos)
elseif KYS_FlashlightAimState.LaserBeam then
KYS_FlashlightAimState.LaserBeam.Transparency = 1
end
pcall(function()
cam.CFrame = cam.CFrame:Lerp(CFrame.new(cam.CFrame.Position, targetPos), smooth)
end)
pcall(function()
local char = LocalPlayer.Character
local hrp = char and char:FindFirstChild("HumanoidRootPart")
if hrp then
hrp.CFrame = CFrame.new(hrp.Position, Vector3.new(targetPos.X, hrp.Position.Y, targetPos.Z))
end
end)
end
local function KYS_StartFlashlightSilentAim()
getgenv().KYS_FlashlightActivateRemote = KYS_GetFlashlightActivateRemote()
if KYS_FlashlightAimState.Connection then return end
KYS_FlashlightAimState.Connection = RunService.RenderStepped:Connect(KYS_FlashlightAimStep)
end
local function KYS_StopFlashlightSilentAim()
KYS_FlashlightAimState.Active = false
KYS_FlashlightAimState.FlashlightPart = nil
KYS_ClearFlashlightLaser()
if KYS_FlashlightAimState.Connection then
pcall(function() KYS_FlashlightAimState.Connection:Disconnect() end)
KYS_FlashlightAimState.Connection = nil
end
end
local function KYS_SetFlashlightSilentAim(enabled)
if enabled and false then
VD.FLASH_SilentAim = false
KYS_StopFlashlightSilentAim()
return
end
VD.FLASH_SilentAim = enabled and true or false
if VD.FLASH_SilentAim then
KYS_StartFlashlightSilentAim()
else
KYS_StopFlashlightSilentAim()
end
end
getgenv().KYS_SetFlashlightSilentAim = KYS_SetFlashlightSilentAim
getgenv().KYS_ClearFlashlightLaser = KYS_ClearFlashlightLaser
getgenv().KYS_SetFlashlightAimActive = function(active, flashlightPart)
KYS_FlashlightAimState.Active = active and true or false
if KYS_FlashlightAimState.Active and flashlightPart then
KYS_FlashlightAimState.FlashlightPart = flashlightPart
elseif not KYS_FlashlightAimState.Active then
KYS_FlashlightAimState.FlashlightPart = nil
end
if not KYS_FlashlightAimState.Active and KYS_FlashlightAimState.LaserBeam then
KYS_FlashlightAimState.LaserBeam.Transparency = 1
end
end
getgenv().KYS_FlashlightActivateRemote = KYS_GetFlashlightActivateRemote()
end)();
local VD_Parry = {
PreciseDistanceEnabled = true,
MaxDistance = 14,
CanParry = true,
IsParrying = false,
CooldownEndTime = 0,
KillerAnimator = nil,
KillerChar = nil,
KillerPlayer = nil,
Connections = {},
FiredTracks = {},
RenderConnection = nil,
LastStatus = "Off",
}
local VD_ParryAnimation = Instance.new("Animation")
VD_ParryAnimation.AnimationId = "rbxassetid://109133187196613"
local VD_ParryRange = Instance.new("CylinderHandleAdornment")
VD_ParryRange.Name = "KYS_ParryRange"
VD_ParryRange.Radius = VD.SURV_ParryDistance or 8
VD_ParryRange.InnerRadius = math.max(0.1, (VD.SURV_ParryDistance or 8) - 0.15)
VD_ParryRange.Height = 0.01
VD_ParryRange.Color3 = Color3.fromRGB(128, 128, 128)
VD_ParryRange.AlwaysOnTop = false
VD_ParryRange.Adornee = Workspace:FindFirstChildOfClass("Terrain")
VD_ParryRange.Transparency = 1
VD_ParryRange.Parent = GetSafeGuiParent()
local VD_ATTACK_ANIMS = {
["rbxassetid://113255068724446"] = true,
["rbxassetid://74968262036854"] = true,
["rbxassetid://110355011987939"] = true,
["rbxassetid://139369275981139"] = true,
["rbxassetid://132817836308238"] = true,
["rbxassetid://129784271201071"] = true,
["rbxassetid://133963973694098"] = true,
["rbxassetid://117042998468241"] = true,
["rbxassetid://105374834496520"] = true,
["rbxassetid://111920872708571"] = true,
["rbxassetid://78432063483146"] = true,
["rbxassetid://118907603246885"] = true,
["rbxassetid://138720291317243"] = true,
["rbxassetid://115244153053858"] = true,
["rbxassetid://130593238885843"] = true,
["rbxassetid://122812055447896"] = true,
["rbxassetid://78935059863801"] = true,
["rbxassetid://135002183282873"] = true,
["rbxassetid://121216847022485"] = true,
}
function VD_UpdateParryRange()
if not VD.SURV_ShowParryCircle or not VD.SURV_AutoParry then
VD_ParryRange.Transparency = 1
return
end
local char = LocalPlayer.Character
local root = char and char:FindFirstChild("HumanoidRootPart")
if not root then
VD_ParryRange.Transparency = 1
return
end
local currentMaxDist = VD_Parry.PreciseDistanceEnabled and (VD.SURV_ParryDistance or 8) or VD_Parry.MaxDistance
VD_ParryRange.Transparency = 0.4
VD_ParryRange.Radius = currentMaxDist
VD_ParryRange.InnerRadius = math.max(0.1, currentMaxDist - 0.15)
local params = RaycastParams.new()
params.FilterDescendantsInstances = { char }
params.FilterType = Enum.RaycastFilterType.Exclude
local ray = Workspace:Raycast(root.Position, Vector3.new(0, -15, 0), params)
local groundPos = ray and ray.Position or (root.Position - Vector3.new(0, 3, 0))
VD_ParryRange.CFrame = CFrame.new(groundPos + Vector3.new(0, 0.05, 0)) * CFrame.Angles(math.pi / 2, 0, 0)
end
function VD_GetParryRemote()
local remotes = ReplicatedStorage:FindFirstChild("Remotes")
local items = remotes and remotes:FindFirstChild("Items")
local dagger = items and items:FindFirstChild("Parrying Dagger")
return dagger and dagger:FindFirstChild("parry")
end
function VD_RefreshLocalCombatCache()
local char = LocalPlayer.Character
Root = char and char:FindFirstChild("HumanoidRootPart") or Root
Humanoid = char and char:FindFirstChildOfClass("Humanoid") or Humanoid
end
local State = { ParryCooldown = false, ParryCooldownThread = nil }
local Attached = {}
function IsKiller(p) return p.Team and p.Team.Name == "Killer" end
function IsDowned(char) local hrp = char and char:FindFirstChild("HumanoidRootPart"); if not hrp then return true end; local state = char:GetAttribute("State"); return state == "Downed" or state == "Dead" end
function TriggerCrouch()
local startT = tick()
task.spawn(function()
local char = LocalPlayer.Character
if not char then return end
local humanoid = char:FindFirstChildOfClass("Humanoid")
-- Toggle crouch ON: replicate mobile SurvivorAnimationsController logic
pcall(function() char:SetAttribute("Crouching", true) end)
pcall(function() ReplicatedStorage.Remotes.Mechanics.ChangeAttribute:FireServer("Crouchingserver", true) end)
pcall(function() ReplicatedStorage.Remotes.Chase.Runevent:FireServer(char, false) end)
if humanoid then pcall(function() humanoid:ChangeState(Enum.HumanoidStateType.Landed) end) end
-- Also fire the mobile crouch button signal for visual sync
pcall(function()
local survMob = LocalPlayer:FindFirstChildOfClass("PlayerGui"):FindFirstChild("Survivor-mob")
if survMob then
local controls = survMob:FindFirstChild("Controls")
if controls then
local crouchBtn = controls:FindFirstChild("crouch")
if crouchBtn then
firesignal(crouchBtn.MouseButton1Click)
end
end
end
end)
while tick() - startT < 1.2 do
pcall(function() ReplicatedStorage.Remotes.Mechanics.ChangeAttribute:FireServer("Crouchingserver", true) end)
task.wait(0.1)
end
-- Toggle crouch OFF
pcall(function() char:SetAttribute("Crouching", false) end)
pcall(function() ReplicatedStorage.Remotes.Mechanics.ChangeAttribute:FireServer("Crouchingserver", false) end)
if humanoid then pcall(function() humanoid:ChangeState(Enum.HumanoidStateType.Landed) end) end
-- Fire crouch button again to toggle OFF visually
pcall(function()
local survMob = LocalPlayer:FindFirstChildOfClass("PlayerGui"):FindFirstChild("Survivor-mob")
if survMob then
local controls = survMob:FindFirstChild("Controls")
if controls then
local crouchBtn = controls:FindFirstChild("crouch")
if crouchBtn then
firesignal(crouchBtn.MouseButton1Click)
end
end
end
end)
end)
end
function IsSafeToParry(char) return not IsDowned(char) end
local player = LocalPlayer
-- ==================== AUTO PARRY SENSOR ====================
function tapMobileParryButton()
local playerGui = LocalPlayer:FindFirstChild("PlayerGui")
if not playerGui then return end
local survivorMob = playerGui:FindFirstChild("Survivor-mob")
local parryBtn = survivorMob
and survivorMob:FindFirstChild("Controls")
and survivorMob.Controls:FindFirstChild("Gui-mob")
if parryBtn and parryBtn.Visible then
if firesignal then
pcall(function()
firesignal(parryBtn.MouseButton1Down)
task.wait(0.01)
firesignal(parryBtn.MouseButton1Up)
end)
end
else
pcall(function()
if mouse2click then
mouse2click()
return
end
if mouse2press and mouse2release then
mouse2press()
task.wait(0.01)
mouse2release()
return
end
if MouseButton2Click then
MouseButton2Click()
return
end
VirtualInputManager:SendMouseButtonEvent(0, 0, 1, true, game, 0)
task.wait(0.01)
VirtualInputManager:SendMouseButtonEvent(0, 0, 1, false, game, 0)
end)
end
end
function ExecuteParry()
if State.ParryCooldown then return end
pcall(function()
local parryRemote = game:GetService("ReplicatedStorage"):FindFirstChild("Remotes"):FindFirstChild("Items"):FindFirstChild("Parrying Dagger"):FindFirstChild("parry")
if parryRemote then
for i = 1, 10 do parryRemote:FireServer() end
end
task.spawn(tapMobileParryButton)
end)
end
function ListenToParryResult()
task.spawn(function()
local remotes = game:GetService("ReplicatedStorage"):WaitForChild("Remotes", 5)
local dagger = remotes and remotes:WaitForChild("Items", 5):WaitForChild("Parrying Dagger", 5)
local parryResultRemote = dagger and dagger:WaitForChild("parryResult", 5)
if parryResultRemote then
parryResultRemote.OnClientEvent:Connect(function(arg1, arg2)
local cdDur = tonumber(arg2) or ((arg1 == true) and 90 or 60)
State.ParryCooldown = true
if State.ParryCooldownThread then task.cancel(State.ParryCooldownThread) end
State.ParryCooldownThread = task.delay(cdDur, function()
State.ParryCooldown = false
end)
end)
end
end)
end
ListenToParryResult()
function AttachParrySensor(kChar)
if not kChar or Attached[kChar] then return end
Attached[kChar] = true
local humanoid = kChar:FindFirstChild("Humanoid")
if not humanoid then
humanoid = kChar:WaitForChild("Humanoid", 5)
if not humanoid then return end
end
local animator = humanoid:FindFirstChildOfClass("Animator")
if not animator then
animator = humanoid:WaitForChild("Animator", 5)
if not animator then return end
end
humanoid.ChildAdded:Connect(function(child)
if child:IsA("Animator") then
Attached[kChar] = nil
AttachParrySensor(kChar)
end
end)
kChar.AncestryChanged:Connect(function(_, parent)
if not parent then
Attached[kChar] = nil
end
end)
animator.AnimationPlayed:Connect(function(track)
local animId = track.Animation and track.Animation.AnimationId or ""
local id = animId:match("%d+")
-- Auto Crouch untuk Abyssal S1
if id == "80411309607666" and VD.AutoCrouch then
local myChar = LocalPlayer.Character
if IsDowned(myChar) then return end
local myHRP = myChar and myChar:FindFirstChild("HumanoidRootPart")
local kHRP = kChar:FindFirstChild("HumanoidRootPart")
if myHRP and kHRP then
local dist = (myHRP.Position - kHRP.Position).Magnitude
if dist <= 40 then
TriggerCrouch()
end
end
return
end
local attackName = VD_ATTACK_ANIMS[animId]
if not attackName then return end
if not VD.SURV_AutoParry then return end
if State.ParryCooldown then return end
if VD.Ignored_Skills_List and VD.Ignored_Skills_List[attackName] then return end
local myChar = LocalPlayer.Character
if IsDowned(myChar) or not IsSafeToParry(myChar) then return end
local myHRP = myChar and myChar:FindFirstChild("HumanoidRootPart")
local kHRP = kChar:FindFirstChild("HumanoidRootPart")
if not myHRP or not kHRP then return end
local delta = myHRP.Position - kHRP.Position
local startDistance = delta.Magnitude
if VD.SURV_ParryAggressive then
local aggressiveRadius = 12
local detectionRadius = VD.SURV_ParryDistance + 5
if startDistance > detectionRadius then return end
if startDistance <= aggressiveRadius then
ExecuteParry()
else
local tracker
local startTime = os.clock()
tracker = RunService.Heartbeat:Connect(function()
if os.clock() - startTime >= 1.5 or State.ParryCooldown or not myHRP or not kHRP or IsDowned(myChar) then
if tracker then tracker:Disconnect() end
return
end
local currentDist = (myHRP.Position - kHRP.Position).Magnitude
if currentDist <= aggressiveRadius then
ExecuteParry()
if tracker then tracker:Disconnect() end
end
end)
end
else
if startDistance > VD.SURV_ParryDistance then return end
local myPosFlat = Vector3.new(myHRP.Position.X, 0, myHRP.Position.Z)
local kPosFlat = Vector3.new(kHRP.Position.X, 0, kHRP.Position.Z)
local flatDelta = myPosFlat - kPosFlat
if flatDelta.Magnitude > 0 then
local flatDirection = flatDelta.Unit
local kLookFlat = Vector3.new(kHRP.CFrame.LookVector.X, 0, kHRP.CFrame.LookVector.Z).Unit
local isFacing = kLookFlat:Dot(flatDirection)
if isFacing < 0.6 then return end
end
ExecuteParry()
end
end)
end
function TryAttach(p)
if p ~= player and IsKiller(p) and p.Character then
AttachParrySensor(p.Character)
end
end
function SetupPlayer(p)
if p == player then return end
p.CharacterAdded:Connect(function() TryAttach(p) end)
p:GetPropertyChangedSignal("Team"):Connect(function() TryAttach(p) end)
if p.Character then TryAttach(p) end
end
-- Setup Parry Sensor
for _, p in pairs(Players:GetPlayers()) do
SetupPlayer(p)
end
Players.PlayerAdded:Connect(SetupPlayer)
task.spawn(function()
while true do
task.wait(5)
for _, p in pairs(Players:GetPlayers()) do
TryAttach(p)
end
end
end)
function VD_SetAutoParry(state)
VD.SURV_AutoParry = state == true
if VD.SURV_AutoParry then
if not _G.VD_ParryRenderConnection then
_G.VD_ParryRenderConnection = game:GetService('RunService').RenderStepped:Connect(function()
if type(VD_UpdateParryRange) == 'function' then VD_UpdateParryRange() end
end)
end
else
if typeof(VD_ParryRange) == 'Instance' then VD_ParryRange.Transparency = 1 end
if _G.VD_ParryRenderConnection then
_G.VD_ParryRenderConnection:Disconnect()
_G.VD_ParryRenderConnection = nil
end
end
end
local PlayerGui = LocalPlayer:WaitForChild("PlayerGui")
local AutoSkill = {
LastGoalRotation = nil,
HasClickedThisGoal = false,
LastLineRotation = nil,
LastTick = nil,
WasActive = false,
PerfectLastGoalRotation = nil,
PerfectHasClickedThisGoal = false,
PerfectLastLineRotation = nil,
PerfectLastTick = nil,
PerfectWasActive = false,
InstantLastTriggerTick = 0,
InstantLastGoalRotation = 0,
InstantLastGoalInstance = nil,
InstantCurrentGoalID = 0,
InstantHasClicked = false,
InstantForcingRotation = false,
InstantRotationConnection = nil,
}
function VD_PressSkill()
if isMobile then
local btn = PlayerGui:FindFirstChild("check", true)
if btn and btn:IsA("GuiObject") then
local pos = btn.AbsolutePosition
local size = btn.AbsoluteSize
local inset = GuiService:GetGuiInset()
local x = pos.X + (size.X / 2) + inset.X
local y = pos.Y + (size.Y / 2) + inset.Y
pcall(function() VirtualInputManager:SendTouchEvent(8822, Enum.UserInputState.Begin.Value, x, y) end)
task.wait(0.01)
pcall(function() VirtualInputManager:SendTouchEvent(8822, Enum.UserInputState.End.Value, x, y) end)
pcall(function()
if firesignal and btn.MouseButton1Click then
firesignal(btn.MouseButton1Click)
end
end)
end
else
pcall(function() VirtualInputManager:SendKeyEvent(true, Enum.KeyCode.Space, false, game) end)
task.wait(0.01)
pcall(function() VirtualInputManager:SendKeyEvent(false, Enum.KeyCode.Space, false, game) end)
end
end
function VD_GetSkillCheck()
for _, guiName in ipairs({ "SkillCheckPromptGui", "SkillCheckPromptGui-con" }) do
local gui = PlayerGui:FindFirstChild(guiName, true)
if gui then
local check = gui:FindFirstChild("Check", true)
if check and check.Visible then
local line = check:FindFirstChild("Line", true)
local goal = check:FindFirstChild("Goal", true)
if line and goal then return line, goal end
end
end
end
end
function VD_AngularDelta(from, to)
local d = to - from
if d > 180 then d = d - 360 end
if d < -180 then d = d + 360 end
return d
end
function VD_CrossedZone(prevLr, lr, startPos, endPos)
local function inZone(r)
if startPos > endPos then
return r >= startPos or r <= endPos
end
return r >= startPos and r <= endPos
end
if inZone(lr) then return true end
if prevLr == nil then return false end
local delta = VD_AngularDelta(prevLr, lr)
local steps = math.abs(math.floor(delta))
if steps < 2 then return false end
local stepSize = delta / steps
for i = 1, steps do
if inZone((prevLr + stepSize * i) % 360) then return true end
end
return false
end
function VD_NormalSkillcheckUpdate()
local line, goal = VD_GetSkillCheck()
if not (line and goal) then
AutoSkill.LastGoalRotation = nil
AutoSkill.HasClickedThisGoal = false
AutoSkill.LastLineRotation = nil
AutoSkill.LastTick = nil
AutoSkill.WasActive = false
return
end
local lr = line.Rotation % 360
local gr = goal.Rotation % 360
local now = os.clock()
if not AutoSkill.WasActive then
AutoSkill.WasActive = true
AutoSkill.HasClickedThisGoal = false
AutoSkill.LastGoalRotation = gr
AutoSkill.LastLineRotation = lr
AutoSkill.LastTick = now
return
end
if AutoSkill.LastGoalRotation and math.abs(VD_AngularDelta(AutoSkill.LastGoalRotation, gr)) > 5 then
AutoSkill.HasClickedThisGoal = false
AutoSkill.LastLineRotation = nil
AutoSkill.LastTick = nil
end
AutoSkill.LastGoalRotation = gr
if AutoSkill.HasClickedThisGoal then
AutoSkill.LastLineRotation = lr
AutoSkill.LastTick = now
return
end
if AutoSkill.LastLineRotation and AutoSkill.LastTick then
local dt = now - AutoSkill.LastTick
if dt > 0 then
local lineSpeed = VD_AngularDelta(AutoSkill.LastLineRotation, lr) / dt
local predicted = (lr + lineSpeed * dt * 0) % 360
if VD_CrossedZone(AutoSkill.LastLineRotation, predicted, (gr + 104) % 360, (gr + 109) % 360) then
AutoSkill.HasClickedThisGoal = true
task.spawn(function()
task.wait(0.03)
VD_PressSkill()
end)
end
end
end
AutoSkill.LastLineRotation = lr
AutoSkill.LastTick = now
end
function VD_PerfectSkillcheckUpdate()
local line, goal = VD_GetSkillCheck()
if not (line and goal) then
AutoSkill.PerfectLastGoalRotation = nil
AutoSkill.PerfectHasClickedThisGoal = false
AutoSkill.PerfectLastLineRotation = nil
AutoSkill.PerfectLastTick = nil
AutoSkill.PerfectWasActive = false
return
end
local lr = line.Rotation % 360
local gr = goal.Rotation % 360
local now = os.clock()
if not AutoSkill.PerfectWasActive then
AutoSkill.PerfectWasActive = true
AutoSkill.PerfectHasClickedThisGoal = false
AutoSkill.PerfectLastGoalRotation = gr
AutoSkill.PerfectLastLineRotation = lr
AutoSkill.PerfectLastTick = now
return
end
if AutoSkill.PerfectLastGoalRotation and math.abs(VD_AngularDelta(AutoSkill.PerfectLastGoalRotation, gr)) > 5 then
AutoSkill.PerfectHasClickedThisGoal = false
AutoSkill.PerfectLastLineRotation = nil
AutoSkill.PerfectLastTick = nil
end
AutoSkill.PerfectLastGoalRotation = gr
if AutoSkill.PerfectHasClickedThisGoal then
AutoSkill.PerfectLastLineRotation = lr
AutoSkill.PerfectLastTick = now
return
end
if AutoSkill.PerfectLastLineRotation and AutoSkill.PerfectLastTick then
local dt = now - AutoSkill.PerfectLastTick
if dt > 0 then
local lineSpeed = VD_AngularDelta(AutoSkill.PerfectLastLineRotation, lr) / dt
local predicted = (lr + lineSpeed * dt * 0) % 360
if VD_CrossedZone(AutoSkill.PerfectLastLineRotation, predicted, (gr + 104) % 360, (gr + 108) % 360) then
AutoSkill.PerfectHasClickedThisGoal = true
VD_PressSkill()
end
end
end
AutoSkill.PerfectLastLineRotation = lr
AutoSkill.PerfectLastTick = now
end
function VD_InstantSkillcheckUpdate()
if AutoSkill.InstantHasClicked then return end
-- Exact Fallens.lua logic: non-recursive FindFirstChild
local prompt = PlayerGui:FindFirstChild("SkillCheckPromptGui")
if not prompt then
prompt = PlayerGui:FindFirstChild("SkillCheckPromptGui-con")
end
if not prompt then return end
local check = prompt:FindFirstChild("Check")
if not check or not check.Visible then return end
local line = check:FindFirstChild("Line")
local goal = check:FindFirstChild("Goal")
if not line or not goal then return end
-- Exact Fallens.lua logic: raw rotation WITHOUT modulo
line.Rotation = goal.Rotation + 109
AutoSkill.InstantHasClicked = true
task.spawn(function()
VD_PressSkill()
task.wait(0.2)
AutoSkill.InstantHasClicked = false
end)
end
RunService.RenderStepped:Connect(function()
if not VD.AutoSkillcheck then return end
if VD.AutoSkillcheckMode == "Perfect" then
VD_PerfectSkillcheckUpdate()
elseif VD.AutoSkillcheckMode == "Instant" then
VD_InstantSkillcheckUpdate()
else
VD_NormalSkillcheckUpdate()
end
end)
function VD_SetAutoSkillcheck(state)
VD.AutoSkillcheck = state == true
if not VD.AutoSkillcheck then
if AutoSkill.InstantRotationConnection then
AutoSkill.InstantRotationConnection:Disconnect()
AutoSkill.InstantRotationConnection = nil
end
AutoSkill.InstantHasClicked = false
AutoSkill.WasActive = false
AutoSkill.PerfectWasActive = false
VD_Notify("Auto Skillcheck", "Disabled", 2)
else
VD_Notify("Auto Skillcheck", "Enabled (" .. tostring(VD.AutoSkillcheckMode or "Normal") .. " Mode)", 2)
end
end
-- =====================================================
-- INSTANT HEAL & AUTO HEAL ALL
-- =====================================================
InstantHealSelf = false
AutoHealAll = false
AutoSelfUnhook = false
GodFlashlight = false
AutoHealAllConnection = nil
InstantHealConnection = nil
AutoSelfUnhookConnection = nil
GodFlashlightConnection = nil
function doSelfHeal()
local char = LocalPlayer.Character
if not char then return end
local skillCheckRemote = ReplicatedStorage.Remotes.Healing.SkillCheckResultEvent
pcall(function() skillCheckRemote:FireServer("success", 100, char) end)
end
function doSelfHealTrue()
local char = LocalPlayer.Character
if not char then return end
local healRemote = ReplicatedStorage.Remotes.Healing.HealEvent
local hrp = char:FindFirstChild("HumanoidRootPart")
if not hrp then return end
pcall(function() healRemote:FireServer(hrp, true) end)
end
function doSelfHealFalse()
local char = LocalPlayer.Character
if not char then return end
local healRemote = ReplicatedStorage.Remotes.Healing.HealEvent
local hrp = char:FindFirstChild("HumanoidRootPart")
if not hrp then return end
pcall(function() healRemote:FireServer(hrp, false) end)
end
function doOthersHealSkillCheck(targetPlayer)
if not targetPlayer or not targetPlayer.Character then return end
local skillCheckRemote = ReplicatedStorage.Remotes.Healing.SkillCheckResultEvent
pcall(function() skillCheckRemote:FireServer("success", 100, targetPlayer.Character) end)
end
function doOthersHealTrue(targetPlayer)
if not targetPlayer or not targetPlayer.Character then return end
local targetHRP = targetPlayer.Character:FindFirstChild("HumanoidRootPart")
if not targetHRP then return end
local healRemote = ReplicatedStorage.Remotes.Healing.HealEvent
pcall(function() healRemote:FireServer(targetHRP, true) end)
end
function doOthersHealFalse(targetPlayer)
if not targetPlayer or not targetPlayer.Character then return end
local targetHRP = targetPlayer.Character:FindFirstChild("HumanoidRootPart")
if not targetHRP then return end
local healRemote = ReplicatedStorage.Remotes.Healing.HealEvent
pcall(function() healRemote:FireServer(targetHRP, false) end)
end
function setInstantHealSelf(v)
InstantHealSelf = v
if v then
local healActive = false
if InstantHealConnection then InstantHealConnection:Disconnect() end
InstantHealConnection = RunService.Heartbeat:Connect(function(dt)
if not InstantHealSelf then return end
local myChar = LocalPlayer.Character
local myHum = myChar and myChar:FindFirstChildOfClass("Humanoid")
if not myHum then return end
if myHum.Health >= myHum.MaxHealth * 0.9 then
-- Auto stop heal when HP is full
if healActive then
healActive = false
doSelfHealFalse()
end
return
end
-- Check if game cancelled our heal (e.g. player moved)
if healActive then
local checkScript = myChar:FindFirstChild("CheckInterractable")
if checkScript and not checkScript:GetAttribute("isHealing") then
-- Game cancelled our heal, reset so we can restart
healActive = false
end
end
-- Start heal (or restart after being cancelled)
if not healActive then
healActive = true
doSelfHealTrue()
end
end)
else
if InstantHealConnection then InstantHealConnection:Disconnect(); InstantHealConnection = nil end
-- Send stop heal just in case
pcall(doSelfHealFalse)
end
end
function setAutoHealAll(v)
AutoHealAll = v
if v then
local activeHeals = {} -- [player] = true if we're currently healing them
if AutoHealAllConnection then AutoHealAllConnection:Disconnect() end
AutoHealAllConnection = RunService.Heartbeat:Connect(function(dt)
if not AutoHealAll then return end
for _, player in ipairs(Players:GetPlayers()) do
if player ~= LocalPlayer and player.Character then
local hrp = player.Character:FindFirstChild("HumanoidRootPart")
local hum = player.Character:FindFirstChildOfClass("Humanoid")
if hum and hum.Health > 0 and hum.Health < hum.MaxHealth * 0.9 and hrp then
-- Check if game cancelled our heal on this player (e.g. we or they moved)
if activeHeals[player] then
local myChar = LocalPlayer.Character
local checkScript = myChar and myChar:FindFirstChild("CheckInterractable")
if checkScript and not checkScript:GetAttribute("isHealing") then
activeHeals[player] = nil
end
end
-- Start healing this player if not already
if not activeHeals[player] then
activeHeals[player] = true
doOthersHealTrue(player)
end
else
-- Stop healing if HP is full or dead
if activeHeals[player] then
activeHeals[player] = nil
doOthersHealFalse(player)
end
end
else
-- Player left or no character
if activeHeals[player] then
activeHeals[player] = nil
pcall(function() doOthersHealFalse(player) end)
end
end
end
end)
else
if AutoHealAllConnection then AutoHealAllConnection:Disconnect(); AutoHealAllConnection = nil end
end
end
-- =====================================================
-- GEN BOOST BYPASS
-- =====================================================
GenBypass = {
Enabled = false,
Button = nil,
UI = nil,
Cache = {},
CacheTimer = 0,
Processed = {},
HotkeyCode = Enum.KeyCode.G,
}
function GB_GetAllGenerators()
local now = tick()
if now - GenBypass.CacheTimer < 5 then return GenBypass.Cache end
GenBypass.Cache = {}
GenBypass.CacheTimer = now
local mapFolder = workspace:FindFirstChild("Map")
if not mapFolder then return GenBypass.Cache end
pcall(function()
for _, v in pairs(mapFolder:GetDescendants()) do
if not v:IsA("Model") then continue end
if v.Name ~= "Generator" then continue end
local isReal = v:GetAttribute("RepairProgress") ~= nil
or v:GetAttribute("kickcount") ~= nil
or v:GetAttribute("ProgressRepair") ~= nil
if isReal then table.insert(GenBypass.Cache, v) end
end
end)
return GenBypass.Cache
end
function GB_GetPoints(genModel)
local points = {}
pcall(function()
for _, obj in pairs(genModel:GetChildren()) do
if obj.Name:find("GeneratorPoint") and obj:IsA("BasePart") then
table.insert(points, obj)
end
end
end)
return points
end
function GB_WaitRepairing(point, timeout)
local start = tick()
while tick() - start < (timeout or 1) do
if point:GetAttribute("IsRepairing") == true then return true end
task.wait(0.05)
end
return false
end
function GB_DoRepair(targetPoint)
local genModel = targetPoint.Parent
if GenBypass.Processed[genModel] then return end
GenBypass.Processed[genModel] = true
local character = LocalPlayer.Character
local hrp = character and character:FindFirstChild("HumanoidRootPart")
if not hrp then GenBypass.Processed[genModel] = nil return end
local RepairEvent = ReplicatedStorage:FindFirstChild("Remotes")
and ReplicatedStorage.Remotes:FindFirstChild("Generator")
and ReplicatedStorage.Remotes.Generator:FindFirstChild("RepairEvent")
local originalCFrame = hrp.CFrame
pcall(function()
for _, point in pairs(GB_GetPoints(genModel)) do
if point ~= targetPoint and point.Parent then
hrp.Anchored = true
hrp.CFrame = point.CFrame
task.wait(0.15)
pcall(function() if RepairEvent then RepairEvent:FireServer(point, true) end end)
if not GB_WaitRepairing(point, 0.8) then
pcall(function() if RepairEvent then RepairEvent:FireServer(point, false) end end)
task.wait(0.1)
hrp.CFrame = point.CFrame
task.wait(0.15)
pcall(function() if RepairEvent then RepairEvent:FireServer(point, true) end end)
GB_WaitRepairing(point, 0.5)
end
hrp.Anchored = false
task.wait(0.05)
end
end
end)
pcall(function()
if hrp and hrp.Parent then
hrp.Anchored = false
hrp.CFrame = originalCFrame
end
end)
task.wait(0.1)
pcall(function() if RepairEvent then RepairEvent:FireServer(targetPoint, false) end end)
end
function GB_GetNearestPoint()
local character = LocalPlayer.Character
local hrp = character and character:FindFirstChild("HumanoidRootPart")
if not hrp then return nil end
local bestPoint, bestDist = nil, math.huge
for _, gen in pairs(GB_GetAllGenerators()) do
for _, point in pairs(GB_GetPoints(gen)) do
local d = (hrp.Position - point.Position).Magnitude
if d < bestDist then bestDist = d; bestPoint = point end
end
end
return bestPoint, bestDist
end
function GB_IsPromptVisible()
local ok, frame = pcall(function()
return LocalPlayer.PlayerGui.pcprompts.Frame.GeneratorRepair
end)
return ok and frame and frame.Visible
end
function GB_UpdateButton()
if GenBypass.Button then
GenBypass.Button.Visible = GenBypass.Enabled and isMobile
end
end
function GB_CreateButton()
local oldUI = LocalPlayer.PlayerGui:FindFirstChild("BypassGenUI")
if oldUI then oldUI:Destroy() end
GenBypass.UI = Instance.new("ScreenGui")
GenBypass.UI.Name = "BypassGenUI"
GenBypass.UI.ResetOnSpawn = false
GenBypass.UI.IgnoreGuiInset = true
GenBypass.UI.Parent = LocalPlayer:WaitForChild("PlayerGui")
GenBypass.Button = Instance.new("ImageButton")
GenBypass.Button.Name = "BypassGenButton"
GenBypass.Button.Size = UDim2.new(0, 60, 0, 60)
GenBypass.Button.Position = UDim2.new(0.88, 0, 0.55, 0)
GenBypass.Button.AnchorPoint = Vector2.new(0.5, 0.5)
GenBypass.Button.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
GenBypass.Button.BackgroundTransparency = 0.15
GenBypass.Button.AutoButtonColor = true
GenBypass.Button.Visible = false
GenBypass.Button.ZIndex = 10
GenBypass.Button.Parent = GenBypass.UI
Instance.new("UICorner", GenBypass.Button).CornerRadius = UDim.new(1, 0)
local s = Instance.new("UIStroke", GenBypass.Button)
s.Color = Color3.fromRGB(255, 255, 255)
s.Thickness = 2; s.Transparency = 0.2
local lbl = Instance.new("TextLabel", GenBypass.Button)
lbl.Size = UDim2.new(1, 0, 1, 0)
lbl.BackgroundTransparency = 1
lbl.Text = "BYPASS"
lbl.TextColor3 = Color3.fromRGB(255, 255, 255)
lbl.TextScaled = true
lbl.Font = Enum.Font.GothamBlack
lbl.ZIndex = 11
local function applyShine(obj, baseColor)
local grad = Instance.new("UIGradient", obj)
grad.Color = ColorSequence.new({
ColorSequenceKeypoint.new(0, baseColor),
ColorSequenceKeypoint.new(0.4, baseColor),
ColorSequenceKeypoint.new(0.5, Color3.fromRGB(255, 255, 255)),
ColorSequenceKeypoint.new(0.6, baseColor),
ColorSequenceKeypoint.new(1, baseColor)
})
grad.Rotation = 45
grad.Offset = Vector2.new(-1, -1)
task.spawn(function()
local TweenService = game:GetService("TweenService")
local ti = TweenInfo.new(2, Enum.EasingStyle.Linear, Enum.EasingDirection.InOut, -1)
local tw = TweenService:Create(grad, ti, { Offset = Vector2.new(1, 1) })
tw:Play()
end)
end
applyShine(GenBypass.Button, Color3.fromRGB(20, 0, 30))
applyShine(lbl, Color3.fromRGB(255, 0, 255))
applyShine(s, Color3.fromRGB(255, 0, 255))
GenBypass.Button.MouseButton1Click:Connect(function()
if not GenBypass.Enabled then return end
local bestPoint, bestDist = GB_GetNearestPoint()
if bestPoint and bestDist <= 8 then GB_DoRepair(bestPoint) end
end)
end
GB_CreateButton()
LocalPlayer.CharacterAdded:Connect(function()
task.wait(0.5)
GB_CreateButton()
GB_UpdateButton()
end)
UserInputService.InputBegan:Connect(function(input, gp)
if gp then return end
if isMobile then return end
if input.KeyCode == GenBypass.HotkeyCode and GenBypass.Enabled then
if not GB_IsPromptVisible() then return end
local bestPoint, bestDist = GB_GetNearestPoint()
if not bestPoint or bestDist > 8 then return end
if GenBypass.Processed[bestPoint.Parent] then return end
GB_DoRepair(bestPoint)
end
end)
UserInputService.InputBegan:Connect(function(input, gp)
if gp then return end
if input.UserInputType ~= Enum.UserInputType.MouseButton1 then return end
if not GenBypass.Enabled then return end
if not GB_IsPromptVisible() then return end
local bestPoint, bestDist = GB_GetNearestPoint()
if not bestPoint or bestDist > 8 then return end
if GenBypass.Processed[bestPoint.Parent] then return end
GB_DoRepair(bestPoint)
end)
task.spawn(function()
while true do
task.wait(2)
local hrp = LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("HumanoidRootPart")
if hrp then
for genModel in pairs(GenBypass.Processed) do
if not genModel or not genModel.Parent then
GenBypass.Processed[genModel] = nil
continue
end
local nearAny = false
for _, point in pairs(GB_GetPoints(genModel)) do
if point.Parent and (hrp.Position - point.Position).Magnitude <= 10 then
nearAny = true; break
end
end
if not nearAny then GenBypass.Processed[genModel] = nil end
end
end
end
end)
function setGenBypass(v)
GenBypass.Enabled = v
GB_UpdateButton()
end
function setAutoCrouch(v) VD.AutoCrouch = v end
-- =====================================================
-- INF GRAB (MYERS)
-- =====================================================
MyersGrabData = {
Enabled = false,
UI = nil,
Button = nil,
DragLocked = false,
Dragging = false,
DragStart = nil,
DragStartPos = nil,
HotkeyCode = Enum.KeyCode.H,
}
function getMyersTarget()
local char = LocalPlayer.Character
if not char then return nil end
local myHRP = char:FindFirstChild("HumanoidRootPart")
if not myHRP then return nil end
local candidates = {}
for _, player in ipairs(game:GetService("Players"):GetPlayers()) do
if player ~= LocalPlayer and player.Character then
local hrp = player.Character:FindFirstChild("HumanoidRootPart")
local hum = player.Character:FindFirstChildOfClass("Humanoid")
if hrp and hum and hum.Health > 0 then
table.insert(candidates, {
player = player,
dist = (hrp.Position - myHRP.Position).Magnitude,
health = hum.Health
})
end
end
end
table.sort(candidates, function(a, b) return a.dist < b.dist end)
for _, c in ipairs(candidates) do
return c.player
end
return nil
end
function doMyersGrab()
if not MyersGrabData.Enabled then return end
local target = getMyersTarget()
if not target or not target.Character then return end
pcall(function()
local ReplicatedStorage = game:GetService("ReplicatedStorage")
ReplicatedStorage.Remotes.Killers.Stalker.grab:FireServer(target.Character)
end)
end
function setupMyersGrabBtn()
local oldUI = LocalPlayer.PlayerGui:FindFirstChild("MyersGrabUI")
if oldUI then oldUI:Destroy() end
MyersGrabData.UI = Instance.new("ScreenGui")
MyersGrabData.UI.Name = "MyersGrabUI"
MyersGrabData.UI.ResetOnSpawn = false
MyersGrabData.UI.IgnoreGuiInset = true
MyersGrabData.UI.Parent = LocalPlayer:WaitForChild("PlayerGui")
MyersGrabData.Button = Instance.new("ImageButton")
MyersGrabData.Button.Name = "MyersGrabButton"
MyersGrabData.Button.Size = UDim2.new(0, 60, 0, 60)
MyersGrabData.Button.Position = UDim2.new(0.7, 0, 0.75, 0)
MyersGrabData.Button.AnchorPoint = Vector2.new(0.5, 0.5)
MyersGrabData.Button.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
MyersGrabData.Button.BackgroundTransparency = 0.15
MyersGrabData.Button.AutoButtonColor = true
MyersGrabData.Button.Visible = false
MyersGrabData.Button.ZIndex = 10
MyersGrabData.Button.Parent = MyersGrabData.UI
Instance.new("UICorner", MyersGrabData.Button).CornerRadius = UDim.new(1, 0)
local s = Instance.new("UIStroke", MyersGrabData.Button)
s.Color = Color3.fromRGB(255, 255, 255)
s.Thickness = 2; s.Transparency = 0.2
local lbl = Instance.new("TextLabel", MyersGrabData.Button)
lbl.Size = UDim2.new(1, 0, 1, 0)
lbl.BackgroundTransparency = 1
lbl.Text = "GRAB"
lbl.TextColor3 = Color3.fromRGB(255, 255, 255)
lbl.TextScaled = true
lbl.Font = Enum.Font.GothamBlack
lbl.ZIndex = 11
local function applyShine(obj, baseColor)
local grad = Instance.new("UIGradient", obj)
grad.Color = ColorSequence.new({
ColorSequenceKeypoint.new(0, baseColor),
ColorSequenceKeypoint.new(0.4, baseColor),
ColorSequenceKeypoint.new(0.5, Color3.fromRGB(255, 255, 255)),
ColorSequenceKeypoint.new(0.6, baseColor),
ColorSequenceKeypoint.new(1, baseColor)
})
grad.Rotation = 45
grad.Offset = Vector2.new(-1, -1)
task.spawn(function()
local TweenService = game:GetService("TweenService")
local ti = TweenInfo.new(2, Enum.EasingStyle.Linear, Enum.EasingDirection.InOut, -1)
local tw = TweenService:Create(grad, ti, { Offset = Vector2.new(1, 1) })
tw:Play()
end)
end
applyShine(MyersGrabData.Button, Color3.fromRGB(20, 0, 30))
applyShine(lbl, Color3.fromRGB(255, 0, 255))
applyShine(s, Color3.fromRGB(255, 0, 255))
MyersGrabData.Button.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
if MyersGrabData.DragLocked then return end
MyersGrabData.Dragging = true
MyersGrabData.DragStart = input.Position
MyersGrabData.DragStartPos = MyersGrabData.Button.Position
end
end)
game:GetService("UserInputService").InputChanged:Connect(function(input)
if MyersGrabData.Dragging and not MyersGrabData.DragLocked and (input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch) then
local delta = input.Position - MyersGrabData.DragStart
MyersGrabData.Button.Position = UDim2.new(
MyersGrabData.DragStartPos.X.Scale, MyersGrabData.DragStartPos.X.Offset + delta.X,
MyersGrabData.DragStartPos.Y.Scale, MyersGrabData.DragStartPos.Y.Offset + delta.Y
)
end
end)
MyersGrabData.Button.InputEnded:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
MyersGrabData.Dragging = false
end
end)
MyersGrabData.Button.MouseButton1Click:Connect(doMyersGrab)
end
setupMyersGrabBtn()
LocalPlayer.CharacterAdded:Connect(function()
task.wait(0.5)
setupMyersGrabBtn()
if MyersGrabData.Button then
MyersGrabData.Button.Visible = MyersGrabData.Enabled
end
end)
game:GetService("UserInputService").InputBegan:Connect(function(input, gp)
if gp then return end
if input.KeyCode == MyersGrabData.HotkeyCode and MyersGrabData.Enabled then
doMyersGrab()
end
end)
function setMyersGrab(v)
MyersGrabData.Enabled = v
if MyersGrabData.Button then
MyersGrabData.Button.Visible = v
end
end
function setMyersDragLocked(v)
MyersGrabData.DragLocked = v
end
-- =====================================================
-- VEIL AIMBOT (PREDICTION)
-- =====================================================
VeilConfig = {
Enabled = false,
ShowFOV = true,
ShowTargetLaser = true,
FOV = 150,
SpearSpeed = 165,
Gravity = workspace.Gravity * 0.5,
MaxDist = 200,
AutoPredict = false,
TargetPart = "Torso",
HorizontalPredictFactor = 1.0,
}
VeilState = {
chargingSpear = false,
touchInput = nil,
attackCooldown = false,
passiveCooldown = false,
remoteHooked = false,
lastPredictedPos = nil,
}
VeilVelocityCache = {}
VeilDraw = {
FOVCircle = Drawing.new("Circle"),
Highlight = Instance.new("Highlight"),
Tracer = Drawing.new("Circle"),
}
VeilDraw.FOVCircle.Color = Color3.fromRGB(255, 0, 255)
VeilDraw.FOVCircle.Thickness = 1.5
VeilDraw.FOVCircle.Filled = false
VeilDraw.FOVCircle.Visible = false
VeilDraw.Highlight.Name = "VD_VeilTarget"
VeilDraw.Highlight.FillColor = Color3.fromRGB(255, 0, 0)
VeilDraw.Highlight.OutlineColor = Color3.fromRGB(255, 255, 255)
VeilDraw.Highlight.FillTransparency = 0.5
VeilDraw.Highlight.OutlineTransparency = 0
VeilDraw.Tracer.Thickness = 2
VeilDraw.Tracer.Radius = 5
VeilDraw.Tracer.Color = Color3.fromRGB(255, 0, 255)
VeilDraw.Tracer.Filled = true
VeilDraw.Tracer.Visible = false
function Veil_GetRealVelocity(part, playerName)
if not part then return Vector3.zero end
local currentPos = part.Position
local currentTime = tick()
if not VeilVelocityCache[playerName] then
VeilVelocityCache[playerName] = {lastPos = currentPos, lastTime = currentTime, velocity = Vector3.zero}
return Vector3.zero
end
local cache = VeilVelocityCache[playerName]
local dt = currentTime - cache.lastTime
if dt > 0.01 then
local rawVelocity = (currentPos - cache.lastPos) / dt
if rawVelocity.Magnitude < 100 then
cache.velocity = cache.velocity:Lerp(rawVelocity, 0.4)
end
end
cache.lastPos = currentPos
cache.lastTime = currentTime
return cache.velocity
end
function veil_getTargetPart(char)
if VeilConfig.TargetPart == "Head" then
return char:FindFirstChild("Head")
elseif VeilConfig.TargetPart == "Root" then
return char:FindFirstChild("HumanoidRootPart")
else
return char:FindFirstChild("Torso")
or char:FindFirstChild("UpperTorso")
or char:FindFirstChild("HumanoidRootPart")
end
end
function veil_getClosestSurvivor()
local myChar = LocalPlayer.Character
local myRoot = myChar and myChar:FindFirstChild("HumanoidRootPart")
if not myRoot then return nil end
local cam = workspace.CurrentCamera
local center = Vector2.new(cam.ViewportSize.X / 2, cam.ViewportSize.Y / 2)
local bestDist = VeilConfig.FOV
local bestTarget = nil
for _, p in ipairs(game:GetService("Players"):GetPlayers()) do
if p ~= LocalPlayer and p.Team and p.Team.Name == "Survivors" and p.Character then
local char = p.Character
local hum = char:FindFirstChildOfClass("Humanoid")
local part = veil_getTargetPart(char)
if hum and hum.Health > 0 and part then
local dist3D = (part.Position - myRoot.Position).Magnitude
if dist3D <= VeilConfig.MaxDist then
local screenPos, onScreen = cam:WorldToViewportPoint(part.Position)
if onScreen then
local dist2D = (Vector2.new(screenPos.X, screenPos.Y) - center).Magnitude
if dist2D < bestDist then
bestDist = dist2D
bestTarget = { Player = p, Part = part }
end
end
end
end
end
end
return bestTarget
end
function veil_setupInterceptor()
if VeilState.remoteHooked then return end
task.spawn(function()
pcall(function()
local oldNamecall
oldNamecall = hookmetamethod(game, "__namecall", function(self, ...)
local args = {...}
local method = getnamecallmethod()
if not checkcaller() then
if string.lower(method) == "kick" then
return nil
end
if method == "GetAttribute" then
if args[1] == "LakeMist" and VD.KILLER_InfLakeMist then
local caller = getcallingscript()
if caller and caller.Name == "AwardLog" then return 0 end
return false
end
if args[1] == "Pursuit" and VD.KILLER_InfPursuit then
local caller = getcallingscript()
if caller and caller.Name == "AwardLog" then return 0 end
return false
end
end
if method == "GetAttributes" then
if VD.KILLER_InfLakeMist or VD.KILLER_InfPursuit then
local attrs = oldNamecall(self, ...)
if type(attrs) == "table" then
local caller = getcallingscript()
if caller and caller.Name == "AwardLog" then
if VD.KILLER_InfLakeMist then attrs.LakeMist = 0 end
if VD.KILLER_InfPursuit then attrs.Pursuit = 0 end
else
if VD.KILLER_InfLakeMist then attrs.LakeMist = false end
if VD.KILLER_InfPursuit then attrs.Pursuit = false end
end
return attrs
end
end
end
if method == "FireServer" then
if self.Name == "Spearthrow" and VeilConfig.Enabled then
return nil
end
if VD.KILLER_InfLakeMist and self.Name == "LakeMist" then
local a1 = args[1]
if a1 == false then
return nil
elseif a1 == true then
task.delay(0.2, function()
pcall(function()
Loads code from the internet. It downloads more code when it runs (loadstring + HttpGet), which can change after it was posted. From: raw.githubusercontent.com.
logger removed and keysystem removed and obfuscated source reversed to full luau source ready to be pasted or used Speed Custom Speed Value Infinite Jump Noclip Moonwalk Moonwalk External Button Lock Moonwalk Button Moonwalk Zigzag Speed Moonwalk Boost Power Target Lock Target Lock External Button Lock Target Lock Button Target Lock Maximum Distance Invisible Not Visual Invisible Movement Speed Anti-AFK Bypass Gate Anti-Fall Damage Fling Fling Strength Auto Skillcheck Skillcheck Mode Hide Skillcheck UI Flee Killer Flee Distance SwiftVault SwiftVault V2 SwiftVault Speed Pallet Reflex Pallet Trigger Range Auto Parry Parry Distance Trigger Show Parry Range Circle Fake Parry Fake Parry Animation Fake Generator Anti Knock Warn Killer Auto Dodge Spear First Person Auto Attack Destroy Pallets Auto Kick Generator Block All Vaults Auto Drop All Pallets Break All Pallets Infinite Abyssal Burst Bypass Killer Cooldowns Bypass Killer Leap Anti Blind No Slowdown Custom Masked Hitbox Expansion Aimbot Aimbot RMB Activation Aimbot FOV Aimbot Smoothness Aimbot Target Part Aimbot Visibility Check Aimbot FOV Display Aimbot Prediction Spear Aimbot Spear Gravity Spear Speed Manual Spear Target Spear Tar

Universal