loadstring(game:HttpGet("https://pastefy.app/9jxnhnM3/raw"))()
if not game:IsLoaded() then
game.Loaded:Wait()
end
local tbl
tbl = {
Players = game:GetService("Players"),
UserInputService = game:GetService("UserInputService"),
Lighting = game:GetService("Lighting"),
RunService = game:GetService("RunService"),
CoreGui = game:GetService("CoreGui"),
ReplicatedStorage = game:GetService("ReplicatedStorage"),
VirtualInputManager = game:GetService("VirtualInputManager"),
VirtualUser = game:GetService("VirtualUser"),
HttpService = game:GetService("HttpService"),
Stats = game:GetService("Stats"),
Workspace = game:GetService("Workspace"),
TeleportService = game:GetService("TeleportService"),
GuiService = game:GetService("GuiService"),
RbxAnalytics = game:GetService("RbxAnalyticsService"),
LocalPlayer = game:GetService("Players").LocalPlayer,
Terrain = game:GetService("Workspace").Terrain,
Camera = workspace.CurrentCamera,
}
local Debris
Debris = game:GetService("Debris")
local remotes
remotes = tbl.ReplicatedStorage:WaitForChild("Remotes", 10)
local repairEvent, skillCheckResultEvent
local generator = remotes and remotes:FindFirstChild("Generator")
repairEvent = generator and generator:FindFirstChild("RepairEvent")
skillCheckResultEvent = generator and generator:FindFirstChild("SkillCheckResultEvent")
local parry, flag, expired, userThumbnailAsync, tbl2, tbl3, tbl4, tbl5, tbl6, tbl7
local tbl8, tbl9, str, v, humanoidRootPart, humanoid, tbl10, lib, str2, verifyKeyAccess
local _playerCache
local sendNotif, tbl11, refreshPlayerList, initCharacter, getTeamRole, isPlayerKiller, isPlayerSurvivor, getLocalRootPart, getDistanceTo, getNearestKillerDist
local isKnockedOrHooked, isIncapacitated, canSafeParry, teleportToExit, setSkipCutscene, setAutoPallet
do
local palletDropEvent = remotes and remotes:FindFirstChild("Pallet") and remotes.Pallet:FindFirstChild("PalletDropEvent")
parry = remotes and remotes:FindFirstChild("Items") and remotes.Items:FindFirstChild("Parrying Dagger") and remotes.Items["Parrying Dagger"]:FindFirstChild("parry")
flag = false
expired = "Unknown"
userThumbnailAsync = tbl.Players:GetUserThumbnailAsync(tbl.LocalPlayer.UserId, Enum.ThumbnailType.HeadShot, Enum.ThumbnailSize.Size420x420)
tbl2 = {
icon = "",
name = "PerplexWare",
version = "V2.5 (เห้ยๆอย่ามา skid ของกู)",
dc = "https://dsc.gg/PerplexWarehub/",
tt = "ไม่มี (None)",
}
tbl3 = {
AUTO_AutoSurvivor = false,
AUTO_Generator = false,
AUTO_LeaveDist = 45,
TP_Offset = 5,
Pistol_CustomSound = false,
Pistol_SelectedSound = "Sound 1",
ESP_Master = false,
ESP_Player = false,
ESP_Killer = false,
ESP_SCP = false,
ESP_Name = false,
ESP_NameG = false,
ESP_Outline = false,
ESP_ItemIcon = false,
ESP_MaxDistance = 200,
ESP_Generator = false,
ESP_Pallet = false,
ESP_Hook = false,
ESP_Gate = false,
ESP_Window = false,
ESP_KillerWarn = false,
Killer_SpamHit = false,
Killer_SpamHitRadius = 15,
Killer_SpamHitDelay = 100,
Killer_HitEspCircle = true,
Killer_BreakSpeed = 1,
Killer_BypassCarry = false,
Killer_WalkSpeedToggle = false,
Killer_WalkSpeed = 16,
Killer_AttackMode = "BasicAttack",
Killer_3rdPerson = false,
Killer_CameraMode = "Classic",
Killer_InfAbyssal = false,
Killer_InfLunge = false,
Killer_InfLungeV2 = false,
Anti_Blind = false,
Show_Stun = false,
Surv_Parry = false,
Surv_ParryV2 = false,
Surv_ParryCircle = true,
Surv_ParryAggressive = false,
Surv_ParrySafety = false,
Surv_ParryRadius = 15,
Surv_AutoParry = false,
Surv_ParryMethod = "Legit",
ESP_Chroma = false,
ESP_HighestGen = false,
ESP_InjuredColor = true,
Surv_PingParry = false,
Surv_ParryFace = 0.7,
Ignored_Skills_List = {},
Surv_GodMode = false,
Surv_SelfHeal = false,
Surv_AuraHeal = false,
Surv_AutoCancelGene = false,
Surv_DoubleGen = false,
Surv_AutoSprint = false,
Surv_Bandage = false,
Surv_SoundDbd = false,
Surv_AutoSkillCheck = false,
Surv_SkillCheckMode = "Legit",
Surv_SkillFrequency = 10,
Surv_SkillSpeed = 1,
Surv_PerfectSkill = true,
Surv_NoSkill = false,
Surv_Perks = false,
Surv_SpeedBoost = 1.1,
Surv_VaultSpeed = 1.3,
Surv_SpeedAfterVault = false,
Surv_FastVault = false,
Surv_PerfectVault = false,
Surv_AutoCrouch = false,
Surv_NoFall = false,
Surv_AutoFlee = false,
Surv_FleeDistance = 30,
Surv_AutoPallet = false,
Surv_AutoPalletRadius = 10,
Surv_AutoPalletSM = true,
Surv_AutoPalletSF = false,
Surv_CrouchV = false,
Surv_Spdb = false,
Surv_QuickRecoveryCD = 15,
Surv_FlowstateCD = 20,
Surv_Fov = false,
Surv_FOV_Value = 70,
Aimbot_Enabled = false,
Aimbot_ShowFOV = true,
Aimbot_Radius = 150,
Aimbot_MaxDist = 300,
Aimbot_Smoothness = 0.5,
Aimbot_Predict = 0.01,
Aim_Silent = false,
Aim_Lock = false,
Predict = false,
SmartPredict = false,
AIM_TargetPart = "Torso",
Pistol_Target = "Killer",
Pistol_PredictLead = 3.5,
Pistol_AimOffset = -1,
Pistol_BlockKnocked = true,
Pistol_FOVMode = false,
Pistol_ShowFOV = false,
Pistol_FOV = 150,
Pistol_ShowLaser = true,
Flash_Silent = false,
Flash_YOffset = 8,
Aim_SilentVeil = false,
Veil_ShowFOV = true,
Veil_LeadMultiplier = 1.7,
Veil_FOV = 150,
Veil_ShowLaser = true,
SPEAR_Auto = false,
SPEAR_Speed = 165,
SPEAR_Gravity = workspace.Gravity * 0.5,
SPEAR_MaxDist = 200,
Crosshair_Enabled = false,
Crosshair_Type = "Cross",
Crosshair_Color = Color3.new(0, 1, 0),
Crosshair_Size = 4,
Crosshair_OffsetX = 0,
Crosshair_OffsetY = 0,
Misc_Invisible = false,
Misc_FakeName = false,
Misc_FakeAttributes = false,
Misc_CopyAvatar = false,
Misc_Noclip = false,
Misc_FlyToggle = false,
Misc_FlySpeed = 10,
Misc_HighJump = false,
Misc_JumpPower = 50,
Misc_InfJump = false,
Misc_InfiniteZoom = false,
Misc_Fullbright = false,
Misc_Potato = false,
Misc_SkipCutscene = false,
Misc_SmoothCam = false,
Misc_CamHeight = -1,
Misc_CamStiffness = 9.5,
Misc_SmoothHDR = false,
Next_Map = true,
}
tbl4 = {}
tbl4.Level = tbl.LocalPlayer:GetAttribute("Level") or 0
tbl4.Gears = tbl.LocalPlayer:GetAttribute("Gears") or 0
tbl4.Screws = tbl.LocalPlayer:GetAttribute("Screws") or 0
tbl5 = {
["122812055447896"] = "Veil lunge",
["133963973694098"] = "Mayers Basic",
["117042998468241"] = "Mayers lunge",
["135002183282873"] = "cure lunge",
["121216847022485"] = "cure Basic",
["132817836308238"] = "Jeff Basic",
["129784271201071"] = "Jeff lunge",
["82666958311998"] = "Jeff Frenzy",
["78432063483146"] = "Abyssal Basic",
["118907603246885"] = "Abyssal lunge",
["139369275981139"] = "Jason Basic",
["110355011987939"] = "Jason lunge",
["111920872708571"] = "Masked Basic",
["105374834496520"] = "Masked lunge",
["138720291317243"] = "Masked Tony",
["106871536134254"] = "Masked Alex",
["130593238885843"] = "Masked Cobra",
["115244153053858"] = "Masked Cobra lunge",
["74968262036854"] = "Hidden Basic",
["113255068724446"] = "Hidden lunge",
["98163597193511"] = "Hidden S1",
["80411309607666"] = "Abyssal S1",
}
tbl6 = {
Unloaded = false,
OriginalSpeed = 16,
isPredicting = false,
CutsceneConn = nil,
CharCutscene = nil,
FleeThread = nil,
RandomMode_IsNormal = false,
AutoSprintThread = nil,
OriginalLighting = nil,
CurrentPing = 0,
QuickRecoveryOnCD = false,
FlowstateOnCD = false,
HookF = false,
Bandage = false,
isAimLocking = false,
currentTarget = nil,
lockTimerThread = nil,
lastNoclipChar = nil,
lastUpdate = 0,
ChromaHue = 0,
KillerPosHistory = {},
KillerVelocity = {},
lastSpam = 0,
spearSwitchCooldown = false,
SpearModeConn = nil,
StunConn = nil,
CurrentTeleportGen = nil,
CurrentTeleportPlayer = nil,
CurrentTeleportHook = nil,
CurrentTeleportGate = nil,
KillerTarget = nil,
SpamHit = nil,
autoParry = nil,
CrosshairUI = nil,
WatermarkUI = nil,
ItemESPs = {},
FlyConnection = nil,
FollowConnection = nil,
InfiniteZoomConn = nil,
ThirdPersonCamConn = nil,
blockThread = nil,
AutoPalletThread = nil,
VaultBoostThread = nil,
Pv2Con = nil,
lungeV2Connection = nil,
ParryCooldown = false,
ParryCooldownTime = 50,
RepairEngineRunning = false,
VaultBoostActive = false,
AutoFollow = false,
isHoldingLunge = false,
isAttackCd = false,
isHolding = false,
cachedNoclipParts = {},
ActiveAnimations = {},
SpooferConns = {},
TeamConnections = {},
DroppedPallets = {},
TrackV2 = {},
touchLunge = nil,
currentTouch = nil,
locked = nil,
}
tbl7 = {
Colors = {
SCP = Color3.fromRGB(150, 0, 255),
Player = Color3.fromRGB(0, 255, 100),
Killer = Color3.fromRGB(255, 0, 0),
Generator = Color3.fromRGB(255, 255, 0),
GeneratorDone = Color3.fromRGB(0, 255, 0),
Pallet = Color3.fromRGB(255, 128, 0),
Hook = Color3.fromRGB(255, 105, 180),
Gate = Color3.fromRGB(255, 255, 255),
Window = Color3.fromRGB(0, 150, 255),
GeneratorDone = Color3.fromRGB(100, 255, 100),
Injured = Color3.fromRGB(255, 180, 30),
},
Bones_R6 = {
{ "Head", "Torso" },
{ "Torso", "Left Arm" },
{ "Torso", "Right Arm" },
{ "Torso", "Left Leg" },
{ "Torso", "Right Leg" },
},
}
tbl8 = {
isChargingSpear = false,
isChargingPistol = false,
isAimingFlash = false,
currentTouchInput = nil,
isAimbotHolding = false,
lockedAimbotTarget = nil,
}
tbl9 = {
Visibility = {},
Generators = {},
Pallets = {},
Hooks = {},
Gates = {},
Windows = {},
SCPs = {},
}
str = "Spectator"
v = nil
humanoidRootPart = nil
humanoid = nil
tbl10 = {
WEB = "Built by https://perplexware.vercel.app",
SCRIPT = "https://perplexware.vercel.app",
keyFile = "VD_KeySave.txt",
cache = "PerplexWareHub/Log/KeyCache.json",
srvID = "0",
plaS = "Huh?",
}
local function refreshMapData()
local str3 = "Unknown"
pcall(function()
if gethwid then
str3 = gethwid()
else
str3 = tbl.RbxAnalytics:GetClientId()
end
end)
return str3
end
local v2 = refreshMapData()
str2 = ""
pcall(function()
if isfile(tbl10.keyFile) then
local v3 = readfile(tbl10.keyFile)
if v3 then
str2 = v3:match("^%s*(.-)%s*$") or v3
end
end
end)
local function toHex(arg)
return (arg:gsub(".", function(arg2)
return string.format("%02X", string.byte(arg2))
end))
end
local function fromHex(arg)
return (arg:gsub("..", function(arg2)
return string.char(tonumber(arg2, 16))
end))
end
local function setSmoothHDR(arg, arg2, arg3, arg4)
local tbl12 = { key = arg, username = arg2, keyExpired = arg3, isVip = arg4, timestamp = os.time(), hwid = v2 }
pcall(function()
local json = tbl.HttpService:JSONEncode(tbl12)
local v3 = toHex(json)
writefile(tbl10.cache, v3)
end)
end
local function blockWindowsPallets()
if isfile(tbl10.cache) then
local ok, result = pcall(function()
local v3 = readfile(tbl10.cache)
local v4 = fromHex(v3)
return tbl.HttpService:JSONDecode(v4)
end)
if ok and result and type(result) == "table" then
if result.hwid == v2 then
return result
end
pcall(function()
delfile(tbl10.cache)
end)
return nil
end
pcall(function()
delfile(tbl10.cache)
end)
end
return nil
end
verifyKeyAccess = function(arg)
flag = true
expired = "Trial"
return true, "Trial for Free", expired
end
sendNotif = function(arg, arg2, arg3)
pcall(function()
if getgenv().VindUI then
getgenv().VindUI:Notify({ Title = "nice auth", Text = tostring(arg), Type = "info", Duration = arg2 or 3 })
end
end)
end
tbl11 = {}
_playerCache = {}
refreshPlayerList = function()
table.clear(tbl11)
for _, player in ipairs(tbl.Players:GetPlayers()) do
if player ~= tbl.LocalPlayer then table.insert(tbl11, player) end
end
end
local function cacheCharacter(player, character)
local cache = _playerCache[player]
if not cache then return end
if character then
local h = character:FindFirstChildOfClass("Humanoid")
cache.character = character
cache.hrp = character:FindFirstChild("HumanoidRootPart")
cache.humanoid = h
cache.animator = h and h:FindFirstChildOfClass("Animator")
if h then
h.ChildAdded:Connect(function(child)
if child:IsA("Animator") then
local c2 = _playerCache[player]
if c2 then c2.animator = child end
end
end)
end
else
cache.character = nil
cache.hrp = nil
cache.humanoid = nil
cache.animator = nil
end
end
local function playerIsKiller(player)
return player.Team ~= nil and player.Team.Name == "Killer"
end
local function onPlayerAdded(player)
if player == tbl.LocalPlayer then return end
_playerCache[player] = { isKiller = playerIsKiller(player) }
table.insert(tbl11, player)
player:GetPropertyChangedSignal("Team"):Connect(function()
local c = _playerCache[player]
if c then c.isKiller = playerIsKiller(player) end
end)
player.CharacterAdded:Connect(function(ch) cacheCharacter(player, ch) end)
player.CharacterRemoving:Connect(function() cacheCharacter(player, nil) end)
if player.Character then cacheCharacter(player, player.Character) end
end
local function onPlayerRemoving(player)
_playerCache[player] = nil
refreshPlayerList()
end
for _, player in ipairs(tbl.Players:GetPlayers()) do onPlayerAdded(player) end
tbl.Players.PlayerAdded:Connect(onPlayerAdded)
tbl.Players.PlayerRemoving:Connect(onPlayerRemoving)
initCharacter = function(arg)
v = arg
humanoidRootPart = arg:WaitForChild("HumanoidRootPart", 3)
humanoid = arg:WaitForChild("Humanoid", 3)
if humanoid then
tbl6.OriginalSpeed = humanoid.WalkSpeed
end
if tbl6.TeamLabel then
pcall(function()
tbl6.TeamLabel:Set("Team: " .. (tbl6.cachedRole or str or "Unknown"))
end)
end
end
getTeamRole = function()
return str
end
isPlayerKiller = function(arg)
return arg and arg.Team and arg.Team.Name == "Killer"
end
isPlayerSurvivor = function(arg)
return arg and arg.Team and arg.Team.Name == "Survivors"
end
getLocalRootPart = function()
return humanoidRootPart
end
getDistanceTo = function(arg)
local selfHrp = humanoidRootPart
if not selfHrp then return math.huge end
return (arg - selfHrp.Position).Magnitude
end
getNearestKillerDist = function()
local selfHrp = humanoidRootPart
if not selfHrp then return math.huge end
local selfPos = selfHrp.Position
local minDist = math.huge
for _, cache in pairs(_playerCache) do
if cache.isKiller and cache.hrp and cache.hrp.Parent then
local d = (cache.hrp.Position - selfPos).Magnitude
if d < minDist then minDist = d end
end
end
return minDist
end
isKnockedOrHooked = function(arg)
if not arg then
return false
end
return arg:GetAttribute("Knocked") == true or arg:GetAttribute("IsHooked") == true
end
isIncapacitated = function(arg)
if not arg then
return true
end
local playerFromCharacter = tbl.Players:GetPlayerFromCharacter(arg)
if playerFromCharacter and playerFromCharacter:GetAttribute("IsDead") then
return true
end
if arg:GetAttribute("IsCarried") or arg:GetAttribute("IsHooked") or arg:GetAttribute("Knocked") then
return true
end
local checkInterractable = arg:FindFirstChild("CheckInterractable")
if checkInterractable then
for _, v3 in ipairs({
"isVaulting",
"isSliding",
"isDroppingPallet",
"isRepairing",
"isHealing",
"isUnhooking",
"isExiting",
}) do
if checkInterractable:GetAttribute(v3) == true then
return true
end
end
end
return false
end
canSafeParry = function(arg)
if not tbl3.Surv_ParrySafety then
return true
end
if not arg then
return false
end
local checkInterractable = arg:FindFirstChild("CheckInterractable")
if checkInterractable then
if checkInterractable:GetAttribute("isVaulting") == true then
return false
end
if checkInterractable:GetAttribute("isRepairing") == true then
return false
end
if checkInterractable:GetAttribute("isUnhooking") == true then
return false
end
if checkInterractable:GetAttribute("isHealing") == true then
return false
end
if checkInterractable:GetAttribute("isSliding") == true then
return false
end
end
return true
end
teleportToExit = function()
local v3 = getLocalRootPart()
local map = tbl.Workspace:FindFirstChild("Map")
if not v3 or not map then
return false
end
local position = nil
pcall(function()
for _, descendant in ipairs(map:GetDescendants()) do
local v4 = string.lower(descendant.Name)
if v4 == "fininshline" or v4 == "finishline" or string.find(v4, "finish") then
if descendant:IsA("BasePart") then
position = descendant.Position
break
elseif descendant:IsA("Model") then
local basePart = descendant:FindFirstChildWhichIsA("BasePart")
if basePart then
position = basePart.Position
break
end
end
end
end
if not position then
if map:FindFirstChild("RooftopHitbox") or map:FindFirstChild("Rooftop") then
position = Vector3.new(3098.16, 454.04, -4918.74)
elseif map:FindFirstChild("HooksMeat") then
position = Vector3.new(1546.12, 152.21, -796.72)
elseif map:FindFirstChild("churchbell") then
position = Vector3.new(760.98, -20.14, -78.48)
else
for _, descendant in ipairs(map:GetDescendants()) do
if descendant:IsA("MeshPart") and descendant.Material == Enum.Material.Limestone then
position = Vector3.new(-947.9, 152.12, -7579.52)
break
elseif descendant:IsA("MeshPart") and descendant.Material == Enum.Material.Leather then
position = Vector3.new(1546.12, 152.21, -796.72)
break
end
end
end
end
end)
if position then
v3.CFrame = CFrame.new(position + Vector3.new(0, 3, 0))
return true
end
return false
end
local function setupSkillCheckSync(character)
if not character then
return
end
task.spawn(function()
local cutscene = character:WaitForChild("cutscene", 5)
if cutscene and cutscene:IsA("LocalScript") then
if tbl3.Misc_SkipCutscene then
cutscene.Disabled = true
end
if tbl6.CutsceneConn then
tbl6.CutsceneConn:Disconnect()
end
tbl6.CutsceneConn = cutscene:GetPropertyChangedSignal("Disabled"):Connect(function()
if tbl3.Misc_SkipCutscene and not cutscene.Disabled then
cutscene.Disabled = true
end
end)
end
end)
end
setSkipCutscene = function(miscSkipCutscene)
tbl3.Misc_SkipCutscene = miscSkipCutscene
local character = tbl.LocalPlayer.Character
if miscSkipCutscene then
if character then
setupSkillCheckSync(character)
end
if tbl6.CharCutscene then
tbl6.CharCutscene:Disconnect()
end
tbl6.CharCutscene = tbl.LocalPlayer.CharacterAdded:Connect(setupSkillCheckSync)
else
if tbl6.CutsceneConn then
tbl6.CutsceneConn:Disconnect()
tbl6.CutsceneConn = nil
end
if tbl6.CharCutscene then
tbl6.CharCutscene:Disconnect()
tbl6.CharCutscene = nil
end
if character then
local cutscene = character:FindFirstChild("cutscene")
if cutscene and cutscene:IsA("LocalScript") then
cutscene.Disabled = false
end
end
end
end
setAutoPallet = function(survAutoPallet)
tbl3.Surv_AutoPallet = survAutoPallet
if survAutoPallet then
if tbl6.AutoPalletThread then
task.cancel(tbl6.AutoPalletThread)
end
tbl6.AutoPalletThread = task.spawn(function()
while tbl3.Surv_AutoPallet and not tbl6.Unloaded do
task.wait(0.1)
if palletDropEvent then
local character = tbl.LocalPlayer.Character
local v3 = getLocalRootPart()
if v3 and character then
local flag2 = character:GetAttribute("IsHooked") == true or character:GetAttribute("isHooked") == true
local flag3 = character:GetAttribute("isCarried") == true or character:GetAttribute("IsCarried") == true or character:GetAttribute("Carried") == true
local flag4 = (character:GetAttribute("Knocked") == true or character:GetAttribute("isKnocked") == true) and not flag3
local flag5
if flag2 or flag4 then
flag5 = false
else
local survAutoPalletSM = flag3 and tbl3.Surv_AutoPalletSM
flag5 = true
if survAutoPalletSM then
flag5 = false
end
end
if flag5 then
local tbl12 = {}
for _, v4 in ipairs(tbl11) do
if isPlayerKiller(v4) and v4.Character then
local humanoidRootPart2 = v4.Character:FindFirstChild("HumanoidRootPart")
if humanoidRootPart2 then
table.insert(tbl12, { root = humanoidRootPart2, char = v4.Character })
end
end
end
if #tbl12 > 0 then
for _, pallet in ipairs(tbl9.Pallets) do
local model = pallet.model
local trigger = pallet.trigger
local palletPointSlide
if trigger then
palletPointSlide = trigger
elseif model then
palletPointSlide = model:FindFirstChild("PalletPointSlide", true) or model:FindFirstChild("PalletPoint", true)
else
palletPointSlide = model
end
if model and model.Parent and palletPointSlide and not tbl6.DroppedPallets[model] then
local magnitude = (v3.Position - palletPointSlide.Position).Magnitude
local flag6 = false
for _, v4 in ipairs(tbl12) do
local magnitude2 = (v4.root.Position - palletPointSlide.Position).Magnitude
local flag7 = v4.char:GetAttribute("IsCarrying") == true or v4.char:GetAttribute("isCarrying") == true
if flag3 then
if magnitude <= tbl3.Surv_AutoPalletRadius or magnitude2 <= tbl3.Surv_AutoPalletRadius then
flag6 = true
break
else
flag6 = false
end
elseif flag7 and tbl3.Surv_AutoPalletSF then
if not (magnitude2 <= 6.5) then
flag6 = false
else
flag6 = true
break
end
elseif magnitude <= tbl3.Surv_AutoPalletRadius and magnitude2 <= tbl3.Surv_AutoPalletRadius then
flag6 = true
break
else
flag6 = false
end
end
if flag6 then
pcall(function()
palletDropEvent:FireServer(palletPointSlide)
end)
tbl6.DroppedPallets[model] = true
end
end
end
end
end
end
end
end
end)
else
if tbl6.AutoPalletThread then
task.cancel(tbl6.AutoPalletThread)
tbl6.AutoPalletThread = nil
end
table.clear(tbl6.DroppedPallets)
end
end
end
local refreshMapData
do
local flag2 = false
local n = 0
refreshMapData = function(arg)
if flag2 then
return
end
if not arg and os.clock() - n < 3 then
return
end
flag2 = true
n = os.clock()
table.clear(tbl9.Generators)
table.clear(tbl9.Windows)
table.clear(tbl9.Pallets)
table.clear(tbl9.Hooks)
table.clear(tbl9.Gates)
table.clear(tbl9.SCPs)
table.clear(tbl6.DroppedPallets)
local descendants = tbl.Workspace:GetDescendants()
for i, descendant in ipairs(descendants) do
if i % 300 == 0 then
task.wait()
end
if descendant:IsA("Model") then
local v2 = string.lower(descendant.Name)
if v2 == "generator" then
local basePart = descendant:FindFirstChildWhichIsA("BasePart")
if basePart then
table.insert(tbl9.Generators, { model = descendant, part = basePart })
end
elseif v2 == "hook" and descendant:FindFirstChild("HookPoint") then
table.insert(tbl9.Hooks, descendant)
elseif v2 == "gate" and descendant:FindFirstChild("ExitLever") then
table.insert(tbl9.Gates, descendant)
elseif v2 == "window" then
table.insert(tbl9.Windows, descendant)
elseif string.match(v2, "^scp") then
table.insert(tbl9.SCPs, descendant)
end
elseif descendant:IsA("BasePart") and descendant.Name == "PrimaryPartPallet" then
local parent = descendant.Parent
if parent then
local flag3 = false
for _, pallet in ipairs(tbl9.Pallets) do
if pallet.model == parent then
flag3 = true
break
end
end
if not flag3 then
table.insert(tbl9.Pallets, {
model = parent,
trigger = parent:FindFirstChild("PalletPointSlide", true) or parent:FindFirstChild("PalletPoint", true),
})
end
end
end
end
flag2 = false
end
end
if tbl.CoreGui:FindFirstChild("WM") then
tbl.CoreGui:FindFirstChild("WM"):Destroy()
end
tbl6.WatermarkUI = Instance.new("ScreenGui")
tbl6.WatermarkUI.Name = "WM"
tbl6.WatermarkUI.Parent = tbl.CoreGui
tbl6.WatermarkUI.IgnoreGuiInset = true
tbl6.WatermarkUI.Enabled = true
tbl6.WatermarkUI.ResetOnSpawn = false
local frame
frame = Instance.new("Frame")
frame.Name = "Bubble"
frame.Size = UDim2.new(0, 140, 0, 22)
frame.Position = UDim2.new(0.5, 0, 0.95, 0)
frame.AnchorPoint = Vector2.new(0.5, 0.5)
frame.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
frame.BackgroundTransparency = 0.28
frame.Active = true
frame.Parent = tbl6.WatermarkUI
local uiCorner = Instance.new("UICorner")
uiCorner.CornerRadius = UDim.new(0, 11)
uiCorner.Parent = frame
local textLabel
do
local uiStroke = Instance.new("UIStroke")
uiStroke.Color = Color3.fromRGB(255, 255, 255)
uiStroke.Thickness = 1
uiStroke.Parent = frame
uiStroke.ApplyStrokeMode = Enum.ApplyStrokeMode.Border
uiStroke.Transparency = 0.55
local uiPadding = Instance.new("UIPadding")
uiPadding.PaddingLeft = UDim.new(0, 8)
uiPadding.PaddingRight = UDim.new(0, 8)
uiPadding.Parent = frame
textLabel = Instance.new("TextLabel")
textLabel.Size = UDim2.new(1, 0, 1, 0)
textLabel.BackgroundTransparency = 1
textLabel.Font = Enum.Font.GothamSemibold
textLabel.TextSize = 11
textLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
textLabel.TextTransparency = 0.05
textLabel.Text = "kult | FPS: ... | Ping: ..."
textLabel.Parent = frame
end
if getgenv().Tixo_SpectatorUI then
getgenv().Tixo_SpectatorUI:Destroy()
end
local textLabel2, frame2
do
local coreGui = pcall(function()
return tbl.CoreGui.Name
end) and tbl.CoreGui or tbl.Players.LocalPlayer:WaitForChild("PlayerGui")
local screenGui = Instance.new("ScreenGui")
screenGui.Name = "SpcGui"
screenGui.ResetOnSpawn = false
screenGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
screenGui.Enabled = true
getgenv().Tixo_SpectatorUI = screenGui
local frame3 = Instance.new("Frame")
frame3.Name = "MainBox"
frame3.AnchorPoint = Vector2.new(0.5, 1)
frame3.Position = UDim2.new(0.5, 0, 0, -10)
frame3.Size = UDim2.new(0, 50, 0, 18)
frame3.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
frame3.BackgroundTransparency = 0.3
frame3.BorderSizePixel = 0
frame3.Parent = screenGui
local uiGradient = Instance.new("UIGradient")
local numberSequence = NumberSequence.new
local tbl12 = {}
local v2 = NumberSequenceKeypoint.new(0, 1)
local v3 = NumberSequenceKeypoint.new(0.2, 0.3)
local v4 = NumberSequenceKeypoint.new(0.8, 0.3)
local new = NumberSequenceKeypoint.new
tbl12[1] = v2
tbl12[2] = v3
tbl12[3] = v4
do
local values = table.pack(new(1, 1))
table.move(values, 1, values.n, 4, tbl12)
end
uiGradient.Transparency = numberSequence(tbl12)
uiGradient.Parent = frame3
local uiCorner2 = Instance.new("UICorner")
uiCorner2.CornerRadius = UDim.new(0, 11)
uiCorner2.Parent = frame3
local uiStrokeSpc = Instance.new("UIStroke")
uiStrokeSpc.Color = Color3.fromRGB(255, 255, 255)
uiStrokeSpc.Thickness = 1
uiStrokeSpc.Transparency = 0.55
uiStrokeSpc.ApplyStrokeMode = Enum.ApplyStrokeMode.Border
uiStrokeSpc.Parent = frame3
local uiListLayout = Instance.new("UIListLayout")
uiListLayout.FillDirection = Enum.FillDirection.Horizontal
uiListLayout.HorizontalAlignment = Enum.HorizontalAlignment.Center
uiListLayout.VerticalAlignment = Enum.VerticalAlignment.Center
uiListLayout.SortOrder = Enum.SortOrder.LayoutOrder
uiListLayout.Padding = UDim.new(0, 6)
uiListLayout.Parent = frame3
local imageLabel = Instance.new("ImageLabel")
imageLabel.Name = "Icon"
imageLabel.LayoutOrder = 1
imageLabel.Size = UDim2.new(0, 14, 0, 14)
imageLabel.BackgroundTransparency = 1
imageLabel.Image = "rbxassetid://13321848320"
imageLabel.ImageColor3 = Color3.fromRGB(255, 255, 255)
imageLabel.Parent = frame3
textLabel2 = Instance.new("TextLabel")
textLabel2.Name = "Count"
textLabel2.LayoutOrder = 2
textLabel2.Size = UDim2.new(0, 0, 1, 0)
textLabel2.AutomaticSize = Enum.AutomaticSize.X
textLabel2.BackgroundTransparency = 1
textLabel2.Font = Enum.Font.GothamMedium
textLabel2.Text = "0"
textLabel2.TextColor3 = Color3.fromRGB(255, 255, 255)
textLabel2.TextSize = 12
textLabel2.Parent = frame3
screenGui.Parent = coreGui
frame2 = Instance.new("Frame")
frame2.Name = "NextKillerBox"
frame2.AnchorPoint = Vector2.new(0.5, 0)
frame2.Position = UDim2.new(0.5, 0, frame3.Position.Y.Scale, frame3.Position.Y.Offset + 20)
frame2.Size = UDim2.new(0, 150, 0, 18)
frame2.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
frame2.BackgroundTransparency = 0.3
frame2.BorderSizePixel = 0
frame2.Parent = screenGui
end
do
local uiGradient = Instance.new("UIGradient")
local numberSequence = NumberSequence.new
local tbl12 = {}
local v2 = NumberSequenceKeypoint.new(0, 1)
local v3 = NumberSequenceKeypoint.new(0.2, 0.3)
local v4 = NumberSequenceKeypoint.new(0.8, 0.3)
local new = NumberSequenceKeypoint.new
tbl12[1] = v2
tbl12[2] = v3
tbl12[3] = v4
do
local values = table.pack(new(1, 1))
table.move(values, 1, values.n, 4, tbl12)
end
uiGradient.Transparency = numberSequence(tbl12)
uiGradient.Parent = frame2
end
local uiCorner2 = Instance.new("UICorner")
uiCorner2.CornerRadius = UDim.new(0, 11)
uiCorner2.Parent = frame2
do
local uiStrokeNK = Instance.new("UIStroke")
uiStrokeNK.Color = Color3.fromRGB(255, 255, 255)
uiStrokeNK.Thickness = 1
uiStrokeNK.Transparency = 0.55
uiStrokeNK.ApplyStrokeMode = Enum.ApplyStrokeMode.Border
uiStrokeNK.Parent = frame2
end
local textLabel3
textLabel3 = Instance.new("TextLabel")
textLabel3.Name = "KillerText"
textLabel3.Size = UDim2.new(1, 0, 1, 0)
textLabel3.BackgroundTransparency = 1
textLabel3.Font = Enum.Font.GothamMedium
textLabel3.Text = "Next Killer: ..."
textLabel3.TextColor3 = Color3.fromRGB(255, 255, 255)
textLabel3.TextSize = 12
textLabel3.Parent = frame2
if tbl.CoreGui:FindFirstChild("FovC") then
tbl.CoreGui:FindFirstChild("FovC"):Destroy()
end
local frame3
local screenGui = Instance.new("ScreenGui")
screenGui.Name = "FovC"
screenGui.Parent = tbl.CoreGui
screenGui.ResetOnSpawn = false
screenGui.IgnoreGuiInset = true
frame3 = Instance.new("Frame")
frame3.BackgroundTransparency = 1
frame3.AnchorPoint = Vector2.new(0.5, 0.5)
frame3.Position = UDim2.new(0.5, 0, 0.5, 0)
frame3.Visible = false
frame3.Parent = screenGui
local uiCorner3 = Instance.new("UICorner")
uiCorner3.CornerRadius = UDim.new(1, 0)
uiCorner3.Parent = frame3
local uiStroke
uiStroke = Instance.new("UIStroke")
uiStroke.Color = Color3.fromRGB(255, 255, 255)
uiStroke.Thickness = 0.75
uiStroke.Parent = frame3
local screenGui2
screenGui2 = Instance.new("ScreenGui")
screenGui2.Name = "TargetUI"
screenGui2.Parent = tbl.CoreGui
screenGui2.IgnoreGuiInset = true
screenGui2.Enabled = false
local frame4
frame4 = Instance.new("Frame")
frame4.Name = "TargetMainBox"
frame4.Size = UDim2.new(0, 100, 0, 25)
frame4.Position = UDim2.new(0.5, 0, 0.8, 0)
frame4.AnchorPoint = Vector2.new(0.5, 0.5)
frame4.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
frame4.BackgroundTransparency = 0.28
frame4.ZIndex = 100
frame4.Parent = screenGui2
local uiCorner4 = Instance.new("UICorner")
uiCorner4.CornerRadius = UDim.new(0, 11)
uiCorner4.Parent = frame4
local uiStroke2 = Instance.new("UIStroke")
uiStroke2.Color = Color3.fromRGB(255, 255, 255)
uiStroke2.Transparency = 0.45
uiStroke2.Thickness = 1
uiStroke2.Parent = frame4
local textLabel4
textLabel4 = Instance.new("TextLabel")
textLabel4.Size = UDim2.new(1, -40, 1, -15)
textLabel4.Position = UDim2.new(0, 10, 0, 5)
textLabel4.BackgroundTransparency = 1
textLabel4.Font = Enum.Font.GothamSemibold
textLabel4.TextSize = 12
textLabel4.TextColor3 = Color3.fromRGB(255, 255, 255)
textLabel4.Text = "Target: Killer"
textLabel4.TextXAlignment = Enum.TextXAlignment.Left
textLabel4.ZIndex = 101
textLabel4.Parent = frame4
local textButton
textButton = Instance.new("TextButton")
textButton.Size = UDim2.new(0, 20, 0, 20)
textButton.AnchorPoint = Vector2.new(0.5, 0.5)
textButton.Position = UDim2.new(0.85, 0, 0.5, 0)
textButton.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
textButton.Text = ">"
textButton.Font = Enum.Font.GothamBold
textButton.TextSize = 16
textButton.TextColor3 = Color3.fromRGB(0, 0, 0)
textButton.ZIndex = 102
textButton.Parent = frame4
local uiCorner5 = Instance.new("UICorner")
uiCorner5.CornerRadius = UDim.new(0, 6)
uiCorner5.Parent = textButton
local frame5
frame5 = Instance.new("Frame")
frame5.Size = UDim2.new(1, 0, 0, 15)
frame5.Position = UDim2.new(0, 0, 1, 5)
frame5.AnchorPoint = Vector2.new(0, 0.5)
frame5.BackgroundTransparency = 1
frame5.Active = true
frame5.ZIndex = 103
frame5.Parent = frame4
do
local frame6 = Instance.new("Frame")
frame6.Size = UDim2.new(0, 60, 0, 4)
frame6.Position = UDim2.new(0.5, 0, 0.5, 0)
frame6.AnchorPoint = Vector2.new(0.5, 0.5)
frame6.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
frame6.ZIndex = 104
frame6.Parent = frame5
local uiCorner6 = Instance.new("UICorner")
uiCorner6.CornerRadius = UDim.new(1, 0)
uiCorner6.Parent = frame6
end
local flag2
flag2 = false
local v2
v2 = nil
local position
position = nil
local position2
position2 = nil
local updateWatermarkDrag
updateWatermarkDrag = function(arg)
local n = arg.Position - position
frame.Position = UDim2.new(position2.X.Scale, position2.X.Offset + n.X, position2.Y.Scale, position2.Y.Offset + n.Y)
end
local updateSpectatorCount
updateSpectatorCount = function()
local n = 0
for _, player in ipairs(tbl.Players:GetPlayers()) do
if player.Team and player.Team.Name == "Spectator" then
n = n + 1
end
end
textLabel2.Text = tostring(n)
end
local setSmoothHDR, blockWindowsPallets, connection, connection2, setupSkillCheckSync, applySmoothCamera, activateNoCooldown, activateSlasherInvis, setupPistolSound, activateDashLock
local applyFakeName, removeFakeName, runAutoRepair, cancelAutoRepair, findBestGenerator, doAutoFlee, teleportToGenerator, setDoubleGen, hopToNewServer, clearESPByType
local clearAllESP, setupSpearStunTracking, applySkillSoundSwap, updateTeamRole
do
local function renderSCPESP()
if tbl.LocalPlayer.Team and tbl.LocalPlayer.Team.Name == "Spectator" then
if not tbl6.isPredicting then
tbl6.isPredicting = true
frame2.Visible = true
task.spawn(function()
while tbl6.isPredicting and not tbl6.Unloaded do
local n = -1
local v3 = nil
for _, player in ipairs(tbl.Players:GetPlayers()) do
local attribute = player:GetAttribute("AllowKiller")
local attribute2 = player:GetAttribute("KillerChance")
if attribute == true and type(attribute2) == "number" then
if attribute2 > n then
n = attribute2
v3 = player
end
end
end
if not v3 then
local n2 = -1
for _, player in ipairs(tbl.Players:GetPlayers()) do
local attribute = player:GetAttribute("KillerChance")
if type(attribute) == "number" then
if n2 < attribute then
n2 = attribute
v3 = player
end
end
end
end
if v3 then
local selectedKiller = v3:FindFirstChild("SelectedKiller")
textLabel3.Text = string.format("Killer: %s (%s)", v3.Name, selectedKiller and selectedKiller.Value or v3:GetAttribute("SelectedKiller") or "Unknown")
else
textLabel3.Text = "Killer: Tidak ada data"
end
task.wait(1)
end
end)
end
else
tbl6.isPredicting = false
frame2.Visible = false
end
end
setSmoothHDR = function(arg)
local Lighting = game:GetService("Lighting")
local Workspace = game:GetService("Workspace")
if arg then
Lighting.GlobalShadows = true
Lighting.ClockTime = 12
Lighting.Brightness = 3.2
Lighting.ExposureCompensation = 0.1
Lighting.OutdoorAmbient = Color3.fromRGB(230, 230, 230)
Lighting.Ambient = Color3.fromRGB(210, 210, 210)
Lighting.ColorShift_Top = Color3.fromRGB(255, 255, 255)
Lighting.ColorShift_Bottom = Color3.fromRGB(255, 255, 255)
Lighting.EnvironmentDiffuseScale = 1
Lighting.EnvironmentSpecularScale = 1
Lighting.FogStart = 50
Lighting.FogEnd = 500
Lighting.FogColor = Color3.fromRGB(210, 210, 210)
for _, child in ipairs(Lighting:GetChildren()) do
if child:IsA("Atmosphere") or child:IsA("BloomEffect") or child:IsA("SunRaysEffect") then
child:Destroy()
end
end
local bloomEffect = Instance.new("BloomEffect")
bloomEffect.Name = "Estetik_Bloom"
bloomEffect.Intensity = 0.05
bloomEffect.Size = 24
bloomEffect.Threshold = 2
bloomEffect.Parent = Lighting
local sunRaysEffect = Instance.new("SunRaysEffect")
sunRaysEffect.Name = "Estetik_SunRays"
sunRaysEffect.Intensity = 0.04
sunRaysEffect.Spread = 0.1
sunRaysEffect.Parent = Lighting
local atmosphere = Instance.new("Atmosphere")
atmosphere.Name = "Estetik_Atmosphere"
atmosphere.Density = 0.45
atmosphere.Offset = 0.25
atmosphere.Color = Color3.fromRGB(210, 210, 210)
atmosphere.Decay = Color3.fromRGB(150, 150, 150)
atmosphere.Glare = 0.2
atmosphere.Haze = 2.5
atmosphere.Parent = Lighting
for _, descendant in ipairs(Workspace:GetDescendants()) do
if descendant:IsA("BasePart") then
descendant.Material = Enum.Material.SmoothPlastic
descendant.Reflectance = 0
end
end
local hdrColor = Lighting:FindFirstChild("HDR_Color") or Instance.new("ColorCorrectionEffect")
hdrColor.Name = "HDR_Color"
hdrColor.Saturation = 0.45
hdrColor.Contrast = 0.15
hdrColor.Brightness = 0.03
hdrColor.TintColor = Color3.fromRGB(255, 255, 255)
hdrColor.Parent = Lighting
else
if Lighting:FindFirstChild("HDR_Color") then
Lighting.HDR_Color:Destroy()
end
if Lighting:FindFirstChild("Estetik_Bloom") then
Lighting.Estetik_Bloom:Destroy()
end
if Lighting:FindFirstChild("Estetik_SunRays") then
Lighting.Estetik_SunRays:Destroy()
end
if Lighting:FindFirstChild("Estetik_Atmosphere") then
Lighting.Estetik_Atmosphere:Destroy()
end
Lighting.FogEnd = 100000
end
end
blockWindowsPallets = function(arg)
if not remotes then
return
end
local window = remotes:FindFirstChild("Window")
local pallet = remotes:FindFirstChild("Pallet")
if window then
for _, window2 in ipairs(tbl9.Windows) do
if window2 and window2.Parent then
if arg then
local vaultTrigger = window2:FindFirstChild("VaultTrigger", true)
if vaultTrigger then
pcall(function()
window:FindFirstChild("VaultEvent"):FireServer(vaultTrigger, true)
end)
end
else
local vaultPointInUse = window2:FindFirstChild("VaultPointInUse", true)
if vaultPointInUse then
pcall(function()
window:FindFirstChild("VaultCompleteEvent"):FireServer(vaultPointInUse, false)
end)
end
end
end
end
end
if pallet then
for _, pallet2 in ipairs(tbl9.Pallets) do
if pallet2 and pallet2.Parent then
if arg then
local palletPointSlide = pallet2:FindFirstChild("PalletPointSlide", true)
if palletPointSlide then
pcall(function()
pallet:FindFirstChild("PalletSlideEvent"):FireServer(palletPointSlide, true)
end)
end
else
local palletPointSlideInUse = pallet2:FindFirstChild("PalletPointSlideInUse", true)
if palletPointSlideInUse then
pcall(function()
pallet:FindFirstChild("PalletSlideCompleteEvent"):FireServer(palletPointSlideInUse)
end)
end
end
end
end
end
end
connection = nil
connection2 = nil
local function createBillboardESP()
pcall(function()
local playerGui = tbl.LocalPlayer:FindFirstChild("PlayerGui")
for match in string.gmatch("Survivor-mob.Controls.action.check", "[^%.]+") do
playerGui = playerGui and playerGui:FindFirstChild(match)
end
if playerGui and playerGui:IsA("GuiObject") and playerGui.Visible and playerGui.Parent and playerGui.Parent:IsA("GuiButton") then
local parent = playerGui.Parent
if type(firesignal) == "function" then
pcall(function()
firesignal(parent.MouseButton1Down)
task.wait(0.01)
firesignal(parent.MouseButton1Up)
end)
else
local n = parent.AbsolutePosition + parent.AbsoluteSize / 2
local guiInset = tbl.GuiService:GetGuiInset()
local n2 = n.X + guiInset.X
local n3 = n.Y + guiInset.Y
tbl.VirtualInputManager:SendMouseButtonEvent(n2, n3, 0, true, game, 1)
task.wait(0.02)
tbl.VirtualInputManager:SendMouseButtonEvent(n2, n3, 0, false, game, 1)
end
else
tbl.VirtualInputManager:SendKeyEvent(true, Enum.KeyCode.Space, false, game)
task.wait(0.012)
tbl.VirtualInputManager:SendKeyEvent(false, Enum.KeyCode.Space, false, game)
end
end)
end
setupSkillCheckSync = function()
task.spawn(function()
local skillCheckPromptGui = tbl.LocalPlayer:FindFirstChild("PlayerGui"):WaitForChild("SkillCheckPromptGui", 10)
if not skillCheckPromptGui then
return
end
local check = skillCheckPromptGui:WaitForChild("Check", 8)
if not check then
return
end
local line = check:WaitForChild("Line", 5)
local goal = check:WaitForChild("Goal", 5)
if not (line and goal) then
return
end
if connection2 then
connection2:Disconnect()
end
connection2 = check:GetPropertyChangedSignal("Visible"):Connect(function()
local flag3 = not tbl3.Surv_AutoSkillCheck
if not flag3 then
flag3 = not (tbl.LocalPlayer.Team and tbl.LocalPlayer.Team.Name == "Survivors")
end
if flag3 then
return
end
if not tbl3.Surv_PerfectSkill then
if connection then
connection:Disconnect()
connection = nil
end
return
end
if check.Visible then
if tbl3.Surv_InstanSkill or tbl3.Surv_SkillCheckMode == "Random" and not tbl6.RandomMode_IsNormal then
line.Rotation = goal.Rotation % 360 + 85
end
local n = 0
if connection then
connection:Disconnect()
end
connection = line:GetPropertyChangedSignal("Rotation"):Connect(function()
if not tbl3.Surv_PerfectSkill then
connection:Disconnect()
connection = nil
return
end
local randomModeIsNormal = tbl3.Surv_SkillCheckMode == "Normal" or tbl3.Surv_SkillCheckMode == "Random" and tbl6.RandomMode_IsNormal
local n2 = line.Rotation % 360
local n3 = goal.Rotation % 360
local n4 = (n3 + 105) % 360
local n5 = (n3 + 115) % 360
if randomModeIsNormal then
n4 = (n3 + 116) % 360
n5 = (n3 + 140) % 360
end
if n4 > n5 and (n2 >= n4 or n2 <= n5) or n2 >= n4 and n2 <= n5 then
if tick() - n > 0.2 then
createBillboardESP()
n = tick()
end
end
end)
else
tbl6.RandomMode_IsNormal = false
if connection then
connection:Disconnect()
connection = nil
end
end
end)
end)
end
local thread = nil
getgenv().CleanupNoCD = function()
getgenv().NoCD_Active = false
if thread then
task.cancel(thread)
thread = nil
end
end
applySmoothCamera = function()
if tbl6.cachedRole ~= "Survivor" then
return
end
local character = tbl.LocalPlayer.Character
if not character then
return
end
local smoothCamera = character:WaitForChild("SmoothCamera", 3) or character:FindFirstChild("SmoothCamera")
if smoothCamera and smoothCamera:IsA("LocalScript") then
if tbl3.Misc_SmoothCam then
smoothCamera:SetAttribute("CameraHeight", tbl3.Misc_CamHeight)
smoothCamera:SetAttribute("CameraStiffness", tbl3.Misc_CamStiffness)
else
smoothCamera:SetAttribute("CameraHeight", -1)
smoothCamera:SetAttribute("CameraStiffness", 9.5)
end
end
end
activateNoCooldown = function(arg)
if not arg then
if getgenv().CleanupNoCD then
getgenv().CleanupNoCD()
end
return
end
if tbl6.cachedRole ~= "Killer" then
if getgenv().Window then
sendNotif("Akses Ditolak: Kamu bukan Killer!", 3)
end
task.defer(function()
if Toggles.Killer_NoCDToggle then
Toggles.Killer_NoCDToggle:SetValue(false)
end
end)
return
end
local selectedKiller = tbl.LocalPlayer:FindFirstChild("SelectedKiller")
local attribute = selectedKiller and selectedKiller.Value or tbl.LocalPlayer:GetAttribute("SelectedKiller")
if attribute ~= "Hidden" and attribute ~= "Stalker" then
if getgenv().Window then
sendNotif("Fitur ini hanya untuk Stalker atau Hidden!", 3)
end
task.defer(function()
if Toggles.Killer_NoCDToggle then
Toggles.Killer_NoCDToggle:SetValue(false)
end
end)
return
end
getgenv().NoCD_Active = true
if thread then
task.cancel(thread)
end
local tbl12 = {}
pcall(function()
for _, v3 in pairs(getgc(true)) do
if type(v3) == "function" and islclosure(v3) and not isexecutorclosure(v3) then
local v4 = getinfo(v3)
if v4 and v4.source and string.find(v4.source, "Powers") then
table.insert(tbl12, v3)
end
end
end
end)
thread = task.spawn(function()
while getgenv().NoCD_Active and not tbl6.Unloaded do
task.wait(1)
pcall(function()
for _, v3 in ipairs(tbl12) do
local v4 = getinfo(v3)
local v5 = getupvalues(v3)
if attribute == "Hidden" and (v4.name == "tryActivate" or v4.name == "playM2Animation") then
for k, v6 in pairs(v5) do
if type(v6) == "boolean" and v6 == true then
setupvalue(v3, k, false)
end
end
elseif attribute == "Stalker" then
if v4.name == "updateUI" then
for k, v6 in pairs(v5) do
if type(v6) == "boolean" then
setupvalue(v3, k, true)
end
end
elseif v4.name == "" then
local n = 0
local n2 = 0
local v6 = nil
for k, v7 in pairs(v5) do
n = n + 1
if type(v7) == "boolean" then
n2 = n2 + 1
v6 = k
end
end
if n == 1 and n2 == 1 then
setupvalue(v3, v6, false)
end
end
end
end
end)
end
end)
end
activateSlasherInvis = function(arg)
if not arg then
if getgenv().SlasherInvisLoop then
task.cancel(getgenv().SlasherInvisLoop)
getgenv().SlasherInvisLoop = nil
end
return
end
if getgenv().SlasherInvisLoop then
task.cancel(getgenv().SlasherInvisLoop)
end
local tbl12 = {}
pcall(function()
for _, v3 in pairs(getgc(true)) do
if type(v3) == "function" and islclosure(v3) and not isexecutorclosure(v3) then
local v4 = getinfo(v3)
if v4 and v4.source and string.find(v4.source, "Powers") then
table.insert(tbl12, v3)
end
end
end
end)
getgenv().SlasherInvisLoop = task.spawn(function()
while task.wait(0.5) do
pcall(function()
local selectedKiller = tbl.LocalPlayer:FindFirstChild("SelectedKiller")
selectedKiller = selectedKiller and selectedKiller.Value or tbl.LocalPlayer:GetAttribute("SelectedKiller")
if tbl6.cachedRole == "Killer" and selectedKiller == "Slasher" then
for _, v3 in ipairs(tbl12) do
local v4 = getupvalues(v3)
for k, v5 in pairs(v4) do
if type(v5) == "boolean" and v5 == true then
setupvalue(v3, k, false)
end
end
end
local character = tbl.LocalPlayer.Character
if character then
if character:GetAttribute("LakeMist") then
character:SetAttribute("LakeMist", false)
end
if character:GetAttribute("Invisibility") then
character:SetAttribute("Invisibility", false)
end
local checkInterractable = character:FindFirstChild("CheckInterractable")
if checkInterractable and checkInterractable:GetAttribute("action") then
checkInterractable:SetAttribute("action", false)
end
end
end
end)
end
end)
end
local tbl12 = {
["Sound 1"] = "rbxassetid://125027580248269",
["Sound 2"] = "rbxassetid://79440711397443",
["Sound 3"] = "rbxassetid://102793319115878",
["Sound 4"] = "rbxassetid://134840941464861",
}
local tbl13 = {}
local function scanItemESPs(arg)
if not arg or not arg:IsA("Sound") then
return
end
if not arg:GetAttribute("OriginalSoundId") then
arg:SetAttribute("OriginalSoundId", arg.SoundId)
end
local function renderAllESP()
if tbl3.Pistol_CustomSound then
local v3 = tbl12[tbl3.Pistol_SelectedSound]
if v3 and arg.SoundId ~= v3 then
arg.SoundId = v3
end
else
local attribute = arg:GetAttribute("OriginalSoundId")
if attribute and arg.SoundId ~= attribute then
arg.SoundId = attribute
end
end
end
renderAllESP()
if not tbl13[arg] then
tbl13[arg] = arg:GetPropertyChangedSignal("SoundId"):Connect(renderAllESP)
arg.Played:Connect(function()
task.delay(1, function()
if arg and arg.IsPlaying then
arg:Stop()
end
end)
end)
end
end
setupPistolSound = function(arg)
if not arg then
return
end
local function renderAllESP()
local twistOfFate = arg:FindFirstChild("Twist of Fate") or tbl.Workspace:FindFirstChild("Twist of Fate", true)
if twistOfFate then
for _, descendant in ipairs(twistOfFate:GetDescendants()) do
if descendant:IsA("LocalScript") and descendant.Name:lower() == "gun" then
local disabled = isKnockedOrHooked(arg)
disabled = not tbl3.Pistol_BlockKnocked and disabled
if descendant.Disabled ~= disabled then
descendant.Disabled = disabled
end
end
if descendant:IsA("Sound") and descendant.Name:lower() == "shoot" then
scanItemESPs(descendant)
end
end
end
end
task.spawn(function()
if arg:WaitForChild("Twist of Fate", 5) then
renderAllESP()
end
end)
renderAllESP()
for _, v3 in ipairs({ "Knocked", "isKnocked", "IsHooked", "isHooked", "IsCarried", "isCarried" }) do
arg:GetAttributeChangedSignal(v3):Connect(renderAllESP)
end
end
local n = 0
local function renderAllESP()
local character = tbl.LocalPlayer.Character
character = character and character:FindFirstChild("HumanoidRootPart")
if not character then
return nil
end
local huge = math.huge
local character2 = nil
for _, player in ipairs(tbl.Players:GetPlayers()) do
if player ~= tbl.LocalPlayer and player.Character and player.Character:FindFirstChild("HumanoidRootPart") then
local humanoid2 = player.Character:FindFirstChild("Humanoid")
if humanoid2 and humanoid2.Health > 0 and not isKnockedOrHooked(player.Character) then
local magnitude = (character.Position - player.Character.HumanoidRootPart.Position).Magnitude
if magnitude < huge then
character2 = player.Character
huge = magnitude
end
end
end
end
return character2
end
local function hideSpearTrajectory()
if tbl6.isAimLocking then
return
end
if tick() - n < 0.2 then
return
end
n = tick()
if tbl6.cachedRole == "Killer" then
tbl6.currentTarget = renderAllESP()
if tbl6.currentTarget and tbl6.currentTarget:FindFirstChild("HumanoidRootPart") then
tbl6.isAimLocking = true
if tbl6.lockTimerThread then
task.cancel(tbl6.lockTimerThread)
end
tbl6.lockTimerThread = task.delay(2, function()
tbl6.isAimLocking = false
tbl6.currentTarget = nil
tbl6.lockTimerThread = nil
end)
end
end
end
activateDashLock = function(arg)
if not arg then
if getgenv().DashRenderConn then
getgenv().DashRenderConn:Disconnect()
getgenv().DashRenderConn = nil
end
if getgenv().DashInputConn then
getgenv().DashInputConn:Disconnect()
getgenv().DashInputConn = nil
end
if getgenv().DashMobileLoop then
task.cancel(getgenv().DashMobileLoop)
getgenv().DashMobileLoop = nil
end
if getgenv().DashMobileBtnConn then
getgenv().DashMobileBtnConn:Disconnect()
getgenv().DashMobileBtnConn = nil
end
tbl6.isAimLocking = false
tbl6.currentTarget = nil
return
end
local renderStepped = tbl.RunService.RenderStepped
getgenv().DashRenderConn = renderStepped:Connect(function()
if tbl6.isAimLocking and tbl6.currentTarget and tbl6.currentTarget:FindFirstChild("HumanoidRootPart") then
tbl.Camera.CFrame = tbl.Camera.CFrame:Lerp(CFrame.lookAt(tbl.Camera.CFrame.Position, tbl6.currentTarget.HumanoidRootPart.Position), 0.6)
else
tbl6.isAimLocking = false
end
end)
local inputBegan = tbl.UserInputService.InputBegan
getgenv().DashInputConn = inputBegan:Connect(function(arg2, arg3)
if arg3 then
return
end
if arg2.UserInputType == Enum.UserInputType.MouseButton2 then
hideSpearTrajectory()
end
end)
getgenv().DashMobileLoop = task.spawn(function()
local v3 = nil
local playerGui = tbl.LocalPlayer:WaitForChild("PlayerGui", 10)
while task.wait(2) do
pcall(function()
if playerGui then
local hiddenMob = playerGui:FindFirstChild("Hidden-mob")
local move2 = hiddenMob and hiddenMob:FindFirstChild("Controls") and hiddenMob.Controls:FindFirstChild("move2")
if move2 and move2 ~= v3 then
if getgenv().DashMobileBtnConn then
getgenv().DashMobileBtnConn:Disconnect()
end
v3 = move2
local inputBegan2 = move2.InputBegan
getgenv().DashMobileBtnConn = inputBegan2:Connect(function(arg2)
if arg2.UserInputType == Enum.UserInputType.Touch or arg2.UserInputType == Enum.UserInputType.MouseButton1 then
hideSpearTrajectory()
end
end)
end
end
end)
end
end)
end
local function renderSpearTrajectory()
if tbl6.Bandage then
return
end
tbl6.Bandage = true
task.spawn(function()
pcall(function()
local remotes2 = tbl.ReplicatedStorage:FindFirstChild("Remotes")
remotes2 = remotes2 and remotes2:FindFirstChild("Items")
remotes2 = remotes2 and remotes2:FindFirstChild("Bandage")
remotes2 = remotes2 and remotes2:FindFirstChild("Fire")
local character = tbl.LocalPlayer.Character
if remotes2 and character then
local bandage = character:FindFirstChild("Bandage") or tbl.LocalPlayer.Backpack:FindFirstChild("Bandage")
if bandage then
local rightArm = bandage:FindFirstChild("Right Arm")
rightArm = rightArm and rightArm:FindFirstChild("Bandage") or bandage
for i = 1, 400 do
remotes2:FireServer(true, rightArm)
remotes2:FireServer(false, rightArm)
end
end
end
end)
task.wait(0.1)
tbl6.Bandage = false
end)
end
local function applyFullbright()
if tbl6.HookF then
return
end
if not getrawmetatable or not setreadonly then
warn("[Anti-Fail]: Executor tidak support getrawmetatable atau setreadonly.")
return
end
local v3 = getrawmetatable(game)
setreadonly(v3, false)
local namecall = v3.__namecall
v3.__namecall = newcclosure(function(arg, ...)
local v4 = table.pack(...)
local v5 = getnamecallmethod()
local tbl14 = { ... }
if tbl3.Killer_BypassCarry and v5 == "GetAttribute" and not checkcaller() then
if tbl14[1] == "IsCarrying" then
return false
end
end
if v5 == "FireServer" and not checkcaller() then
if typeof(arg) == "Instance" then
local name = arg.Name
if tbl3.Surv_AutoCancelGene and name == "SkillCheckResultEvent" then
if args[1] == "fail" then
return nil
end
end
if tbl3.Aim_SilentVeil and name == "Spearthrow" then
return
end
if tbl3.Aim_Silent and name == "Fire" and arg.Parent and arg.Parent.Name == "Twist of Fate" then
return nil
end
if tbl3.Surv_NoFall and name == "Fall" then
return nil
end
if tbl3.Surv_Bandage and name == "Fire" and arg.Parent and arg.Parent.Name == "Bandage" then
if tbl14[1] == true then
renderSpearTrajectory()
return nil
end
end
if name == "VaultEvent" then
local character = tbl.LocalPlayer.Character
if tbl3.Surv_SpeedAfterVault and not tbl6.QuickRecoveryOnCD then
tbl6.VaultBoostActive = true
tbl6.QuickRecoveryOnCD = true
if character then
character:SetAttribute("speedboost", 1.4)
end
if tbl6.VaultBoostThread then
task.cancel(tbl6.VaultBoostThread)
end
tbl6.VaultBoostThread = task.delay(3, function()
tbl6.VaultBoostActive = false
local character2 = tbl.LocalPlayer.Character
if character2 then
character2:SetAttribute("speedboost", tbl3.Surv_Perks and tbl3.Surv_Spdb and tbl3.Surv_SpeedBoost or 1)
end
task.wait(tbl3.Surv_QuickRecoveryCD)
tbl6.QuickRecoveryOnCD = false
end)
end
if tbl3.Surv_FastVault and not tbl6.FlowstateOnCD then
task.delay(1, function()
tbl6.FlowstateOnCD = true
end)
if tbl6.FlowstateCDThread then
task.cancel(tbl6.FlowstateCDThread)
end
tbl6.FlowstateCDThread = task.spawn(function()
task.wait(tbl3.Surv_FlowstateCD)
tbl6.FlowstateOnCD = false
end)
end
end
if tbl3.Anti_Blind and tbl6.cachedRole == "Killer" and name == "GotBlinded" then
return nil
end
end
end
return namecall(arg, table.unpack(v4, 1, v4.n))
end)
setreadonly(v3, true)
tbl6.HookF = true
end
applyFullbright()
applyFakeName = function()
if not tbl3.Misc_FakeName then
return
end
local playerGui = tbl.LocalPlayer:FindFirstChild("PlayerGui")
if not playerGui then
return
end
local function startFullbrightLoop(arg)
pcall(function()
if arg:IsA("TextLabel") or arg:IsA("TextButton") or arg:IsA("TextBox") then
local function stopFullbrightLoop()
if not tbl3.Misc_FakeName then
return
end
local text = arg.Text
if not arg:GetAttribute("OriginalText") then
arg:SetAttribute("OriginalText", text)
end
local flag3 = false
for _, player in ipairs(tbl.Players:GetPlayers()) do
local name = player.Name
local displayName = player.DisplayName
local v3
if name and name ~= "" and string.find(text, name) then
v3 = string.gsub(text, name, tbl2.name)
flag3 = true
else
v3 = text
end
if displayName and displayName ~= "" and string.find(v3, displayName) then
text = string.gsub(v3, displayName, tbl2.name)
flag3 = true
else
text = v3
end
end
if flag3 and arg.Text ~= text then
arg.Text = text
end
end
stopFullbrightLoop()
local connection3 = arg:GetPropertyChangedSignal("Text"):Connect(stopFullbrightLoop)
table.insert(tbl6.SpooferConns, connection3)
elseif arg:IsA("ImageLabel") or arg:IsA("ImageButton") then
local function stopFullbrightLoop()
if not tbl3.Misc_FakeName then
return
end
local image = arg.Image
local flag3 = false
for _, player in ipairs(tbl.Players:GetPlayers()) do
if string.find(image, tostring(player.UserId)) then
if not arg:GetAttribute("OriginalImage") then
arg:SetAttribute("OriginalImage", image)
end
flag3 = true
break
end
end
local image2 = "rbxassetid://" .. tbl2.icon
if flag3 and arg.Image ~= image2 then
arg.Image = image2
end
end
stopFullbrightLoop()
local connection3 = arg:GetPropertyChangedSignal("Image"):Connect(stopFullbrightLoop)
table.insert(tbl6.SpooferConns, connection3)
end
end)
end
for _, descendant in ipairs(playerGui:GetDescendants()) do
startFullbrightLoop(descendant)
end
local connection3 = playerGui.DescendantAdded:Connect(function(descendant)
task.defer(function()
startFullbrightLoop(descendant)
end)
end)
table.insert(tbl6.SpooferConns, connection3)
end
removeFakeName = function()
for _, spooferConn in ipairs(tbl6.SpooferConns) do
if spooferConn.Connected then
spooferConn:Disconnect()
end
end
table.clear(tbl6.SpooferConns)
local playerGui = tbl.LocalPlayer:FindFirstChild("PlayerGui")
if playerGui then
for _, descendant in ipairs(playerGui:GetDescendants()) do
pcall(function()
if descendant:IsA("TextLabel") or descendant:IsA("TextButton") or descendant:IsA("TextBox") then
local attribute = descendant:GetAttribute("OriginalText")
if attribute then
descendant.Text = attribute
descendant:SetAttribute("OriginalText", nil)
end
elseif descendant:IsA("ImageLabel") or descendant:IsA("ImageButton") then
local attribute = descendant:GetAttribute("OriginalImage")
if attribute then
descendant.Image = attribute
descendant:SetAttribute("OriginalImage", nil)
end
end
end)
end
end
end
runAutoRepair = function()
if tbl6.RepairEngineRunning then
return
end
tbl6.RepairEngineRunning = true
task.spawn(function()
local tbl14 = {}
local tbl15 = {}
local n2 = 0
while tbl3.AUTO_Generator and not tbl6.Unloaded do
if tick() - n2 > 2 then
tbl14 = {}
for _, generator2 in ipairs(tbl9.Generators) do
local attribute = generator2.model:GetAttribute("RepairProgress")
local value
if attribute then
value = attribute
else
value = generator2.model:FindFirstChild("RepairProgress") and generator2.model.RepairProgress.Value
end
value = value or 0
if value < 100 then
for _, child in ipairs(generator2.model:GetChildren()) do
if child.Name:match("GeneratorPoint") then
table.insert(tbl14, { gen = generator2.model, pt = child })
end
end
else
for _, child in ipairs(generator2.model:GetChildren()) do
if child.Name:match("GeneratorPoint") then
tbl15[child] = nil
end
end
end
end
n2 = tick()
end
if repairEvent and skillCheckResultEvent then
local v3 = getLocalRootPart()
for _, v4 in ipairs(tbl14) do
if v3 and (v3.Position - v4.pt.Position).Magnitude <= 20 then
if not tbl15[v4.pt] then
pcall(repairEvent.FireServer, repairEvent, v4.pt, true)
tbl15[v4.pt] = true
end
pcall(skillCheckResultEvent.FireServer, skillCheckResultEvent, tbl3.Surv_PerfectSkill and "success" or "neutral", 100, v4.gen, v4.pt)
elseif tbl15[v4.pt] then
pcall(repairEvent.FireServer, repairEvent, v4.pt, false)
tbl15[v4.pt] = nil
end
end
end
task.wait(0.15)
end
if repairEvent then
for k in pairs(tbl15) do
pcall(repairEvent.FireServer, repairEvent, k, false)
end
end
tbl6.RepairEngineRunning = false
end)
end
cancelAutoRepair = function()
tbl3.AUTO_Generator = false
pcall(function()
local remotes2 = tbl.ReplicatedStorage:FindFirstChild("Remotes")
local generator2 = remotes2 and remotes2:FindFirstChild("Generator")
local repairEvent2 = generator2 and generator2:FindFirstChild("RepairEvent")
if repairEvent2 then
for _, generator3 in ipairs(tbl9.Generators) do
for _, child in ipairs(generator3.model:GetChildren()) do
if child.Name:match("GeneratorPoint") then
pcall(function()
repairEvent2:FireServer(child, false)
end)
end
end
end
end
local character = tbl.LocalPlayer.Character
if not character then
return
end
for _, descendant in pairs(character:GetDescendants()) do
if descendant:IsA("Weld") or descendant:IsA("WeldConstraint") or descendant:IsA("ManualWeld") then
if descendant.Part0 and not descendant.Part0:IsDescendantOf(character) or descendant.Part1 and not descendant.Part1:IsDescendantOf(character) then
descendant:Destroy()
end
end
end
local humanoid2 = character:FindFirstChildOfClass("Humanoid")
local humanoidRootPart2 = character:FindFirstChild("HumanoidRootPart")
if humanoid2 then
humanoid2:ChangeState(Enum.HumanoidStateType.GettingUp)
humanoid2.PlatformStand = false
humanoid2.Sit = false
humanoid2.WalkSpeed = tbl6.OriginalSpeed or 16
local animator = humanoid2:FindFirstChildOfClass("Animator")
if animator then
for _, v3 in pairs(animator:GetPlayingAnimationTracks()) do
v3:Stop()
end
end
end
if humanoidRootPart2 then
humanoidRootPart2.Anchored = false
humanoidRootPart2.CFrame = humanoidRootPart2.CFrame * CFrame.new(0, 0, 1.5)
end
end)
end
findBestGenerator = function()
if not getLocalRootPart() then
return nil
end
local huge = math.huge
local v3 = nil
for _, generator2 in ipairs(tbl9.Generators) do
local attribute = generator2.model:GetAttribute("RepairProgress") or generator2.model:FindFirstChild("RepairProgress") and generator2.model.RepairProgress.Value or 0
local attribute2 = generator2.model:GetAttribute("PlayersRepairingCount") or generator2.model:FindFirstChild("PlayersRepairingCount") and generator2.model.PlayersRepairingCount.Value or 0
if attribute < 100 and attribute2 < 4 then
local huge2 = math.huge
for _, player in pairs(tbl.Players:GetPlayers()) do
if player ~= tbl.LocalPlayer and isPlayerKiller(player) and player.Character and player.Character:FindFirstChild("HumanoidRootPart") then
local magnitude = (player.Character.HumanoidRootPart.Position - generator2.part.Position).Magnitude
if magnitude < huge2 then
huge2 = magnitude
end
end
end
if tbl3.AUTO_LeaveDist + 15 < huge2 then
local v4 = getDistanceTo(generator2.part.Position)
if v4 < huge then
huge = v4
v3 = generator2
end
end
end
end
return v3
end
doAutoFlee = function()
local v3 = getLocalRootPart()
if not v3 then
return false
end
task.spawn(cancelAutoRepair)
local huge = math.huge
local humanoidRootPart2 = nil
for _, player in pairs(tbl.Players:GetPlayers()) do
if player ~= tbl.LocalPlayer and isPlayerKiller(player) and player.Character and player.Character:FindFirstChild("HumanoidRootPart") then
local magnitude = (player.Character.HumanoidRootPart.Position - v3.Position).Magnitude
if magnitude < huge then
humanoidRootPart2 = player.Character.HumanoidRootPart
huge = magnitude
end
end
end
if humanoidRootPart2 and huge <= tbl3.AUTO_LeaveDist then
local unit = (v3.Position - humanoidRootPart2.Position).Unit
if unit.Magnitude ~= unit.Magnitude then
unit = Vector3.new(1, 0, 0)
end
v3.CFrame = CFrame.new(v3.Position + unit * (tbl3.AUTO_LeaveDist + 20) + Vector3.new(0, 3, 0))
return true
end
return false
end
teleportToGenerator = function(arg)
local v3 = getLocalRootPart()
if not v3 or not arg then
return false
end
local unit = (v3.Position - arg.part.Position).Unit
if unit.Magnitude ~= unit.Magnitude then
unit = Vector3.new(0, 0, 1)
end
v3.CFrame = CFrame.new(arg.part.Position + unit * tbl3.TP_Offset + Vector3.new(0, 3, 0), arg.part.Position)
return true
end
local thread2 = nil
setDoubleGen = function(survDoubleGen)
tbl3.Surv_DoubleGen = survDoubleGen
if survDoubleGen then
if thread2 then
task.cancel(thread2)
end
thread2 = task.spawn(function()
local remotes2 = game:GetService("ReplicatedStorage"):FindFirstChild("Remotes")
local repairEvent2 = remotes2 and remotes2:FindFirstChild("Generator") and remotes2.Generator:FindFirstChild("RepairEvent")
local tbl14 = {}
local flag3 = false
while tbl3.Surv_DoubleGen and not tbl6.Unloaded do
task.wait(0.2)
local character = tbl.LocalPlayer.Character
if tbl6.cachedRole == "Survivor" and character then
local checkInterractable = character:FindFirstChild("CheckInterractable")
local flag4 = checkInterractable and checkInterractable:GetAttribute("isRepairing") == true or character:GetAttribute("isRepairing") == true
if flag4 and not flag3 then
tbl14 = {}
task.wait(0.2)
local humanoidRootPart2 = character:FindFirstChild("HumanoidRootPart")
local v3 = humanoidRootPart2 and repairEvent2
flag3 = true
if v3 then
local exitTo = nil
for _, generator2 in ipairs(tbl9.Generators) do
if (humanoidRootPart2.Position - generator2.part.Position).Magnitude <= 15 then
exitTo = 1
break
end
end
if exitTo == 1 then
for _, child in ipairs(t8.model:GetChildren()) do
if string.match(child.Name, "GeneratorPoint") then
if not (child:GetAttribute("IsRepairing") == true or child:GetAttribute("isRepairing") == true) then
table.insert(tbl14, child)
pcall(function()
repairEvent2:FireServer(child, true)
end)
end
end
end
end
end
elseif not flag4 and flag3 then
if repairEvent2 then
for _, v3 in ipairs(tbl14) do
pcall(function()
repairEvent2:FireServer(v3, false)
end)
end
end
tbl14 = {}
flag3 = false
end
end
end
end)
elseif thread2 then
task.cancel(thread2)
thread2 = nil
end
end
hopToNewServer = function()
local ok, result = pcall(function()
return game:HttpGet("https://games.roblox.com/v1/games/" .. tostring(game.PlaceId) .. "/servers/Public?sortOrder=Desc&limit=100&excludeFullGames=true")
end)
if ok and result then
local data = tbl.HttpService:JSONDecode(result)
local tbl14 = {}
if data and data.data then
for _, v3 in ipairs(data.data) do
if type(v3) == "table" and v3.id and v3.id ~= game.JobId then
table.insert(tbl14, v3.id)
end
end
end
if #tbl14 > 0 then
local v3 = tbl14[math.random(#tbl14)]
game:GetService("TeleportService"):TeleportToPlaceInstance(game.PlaceId, v3, tbl.LocalPlayer)
elseif getgenv().Window then
sendNotif("Gagal: Tidak ada server yang tersedia.", 3)
end
end
end
clearESPByType = function(arg)
if arg == "Player" then
for _, v3 in ipairs(tbl11) do
if v3.Character then
local peh = v3.Character:FindFirstChild("PEH")
local peText = v3.Character:FindFirstChild("PE_Text")
if peh then
Debris:AddItem(peh, 0)
end
if peText then
Debris:AddItem(peText, 0)
end
end
end
elseif arg == "Killer" then
for _, v3 in ipairs(tbl11) do
if v3.Character then
local keh = v3.Character:FindFirstChild("KEH")
local keText = v3.Character:FindFirstChild("KE_Text")
if keh then
Debris:AddItem(keh, 0)
end
if keText then
Debris:AddItem(keText, 0)
end
end
end
elseif arg == "Generator" then
for _, generator2 in pairs(tbl9.Generators) do
if generator2.model and generator2.model.Parent then
local geh = generator2.model:FindFirstChild("GEH")
local geText = generator2.model:FindFirstChild("GE_Text")
if geh then
Debris:AddItem(geh, 0)
end
if geText then
Debris:AddItem(geText, 0)
end
end
end
elseif arg == "Pallet" then
for _, pallet in pairs(tbl9.Pallets) do
if pallet and pallet.Parent then
local palletEH = pallet:FindFirstChild("PalletEH")
if palletEH then
Debris:AddItem(palletEH, 0)
end
end
end
elseif arg == "Hook" then
for _, hook in pairs(tbl9.Hooks) do
if hook and hook.Parent then
local hookEH = hook:FindFirstChild("HookEH")
local hookEText = hook:FindFirstChild("HookE_Text")
if hookEH then
Debris:AddItem(hookEH, 0)
end
if hookEText then
Debris:AddItem(hookEText, 0)
end
end
end
elseif arg == "Window" then
for _, window in pairs(tbl9.Windows) do
if window and window.Parent then
local windowEH = window:FindFirstChild("WindowEH")
if windowEH then
Debris:AddItem(windowEH, 0)
end
end
end
elseif arg == "Item" then
for _, itemESP in pairs(tbl6.ItemESPs) do
if itemESP then
Debris:AddItem(itemESP, 0)
end
end
table.clear(tbl6.ItemESPs)
elseif arg == "Gate" then
for _, gate in pairs(tbl9.Gates) do
if gate and gate.Parent then
local gateEH = gate:FindFirstChild("GateEH")
local gateEText = gate:FindFirstChild("GateE_Text")
if gateEH then
Debris:AddItem(gateEH, 0)
end
if gateEText then
Debris:AddItem(gateEText, 0)
end
end
end
elseif arg == "SCP" then
for _, scP in pairs(tbl9.SCPs) do
if scP and scP.Parent then
local scpeh = scP:FindFirstChild("SCPEH")
if scpeh then
Debris:AddItem(scpeh, 0)
end
end
end
end
end
clearAllESP = function()
clearESPByType("Player")
clearESPByType("Killer")
clearESPByType("Generator")
clearESPByType("Pallet")
clearESPByType("Hook")
clearESPByType("Item")
clearESPByType("Gate")
clearESPByType("SCP")
clearESPByType("Window")
end
setupSpearStunTracking = function(arg)
if not arg then
return
end
if tbl6.SpearModeConn then
tbl6.SpearModeConn:Disconnect()
tbl6.SpearModeConn = nil
end
if tbl6.StunConn then
tbl6.StunConn:Disconnect()
tbl6.StunConn = nil
end
tbl6.SpearModeConn = arg:GetAttributeChangedSignal("spearmode"):Connect(function()
local attribute = tbl.LocalPlayer:FindFirstChild("SelectedKiller") and tbl.LocalPlayer.SelectedKiller.Value or tbl.LocalPlayer:GetAttribute("SelectedKiller")
if tbl6.cachedRole == "Killer" and attribute == "Veil" and arg:GetAttribute("spearmode") == true then
tbl8.isChargingSpear = false
tbl8.currentTouchInput = nil
tbl6.spearSwitchCooldown = true
task.delay(2, function()
tbl6.spearSwitchCooldown = false
end)
else
tbl6.spearSwitchCooldown = false
end
end)
tbl6.StunConn = arg:GetAttributeChangedSignal("IsStunned"):Connect(function()
if arg:GetAttribute("IsStunned") == true then
tbl8.isChargingSpear = false
tbl8.currentTouchInput = nil
end
end)
end
applySkillSoundSwap = function(arg)
if not arg then
return
end
local tbl14 = { Great = "rbxassetid://111033165135961", Sound = "rbxassetid://138997442392324" }
local tbl15 = { "Skillcheck-gen", "Skillcheck-player" }
task.spawn(function()
for _, v3 in ipairs(tbl15) do
local v4 = arg:WaitForChild(v3, 5)
if v4 then
for k, v5 in pairs(tbl14) do
local v6 = v4:WaitForChild(k, 5)
if v6 and v6:IsA("Sound") then
if not v6:GetAttribute("OriginalSoundId") then
v6:SetAttribute("OriginalSoundId", v6.SoundId)
end
if tbl3.Surv_SoundDbd then
v6.SoundId = v5
else
local attribute = v6:GetAttribute("OriginalSoundId")
if attribute then
v6.SoundId = attribute
end
end
end
end
end
end
end)
end
updateTeamRole = function()
if not tbl.LocalPlayer.Team then
str = "Unknown"
return
end
local name = tbl.LocalPlayer.Team.Name
if name == "Killer" then
str = "Killer"
elseif name == "Survivors" then
str = "Survivor"
else
str = "Spectator"
if getgenv().NoCD_Active then
getgenv().NoCD_Active = false
if getgenv().CleanupNoCD then
pcall(getgenv().CleanupNoCD)
end
end
end
tbl6.VaultBoostActive = false
tbl6.QuickRecoveryOnCD = false
if tbl6.VaultBoostThread then
task.cancel(tbl6.VaultBoostThread)
tbl6.VaultBoostThread = nil
end
if tbl6.TeamLabel then
pcall(function()
tbl6.TeamLabel:Set("Team: " .. str)
end)
end
if str == "Survivor" and tbl3.Misc_SmoothCam then
pcall(applySmoothCamera)
end
if str == "Killer" then
local survivorFlags = {
"AUTO_AutoSurvivor", "Surv_AutoSprint", "Surv_SelfHeal", "Surv_AuraHeal",
"Surv_AutoParry", "Surv_Parry", "Surv_ParryV2", "Surv_AutoCrouch", "Surv_Bandage",
"Surv_CrouchV", "Surv_Perks", "Surv_Spdb", "Surv_PerfectVault",
"Surv_FastVault", "Surv_SpeedAfterVault", "Surv_AutoFleeToggle",
"Surv_AutoSkillCheck", "Surv_GodMode", "Surv_NoFall", "Surv_SoundDbd",
"AntiBlockWindowToggle", "Surv_AutoPalletToggle", "Surv_DoubleGenToggle",
"AUTO_Generator", "Surv_Fov",
}
for _, flag in ipairs(survivorFlags) do
if tbl3[flag] then
tbl3[flag] = false
if getgenv().Toggles and getgenv().Toggles[flag] then
pcall(function() getgenv().Toggles[flag]:SetValue(false) end)
end
end
end
if tbl3.Misc_SmoothCam then
tbl3.Misc_SmoothCam = false
pcall(applySmoothCamera)
end
tbl.Camera.FieldOfView = 70
if tbl6.FleeThread then task.cancel(tbl6.FleeThread) tbl6.FleeThread = nil end
if tbl6.AutoSprintThread then task.cancel(tbl6.AutoSprintThread) tbl6.AutoSprintThread = nil end
if tbl6.blockThread then task.cancel(tbl6.blockThread) tbl6.blockThread = nil end
task.spawn(cancelAutoRepair)
end
renderSCPESP()
clearAllESP()
if name == "Killer" or name == "Survivors" then
if refreshPlayerList then
refreshPlayerList()
end
task.delay(15, function()
if tbl6.Unloaded then
return
end
refreshMapData()
applySmoothCamera()
applySkillSoundSwap(tbl.LocalPlayer.Character)
setupSpearStunTracking(tbl.LocalPlayer.Character)
if tbl3.Misc_SmoothHDR then
setSmoothHDR(true)
end
end)
end
end
end
local renderSCPESP
renderSCPESP = function()
if not tbl3.ESP_Master then
return
end
if tbl3.ESP_SCP then
for _, scP in ipairs(tbl9.SCPs) do
if scP and scP.Parent then
local humanoid2 = scP:FindFirstChildOfClass("Humanoid")
local humanoidRootPart2 = scP:FindFirstChild("HumanoidRootPart") or scP:FindFirstChild("Torso") or scP:FindFirstChild("Head") or scP.PrimaryPart
if humanoid2 and humanoidRootPart2 and math.floor(humanoid2.WalkSpeed) > 0 and math.floor(humanoid2.WalkSpeed) ~= 16 then
local scp = tbl7.Colors.SCP
local scpeh = scP:FindFirstChild("SCPEH")
if not scpeh then
scpeh = Instance.new("Highlight")
scpeh.Name = "SCPEH"
scpeh.Parent = scP
end
scpeh.FillColor = scp
scpeh.OutlineColor = scp
scpeh.FillTransparency = tbl3.ESP_Outline and 1 or tbl3.Trans or 0.7
scpeh.Enabled = true
scpeh.OutlineTransparency = 0.5
else
local scpeh = scP:FindFirstChild("SCPEH")
if scpeh then
scpeh.Enabled = false
end
end
end
end
else
clearESPByType("SCP")
end
end
local createBillboardESP, scanItemESPs
do
local items = tbl.ReplicatedStorage:WaitForChild("Items", 5)
local function renderAllESP(arg)
return tostring(arg):match("%d+")
end
local function hideSpearTrajectory(arg)
if not items then
return nil
end
local v3 = items:FindFirstChild(arg)
if not v3 then
return nil
end
local texture = nil
pcall(function()
texture = v3.Texture or v3.Image
end)
if texture and texture ~= "" then
local v4 = renderAllESP(texture)
if v4 then
return ("rbxthumb://type=Asset&id=%s&w=420&h=420"):format(v4)
end
end
return nil
end
createBillboardESP = function(parent, name, arg)
local billboardGui = parent:FindFirstChild(name)
local lineScale = arg.lineScale or 1
if not billboardGui then
billboardGui = Instance.new("BillboardGui")
billboardGui.Name = name
billboardGui.Parent = parent
if parent:IsA("Model") then
billboardGui.Adornee = parent:FindFirstChild("Head") or parent:FindFirstChild("HumanoidRootPart") or parent.PrimaryPart
else
billboardGui.Adornee = parent
end
billboardGui.AlwaysOnTop = true
billboardGui.Size = UDim2.new(0, 250, 0, 100)
billboardGui.StudsOffset = Vector3.new(0, arg.offsetY or 0, 0)
local frame6 = Instance.new("Frame")
frame6.Name = "Wrapper"
frame6.AutomaticSize = Enum.AutomaticSize.XY
frame6.Size = UDim2.new(0, 0, 0, 0)
frame6.Position = UDim2.new(0.5, 25 * lineScale, 0.5, -25 * lineScale)
frame6.AnchorPoint = Vector2.new(0, 1)
frame6.BackgroundTransparency = 1
frame6.ZIndex = 2
frame6.Parent = billboardGui
local uiListLayout = Instance.new("UIListLayout")
uiListLayout.FillDirection = Enum.FillDirection.Vertical
uiListLayout.VerticalAlignment = Enum.VerticalAlignment.Bottom
uiListLayout.HorizontalAlignment = Enum.HorizontalAlignment.Center
uiListLayout.Padding = UDim.new(0, 0)
uiListLayout.SortOrder = Enum.SortOrder.LayoutOrder
uiListLayout.Parent = frame6
local textLabel5 = Instance.new("TextLabel")
textLabel5.Name = "StatusText"
textLabel5.AutomaticSize = Enum.AutomaticSize.X
textLabel5.Size = UDim2.new(0, 0, 0, 10)
textLabel5.BackgroundTransparency = 1
textLabel5.Font = Enum.Font.GothamBold
textLabel5.TextSize = 10
textLabel5.TextColor3 = Color3.fromRGB(255, 255, 255)
textLabel5.TextXAlignment = Enum.TextXAlignment.Center
textLabel5.TextYAlignment = Enum.TextYAlignment.Bottom
textLabel5.ZIndex = 3
textLabel5.LayoutOrder = 1
textLabel5.Parent = frame6
local frame7 = Instance.new("Frame")
frame7.Name = "Box"
frame7.AutomaticSize = Enum.AutomaticSize.X
frame7.Size = UDim2.new(0, 0, 0, 16)
frame7.BackgroundColor3 = Color3.fromRGB(15, 15, 15)
frame7.BackgroundTransparency = 0
frame7.BorderSizePixel = 0
frame7.ZIndex = 2
frame7.LayoutOrder = 2
frame7.Parent = frame6
Instance.new("UICorner", frame7).CornerRadius = UDim.new(0, 3)
local uiGradient = Instance.new("UIGradient")
local numberSequence = NumberSequence.new
local tbl12 = {}
local v3 = NumberSequenceKeypoint.new(0, 1)
local v4 = NumberSequenceKeypoint.new(0.15, 0.3)
local v5 = NumberSequenceKeypoint.new(0.5, 0.3)
local v6 = NumberSequenceKeypoint.new(0.85, 0.3)
local new = NumberSequenceKeypoint.new
tbl12[1] = v3
tbl12[2] = v4
tbl12[3] = v5
tbl12[4] = v6
do
local values = table.pack(new(1, 1))
table.move(values, 1, values.n, 5, tbl12)
end
uiGradient.Transparency = numberSequence(tbl12)
uiGradient.Parent = frame7
local uiPadding = Instance.new("UIPadding", frame7)
uiPadding.PaddingLeft = UDim.new(0, 8)
uiPadding.PaddingRight = UDim.new(0, 8)
local uiListLayout2 = Instance.new("UIListLayout", frame7)
uiListLayout2.FillDirection = Enum.FillDirection.Horizontal
uiListLayout2.VerticalAlignment = Enum.VerticalAlignment.Center
uiListLayout2.HorizontalAlignment = Enum.HorizontalAlignment.Center
uiListLayout2.Padding = UDim.new(0, 4)
uiListLayout2.SortOrder = Enum.SortOrder.LayoutOrder
local imageLabel = Instance.new("ImageLabel", frame7)
imageLabel.Name = "Icon"
imageLabel.Size = UDim2.new(0, 12, 0, 12)
imageLabel.BackgroundTransparency = 1
imageLabel.ZIndex = 3
imageLabel.LayoutOrder = 1
imageLabel.Visible = false
local textLabel6 = Instance.new("TextLabel", frame7)
textLabel6.Name = "Text"
textLabel6.AutomaticSize = Enum.AutomaticSize.X
textLabel6.Size = UDim2.new(0, 0, 1, 0)
textLabel6.BackgroundTransparency = 1
textLabel6.Font = Enum.Font.GothamMedium
textLabel6.TextSize = 11
textLabel6.ZIndex = 3
textLabel6.LayoutOrder = 2
textLabel6.RichText = true
textLabel6.TextXAlignment = Enum.TextXAlignment.Center
textLabel6.TextYAlignment = Enum.TextYAlignment.Center
local frame8 = Instance.new("Frame")
frame8.Name = "Line"
frame8.Size = UDim2.new(0, 1, 0, 36 * lineScale)
frame8.Position = UDim2.new(0.5, 12 * lineScale, 0.5, -12 * lineScale)
frame8.AnchorPoint = Vector2.new(0.5, 0.5)
frame8.Rotation = 45
frame8.BorderSizePixel = 0
frame8.ZIndex = 1
frame8.Parent = billboardGui
local uiGradient2 = Instance.new("UIGradient")
uiGradient2.Rotation = 90
local new2 = NumberSequenceKeypoint.new
uiGradient2.Transparency = NumberSequence.new({ NumberSequenceKeypoint.new(0, 0), new2(1, 1) })
uiGradient2.Parent = frame8
end
if billboardGui:FindFirstChild("Wrapper") then
billboardGui.Wrapper.Position = UDim2.new(0.5, 25 * lineScale, 0.5, -25 * lineScale)
end
if billboardGui:FindFirstChild("Line") then
billboardGui.Line.Size = UDim2.new(0, 1, 0, 36 * lineScale)
billboardGui.Line.Position = UDim2.new(0.5, 12 * lineScale, 0.5, -12 * lineScale)
billboardGui.Line.BackgroundColor3 = arg.color
end
local str3 = string.format("#%02X%02X%02X", arg.color.R * 255, arg.color.G * 255, arg.color.B * 255)
local flag3 = arg.hookCount and arg.hookCount ~= ""
local str4 = ""
if flag3 then
str4 = string.format(" [%s]", arg.hookCount)
end
local box = billboardGui:FindFirstChild("Wrapper") and billboardGui.Wrapper:FindFirstChild("Box")
if box then
if arg.distance then
box.Text.Text = string.format("%s%s [%dm]", arg.name, str4, str3, arg.distance)
elseif arg.subtext then
box.Text.Text = string.format("%s%s %s", arg.name, str4, str3, arg.subtext)
else
box.Text.Text = string.format("%s%s", arg.name, str4)
end
if arg.icon and arg.icon ~= "" then
box.Icon.Image = arg.icon
box.Icon.Visible = true
else
box.Icon.Visible = false
end
end
local statusText = billboardGui:FindFirstChild("Wrapper") and billboardGui.Wrapper:FindFirstChild("StatusText")
if statusText then
if arg.status and arg.status ~= "" then
statusText.Text = arg.status
statusText.Visible = true
if arg.status == "Hook" then
statusText.TextColor3 = Color3.fromRGB(255, 50, 50)
elseif arg.status == "Knock" then
statusText.TextColor3 = Color3.fromRGB(255, 150, 50)
elseif arg.status == "Injured" then
statusText.TextColor3 = Color3.fromRGB(255, 255, 50)
end
else
statusText.Visible = false
end
end
end
scanItemESPs = function()
if not tbl3.ESP_Master then
return
end
local v3 = getLocalRootPart()
if tbl3.ESP_KillerWarn and v3 and tbl6.cachedRole == "Survivor" then
local killerWarn = v3:FindFirstChild("KillerWarn")
local huge = math.huge
for _, player in ipairs(tbl.Players:GetPlayers()) do
if player ~= tbl.LocalPlayer and isPlayerKiller(player) and player.Character then
local humanoidRootPart2 = player.Character:FindFirstChild("HumanoidRootPart")
if humanoidRootPart2 then
local magnitude = (humanoidRootPart2.Position - v3.Position).Magnitude
if magnitude < huge then
huge = magnitude
end
end
end
end
if huge <= 80 then
if not killerWarn then
killerWarn = Instance.new("BillboardGui")
killerWarn.Name = "KillerWarn"
killerWarn.Size = UDim2.new(0, 28, 0, 28)
killerWarn.AlwaysOnTop = true
killerWarn.StudsOffset = Vector3.new(0, 4, 0)
killerWarn.Parent = v3
local frame6 = Instance.new("Frame")
frame6.Name = "WarnBox"
frame6.Size = UDim2.new(0.65, 0, 0.65, 0)
frame6.Position = UDim2.new(0.5, 0, 0.5, 0)
frame6.AnchorPoint = Vector2.new(0.5, 0.5)
frame6.BackgroundTransparency = 1
frame6.Rotation = 45
frame6.Parent = killerWarn
local uiStroke3 = Instance.new("UIStroke")
uiStroke3.Name = "WarnStroke"
uiStroke3.Thickness = 1
uiStroke3.Parent = frame6
local textLabel5 = Instance.new("TextLabel")
textLabel5.Name = "WarnText"
textLabel5.Size = UDim2.new(0.8, 0, 0.8, 0)
textLabel5.Position = UDim2.new(0.5, 0, 0.5, 0)
textLabel5.AnchorPoint = Vector2.new(0.5, 0.5)
textLabel5.BackgroundTransparency = 1
textLabel5.TextScaled = true
textLabel5.TextStrokeTransparency = 0.4
textLabel5.Font = Enum.Font.GothamBlack
textLabel5.Text = "!"
textLabel5.ZIndex = 2
textLabel5.Parent = killerWarn
end
local warnText = killerWarn:FindFirstChild("WarnText")
local warnBox = killerWarn:FindFirstChild("WarnBox")
warnBox = warnBox and warnBox:FindFirstChild("WarnStroke")
if warnText and warnBox then
if huge <= 40 then
warnBox.Color = Color3.fromRGB(255, 20, 20)
warnText.TextColor3 = Color3.fromRGB(255, 20, 20)
else
warnBox.Color = Color3.fromRGB(255, 220, 0)
warnText.TextColor3 = Color3.fromRGB(255, 220, 0)
end
end
elseif killerWarn then
killerWarn:Destroy()
end
else
local killerWarn = v3 and v3:FindFirstChild("KillerWarn")
if killerWarn then
killerWarn:Destroy()
end
end
if tbl3.ESP_Player or tbl3.ESP_Killer then
for _, player in pairs(tbl.Players:GetPlayers()) do
if player ~= tbl.LocalPlayer and player.Character then
local v4 = isPlayerKiller(player)
local head = player.Character:FindFirstChild("Head") or player.Character:FindFirstChild("HumanoidRootPart")
if head and (not v4 and tbl3.ESP_Player or v4 and tbl3.ESP_Killer) then
local n = v3 and math.floor((head.Position - v3.Position).Magnitude) or 0
local name = v4 and "KEH" or "PEH"
local str3 = v4 and "KE_Text" or "PE_Text"
local str4 = v4 and "PEH" or "KEH"
local str5 = v4 and "PE_Text" or "KE_Text"
if player.Character:FindFirstChild(str4) then
player.Character[str4]:Destroy()
end
if player.Character:FindFirstChild(str5) then
player.Character[str5]:Destroy()
end
if n <= tbl3.ESP_MaxDistance then
local killer = v4 and tbl7.Colors.Killer or tbl7.Colors.Player
local highlight = player.Character:FindFirstChild(name)
if not highlight then
highlight = Instance.new("Highlight")
highlight.Name = name
highlight.Parent = player.Character
end
highlight.FillColor = killer
highlight.OutlineColor = killer
highlight.FillTransparency = tbl3.ESP_Outline and 1 or tbl3.Trans or 0.7
highlight.OutlineTransparency = 0.5
if tbl3.ESP_Name then
local v5 = nil
local str6 = ""
local str7 = ""
if not v4 then
v5 = nil
if tbl3.ESP_ItemIcon then
local attribute = player:GetAttribute("EquippedItem")
local flag3 = attribute and attribute ~= ""
v5 = nil
if flag3 then
v5 = hideSpearTrajectory(attribute)
end
end
local character = player.Character
local attribute = character:GetAttribute("IsHooked") or character:GetAttribute("isHooked") or character:GetAttribute("Hooked")
local attribute2 = character:GetAttribute("Knocked") or character:GetAttribute("isKnocked")
local humanoid2 = character:FindFirstChildOfClass("Humanoid")
local flag3 = humanoid2 and humanoid2.Health <= 60 and humanoid2.Health > 0
if attribute then
str6 = "Hook"
elseif attribute2 then
str6 = "Knock"
elseif flag3 then
str6 = "Injured"
end
local attribute3 = character:GetAttribute("HookCount") or 0
if attribute3 == 1 then
str7 = "I"
elseif attribute3 == 2 then
str7 = "II"
elseif attribute3 >= 3 then
str7 = "III"
end
end
local espColor
if attribute then
espColor = Color3.fromRGB(255, 50, 50)
elseif attribute2 then
espColor = Color3.fromRGB(255, 140, 0)
elseif flag3 and tbl3.ESP_InjuredColor then
local ratio = humanoid2 and (humanoid2.Health / (humanoid2.MaxHealth or 100)) or 1
espColor = Color3.fromRGB(255, math.floor(180 * ratio), math.floor(20 * ratio))
else
espColor = killer
end
createBillboardESP(player.Character, str3, {
name = player.Name,
distance = n,
color = espColor,
icon = v5,
status = str6,
hookCount = str7,
lineScale = v4 and 0.6 or 1,
})
else
local v5 = player.Character:FindFirstChild(str3)
if v5 then
v5:Destroy()
end
end
else
local v5 = player.Character:FindFirstChild(name)
local v6 = player.Character:FindFirstChild(str3)
if v5 then
v5:Destroy()
end
if v6 then
v6:Destroy()
end
end
end
end
end
end
end
end
local renderAllESP
renderAllESP = function()
if not tbl3.ESP_Master then
return
end
local v3 = getLocalRootPart()
local function hideSpearTrajectory(arg)
if not v3 then
return 0
end
return math.floor((arg - v3.Position).Magnitude)
end
if tbl3.ESP_Generator then
for k, generator2 in pairs(tbl9.Generators) do
local model = generator2.model
if model and model.Parent and generator2.part then
local espMaxDistance = tbl3.ESP_MaxDistance
if hideSpearTrajectory(generator2.part.Position) <= espMaxDistance then
local n = math.floor(model:GetAttribute("RepairProgress") or 0)
local attribute = model:GetAttribute("PlayersRepairingCount") or 0
local generatorDone = n >= 100 and tbl7.Colors.GeneratorDone or tbl7.Colors.Generator
local geh = model:FindFirstChild("GEH")
if not geh then
geh = Instance.new("Highlight")
geh.Name = "GEH"
geh.Parent = model
end
geh.FillColor = generatorDone
geh.OutlineColor = generatorDone
local n2 = tbl3.ESP_Outline and 1
local trans
if n2 then
trans = n2
else
trans = tbl3.Trans or 0.7
end
geh.FillTransparency = trans
geh.OutlineTransparency = 0.5
if tbl3.ESP_NameG then
createBillboardESP(model, "GE_Text", {
name = "G " .. k,
subtext = attribute > 0 and string.format("[%d%%] (%d plyr)", n, attribute) or string.format("[%d%%]", n),
color = generatorDone,
icon = nil,
lineScale = 0.2,
})
else
local geText = model:FindFirstChild("GE_Text")
if geText then
geText:Destroy()
end
end
else
if model:FindFirstChild("GEH") then
model.GEH:Destroy()
end
if model:FindFirstChild("GE_Text") then
model.GE_Text:Destroy()
end
end
end
end
end
if tbl3.ESP_Pallet then
for _, pallet in pairs(tbl9.Pallets) do
local model = pallet.model
if model and model.Parent then
local espMaxDistance = tbl3.ESP_MaxDistance
if hideSpearTrajectory(model:GetPivot().Position) <= espMaxDistance then
local palletEH = model:FindFirstChild("PalletEH")
if not palletEH then
palletEH = Instance.new("Highlight")
palletEH.Name = "PalletEH"
palletEH.Parent = model
end
local pallet2 = tbl7.Colors.Pallet
palletEH.Adornee = model
palletEH.FillColor = pallet2
palletEH.OutlineColor = pallet2
palletEH.FillTransparency = tbl3.ESP_Outline and 1 or tbl3.Trans or 0.7
palletEH.OutlineTransparency = 0.5
elseif model:FindFirstChild("PalletEH") then
model.PalletEH:Destroy()
end
end
end
end
if tbl3.ESP_Window then
for _, window in ipairs(tbl9.Windows) do
if window and window.Parent then
local bottom = window:FindFirstChild("Bottom") or window:FindFirstChildWhichIsA("BasePart")
if bottom then
local espMaxDistance = tbl3.ESP_MaxDistance
if hideSpearTrajectory(bottom.Position) <= espMaxDistance then
local windowEH = window:FindFirstChild("WindowEH")
if not windowEH then
windowEH = Instance.new("BoxHandleAdornment")
windowEH.Name = "WindowEH"
windowEH.Parent = window
windowEH.AlwaysOnTop = true
windowEH.ZIndex = 5
end
windowEH.Adornee = bottom
windowEH.Size = bottom.Size
windowEH.Color3 = tbl7.Colors.Window
windowEH.Transparency = tbl3.ESP_Outline and 0.8 or 0.4
elseif window:FindFirstChild("WindowEH") then
window.WindowEH:Destroy()
end
end
end
end
end
if tbl3.ESP_Hook then
for _, hook in ipairs(tbl9.Hooks) do
if hook and hook.Parent then
local espMaxDistance = tbl3.ESP_MaxDistance
if hideSpearTrajectory(hook:GetPivot().Position) <= espMaxDistance then
local hookEH = hook:FindFirstChild("HookEH")
if not hookEH then
hookEH = Instance.new("Highlight")
hookEH.Name = "HookEH"
hookEH.Parent = hook
end
local hook2 = tbl7.Colors.Hook
hookEH.FillColor = hook2
hookEH.OutlineColor = hook2
local n = tbl3.ESP_Outline and 1
local trans
if n then
trans = n
else
trans = tbl3.Trans or 0.7
end
hookEH.FillTransparency = trans
hookEH.OutlineTransparency = 0.5
elseif hook:FindFirstChild("HookEH") then
hook.HookEH:Destroy()
end
end
end
end
if tbl3.ESP_Gate then
for i, gate in ipairs(tbl9.Gates) do
if gate and gate.Parent then
local espMaxDistance = tbl3.ESP_MaxDistance
if hideSpearTrajectory(gate:GetPivot().Position) <= espMaxDistance then
if not gate:FindFirstChild("Main") then
gate:FindFirstChildWhichIsA("BasePart")
end
local gateEH = gate:FindFirstChild("GateEH")
if not gateEH then
gateEH = Instance.new("Highlight")
gateEH.Name = "GateEH"
gateEH.Parent = gate
end
local gate2 = tbl7.Colors.Gate
gateEH.Adornee = gate
gateEH.FillColor = gate2
gateEH.OutlineColor = gate2
gateEH.FillTransparency = tbl3.ESP_Outline and 1 or 0.5
gateEH.OutlineTransparency = 0
local exitLever = gate:FindFirstChild("ExitLever")
local n = 0
if exitLever then
local main = exitLever:FindFirstChild("Main")
local n2 = 0
if main then
n = math.floor(main:GetAttribute("ActivationProgress") or 0)
else
n = n2
end
end
createBillboardESP(gate, "GateE_Text", {
name = "Gate " .. i,
subtext = string.format("[%d%%]", n),
color = gate2,
icon = nil,
lineScale = 0.2,
})
else
if gate:FindFirstChild("GateEH") then
gate.GateEH:Destroy()
end
if gate:FindFirstChild("GateE_Text") then
gate.GateE_Text:Destroy()
end
end
end
end
end
end
local part
part = Instance.new("Part")
part.Name = "PLaser"
part.Material = Enum.Material.Neon
part.Color = Color3.fromRGB(57, 255, 20)
part.CanCollide = false
part.Anchored = true
part.CastShadow = false
part.Size = Vector3.new(0.05, 0.05, 1.5)
pcall(function()
local trajectory = tbl.Workspace.Terrain:FindFirstChild("Trajectory") or tbl.Workspace:FindFirstChild("Trajectory")
if trajectory then
trajectory:Destroy()
end
end)
local highlight
highlight = Instance.new("Highlight")
highlight.Name = "VTarget"
highlight.FillColor = Color3.fromRGB(255, 0, 0)
highlight.OutlineColor = Color3.fromRGB(255, 255, 255)
highlight.FillTransparency = 0.5
highlight.OutlineTransparency = 0
local hideSpearTrajectory, renderSpearTrajectory
do
local circle = Drawing.new("Circle")
circle.Filled = true
circle.Radius = 6
circle.Color = Color3.fromRGB(0, 220, 255)
circle.Transparency = 0.9
circle.Visible = false
local n = 15
local folder = Instance.new("Folder")
folder.Name = "Trajectory"
folder.Parent = tbl.Workspace.Terrain
local tbl12 = {}
local tbl13 = {}
for i = 1, n + 1 do
local attachment = Instance.new("Attachment")
attachment.Name = "Att_" .. i
attachment.Parent = folder
table.insert(tbl12, attachment)
end
for i = 1, 15 do
local beam = Instance.new("Beam")
beam.Attachment0 = tbl12[i]
beam.Attachment1 = tbl12[i + 1]
beam.Width0 = 0.12
beam.Width1 = 0.12
beam.FaceCamera = true
beam.Color = ColorSequence.new(Color3.fromRGB(0, 220, 255))
beam.LightEmission = 1
beam.LightInfluence = 0
beam.Texture = "rbxassetid://4740112440"
beam.TextureSpeed = 2
beam.Enabled = false
beam.Parent = folder
table.insert(tbl13, beam)
end
hideSpearTrajectory = function()
for _, v3 in ipairs(tbl13) do
v3.Enabled = false
end
circle.Visible = false
end
renderSpearTrajectory = function(arg, arg2, arg3, arg4, arg5, arg6, arg7)
local n2 = arg2 * arg3
local n3 = math.max(tbl3.SPEAR_MaxDist or 500, 500)
local position3 = arg6 and arg6.Position
local magnitude = position3 and (position3 - arg).Magnitude or 100
local n4 = magnitude / arg3 / n
local vector = Vector3.new(0, -arg4, 0)
local tbl14 = { arg }
arg7 = arg7 or position3
local huge = math.huge
for i = 1, 15 do
arg = arg + n2 * n4 + 0.5 * vector * n4 ^ 2
table.insert(tbl14, arg)
if arg7 then
local magnitude2 = (arg - arg7).Magnitude
if magnitude2 < huge then
huge = magnitude2
end
end
n2 = n2 + vector * n4
end
local flag3 = arg6 ~= nil and magnitude <= n3 and huge <= 6
local colorSequence = ColorSequence.new(flag3 and Color3.fromRGB(0, 255, 120) or Color3.fromRGB(255, 60, 60))
for i = 1, #tbl14 do
if tbl12[i] then
tbl12[i].WorldPosition = tbl14[i]
end
end
for i = 1, 15 do
if i < #tbl14 and tbl3.Veil_ShowLaser then
tbl13[i].Color = colorSequence
tbl13[i].Enabled = true
else
tbl13[i].Enabled = false
end
end
if arg6 then
local v3, v4 = tbl.Camera:WorldToViewportPoint(arg6.Position)
if v4 and v3.Z > 0 then
circle.Position = Vector2.new(v3.X, v3.Y)
circle.Visible = true
if flag3 then
circle.Color = Color3.fromRGB(0, 255, 120)
else
circle.Color = Color3.fromRGB(255, 60, 60)
end
else
circle.Visible = false
end
else
circle.Visible = false
end
end
local tbl14 = {}
local function applyFullbright()
if not tbl3.Misc_Fullbright then
return
end
if tbl.Lighting.Brightness ~= 1 then
tbl.Lighting.Brightness = 1
end
if tbl.Lighting.FogEnd ~= 100000 then
tbl.Lighting.FogEnd = 100000
end
if tbl.Lighting.GlobalShadows ~= false then
tbl.Lighting.GlobalShadows = false
end
if tbl.Lighting.OutdoorAmbient ~= Color3.fromRGB(255, 255, 255) then
tbl.Lighting.OutdoorAmbient = Color3.fromRGB(255, 255, 255)
end
if tbl.Lighting.Ambient ~= Color3.fromRGB(255, 255, 255) then
tbl.Lighting.Ambient = Color3.fromRGB(255, 255, 255)
end
local atmosphere = tbl.Lighting:FindFirstChildOfClass("Atmosphere")
if atmosphere and atmosphere.Density ~= 0 then
atmosphere.Density = 0
end
end
local function startFullbrightLoop()
for _, v3 in ipairs(tbl14) do
if v3.Connected then
v3:Disconnect()
end
end
table.clear(tbl14)
for _, v3 in ipairs({ "Brightness", "FogEnd", "GlobalShadows", "OutdoorAmbient", "Ambient" }) do
local connection3 = tbl.Lighting:GetPropertyChangedSignal(v3):Connect(function()
if tbl3.Misc_Fullbright then
applyFullbright()
end
end)
table.insert(tbl14, connection3)
end
local connection3 = tbl.Lighting.ChildAdded:Connect(function(child)
if tbl3.Misc_Fullbright and child:IsA("Atmosphere") then
child.Density = 0
end
end)
table.insert(tbl14, connection3)
end
local function stopFullbrightLoop()
for _, v3 in ipairs(tbl14) do
if v3.Connected then
v3:Disconnect()
end
end
table.clear(tbl14)
end
local function findAimTarget(arg)
local selfHrp = humanoidRootPart
if not selfHrp then return nil end
if arg == "Pistol" and tbl3.Pistol_BlockKnocked and isKnockedOrHooked(selfHrp.Parent) then
return nil
end
local selfPos = selfHrp.Position
local currentRole = tbl6.cachedRole
local targetPartName
if arg == "Aimbot" or arg == "Pistol" or arg == "Flash" then
local ap = tbl3.AIM_TargetPart
if ap == "Head" or ap == 1 then targetPartName = "Head"
elseif ap == "Torso" or ap == 2 then targetPartName = "Torso"
else targetPartName = "HumanoidRootPart" end
else
targetPartName = "HumanoidRootPart"
end
local wantKiller, wantSurvivor
local maxDist = math.huge
local useFOV, fovRadius, center
if arg == "Aimbot" then
if currentRole == "Survivor" then
wantKiller = true
maxDist = tbl3.Aimbot_MaxDist
else
wantSurvivor = true
maxDist = 10
end
if tbl3.Aimbot_ShowFOV and currentRole ~= "Killer" then
useFOV = true
fovRadius = tbl3.Aimbot_Radius
center = Vector2.new(tbl.Camera.ViewportSize.X / 2, tbl.Camera.ViewportSize.Y / 2)
end
elseif arg == "Pistol" then
local pt = tbl3.Pistol_Target
if pt == "Killer" then wantKiller = true
elseif pt == "Survivor" then wantSurvivor = true end
if tbl3.Pistol_FOVMode then
useFOV = true
fovRadius = tbl3.Pistol_FOV
center = Vector2.new(tbl.Camera.ViewportSize.X / 2, tbl.Camera.ViewportSize.Y / 2)
end
elseif arg == "Survivor" then
wantSurvivor = true
maxDist = tbl3.SPEAR_MaxDist
if tbl3.Veil_ShowFOV then
useFOV = true
fovRadius = tbl3.Veil_FOV
center = Vector2.new(tbl.Camera.ViewportSize.X / 2, tbl.Camera.ViewportSize.Y / 2)
end
elseif arg == "Killer" or arg == "Flash" then
wantKiller = true
end
local bestScore = math.huge
local bestTarget = nil
for _, cache in pairs(_playerCache) do
if wantKiller and not cache.isKiller then continue end
if wantSurvivor and cache.isKiller then continue end
local ch = cache.character
if not ch then continue end
local h = cache.humanoid
if not h or h.Health <= 0 or isKnockedOrHooked(ch) then continue end
local torso
if targetPartName == "HumanoidRootPart" then
torso = cache.hrp
else
torso = ch:FindFirstChild(targetPartName) or ch:FindFirstChild("Torso") or cache.hrp
end
if not torso then continue end
local dist = (torso.Position - selfPos).Magnitude
if dist > maxDist then continue end
local score
if useFOV then
local vp, vis = tbl.Camera:WorldToViewportPoint(torso.Position)
if not vis then continue end
local sd = (Vector2.new(vp.X, vp.Y) - center).Magnitude
if sd > fovRadius then continue end
score = sd
else
score = dist
end
if score < bestScore then
bestScore = score
bestTarget = torso
end
end
if arg == "Pistol" and tbl3.Pistol_Target == "SCP" then
if not center then
center = Vector2.new(tbl.Camera.ViewportSize.X / 2, tbl.Camera.ViewportSize.Y / 2)
end
for _, scP in ipairs(tbl9.SCPs) do
if scP and scP.Parent then
local h = scP:FindFirstChildOfClass("Humanoid")
local hrp3 = scP:FindFirstChild("HumanoidRootPart") or scP.PrimaryPart
if h and hrp3 and math.floor(h.WalkSpeed) > 0 and math.floor(h.WalkSpeed) ~= 16 then
local ap = tbl3.AIM_TargetPart
local tgt = hrp3
if (ap == "Head" or ap == 1) and scP:FindFirstChild("Head") then tgt = scP.Head
elseif (ap == "Torso" or ap == 2) and scP:FindFirstChild("Torso") then tgt = scP.Torso end
local score
if tbl3.Pistol_FOVMode then
local vp, vis = tbl.Camera:WorldToViewportPoint(tgt.Position)
if not vis then continue end
local sd = (Vector2.new(vp.X, vp.Y) - center).Magnitude
if sd > tbl3.Pistol_FOV then continue end
score = sd
else
score = (tgt.Position - selfPos).Magnitude
end
if score < bestScore then bestScore = score bestTarget = tgt end
end
end
end
end
return bestTarget
end
local function showFOVCircle()
pcall(function()
local playerGui = tbl.LocalPlayer:FindFirstChild("PlayerGui")
if not playerGui then
return
end
local survivorMob = playerGui:FindFirstChild("Survivor-mob")
local guiMob = survivorMob and survivorMob:FindFirstChild("Controls") and survivorMob.Controls:FindFirstChild("Gui-mob")
if guiMob and guiMob:IsA("GuiObject") and guiMob.Visible then
if type(firesignal) == "function" then
pcall(function()
firesignal(guiMob.MouseButton1Down)
task.wait(0.01)
firesignal(guiMob.MouseButton1Up)
end)
end
else
pcall(function()
tbl.VirtualInputManager:SendMouseButtonEvent(0, 0, 1, true, game, 0)
task.wait(0.01)
tbl.VirtualInputManager:SendMouseButtonEvent(0, 0, 1, false, game, 0)
end)
end
end)
end
local function fireParryInput()
if tbl6.ParryCooldown then return end
local delay = (tbl3.Surv_ParryDelay or 0) / 1000
if delay > 0 then task.wait(delay) end
if tbl6.ParryCooldown then return end
pcall(function()
if parry then parry:FireServer() end
task.spawn(showFOVCircle)
end)
end
local tbl15 = {}
local function startAutoParryV1()
table.clear(tbl15)
for player, cache in pairs(_playerCache) do
if cache.isKiller and cache.character then
table.insert(tbl15, player)
end
end
end
tbl.Players.PlayerAdded:Connect(startAutoParryV1)
tbl.Players.PlayerRemoving:Connect(startAutoParryV1)
for _, player in ipairs(tbl.Players:GetPlayers()) do
player:GetPropertyChangedSignal("Team"):Connect(startAutoParryV1)
end
local _pv2Frame = 0
local function startAutoParryV2(arg)
if arg then
if tbl6.Pv2Con then return end
tbl6.Pv2Con = tbl.RunService.Heartbeat:Connect(function()
_pv2Frame = _pv2Frame + 1
if _pv2Frame % 2 ~= 0 then return end
if tbl6.ParryCooldown then return end
local selfHrp = humanoidRootPart
if not selfHrp or not selfHrp.Parent then return end
local character = selfHrp.Parent
if isKnockedOrHooked(character) or not canSafeParry(character) then return end
local selfPos = selfHrp.Position
local radius = (tbl3.Surv_ParryRadius or 15) + 5
local parryRadius = tbl3.Surv_ParryRadius
local parryFace = tbl3.Surv_ParryFace or 0.3
for _, cache in pairs(_playerCache) do
if not cache.isKiller then continue end
local killerHrp = cache.hrp
if not killerHrp or not killerHrp.Parent then continue end
local anim = cache.animator
if not anim then continue end
local killerPos = killerHrp.Position
local magnitude = (selfPos - killerPos).Magnitude
if magnitude > radius then continue end
local fd = Vector3.new(selfPos.X - killerPos.X, 0, selfPos.Z - killerPos.Z)
if fd.Magnitude > 0 then
local lv = killerHrp.CFrame.LookVector
local ld = Vector3.new(lv.X, 0, lv.Z)
if ld.Magnitude > 0.001 and ld.Unit:Dot(fd.Unit) < parryFace then continue end
end
local tracks = anim:GetPlayingAnimationTracks()
for _, track in ipairs(tracks) do
if not tbl6.TrackV2[track] then
tbl6.TrackV2[track] = true
local animId = (track.Animation and track.Animation.AnimationId or ""):match("%d+")
local v4 = tbl5[animId]
if v4 and not (tbl3.Ignored_Skills_List and tbl3.Ignored_Skills_List[v4]) and magnitude <= parryRadius then
fireParryInput()
end
end
end
end
if _pv2Frame % 12 == 0 then
for k in pairs(tbl6.TrackV2) do
if not k.IsPlaying then tbl6.TrackV2[k] = nil end
end
end
end)
else
if tbl6.Pv2Con then
tbl6.Pv2Con:Disconnect()
tbl6.Pv2Con = nil
end
table.clear(tbl6.TrackV2)
end
end
local function getKillerPredictedPos(killerHrp)
if not tbl3.Surv_PingParry then
return killerHrp.Position
end
local ping = 80
pcall(function()
local stats = game:GetService("Stats")
ping = stats.Network.ServerStatsItem["Data Ping"]:GetValue()
end)
ping = math.clamp(ping, 10, 500) / 1000
local vel = tbl6.KillerVelocity[killerHrp]
if vel then
return killerHrp.Position + vel * (ping * 0.5)
end
return killerHrp.Position
end
do
task.spawn(function()
while not tbl6.Unloaded do
task.wait(0.1)
if not tbl3.Surv_PingParry then continue end
local now = tick()
for _, cache in pairs(_playerCache) do
if not cache.isKiller then continue end
local khrp = cache.hrp
if not khrp or not khrp.Parent then continue end
local curPos = khrp.Position
local prev = tbl6.KillerPosHistory[khrp]
if prev then
local dt = now - prev.t
if dt > 0 then
tbl6.KillerVelocity[khrp] = (curPos - prev.p) * (1 / dt)
end
end
tbl6.KillerPosHistory[khrp] = { p = curPos, t = now }
end
for k in pairs(tbl6.KillerPosHistory) do
if not k or not k.Parent then
tbl6.KillerPosHistory[k] = nil
tbl6.KillerVelocity[k] = nil
end
end
end
end)
end
local function findKillerMobGui()
local playerGui = tbl.LocalPlayer:FindFirstChild("PlayerGui")
if not playerGui then
return nil
end
for _, child in pairs(playerGui:GetChildren()) do
if string.sub(child.Name, -4) == "-mob" and child.Name ~= "Survivor-mob" then
return child
end
end
return nil
end
local function lerpCameraTarget(arg, arg2)
if not arg then
return
end
arg2 = arg2 or 0.2
tbl.Camera.CFrame = tbl.Camera.CFrame:Lerp(CFrame.lookAt(tbl.Camera.CFrame.Position, arg.Position), arg2)
end
local function predictTarget(arg, arg2, arg3)
local position3 = arg2.Position
if not tbl3.Predict then
return position3
end
local parent = arg2.Parent
parent = parent and parent:FindFirstChildOfClass("Humanoid")
local n2 = 0
local vector = Vector3.zero
if parent then
vector = parent.MoveDirection * parent.WalkSpeed
n2 = vector.Magnitude
end
if n2 < 0.1 then
return position3
end
return position3 + vector * ((position3 - arg).Magnitude / arg3 * tbl3.Pistol_PredictLead + math.clamp(tbl6.CurrentPing, 0, 0.25))
end
local function firePistolAim()
local Pistol = findAimTarget("Pistol")
local character = tbl.LocalPlayer.Character
if tbl3.Pistol_BlockKnocked and isIncapacitated(character) then
return
end
if Pistol and character then
local humanoidRootPart2 = character:FindFirstChild("HumanoidRootPart")
character:FindFirstChild("Right Arm")
if humanoidRootPart2 then
local twistOfFate = character:FindFirstChild("Twist of Fate")
if twistOfFate then
local rightArm = twistOfFate:FindFirstChild("Right Arm")
if rightArm then
if rightArm:FindFirstChild("EmperorGun") then
twistOfFate = rightArm:FindFirstChild("EmperorGun")
elseif rightArm:FindFirstChild("gun") then
twistOfFate = rightArm:FindFirstChild("gun")
else
twistOfFate = rightArm
end
end
local position3 = humanoidRootPart2.Position
local v3 = predictTarget(position3, Pistol, 160)
if (v3 - position3).Magnitude < 4 then
v3 = v3 - Pistol.CFrame.RightVector * -2
end
local unit = (v3 + Vector3.new(0, tbl3.Pistol_AimOffset, 0) - position3).Unit
local remotes2 = tbl.ReplicatedStorage:FindFirstChild("Remotes")
if remotes2 and remotes2:FindFirstChild("Items") and remotes2.Items:FindFirstChild("Twist of Fate") and remotes2.Items["Twist of Fate"]:FindFirstChild("Fire") then
remotes2.Items["Twist of Fate"].Fire:FireServer(twistOfFate, unit)
end
end
end
end
end
local function startInfLungeLoop()
if tbl6.isHoldingLunge then
return
end
tbl6.isHoldingLunge = true
task.spawn(function()
while tbl6.isHoldingLunge and tbl3.Killer_InfLunge and tbl6.cachedRole == "Killer" do
pcall(function()
game:GetService("ReplicatedStorage").Remotes.Attacks.Lunge:FireServer()
end)
task.wait(0.05)
end
end)
end
local function setLungeboost(arg)
if not arg then
return
end
arg:SetAttribute("lungeboost", 999)
if tbl6.lungeV2Connection then
tbl6.lungeV2Connection:Disconnect()
end
tbl6.lungeV2Connection = arg:GetAttributeChangedSignal("lungeboost"):Connect(function()
if tbl3.Killer_InfLungeV2 and arg:GetAttribute("lungeboost") ~= 999 then
arg:SetAttribute("lungeboost", 999)
end
end)
end
tbl.LocalPlayer.CharacterAdded:Connect(function(character)
if tbl3.Killer_InfLungeV2 then
task.wait(0.5)
setLungeboost(character)
end
end)
local tbl16 = { "Killer", "Survivor", "SCP" }
local n2 = 1
local function cycleTargetType()
n2 = n2 + 1
if n2 > #tbl16 then
n2 = 1
end
local target = tbl16[n2]
tbl3.Pistol_Target = target
textLabel4.Text = "Target: " .. target
pcall(function()
if Options and Options.Pistol_Target_Drop then
Options.Pistol_Target_Drop:SetValue(target)
end
end)
if getgenv().Library then
sendNotif("Pistol Target: " .. target, 0.5)
end
end
textButton.MouseButton1Click:Connect(cycleTargetType)
local function updateCrosshair()
if tbl6.CrosshairUI then
tbl6.CrosshairUI:Destroy()
end
if not tbl3.Crosshair_Enabled then
return
end
tbl6.CrosshairUI = Instance.new("ScreenGui", tbl.CoreGui)
tbl6.CrosshairUI.Name = "Croshair"
tbl6.CrosshairUI.IgnoreGuiInset = true
local frame6 = Instance.new("Frame", tbl6.CrosshairUI)
frame6.AnchorPoint = Vector2.new(0.5, 0.5)
frame6.Position = UDim2.new(0.5, tbl3.Crosshair_OffsetX, 0.5, tbl3.Crosshair_OffsetY)
frame6.Size = UDim2.new(0, 0, 0, 0)
frame6.BackgroundTransparency = 1
local crosshairSize = tbl3.Crosshair_Size
local crosshairColor = tbl3.Crosshair_Color
local thickness = math.max(1, math.floor(crosshairSize / 4))
local n3 = crosshairSize * 2
local n4 = math.max(2, math.floor(crosshairSize / 1.5))
if tbl3.Crosshair_Type == "Dot" then
local frame7 = Instance.new("Frame", frame6)
frame7.AnchorPoint = Vector2.new(0.5, 0.5)
frame7.Size = UDim2.new(0, crosshairSize, 0, crosshairSize)
frame7.Position = UDim2.new(0.5, 0, 0.5, 0)
frame7.BackgroundColor3 = crosshairColor
Instance.new("UICorner", frame7).CornerRadius = UDim.new(1, 0)
elseif tbl3.Crosshair_Type == "Cross" then
local frame7 = Instance.new("Frame", frame6)
frame7.AnchorPoint = Vector2.new(0.5, 1)
frame7.Size = UDim2.new(0, thickness, 0, n3)
frame7.Position = UDim2.new(0.5, 0, 0.5, -n4)
frame7.BackgroundColor3 = crosshairColor
local frame8 = Instance.new("Frame", frame6)
frame8.AnchorPoint = Vector2.new(0.5, 0)
frame8.Size = UDim2.new(0, thickness, 0, n3)
frame8.Position = UDim2.new(0.5, 0, 0.5, n4)
frame8.BackgroundColor3 = crosshairColor
local frame9 = Instance.new("Frame", frame6)
frame9.AnchorPoint = Vector2.new(1, 0.5)
frame9.Size = UDim2.new(0, n3, 0, thickness)
frame9.Position = UDim2.new(0.5, -n4, 0.5, 0)
frame9.BackgroundColor3 = crosshairColor
local frame10 = Instance.new("Frame", frame6)
frame10.AnchorPoint = Vector2.new(0, 0.5)
frame10.Size = UDim2.new(0, n3, 0, thickness)
frame10.Position = UDim2.new(0.5, n4, 0.5, 0)
frame10.BackgroundColor3 = crosshairColor
elseif tbl3.Crosshair_Type == "Circle" then
local frame7 = Instance.new("Frame", frame6)
frame7.AnchorPoint = Vector2.new(0.5, 0.5)
frame7.Size = UDim2.new(0, crosshairSize * 2.5, 0, crosshairSize * 2.5)
frame7.Position = UDim2.new(0.5, 0, 0.5, 0)
frame7.BackgroundTransparency = 1
local uiStroke3 = Instance.new("UIStroke", frame7)
uiStroke3.Color = crosshairColor
uiStroke3.Thickness = thickness
Instance.new("UICorner", frame7).CornerRadius = UDim.new(1, 0)
end
end
getgenv().VindUI = loadstring(game:HttpGet("https://raw.githubusercontent.com/Skinny-yz/VVind-UI/refs/heads/main/src.lua"))()
getgenv().Library = getgenv().VindUI
getgenv().Toggles = {}
getgenv().Options = {}
sendNotif = function(arg, arg2, arg3)
pcall(function()
if getgenv().VindUI then
getgenv().VindUI:Notify({
Title = "PerplexWare",
Text = tostring(arg),
Type = "info",
Duration = arg2 or 3,
})
end
end)
end
getgenv().Window = getgenv().VindUI:CreateWindow({
Title = "PerplexWare",
Subtitle = "By @rainlover.r",
Icon = "Lucide:sparkles",
Size = UDim2.fromOffset(660, 460),
MinSize = Vector2.new(500, 360),
Draggable = true,
Resizable = true,
UseBlur = true,
DefaultTab = "Survivor",
ToggleKeybind = Enum.KeyCode.RightControl,
})
local WindowRef = getgenv().Window
local VindUI = getgenv().VindUI
local toggles = getgenv().Toggles
local options = getgenv().Options
local function makeTogProxy(elem, defVal)
local p = { Value = defVal or false }
function p:SetValue(v)
pcall(function() if elem then elem:Set(v) end end)
p.Value = v
end
return p
end
local function makeOptProxy(elem, defVal)
local p = { Value = defVal }
function p:SetValue(v)
pcall(function() if elem then elem:Set(v) end end)
p.Value = v
end
function p:SetValues(vals)
pcall(function()
if elem then
if elem.Refresh then elem:Refresh(vals)
elseif elem.SetOptions then elem:SetOptions(vals) end
end
end)
end
return p
end
local function buildUITabs()
local SurvTab = WindowRef:AddTab({ Name = "Survivor", Icon = "Lucide:shield-plus" })
local KillTab = WindowRef:AddTab({ Name = "Killer", Icon = "Lucide:skull" })
local TeleTab = WindowRef:AddTab({ Name = "Teleport", Icon = "Lucide:map-pin" })
local EspTab = WindowRef:AddTab({ Name = "ESP", Icon = "Lucide:eye" })
local AimTab = WindowRef:AddTab({ Name = "Aim", Icon = "Lucide:crosshair" })
local MiscTab = WindowRef:AddTab({ Name = "Misc", Icon = "Lucide:sliders-horizontal" })
local InfoTab = WindowRef:AddTab({ Name = "Info", Icon = "Lucide:badge-info" })
local SurvAutoST = SurvTab:AddSubTab({ Name = "Auto Bot", Icon = "Lucide:bot" })
local SurvCombatST = SurvTab:AddSubTab({ Name = "Combat", Icon = "Lucide:sword" })
local SurvSkillsST = SurvTab:AddSubTab({ Name = "Skills", Icon = "Lucide:zap" })
SurvAutoST:AddSection("Generator", "Lucide:cpu")
local _t2 = SurvAutoST:AddToggle({
Text = "Gen + Escape",
Description = "Auto-repairs generators then teleports to exit",
Icon = "Lucide:bot",
Default = false,
Flag = "Auto_MasterSurvivor",
Callback = function(v)
toggles["Auto_MasterSurvivor"].Value = v
if v and tbl6.cachedRole == "Killer" then
sendNotif("Access Denied: Auto Gen is for Survivors only!", 4)
tbl3.AUTO_AutoSurvivor = false
task.defer(function() toggles["Auto_MasterSurvivor"]:SetValue(false) end)
return
end
tbl3.AUTO_AutoSurvivor = v
if not v then
task.spawn(cancelAutoRepair)
else
task.spawn(function()
while true do
if tbl3.AUTO_AutoSurvivor and not tbl6.Unloaded then
task.wait(2)
if tbl3.AUTO_AutoSurvivor then
if tbl6.cachedRole == "Survivor" then
local n3 = #tbl9.Generators
local n4 = 0
for _, generator2 in ipairs(tbl9.Generators) do
local prog = generator2.model:GetAttribute("RepairProgress") or generator2.model:FindFirstChild("RepairProgress") and generator2.model.RepairProgress.Value or 0
if prog >= 100 then n4 = n4 + 1 end
end
if n3 >= 5 and n4 >= 5 then
if tbl3.AUTO_Generator then task.spawn(cancelAutoRepair) end
tbl3.AUTO_AutoSurvivor = false
task.defer(function() toggles["Auto_MasterSurvivor"]:SetValue(false) end)
if teleportToExit() then sendNotif("Teleported to exit!", 3) end
continue
else
local v9 = getNearestKillerDist()
local v10 = findBestGenerator()
if v9 <= tbl3.AUTO_LeaveDist then
if tbl3.AUTO_Generator then task.spawn(cancelAutoRepair) task.wait(0.5) end
if tbl3.AUTO_AutoSurvivor then
if v10 then teleportToGenerator(v10) tbl3.AUTO_Generator = true runAutoRepair()
else doAutoFlee() end
continue
end
elseif v10 then
if getDistanceTo(v10.part.Position) > 20 then
if tbl3.AUTO_Generator then task.spawn(cancelAutoRepair) task.wait(0.5) end
if tbl3.AUTO_AutoSurvivor then teleportToGenerator(v10) tbl3.AUTO_Generator = true runAutoRepair() continue end
else tbl3.AUTO_Generator = true runAutoRepair() continue end
else continue end
end
else continue end
end
end
break
end
end)
end
end,
})
toggles["Auto_MasterSurvivor"] = makeTogProxy(_t2, false)
local _dg = SurvAutoST:AddToggle({
Text = "Multi Generator",
Description = "Repair generator at multiple points",
Icon = "Lucide:cpu",
Default = false,
Flag = "Surv_DoubleGenToggle",
Callback = function(v) toggles["Surv_DoubleGenToggle"].Value = v setDoubleGen(v) end,
})
toggles["Surv_DoubleGenToggle"] = makeTogProxy(_dg, false)
SurvAutoST:AddSlider({
Text = "Distance from Killer",
Description = "Cancel gen if killer is within this range",
Icon = "Lucide:ruler",
Min = 20, Max = 100, Default = 45, Increment = 1,
Flag = "Auto_LeaveDist",
Callback = function(v) tbl3.AUTO_LeaveDist = v end,
})
SurvAutoST:AddButton({
Text = "Cancel Gen",
Description = "Stop auto generator task",
Icon = "Lucide:circle-x",
Callback = function()
if toggles["Auto_MasterSurvivor"] then toggles["Auto_MasterSurvivor"]:SetValue(false) end
task.spawn(cancelAutoRepair)
end,
})
SurvAutoST:AddSection("Auto Feature", "Lucide:zap")
SurvAutoST:AddButton({
Text = "Auto Escape",
Description = "Teleport to the nearest exit gate",
Icon = "Lucide:door-open",
Callback = function()
if teleportToExit() then sendNotif("Teleported to exit!", 3)
else sendNotif("No exit found!", 3) end
end,
})
SurvAutoST:AddButton({
Text = "Drop All Pallets",
Description = "Instantly drop every pallet on the map",
Icon = "Lucide:layers",
Callback = function()
task.spawn(function()
local pde
for i = 1, 5 do
local r = tbl.ReplicatedStorage:FindFirstChild("Remotes")
if r and r:FindFirstChild("Pallet") then
pde = r.Pallet:FindFirstChild("PalletDropEvent")
if pde then break end
end
task.wait(0.5)
end
if not pde then sendNotif("PalletDropEvent not found!", 3) return end
local n3 = 0
for _, p in ipairs(tbl9.Pallets) do
local tr = p.trigger or (p.model and (p.model:FindFirstChild("PalletPointSlide", true) or p.model:FindFirstChild("PalletPoint", true))) or p.model
if tr then pcall(function() pde:FireServer(tr) end) n3 = n3 + 1 end
end
sendNotif("Dropped " .. n3 .. " pallets.", 3)
end)
end,
})
local _ab = SurvAutoST:AddToggle({
Text = "Anti Block Window",
Description = "Auto-clears window thorns and blockers nearby",
Icon = "Lucide:shield-off",
Default = false,
Flag = "AntiBlockWindowToggle",
Callback = function(arg)
toggles["AntiBlockWindowToggle"].Value = arg
if not arg then if tbl6.blockThread then task.cancel(tbl6.blockThread) tbl6.blockThread = nil end return end
tbl6.blockThread = task.spawn(function()
local CS = game:GetService("CollectionService")
while task.wait(1) do
pcall(function()
local ch = tbl.LocalPlayer.Character
if not ch or not ch:FindFirstChild("HumanoidRootPart") then return end
local hrp = ch.HumanoidRootPart
for _, tag in ipairs({ "BlockedVault", "BlockedWindow", "Blocked", "EntityBlocker" }) do
for _, v9 in ipairs(CS:GetTagged(tag)) do CS:RemoveTag(v9, tag) end
end
for _, p in ipairs(tbl.Workspace:GetPartBoundsInRadius(hrp.Position, 40)) do
if p:GetAttribute("Blocked") ~= nil then p:SetAttribute("Blocked", false) end
if p:GetAttribute("IsBlocked") ~= nil then p:SetAttribute("IsBlocked", false) end
if p:GetAttribute("Spiked") ~= nil then p:SetAttribute("Spiked", false) end
local n = p.Name:lower()
if n:match("spike") or n:match("blocker") or n:match("entity") then
if p.CanCollide then p.CanCollide = false end
if p.Transparency ~= 1 then p.Transparency = 1 end
end
end
end)
end
end)
end,
})
toggles["AntiBlockWindowToggle"] = makeTogProxy(_ab, false)
local _ap = SurvAutoST:AddToggle({
Text = "Auto Drop Pallet",
Description = "Automatically drops pallets on nearby killers",
Icon = "Lucide:layers-2",
Default = false,
Flag = "Surv_AutoPalletToggle",
Callback = function(v) toggles["Surv_AutoPalletToggle"].Value = v setAutoPallet(v) end,
})
toggles["Surv_AutoPalletToggle"] = makeTogProxy(_ap, false)
SurvAutoST:AddSlider({
Text = "Pallet Radius",
Min = 5, Max = 20, Default = 10, Increment = 1,
Flag = "Surv_AutoPalletRadius",
Callback = function(v) tbl3.Surv_AutoPalletRadius = v end,
})
SurvAutoST:AddToggle({ Text = "Pallet Save Team", Default = false, Flag = "Surv_AutoPalletSF", Callback = function(v) tbl3.Surv_AutoPalletSF = v end })
SurvAutoST:AddToggle({ Text = "Safe Mode (Pallet)", Default = true, Flag = "Surv_AutoPalletSM", Callback = function(v) tbl3.Surv_AutoPalletSM = v end })
local _sh = SurvAutoST:AddToggle({
Text = "Self Heal",
Description = "Toggle self-healing progress",
Icon = "Lucide:heart-pulse",
Default = false,
Flag = "Surv_SelfHeal",
Callback = function(v) toggles["Surv_SelfHeal"].Value = v tbl3.Surv_SelfHeal = v end,
})
toggles["Surv_SelfHeal"] = makeTogProxy(_sh, false)
SurvAutoST:AddToggle({ Text = "Auto Heal Team", Default = false, Flag = "Surv_AuraHeal", Callback = function(v) tbl3.Surv_AuraHeal = v end })
SurvCombatST:AddSection("Auto Parry", "Lucide:shield")
local function applyParryMethod(on)
tbl3.Surv_AutoParry = on
tbl3.Surv_Parry = on and tbl3.Surv_ParryMethod == "Legit"
tbl3.Surv_ParryV2 = false
startAutoParryV2(on and tbl3.Surv_ParryMethod == "Bold")
if tbl6.ParryAnimBaseCon then
tbl6.ParryAnimBaseCon:Disconnect()
tbl6.ParryAnimBaseCon = nil
end
if on and tbl3.Surv_ParryMethod == "Anim Base" then
tbl6.ParryAnimBaseCon = tbl.RunService.Heartbeat:Connect(function()
if tbl6.ParryCooldown then return end
local selfHrp = humanoidRootPart
if not selfHrp or not selfHrp.Parent then return end
local ch = selfHrp.Parent
if isKnockedOrHooked(ch) or not canSafeParry(ch) then return end
local selfPos = selfHrp.Position
local radius = tbl3.Surv_ParryRadius or 15
for _, cache in pairs(_playerCache) do
if not cache.isKiller then continue end
local khrp = cache.hrp
if not khrp or not khrp.Parent then continue end
if (selfPos - khrp.Position).Magnitude > radius then continue end
local anim = cache.animator
if not anim then continue end
for _, track in ipairs(anim:GetPlayingAnimationTracks()) do
local name = track.Animation and track.Name or ""
if name:lower():match("basic") or name:lower():match("lunge") or name:lower():match("attack") or name:lower():match("swing") then
if not tbl6.TrackV2[track] then
tbl6.TrackV2[track] = true
fireParryInput()
end
end
end
end
end)
end
end
local _ap = SurvCombatST:AddToggle({
Text = "Auto Parry [RISKY]",
Description = "Auto-parries killer attacks",
Icon = "Lucide:shield-check",
Default = false,
Flag = "Surv_AutoParry",
Callback = function(v)
toggles["Surv_AutoParry"].Value = v
applyParryMethod(v)
end,
})
toggles["Surv_AutoParry"] = makeTogProxy(_ap, false)
toggles["Surv_Parry"] = toggles["Surv_AutoParry"]
toggles["Surv_ParryV2"] = { Value = false, SetValue = function(self, v) self.Value = v end }
SurvCombatST:AddDropdown({
Text = "Parry Method",
Description = "Legit = event-based Bold = proximity Anim Base = animation name",
Options = { "Legit", "Bold", "Anim Base" },
Default = "Legit",
Flag = "Surv_ParryMethod",
Callback = function(v)
tbl3.Surv_ParryMethod = v
if tbl3.Surv_AutoParry then applyParryMethod(true) end
end,
})
SurvCombatST:AddToggle({
Text = "Ping Compensation",
Description = "Compensates killer position by your ping for earlier detection",
Icon = "Lucide:signal",
Default = false,
Flag = "Surv_PingParry",
Callback = function(v)
tbl3.Surv_PingParry = v
end,
})
SurvCombatST:AddSlider({
Text = "Parry Delay",
Description = "Delay before parry fires",
Icon = "Lucide:timer",
Min = 0,
Max = 200,
Default = 0,
Increment = 1,
Suffix = "ms",
Flag = "Surv_ParryDelay",
Callback = function(v) tbl3.Surv_ParryDelay = v end,
})
SurvCombatST:AddToggle({
Text = "Fake Parry (Keybind: R)",
Description = "Loads fake parry script",
Default = false,
Callback = function(v)
if v then pcall(function() loadstring(game:HttpGet("https://pastebin.com/raw/WNJGb9ct"))() end)
elseif getgenv().VD_FakeParry_Cleanup then pcall(getgenv().VD_FakeParry_Cleanup) end
end,
})
SurvCombatST:AddToggle({ Text = "Safety Parry", Default = false, Flag = "Surv_ParrySafety", Callback = function(v) tbl3.Surv_ParrySafety = v end })
SurvCombatST:AddToggle({ Text = "Aggressive Parry", Default = false, Flag = "Surv_ParryAggressive", Callback = function(v) tbl3.Surv_ParryAggressive = v end })
SurvCombatST:AddToggle({ Text = "ESP Range (Parry Circle)", Default = true, Flag = "Surv_ParryCircle", Callback = function(v) tbl3.Surv_ParryCircle = v end })
SurvCombatST:AddSlider({ Text = "Parry Radius", Min = 5, Max = 25, Default = tbl3.Surv_ParryRadius, Increment = 1, Flag = "Surv_ParryRadius", Callback = function(v) tbl3.Surv_ParryRadius = v end })
SurvCombatST:AddSlider({ Text = "Face Sensitivity", Min = -10, Max = 10, Default = 0, Increment = 1, Flag = "Surv_ParryFace", Callback = function(v) tbl3.Surv_ParryFace = v / 10 end })
SurvCombatST:AddDropdown({
Text = "Ignore Skills",
Options = { "Hidden S1", "Abyssal S1", "Jeff Frenzy" },
Flag = "Surv_IgnoreSkillsList",
Callback = function(v) tbl3.Ignored_Skills_List = { v } end,
})
SurvCombatST:AddSection("Flee", "Lucide:footprints")
SurvCombatST:AddToggle({
Text = "Flee Killer",
Description = "Auto-move away from killer when knocked",
Icon = "Lucide:run",
Default = false,
Flag = "Surv_AutoFleeToggle",
Callback = function(survAutoFlee)
tbl3.Surv_AutoFlee = survAutoFlee
if survAutoFlee then
if tbl6.FleeThread then task.cancel(tbl6.FleeThread) end
tbl6.FleeThread = task.spawn(function()
while tbl3.Surv_AutoFlee and not tbl6.Unloaded do
task.wait(0.1)
if tbl6.cachedRole == "Survivor" then
local ch = tbl.LocalPlayer.Character
local hrp = ch and ch:FindFirstChild("HumanoidRootPart")
local h2 = ch and ch:FindFirstChildOfClass("Humanoid")
if hrp and h2 and h2.Health > 0 and ch:GetAttribute("Knocked") == true and not ch:GetAttribute("IsHooked") then
local dist = tbl3.Surv_FleeDistance
local v9
for _, player in ipairs(tbl.Players:GetPlayers()) do
if player ~= tbl.LocalPlayer and isPlayerKiller(player) and player.Character then
local hrp2 = player.Character:FindFirstChild("HumanoidRootPart")
if hrp2 then
local mag = (hrp.Position - hrp2.Position).Magnitude
if mag < dist then dist = mag v9 = hrp2 end
end
end
end
if v9 then
local dir = hrp.Position - v9.Position
local unit = Vector3.new(dir.X, 0, dir.Z).Unit
if unit.Magnitude == unit.Magnitude then
local pos = v9.Position + unit * (tbl3.Surv_FleeDistance + 5)
hrp.CFrame = CFrame.new(pos.X, hrp.Position.Y + 2, pos.Z)
end
end
end
end
end
end)
elseif tbl6.FleeThread then task.cancel(tbl6.FleeThread) tbl6.FleeThread = nil end
end,
})
SurvCombatST:AddSlider({ Text = "Flee Distance", Min = 10, Max = 100, Default = 30, Increment = 1, Flag = "Surv_FleeDistance", Callback = function(v) tbl3.Surv_FleeDistance = v end })
local function syncSkillCheckSettings()
local mode = tbl3.Surv_SkillCheckMode
local on = tbl3.Surv_AutoSkillCheck
tbl3.Surv_PerfectSkill = on and (mode == "Legit" or mode == "Instan" or mode == "Normal" or mode == "Random")
tbl3.Surv_InstanSkill = on and mode == "Instan"
tbl3.Surv_NoSkill = on and mode == "Skip"
task.spawn(function()
local ch = tbl.LocalPlayer.Character
if not ch then return end
local sg = ch:FindFirstChild("Skillcheck-gen")
local sp = ch:FindFirstChild("Skillcheck-player")
if sg then sg.Disabled = tbl3.Surv_NoSkill end
if sp then sp.Disabled = tbl3.Surv_NoSkill end
end)
end
SurvSkillsST:AddSection("Core Skills", "Lucide:star")
SurvSkillsST:AddToggle({ Text = "God Mode", Description = "Prevents health from dropping", Default = false, Flag = "Surv_GodMode", Callback = function(v) tbl3.Surv_GodMode = v end })
SurvSkillsST:AddToggle({ Text = "Sound DBD", Description = "Replaces skill check sound with DBD audio", Default = false, Flag = "Surv_SoundDbd", Callback = function(v) tbl3.Surv_SoundDbd = v local ch = tbl.LocalPlayer.Character if ch then applySkillSoundSwap(ch) end end })
SurvSkillsST:AddToggle({
Text = "Auto Sprint",
Description = "Auto-sprints when moving (Mobile)",
Default = false,
Flag = "Surv_AutoSprint",
Callback = function(v)
tbl3.Surv_AutoSprint = v
if v then
if tbl6.AutoSprintThread then task.cancel(tbl6.AutoSprintThread) end
tbl6.AutoSprintThread = task.spawn(function()
while tbl3.Surv_AutoSprint and not tbl6.Unloaded do
task.wait(0.1)
local ch = tbl.LocalPlayer.Character
local h2 = ch and ch:FindFirstChildOfClass("Humanoid")
if ch and h2 and h2.Health > 0 and not isKnockedOrHooked(ch) and not isIncapacitated(ch) and not (ch:GetAttribute("Crouching") == true) and h2.MoveDirection.Magnitude > 0 then
local attr = ch:GetAttribute("Sprinting")
if type(attr) ~= "boolean" then local sp = ch:FindFirstChild("Sprinting") attr = sp and sp:IsA("BoolValue") and sp.Value or false end
if not attr then
local sb = tbl.LocalPlayer:FindFirstChild("PlayerGui") and tbl.LocalPlayer.PlayerGui:FindFirstChild("Survivor-mob") and tbl.LocalPlayer.PlayerGui["Survivor-mob"]:FindFirstChild("Controls") and tbl.LocalPlayer.PlayerGui["Survivor-mob"].Controls:FindFirstChild("sprint")
if sb and sb.Visible then
if type(firesignal) == "function" then pcall(function() firesignal(sb.MouseButton1Click) end)
elseif type(firesignal) == "table" then pcall(function() sb.MouseButton1Click:Fire() end) end
end
end
end
end
end)
elseif tbl6.AutoSprintThread then task.cancel(tbl6.AutoSprintThread) tbl6.AutoSprintThread = nil end
end,
})
SurvSkillsST:AddToggle({
Text = "Auto Skill Check",
Default = false,
Flag = "Surv_AutoSkillCheck",
Callback = function(v) tbl3.Surv_AutoSkillCheck = v syncSkillCheckSettings() end,
})
SurvSkillsST:AddDropdown({
Text = "Skill Check Mode",
Options = { "Legit", "Instan", "Skip", "Normal", "Random" },
Default = "Legit",
Flag = "Surv_SkillCheckMode",
Callback = function(v) tbl3.Surv_SkillCheckMode = v syncSkillCheckSettings() end,
})
SurvSkillsST:AddSlider({ Text = "Skill Check Speed", Min = 1, Max = 30, Default = 10, Increment = 1, Flag = "Surv_SkillSpeed", Callback = function(v) tbl3.Surv_SkillSpeed = v / 10 end })
SurvSkillsST:AddToggle({ Text = "Anti Fail Gene", Default = false, Flag = "Surv_AntiFailGen", Callback = function(v) tbl3.Surv_AutoCancelGene = v end })
SurvSkillsST:AddToggle({
Text = "Instant Teleport (Gate 0s)",
Default = false,
Flag = "Surv_InstantGate",
Callback = function(survInstantGate)
tbl3.Surv_InstantGate = survInstantGate
task.spawn(function()
local ok, result = pcall(function() return require(tbl.ReplicatedStorage:WaitForChild("Modules"):WaitForChild("Items"):WaitForChild("GateClient")) end)
if not ok or not result then if survInstantGate then sendNotif("Failed!", 3) end return end
local tbl18 = {}
if survInstantGate then
if not tbl18._isLowHealth then tbl18._isLowHealth = result._isLowHealth end
if not tbl18.StartGate then tbl18.StartGate = result.StartGate end
result._isLowHealth = function() return false end
result.StartGate = function(arg) arg.gateDuration = 0 return tbl18.StartGate(arg) end
else
if tbl18._isLowHealth then result._isLowHealth = tbl18._isLowHealth end
if tbl18.StartGate then result.StartGate = tbl18.StartGate end
end
end)
end,
})
SurvSkillsST:AddToggle({ Text = "Auto Crouch Dodge", Default = false, Flag = "Surv_AutoCrouch", Callback = function(v) tbl3.Surv_AutoCrouch = v end })
SurvSkillsST:AddToggle({ Text = "Instant Bandage", Default = false, Flag = "Surv_Bandage", Callback = function(v) tbl3.Surv_Bandage = v end })
SurvSkillsST:AddToggle({ Text = "Auto Crouch Veil", Default = false, Flag = "Surv_CrouchV", Callback = function(v) tbl3.Surv_CrouchV = v end })
SurvSkillsST:AddToggle({ Text = "Anti Slow", Default = false, Flag = "Surv_NoFall", Callback = function(v) tbl3.Surv_NoFall = v end })
SurvSkillsST:AddSection("Advanced Skills", "Lucide:layers")
local _pk = SurvSkillsST:AddToggle({
Text = "Perks Mod",
Default = false,
Flag = "Surv_Perks",
Callback = function(v) toggles["Surv_Perks"].Value = v tbl3.Surv_Perks = v end,
})
toggles["Surv_Perks"] = makeTogProxy(_pk, false)
SurvSkillsST:AddToggle({ Text = "Speed Boost", Default = false, Flag = "Surv_Spdb", Callback = function(v) tbl3.Surv_Spdb = v end })
SurvSkillsST:AddSlider({ Text = "Speed Boost Value", Min = 10, Max = 20, Default = 11, Increment = 1, Flag = "Surv_SpeedBoost", Callback = function(v) tbl3.Surv_SpeedBoost = v / 10 end })
SurvSkillsST:AddSlider({ Text = "Vault Speed", Min = 10, Max = 20, Default = 13, Increment = 1, Flag = "Surv_VaultSpeed", Callback = function(v) tbl3.Surv_VaultSpeed = v / 10 end })
SurvSkillsST:AddToggle({ Text = "Perfect Vault", Default = false, Flag = "Surv_PerfectVault", Callback = function(v) tbl3.Surv_PerfectVault = v end })
SurvSkillsST:AddToggle({ Text = "Flowstate", Default = false, Flag = "Surv_FastVault",
Callback = function(v)
tbl3.Surv_FastVault = v
if not v then
if tbl6.FlowstateCDThread then task.cancel(tbl6.FlowstateCDThread) tbl6.FlowstateCDThread = nil end
tbl6.FlowstateOnCD = false
local ch = tbl.LocalPlayer.Character
if ch then ch:SetAttribute("Flowstate", false) end
end
end,
})
SurvSkillsST:AddSlider({ Text = "Flowstate Cooldown", Min = 5, Max = 60, Default = 20, Increment = 1, Suffix = "s", Flag = "Surv_FlowstateCD", Callback = function(v) tbl3.Surv_FlowstateCD = v end })
SurvSkillsST:AddToggle({ Text = "Quick Recovery", Default = false, Flag = "Surv_SpeedAfterVault", Callback = function(v) tbl3.Surv_SpeedAfterVault = v end })
SurvSkillsST:AddSlider({ Text = "Quick Recovery Cooldown", Min = 5, Max = 60, Default = 15, Increment = 1, Suffix = "s", Flag = "Surv_QuickRecovCD", Callback = function(v) tbl3.Surv_QuickRecoveryCD = v end })
SurvSkillsST:AddToggle({ Text = "Custom FOV", Default = false, Flag = "Surv_Fov", Callback = function(v) tbl3.Surv_Fov = v if not v then tbl.Camera.FieldOfView = 70 end end })
SurvSkillsST:AddSlider({ Text = "Field of View", Min = 70, Max = 120, Default = 70, Increment = 1, Flag = "Surv_FOV_Value", Callback = function(v) tbl3.Surv_FOV_Value = v end })
local KillSettST = KillTab:AddSubTab({ Name = "Settings", Icon = "Lucide:settings" })
local KillCamST = KillTab:AddSubTab({ Name = "Camera", Icon = "Lucide:camera" })
KillSettST:AddSection("Speed / Combat", "Lucide:gauge")
local _kws = KillSettST:AddToggle({
Text = "Walk Speed",
Default = false,
Flag = "Killer_WalkSpeedToggle",
Callback = function(v)
toggles["Killer_WalkSpeedToggle"].Value = v
tbl3.Killer_WalkSpeedToggle = v
if not v and tbl.LocalPlayer.Character and tbl.LocalPlayer.Character:FindFirstChildOfClass("Humanoid") then
tbl.LocalPlayer.Character:FindFirstChildOfClass("Humanoid").WalkSpeed = tbl6.OriginalSpeed or 16
end
end,
})
toggles["Killer_WalkSpeedToggle"] = makeTogProxy(_kws, false)
KillSettST:AddSlider({ Text = "Walk Speed Value", Min = 16, Max = 300, Default = 16, Increment = 1, Suffix = " ws", Flag = "Killer_WalkSpeed", Callback = function(v) tbl3.Killer_WalkSpeed = v end })
KillSettST:AddDropdown({ Text = "Attack Mode", Options = { "BasicAttack", "Lunge" }, Default = "BasicAttack", Flag = "Killer_AttackMode", Callback = function(v) tbl3.Killer_AttackMode = v end })
KillSettST:AddToggle({ Text = "One Hit [RISKY]", Default = false, Flag = "Killer_SpamHit", Callback = function(v) tbl3.Killer_SpamHit = v end })
KillSettST:AddSlider({ Text = "Hit Radius", Min = 5, Max = 15, Default = 8, Increment = 1, Flag = "Killer_HitRadius", Callback = function(v) tbl3.Killer_SpamHitRadius = v end })
KillSettST:AddSlider({ Text = "Hit Delay", Min = 15, Max = 500, Default = 50, Increment = 1, Suffix = "ms", Flag = "Killer_HitDelay", Callback = function(v) tbl3.Killer_SpamHitDelay = v end })
KillSettST:AddToggle({ Text = "Show Hit Range", Default = true, Flag = "Killer_HitEspCircle", Callback = function(v) tbl3.Killer_HitEspCircle = v end })
KillSettST:AddToggle({ Text = "Auto Aim (Hidden)", Default = false, Callback = function(v) activateDashLock(v) end })
KillSettST:AddSection("Killer Skills", "Lucide:bolt")
KillSettST:AddToggle({ Text = "Counter Parry (V)", Default = false,
Callback = function(v)
if v then pcall(function() loadstring(game:HttpGet(tbl10.SCRIPT .. "/Misc/CParry"))() end)
elseif getgenv().CParry then pcall(getgenv().CParry) end
end,
})
local _il = KillSettST:AddToggle({
Text = "Infinite Lunge",
Default = false,
Flag = "Killer_InfLunge",
Callback = function(v) toggles["Killer_InfLunge"].Value = v tbl3.Killer_InfLunge = v if not v then tbl6.isHoldingLunge = false end end,
})
toggles["Killer_InfLunge"] = makeTogProxy(_il, false)
local _il2 = KillSettST:AddToggle({
Text = "Infinite Lunge V2",
Default = false,
Flag = "Killer_InfLungeV2",
Callback = function(v)
toggles["Killer_InfLungeV2"].Value = v tbl3.Killer_InfLungeV2 = v
local ch = tbl.LocalPlayer.Character
if v then if ch then setLungeboost(ch) end
else
if tbl6.lungeV2Connection then tbl6.lungeV2Connection:Disconnect() tbl6.lungeV2Connection = nil end
if ch then ch:SetAttribute("lungeboost", 1) end
end
end,
})
toggles["Killer_InfLungeV2"] = makeTogProxy(_il2, false)
KillSettST:AddToggle({ Text = "Anti Blind", Default = false, Flag = "Anti_Blind", Callback = function(v) tbl3.Anti_Blind = v end })
KillSettST:AddToggle({ Text = "Infinite Corrupt Abyssal", Default = false, Flag = "Killer_InfAbyssal", Callback = function(v) tbl3.Killer_InfAbyssal = v end })
KillSettST:AddToggle({ Text = "Block Windows / Pallets [RISKY]", Default = false, Callback = function(v) blockWindowsPallets(v) end })
KillSettST:AddToggle({ Text = "Bypass Carry Skill [RISKY]", Default = false, Flag = "Killer_BypassCarry", Callback = function(v) tbl3.Killer_BypassCarry = v end })
local _ncd = KillSettST:AddToggle({
Text = "NO CD Stalker / Hidden [RISKY]",
Default = false,
Flag = "Killer_NoCDToggle",
Callback = function(v) toggles["Killer_NoCDToggle"].Value = v activateNoCooldown(v) end,
})
toggles["Killer_NoCDToggle"] = makeTogProxy(_ncd, false)
local _si = KillSettST:AddToggle({
Text = "Invisible Slasher",
Default = false,
Flag = "Slasher_InvisibleToggle",
Callback = function(v) toggles["Slasher_InvisibleToggle"].Value = v activateSlasherInvis(v) end,
})
toggles["Slasher_InvisibleToggle"] = makeTogProxy(_si, false)
KillSettST:AddSlider({ Text = "Break Speed", Min = 1, Max = 10, Default = 1, Increment = 1, Flag = "Killer_BreakSpeed", Callback = function(v) tbl3.Killer_BreakSpeed = v end })
local tbl19 = {}
local _3p = KillCamST:AddToggle({
Text = "3rd Person Camera",
Description = "Enables third-person view for Killer",
Icon = "Lucide:camera",
Default = false,
Flag = "Killer_3rdPerson",
Callback = function(killer3rdPerson)
toggles["Killer_3rdPerson"].Value = killer3rdPerson
tbl3.Killer_3rdPerson = killer3rdPerson
if tbl6.ThirdPersonCamConn then tbl6.ThirdPersonCamConn:Disconnect() tbl6.ThirdPersonCamConn = nil end
if killer3rdPerson then
tbl19.CameraMode = tbl.LocalPlayer.CameraMode
tbl19.MinZoom = tbl.LocalPlayer.CameraMinZoomDistance
tbl19.MaxZoom = tbl.LocalPlayer.CameraMaxZoomDistance
tbl19.DevComputer = tbl.LocalPlayer.DevComputerCameraMode
tbl19.DevTouch = tbl.LocalPlayer.DevTouchCameraMode
local function applyKillerCamera()
if tbl6.cachedRole ~= "Killer" then return end
local mode = tbl3.Killer_CameraMode or "Classic"
if tbl.LocalPlayer.CameraMode ~= Enum.CameraMode.Classic then tbl.LocalPlayer.CameraMode = Enum.CameraMode.Classic end
local maxZ = tbl3.Misc_InfiniteZoom and math.huge or 40
if tbl.LocalPlayer.CameraMaxZoomDistance ~= maxZ then tbl.LocalPlayer.CameraMaxZoomDistance = maxZ end
if tbl.LocalPlayer.CameraMinZoomDistance ~= 7 then tbl.LocalPlayer.CameraMinZoomDistance = 7 end
tbl.LocalPlayer.DevComputerCameraMode = Enum.DevComputerCameraMovementMode[mode] or Enum.DevComputerCameraMovementMode.Classic
tbl.LocalPlayer.DevTouchCameraMode = Enum.DevTouchCameraMovementMode[mode] or Enum.DevTouchCameraMovementMode.Classic
end
if tbl6.cachedRole == "Killer" then applyKillerCamera() else sendNotif("3rd Person only works as Killer!", 3) end
tbl6.ThirdPersonCamConn = tbl.RunService.RenderStepped:Connect(function()
if tbl6.cachedRole == "Killer" then applyKillerCamera() end
end)
elseif tbl19.CameraMode then
tbl.LocalPlayer.CameraMode = tbl19.CameraMode
tbl.LocalPlayer.CameraMinZoomDistance = tbl19.MinZoom
tbl.LocalPlayer.CameraMaxZoomDistance = tbl3.Misc_InfiniteZoom and math.huge or tbl19.MaxZoom
tbl.LocalPlayer.DevComputerCameraMode = tbl19.DevComputer
tbl.LocalPlayer.DevTouchCameraMode = tbl19.DevTouch
else
tbl.LocalPlayer.CameraMode = Enum.CameraMode.Classic
tbl.LocalPlayer.CameraMinZoomDistance = 7
tbl.LocalPlayer.CameraMaxZoomDistance = tbl3.Misc_InfiniteZoom and math.huge or 128
tbl.LocalPlayer.DevComputerCameraMode = Enum.DevComputerCameraMovementMode.UserChoice
tbl.LocalPlayer.DevTouchCameraMode = Enum.DevTouchCameraMovementMode.UserChoice
end
end,
})
toggles["Killer_3rdPerson"] = makeTogProxy(_3p, false)
KillCamST:AddDropdown({ Text = "3rd Person Mode", Options = { "Classic", "Follow" }, Default = "Classic", Flag = "Killer_CameraMode", Callback = function(v) tbl3.Killer_CameraMode = v end })
KillCamST:AddSection("Skin", "Lucide:user")
KillCamST:AddDropdown({
Text = "Change Masked Skin",
Description = "Only works as the Masked Killer",
Options = { "Tony", "Rabbit", "Alex", "Brandon", "Cobra", "Richard", "Richter" },
Flag = "Killer_MaskedSkin",
Callback = function(arg)
if tbl6.cachedRole ~= "Killer" then sendNotif("Access Denied: Not Killer!", 3) return end
local sk = tbl.LocalPlayer:FindFirstChild("SelectedKiller")
if (sk and sk.Value or tbl.LocalPlayer:GetAttribute("SelectedKiller")) ~= "Masked" then
sendNotif("Access Denied: Killer is not Masked!", 3) return
end
pcall(function()
game:GetService("ReplicatedStorage"):WaitForChild("Remotes"):WaitForChild("Killers"):WaitForChild("Masked"):WaitForChild("Activatepower"):FireServer(arg)
sendNotif("Mask changed to " .. arg, 2)
task.spawn(function() task.wait(60) pcall(function() game:GetService("ReplicatedStorage"):WaitForChild("Remotes"):WaitForChild("Killers"):WaitForChild("Masked"):WaitForChild("Deactivatepower"):FireServer() end) end)
end)
end,
})
TeleTab:AddSection("Refresh", "Lucide:refresh-cw")
TeleTab:AddButton({
Text = "Refresh Map Data",
Description = "Rebuild generator, hook, gate and player lists",
Icon = "Lucide:refresh-cw",
Callback = function()
refreshMapData()
local tbl20 = {}
for i, gen in ipairs(tbl9.Generators) do
local prog = math.floor(gen.model:GetAttribute("RepairProgress") or gen.model:FindFirstChild("RepairProgress") and gen.model.RepairProgress.Value or 0)
local pl = gen.model:GetAttribute("PlayersRepairingCount") or gen.model:FindFirstChild("PlayersRepairingCount") and gen.model.PlayersRepairingCount.Value or 0
table.insert(tbl20, { index = i, progress = prog, players = pl })
end
table.sort(tbl20, function(a, b) return a.progress > b.progress end)
local tbl21 = {}
for _, v in ipairs(tbl20) do table.insert(tbl21, string.format("Generator %d | %d%% | %dP", v.index, v.progress, v.players)) end
if #tbl21 == 0 then tbl21 = { "No Gen Found" } end
options["Tele_GenDropdown"]:SetValues(tbl21)
local tbl22 = {}
for _, player in pairs(tbl.Players:GetPlayers()) do
if player ~= tbl.LocalPlayer then
local tag = player.Team and player.Team.Name == "Survivors" and "[Surv]" or player.Team and player.Team.Name == "Killer" and "[Killer]" or "[Spct]"
table.insert(tbl22, tag .. " " .. player.Name)
end
end
if #tbl22 == 0 then tbl22 = { "No Players Found" } end
options["Tele_PlayerDropdown"]:SetValues(tbl22)
local tbl23 = {} for i in ipairs(tbl9.Hooks) do table.insert(tbl23, "Hook " .. i) end
if #tbl23 == 0 then tbl23 = { "No Hook Found" } end
options["Tele_HookDropdown"]:SetValues(tbl23)
local tbl24 = {} for i in ipairs(tbl9.Gates) do table.insert(tbl24, "Gate " .. i) end
if #tbl24 == 0 then tbl24 = { "No Gate Found" } end
options["Tele_GateDropdown"]:SetValues(tbl24)
sendNotif("Map data refreshed!", 2)
end,
})
TeleTab:AddSection("Generators", "Lucide:cpu")
TeleTab:AddSlider({ Text = "TP Offset Distance", Min = 1, Max = 15, Default = 5, Increment = 1, Flag = "Tele_GenOffset", Callback = function(v) tbl3.TP_Offset = v end })
local _gd = TeleTab:AddDropdown({ Text = "Select Generator", Options = { "Refresh First" }, Default = "Refresh First", Flag = "Tele_GenDropdown", Callback = function(v) options["Tele_GenDropdown"].Value = v tbl6.CurrentTeleportGen = v end })
options["Tele_GenDropdown"] = makeOptProxy(_gd, "Refresh First")
TeleTab:AddButton({ Text = "Teleport to Generator", Icon = "Lucide:map-pin",
Callback = function()
if tbl6.CurrentTeleportGen and string.match(tbl6.CurrentTeleportGen, "Generator %d+") then
local gen = tbl9.Generators[tonumber(string.match(tbl6.CurrentTeleportGen, "Generator (%d+)"))]
if gen then teleportToGenerator(gen) end
end
end,
})
TeleTab:AddSection("Players", "Lucide:users")
local _pd = TeleTab:AddDropdown({ Text = "Select Player", Options = { "Refresh First" }, Default = "Refresh First", Flag = "Tele_PlayerDropdown", Callback = function(v) options["Tele_PlayerDropdown"].Value = v tbl6.CurrentTeleportPlayer = v end })
options["Tele_PlayerDropdown"] = makeOptProxy(_pd, "Refresh First")
TeleTab:AddButton({ Text = "Teleport to Player", Icon = "Lucide:user",
Callback = function()
if tbl6.CurrentTeleportPlayer and tbl6.CurrentTeleportPlayer ~= "No Players Found" then
local player = tbl.Players:FindFirstChild(string.match(tbl6.CurrentTeleportPlayer, "%[%w+%]%s+(.+)") or tbl6.CurrentTeleportPlayer)
if player and player.Character and tbl.LocalPlayer.Character then tbl.LocalPlayer.Character:PivotTo(player.Character:GetPivot()) end
end
end,
})
TeleTab:AddToggle({ Text = "Auto Follow", Default = false,
Callback = function(v)
tbl6.AutoFollow = v
if tbl6.FollowConnection then tbl6.FollowConnection:Disconnect() tbl6.FollowConnection = nil end
if v then
if not tbl6.CurrentTeleportPlayer or tbl6.CurrentTeleportPlayer == "No Players Found" then return end
local player = tbl.Players:FindFirstChild(string.match(tbl6.CurrentTeleportPlayer, "%[%w+%]%s+(.+)") or tbl6.CurrentTeleportPlayer)
if player then
tbl6.FollowConnection = tbl.RunService.Heartbeat:Connect(function()
pcall(function()
if not player.Character or not player.Character:FindFirstChild("HumanoidRootPart") then return end
if not tbl.LocalPlayer.Character or not tbl.LocalPlayer.Character:FindFirstChild("HumanoidRootPart") then return end
tbl.LocalPlayer.Character:PivotTo(player.Character.HumanoidRootPart.CFrame * CFrame.new(0, 1, 0))
end)
end)
end
end
end,
})
TeleTab:AddSection("Hooks and Gates", "Lucide:anchor")
local _hd = TeleTab:AddDropdown({ Text = "Select Hook", Options = { "Refresh First" }, Default = "Refresh First", Flag = "Tele_HookDropdown", Callback = function(v) options["Tele_HookDropdown"].Value = v tbl6.CurrentTeleportHook = v end })
options["Tele_HookDropdown"] = makeOptProxy(_hd, "Refresh First")
TeleTab:AddButton({ Text = "Teleport to Hook", Icon = "Lucide:anchor",
Callback = function()
if tbl6.CurrentTeleportHook and string.match(tbl6.CurrentTeleportHook, "Hook %d+") then
local hook = tbl9.Hooks[tonumber(string.match(tbl6.CurrentTeleportHook, "%d+"))]
if hook and tbl.LocalPlayer.Character then
local pt = hook:FindFirstChild("HookPoint")
tbl.LocalPlayer.Character:PivotTo(pt and pt:GetPivot() or hook:GetPivot())
end
end
end,
})
local _gatd = TeleTab:AddDropdown({ Text = "Select Gate", Options = { "Refresh First" }, Default = "Refresh First", Flag = "Tele_GateDropdown", Callback = function(v) options["Tele_GateDropdown"].Value = v tbl6.CurrentTeleportGate = v end })
options["Tele_GateDropdown"] = makeOptProxy(_gatd, "Refresh First")
TeleTab:AddButton({ Text = "Teleport to Gate", Icon = "Lucide:log-out",
Callback = function()
if tbl6.CurrentTeleportGate and string.match(tbl6.CurrentTeleportGate, "Gate %d+") then
local gate = tbl9.Gates[tonumber(string.match(tbl6.CurrentTeleportGate, "%d+"))]
if gate and tbl.LocalPlayer.Character then tbl.LocalPlayer.Character:PivotTo(gate:GetPivot() * CFrame.new(0, 0, 8)) end
end
end,
})
local EspSettST = EspTab:AddSubTab({ Name = "Settings", Icon = "Lucide:settings" })
local EspTargST = EspTab:AddSubTab({ Name = "Targets", Icon = "Lucide:target" })
EspSettST:AddSection("ESP Options", "Lucide:eye")
EspSettST:AddToggle({ Text = "Enable ESP", Description = "Highlights all entities on the map", Default = false, Flag = "ESP_Master", Callback = function(v) tbl3.ESP_Master = v if v then refreshMapData() else clearAllESP() end end })
EspSettST:AddSlider({ Text = "ESP Distance", Min = 50, Max = 500, Default = 200, Increment = 10, Suffix = " studs", Flag = "ESP_MaxDist", Callback = function(v) tbl3.ESP_MaxDistance = v end })
EspSettST:AddSlider({ Text = "ESP Transparency", Min = 0, Max = 10, Default = 7, Increment = 1, Flag = "ESP_Trans", Callback = function(v) tbl3.Trans = v / 10 if tbl3.ESP_Master then clearAllESP() refreshMapData() end end })
EspSettST:AddToggle({ Text = "Name Player", Default = false, Flag = "ESP_Name", Callback = function(v) tbl3.ESP_Name = v if v then refreshMapData() else clearAllESP() end end })
EspSettST:AddToggle({ Text = "Name Generator", Default = false, Flag = "ESP_NameG", Callback = function(v) tbl3.ESP_NameG = v if v then refreshMapData() else clearAllESP() end end })
EspSettST:AddToggle({ Text = "Item ESP", Default = false, Flag = "ESP_ItemIcon", Callback = function(v) tbl3.ESP_ItemIcon = v if tbl3.ESP_Master and not v then clearESPByType("Item") end end })
EspSettST:AddToggle({ Text = "Outline Mode", Default = false, Flag = "ESP_Outline", Callback = function(v) tbl3.ESP_Outline = v end })
EspSettST:AddToggle({ Text = "Killer Warning", Default = false, Flag = "ESP_KillerWarn", Callback = function(v) tbl3.ESP_KillerWarn = v end })
EspSettST:AddToggle({
Text = "Rainbow ESP (Chroma)",
Description = "Cycles all ESP colors through the full color spectrum",
Icon = "Lucide:sparkles",
Default = false,
Flag = "ESP_Chroma",
Callback = function(v)
tbl3.ESP_Chroma = v
if not v then
tbl6.ChromaHue = 0
tbl7.Colors.Player = Color3.fromRGB(0, 255, 100)
tbl7.Colors.Killer = Color3.fromRGB(255, 0, 100)
tbl7.Colors.SCP = Color3.fromRGB(150, 0, 255)
tbl7.Colors.Generator = Color3.fromRGB(255, 200, 0)
tbl7.Colors.Pallet = Color3.fromRGB(0, 200, 255)
tbl7.Colors.Window = Color3.fromRGB(0, 150, 255)
tbl7.Colors.Hook = Color3.fromRGB(200, 100, 0)
tbl7.Colors.Gate = Color3.fromRGB(255, 255, 255)
end
end,
})
EspSettST:AddToggle({
Text = "Highest Generator Highlight",
Description = "Highlights the generator with the most repair progress",
Icon = "Lucide:cpu",
Default = false,
Flag = "ESP_HighestGen",
Callback = function(v) tbl3.ESP_HighestGen = v end,
})
EspSettST:AddColorPicker({
Text = "Highest Gen Color",
Default = Color3.fromRGB(100, 255, 100),
Flag = "ESP_HighestGenColor",
Callback = function(c) tbl7.Colors.GeneratorDone = c end,
})
EspSettST:AddToggle({
Text = "Injured Player Color",
Description = "Highlights injured survivors in yellow-red based on HP",
Icon = "Lucide:heart-pulse",
Default = true,
Flag = "ESP_InjuredColor",
Callback = function(v) tbl3.ESP_InjuredColor = v end,
})
EspSettST:AddSection("Indicators", "Lucide:bell")
EspSettST:AddToggle({ Text = "Show Next Map", Default = true, Flag = "Next_Map", Callback = function(v) tbl3.Next_Map = v end })
EspSettST:AddToggle({ Text = "Killer Stun Indicator", Default = false, Flag = "Show_Stun", Callback = function(v) tbl3.Show_Stun = v end })
EspSettST:AddToggle({ Text = "Show FPS and Spectators", Default = true, Flag = "Misc_OverlayInfo",
Callback = function(v)
if tbl6.WatermarkUI then tbl6.WatermarkUI.Enabled = v end
if getgenv().Tixo_SpectatorUI then getgenv().Tixo_SpectatorUI.Enabled = v end
end,
})
EspSettST:AddToggle({ Text = "Info Perk", Default = false,
Callback = function(v)
if v then
if not getgenv().InfoPerkLoaded then pcall(function() loadstring(game:HttpGet(tbl10.SCRIPT .. "/Misc/perk-info"))() end)
elseif getgenv().ToggleInfoPerk then getgenv().ToggleInfoPerk(true) end
else
if getgenv().InfoPerkCleanup then getgenv().InfoPerkCleanup() end
getgenv().InfoPerkLoaded = false
end
end,
})
EspTargST:AddSection("Entities", "Lucide:users")
EspTargST:AddToggle({ Text = "SCP / Zombie", Default = false, Flag = "ESP_SCP", Callback = function(v) tbl3.ESP_SCP = v if tbl3.ESP_Master then if not v then clearESPByType("SCP") else refreshMapData() end end end })
EspTargST:AddColorPicker({ Text = "SCP Color", Default = tbl7.Colors.SCP, Callback = function(c) tbl7.Colors.SCP = c end })
EspTargST:AddToggle({ Text = "Player", Default = false, Flag = "ESP_Player", Callback = function(v) tbl3.ESP_Player = v if tbl3.ESP_Master then if not v then clearESPByType("Player") else refreshMapData() end end end })
EspTargST:AddColorPicker({ Text = "Player Color", Default = tbl7.Colors.Player, Callback = function(c) tbl7.Colors.Player = c end })
EspTargST:AddToggle({ Text = "Killer", Default = false, Flag = "ESP_Killer", Callback = function(v) tbl3.ESP_Killer = v if tbl3.ESP_Master then if not v then clearESPByType("Killer") else refreshMapData() end end end })
EspTargST:AddColorPicker({ Text = "Killer Color", Default = tbl7.Colors.Killer, Callback = function(c) tbl7.Colors.Killer = c end })
EspTargST:AddToggle({ Text = "Generator", Default = false, Flag = "ESP_Generator", Callback = function(v) tbl3.ESP_Generator = v if tbl3.ESP_Master then if not v then clearESPByType("Generator") else refreshMapData() end end end })
EspTargST:AddColorPicker({ Text = "Generator Color", Default = tbl7.Colors.Generator, Callback = function(c) tbl7.Colors.Generator = c end })
EspTargST:AddSection("Objects", "Lucide:box")
EspTargST:AddToggle({ Text = "Pallet", Default = false, Flag = "ESP_Pallet", Callback = function(v) tbl3.ESP_Pallet = v if tbl3.ESP_Master then if not v then clearESPByType("Pallet") else refreshMapData() end end end })
EspTargST:AddColorPicker({ Text = "Pallet Color", Default = tbl7.Colors.Pallet, Callback = function(c) tbl7.Colors.Pallet = c end })
EspTargST:AddToggle({ Text = "Window / Vault", Default = false, Flag = "ESP_Window", Callback = function(v) tbl3.ESP_Window = v if tbl3.ESP_Master then if not v then clearESPByType("Window") else refreshMapData() end end end })
EspTargST:AddColorPicker({ Text = "Window Color", Default = tbl7.Colors.Window, Callback = function(c) tbl7.Colors.Window = c end })
EspTargST:AddToggle({ Text = "Hook", Default = false, Flag = "ESP_Hook", Callback = function(v) tbl3.ESP_Hook = v if tbl3.ESP_Master then if not v then clearESPByType("Hook") else refreshMapData() end end end })
EspTargST:AddColorPicker({ Text = "Hook Color", Default = tbl7.Colors.Hook, Callback = function(c) tbl7.Colors.Hook = c end })
EspTargST:AddToggle({ Text = "Exit Gate", Default = false, Flag = "ESP_Gate", Callback = function(v) tbl3.ESP_Gate = v if tbl3.ESP_Master then if not v then clearESPByType("Gate") else refreshMapData() end end end })
EspTargST:AddColorPicker({ Text = "Gate Color", Default = tbl7.Colors.Gate, Callback = function(c) tbl7.Colors.Gate = c end })
local AimMainST = AimTab:AddSubTab({ Name = "Aimbot", Icon = "Lucide:crosshair" })
local AimPistolST = AimTab:AddSubTab({ Name = "Pistol (TOF)", Icon = "Lucide:target" })
local AimVeilST = AimTab:AddSubTab({ Name = "Veil / Crosshair", Icon = "Lucide:wind" })
AimMainST:AddSection("Aimbot", "Lucide:crosshair")
AimMainST:AddToggle({ Text = "Aimbot", Default = false, Flag = "Aimbot_Enabled", Callback = function(v) tbl3.Aimbot_Enabled = v end })
AimMainST:AddToggle({ Text = "Show FOV Circle", Default = true, Flag = "Aimbot_ShowFOV", Callback = function(v) tbl3.Aimbot_ShowFOV = v end })
AimMainST:AddSlider({ Text = "FOV Circle Radius", Min = 50, Max = 500, Default = 150, Increment = 10, Flag = "Aimbot_Radius", Callback = function(v) tbl3.Aimbot_Radius = v end })
AimMainST:AddSlider({ Text = "Max Distance", Min = 50, Max = 1000, Default = 300, Increment = 10, Suffix = " studs", Flag = "Aimbot_MaxDist", Callback = function(v) tbl3.Aimbot_MaxDist = v end })
AimMainST:AddSlider({ Text = "Smoothness", Min = 1, Max = 10, Default = 5, Increment = 1, Flag = "Aimbot_Smooth", Callback = function(v) tbl3.Aimbot_Smoothness = v / 10 end })
AimMainST:AddTextbox({ Text = "Predict Offset", Placeholder = "e.g. 0.05", Default = "0", Flag = "Aimbot_Predict",
Callback = function(v) local n = tonumber(v) if n then tbl3.Aimbot_Predict = n end end,
})
AimMainST:AddSection("Flash Aim", "Lucide:zap")
AimMainST:AddToggle({ Text = "Aim Flash", Default = false, Flag = "Flash_Silent", Callback = function(v) tbl3.Flash_Silent = v end })
AimMainST:AddSlider({ Text = "Aim Offset Y", Description = "0=Body 1.5=Head 8=Above Head", Min = 1, Max = 15, Default = 15, Increment = 1, Flag = "Flash_YOffset", Callback = function(v) tbl3.Flash_YOffset = v end })
AimPistolST:AddSection("Sound", "Lucide:volume-2")
AimPistolST:AddToggle({ Text = "Custom Sound TOF", Default = false, Flag = "Pistol_CustomSound",
Callback = function(v) tbl3.Pistol_CustomSound = v if tbl.LocalPlayer.Character then setupPistolSound(tbl.LocalPlayer.Character) end end,
})
AimPistolST:AddDropdown({ Text = "Select Sound", Options = { "Sound 1", "Sound 2", "Sound 3", "Sound 4" }, Default = "Sound 1", Flag = "Pistol_SoundDropdown",
Callback = function(v) tbl3.Pistol_SelectedSound = v if tbl3.Pistol_CustomSound and tbl.LocalPlayer.Character then setupPistolSound(tbl.LocalPlayer.Character) end end,
})
AimPistolST:AddSection("Aim", "Lucide:target")
local _as = AimPistolST:AddToggle({
Text = "Pistol Silent Aim [RISKY]",
Default = false,
Flag = "Aim_Silent",
Callback = function(v) toggles["Aim_Silent"].Value = v tbl3.Aim_Silent = v end,
})
toggles["Aim_Silent"] = makeTogProxy(_as, false)
toggles["Aim_Pre"] = { Value = false, SetValue = function(self, v) self.Value = v end }
AimPistolST:AddToggle({ Text = "Auto Predict", Default = false, Flag = "Aim_Pre", Callback = function(v) toggles["Aim_Pre"].Value = v tbl3.Predict = v end })
AimPistolST:AddToggle({ Text = "Aim Lock", Default = false, Flag = "Aim_Lock", Callback = function(v) tbl3.Aim_Lock = v end })
AimPistolST:AddToggle({ Text = "Block Aim on Knocked", Default = true, Flag = "Pistol_BlockKnocked", Callback = function(v) tbl3.Pistol_BlockKnocked = v end })
AimPistolST:AddToggle({ Text = "Show Laser", Default = true, Flag = "Pistol_ShowLaser", Callback = function(v) tbl3.Pistol_ShowLaser = v if not v and part and part.Parent then part.Parent = nil end end })
AimPistolST:AddDropdown({ Text = "Target Aim Part", Options = { "Head", "Torso", "Root" }, Default = "Torso", Flag = "AIM_TargetPart", Callback = function(v) tbl3.AIM_TargetPart = v end })
AimPistolST:AddSlider({ Text = "Prediction", Min = 5, Max = 50, Default = 35, Increment = 1, Flag = "Pistol_PredictLead", Callback = function(v) tbl3.Pistol_PredictLead = v / 10 end })
AimPistolST:AddSlider({ Text = "Aim Offset", Min = -2, Max = 0, Default = tbl3.Pistol_AimOffset, Increment = 1, Flag = "Pistol_AimOffset", Callback = function(v) tbl3.Pistol_AimOffset = v end })
local _ptd = AimPistolST:AddDropdown({
Text = "Pistol Target",
Options = { "Killer", "Survivor", "SCP" },
Default = "Killer",
Flag = "Pistol_Target_Drop",
Callback = function(v) options["Pistol_Target_Drop"].Value = v tbl3.Pistol_Target = v end,
})
options["Pistol_Target_Drop"] = makeOptProxy(_ptd, "Killer")
AimPistolST:AddButton({ Text = "Cycle Target Type (T)", Icon = "Lucide:repeat", Callback = function() cycleTargetType() end })
AimPistolST:AddToggle({ Text = "Show Target UI (Mobile)", Default = false, Callback = function(v) if screenGui2 then screenGui2.Enabled = v end end })
AimPistolST:AddToggle({ Text = "Pistol FOV Mode", Default = false, Flag = "Pistol_FOVMode", Callback = function(v) tbl3.Pistol_FOVMode = v end })
AimPistolST:AddToggle({ Text = "Show Pistol FOV", Default = false, Flag = "Pistol_ShowFOV", Callback = function(v) tbl3.Pistol_ShowFOV = v end })
AimPistolST:AddSlider({ Text = "Pistol FOV Radius", Min = 50, Max = 300, Default = 120, Increment = 10, Flag = "Pistol_FOV", Callback = function(v) tbl3.Pistol_FOV = v end })
do
tbl.UserInputService.InputBegan:Connect(function(input, gp)
if gp then return end
if input.KeyCode == Enum.KeyCode.T then cycleTargetType() end
end)
end
AimVeilST:AddSection("Veil (Spear)", "Lucide:wind")
local _sv = AimVeilST:AddToggle({
Text = "Veil Silent Aim [RISKY]",
Default = false,
Flag = "Aim_SilentVeil",
Callback = function(v)
if v then
if tbl6.cachedRole ~= "Killer" then sendNotif("Access Denied: Not Killer!", 3) task.defer(function() toggles["Aim_SilentVeil"]:SetValue(false) end) return end
local sk = tbl.LocalPlayer:FindFirstChild("SelectedKiller")
if (sk and sk.Value or tbl.LocalPlayer:GetAttribute("SelectedKiller")) ~= "Veil" then
sendNotif("Access Denied: Not Veil!", 3) task.defer(function() toggles["Aim_SilentVeil"]:SetValue(false) end) return
end
end
toggles["Aim_SilentVeil"].Value = v
tbl3.Aim_SilentVeil = v
end,
})
toggles["Aim_SilentVeil"] = makeTogProxy(_sv, false)
AimVeilST:AddToggle({ Text = "Smart Predict", Default = false, Flag = "SmartPredict_Toggle", Callback = function(v) tbl3.SmartPredict = v end })
AimVeilST:AddSlider({ Text = "Smart Lead Multiplier", Min = 10, Max = 50, Default = 17, Increment = 1, Flag = "Veil_LeadMultiplier", Callback = function(v) tbl3.Veil_LeadMultiplier = v / 10 end })
AimVeilST:AddToggle({ Text = "Show FOV", Default = true, Flag = "Veil_ShowFOV", Callback = function(v) tbl3.Veil_ShowFOV = v end })
AimVeilST:AddToggle({ Text = "Snapline", Default = true, Flag = "Veil_ShowLaser", Callback = function(v) tbl3.Veil_ShowLaser = v end })
AimVeilST:AddSlider({ Text = "FOV Radius", Min = 50, Max = 300, Default = 120, Increment = 10, Flag = "Veil_FOV", Callback = function(v) tbl3.Veil_FOV = v end })
AimVeilST:AddSlider({ Text = "Distance", Min = 50, Max = 500, Default = 150, Increment = 10, Suffix = " studs", Flag = "Veil_Distance", Callback = function(v) tbl3.SPEAR_MaxDist = v end })
AimVeilST:AddSlider({ Text = "Spear Speed", Min = 50, Max = 200, Default = 165, Increment = 5, Flag = "Veil_SpearSpeed", Callback = function(v) tbl3.SPEAR_Speed = v end })
AimVeilST:AddSlider({ Text = "Spear Gravity", Min = 0, Max = 200, Default = 103, Increment = 1, Flag = "Veil_SpearGravity", Callback = function(v) tbl3.SPEAR_Gravity = v end })
AimVeilST:AddSection("Crosshair", "Lucide:plus")
AimVeilST:AddToggle({ Text = "Custom Crosshair", Default = false, Flag = "Crosshair_Enabled", Callback = function(v) tbl3.Crosshair_Enabled = v updateCrosshair() end })
AimVeilST:AddDropdown({ Text = "Style", Options = { "Dot", "Cross", "Circle" }, Default = "Cross", Flag = "Crosshair_Type", Callback = function(v) tbl3.Crosshair_Type = v updateCrosshair() end })
AimVeilST:AddSlider({ Text = "Size", Min = 2, Max = 30, Default = 4, Increment = 1, Flag = "Crosshair_Size", Callback = function(v) tbl3.Crosshair_Size = v updateCrosshair() end })
AimVeilST:AddColorPicker({ Text = "Crosshair Color", Default = Color3.fromRGB(255, 255, 255), Flag = "Crosshair_Color", Callback = function(c) tbl3.Crosshair_Color = c updateCrosshair() end })
local _cx = AimVeilST:AddTextbox({ Text = "Position X", Placeholder = "e.g. 0", Default = "0", Flag = "CrossX",
Callback = function(v) local n = tonumber(v) if n then options["CrossX"].Value = v tbl3.Crosshair_OffsetX = n updateCrosshair() end end,
})
options["CrossX"] = makeOptProxy(_cx, "0")
local _cy = AimVeilST:AddTextbox({ Text = "Position Y", Placeholder = "e.g. 0", Default = "0", Flag = "CrossY",
Callback = function(v) local n = tonumber(v) if n then options["CrossY"].Value = v tbl3.Crosshair_OffsetY = n updateCrosshair() end end,
})
options["CrossY"] = makeOptProxy(_cy, "0")
AimVeilST:AddButton({ Text = "Reset Position", Icon = "Lucide:rotate-ccw",
Callback = function()
tbl3.Crosshair_OffsetX = 0 tbl3.Crosshair_OffsetY = 0
pcall(function() options["CrossX"]:SetValue("0") end)
pcall(function() options["CrossY"]:SetValue("0") end)
updateCrosshair()
end,
})
local MiscVisualST = MiscTab:AddSubTab({ Name = "Visuals", Icon = "Lucide:monitor" })
local MiscMoveST = MiscTab:AddSubTab({ Name = "Movement", Icon = "Lucide:move" })
local MiscToolsST = MiscTab:AddSubTab({ Name = "Tools", Icon = "Lucide:wrench" })
local MiscFlingUnloadST = MiscTab:AddSubTab({ Name = "Fling / Unload", Icon = "Lucide:zap" })
MiscVisualST:AddSection("Camera", "Lucide:camera")
MiscVisualST:AddToggle({ Text = "Camera DBD", Description = "Smoother DBD-style camera movement", Default = false, Flag = "Misc_SmoothCam",
Callback = function(v) tbl3.Misc_SmoothCam = v applySmoothCamera() end,
})
MiscVisualST:AddSlider({ Text = "Camera Height", Min = -10, Max = 10, Default = -1, Increment = 1, Flag = "Misc_CamHeight", Callback = function(v) tbl3.Misc_CamHeight = v if tbl3.Misc_SmoothCam then applySmoothCamera() end end })
MiscVisualST:AddSlider({ Text = "Camera Stiffness", Min = 1, Max = 30, Default = 9, Increment = 1, Flag = "Misc_CamStiffness", Callback = function(v) tbl3.Misc_CamStiffness = v if tbl3.Misc_SmoothCam then applySmoothCamera() end end })
MiscVisualST:AddSection("Screen", "Lucide:monitor")
MiscVisualST:AddToggle({ Text = "Custom Resolution", Default = false,
Callback = function(v)
if v then
if not getgenv().resolusi then
getgenv().resolusi = game:GetService("RunService").RenderStepped:Connect(function()
tbl.Camera.CFrame = tbl.Camera.CFrame * CFrame.new(0, 0, 0, 1, 0, 0, 0, getgenv().Resolution.reso, 0, 0, 0, 1)
end)
end
elseif getgenv().resolusi then getgenv().resolusi:Disconnect() getgenv().resolusi = nil end
end,
})
getgenv().Resolution = { reso = 0.65 }
MiscVisualST:AddSlider({ Text = "Resolution Scale", Min = 10, Max = 200, Default = 65, Increment = 1, Suffix = "%", Flag = "Res_Scale",
Callback = function(v) getgenv().Resolution = getgenv().Resolution or {} getgenv().Resolution.reso = v / 100 end,
})
MiscVisualST:AddSection("Visual FX", "Lucide:sparkles")
MiscVisualST:AddToggle({ Text = "Skip Cutscene", Default = false, Callback = function(v) setSkipCutscene(v) end })
MiscVisualST:AddToggle({ Text = "Fullbright", Default = false, Flag = "Misc_Fullbright",
Callback = function(v)
tbl3.Misc_Fullbright = v
if v then
if not tbl6.OriginalLighting then
local atm = tbl.Lighting:FindFirstChildOfClass("Atmosphere")
tbl6.OriginalLighting = { Brightness = tbl.Lighting.Brightness, FogEnd = tbl.Lighting.FogEnd, GlobalShadows = tbl.Lighting.GlobalShadows, OutdoorAmbient = tbl.Lighting.OutdoorAmbient, Ambient = tbl.Lighting.Ambient, AtmosphereDensity = atm and atm.Density or 0.3 }
end
applyFullbright() startFullbrightLoop()
else
stopFullbrightLoop()
if tbl6.OriginalLighting then
tbl.Lighting.Brightness = tbl6.OriginalLighting.Brightness
tbl.Lighting.FogEnd = tbl6.OriginalLighting.FogEnd
tbl.Lighting.GlobalShadows = tbl6.OriginalLighting.GlobalShadows
tbl.Lighting.OutdoorAmbient = tbl6.OriginalLighting.OutdoorAmbient
tbl.Lighting.Ambient = tbl6.OriginalLighting.Ambient
local atm = tbl.Lighting:FindFirstChildOfClass("Atmosphere")
if atm and tbl6.OriginalLighting.AtmosphereDensity then atm.Density = tbl6.OriginalLighting.AtmosphereDensity end
end
end
end,
})
MiscVisualST:AddSlider({ Text = "Fullbright Time", Min = 0, Max = 24, Default = 14, Increment = 1, Suffix = "h", Flag = "Fullbright_Time",
Callback = function(v) if tbl3.Misc_Fullbright then tbl.Lighting.ClockTime = v end end,
})
MiscVisualST:AddToggle({ Text = "Smooth HDR", Default = false, Flag = "Misc_SmoothHDR", Callback = function(v) tbl3.Misc_SmoothHDR = v setSmoothHDR(v) end })
MiscVisualST:AddSection("Graphics / FPS", "Lucide:gauge")
local function applyFPSCap()
if setfpscap then
if toggles["Misc_FPSUnlockToggle"] and toggles["Misc_FPSUnlockToggle"].Value then
local v = options["Misc_FPSDropdown"] and options["Misc_FPSDropdown"].Value
setfpscap(v == "Max" and 9999 or tonumber(v) or 60)
else setfpscap(60) end
else sendNotif("setfpscap not supported!", 3) end
end
local _fpu = MiscVisualST:AddToggle({ Text = "Unlock FPS", Default = false, Flag = "Misc_FPSUnlock",
Callback = function(v) toggles["Misc_FPSUnlockToggle"].Value = v applyFPSCap() end,
})
toggles["Misc_FPSUnlockToggle"] = makeTogProxy(_fpu, false)
local _fpd = MiscVisualST:AddDropdown({ Text = "Target FPS", Options = { "60", "90", "120", "Max" }, Default = "120", Flag = "Misc_FPSDropdown",
Callback = function(v) options["Misc_FPSDropdown"].Value = v if toggles["Misc_FPSUnlockToggle"] and toggles["Misc_FPSUnlockToggle"].Value then applyFPSCap() end end,
})
options["Misc_FPSDropdown"] = makeOptProxy(_fpd, "120")
MiscMoveST:AddSection("Movement", "Lucide:footprints")
MiscMoveST:AddToggle({ Text = "Noclip", Default = false, Flag = "Misc_Noclip", Callback = function(v) tbl3.Misc_Noclip = v end })
MiscMoveST:AddToggle({ Text = "Fly Mode", Default = false, Flag = "Misc_FlyToggle",
Callback = function(v)
tbl3.Misc_FlyToggle = v
local ch = tbl.LocalPlayer.Character
local h2 = ch and ch:FindFirstChildOfClass("Humanoid")
local hrp = ch and ch:FindFirstChild("HumanoidRootPart")
if not ch or not h2 or not hrp then return end
if v then
if ch:FindFirstChild("Animate") then ch.Animate.Disabled = true end
for _, tr in pairs(h2:GetPlayingAnimationTracks()) do tr:Stop() end
h2:ChangeState(Enum.HumanoidStateType.Swimming) h2.AutoRotate = false
local bv = Instance.new("BodyVelocity", hrp) bv.Name = "FlyStable" bv.MaxForce = Vector3.new(1e6, 1e6, 1e6) bv.Velocity = Vector3.zero
local bg = Instance.new("BodyGyro", hrp) bg.Name = "FlyGyro" bg.MaxTorque = Vector3.new(9e9, 9e9, 9e9) bg.P = 90000 bg.CFrame = tbl.Camera.CFrame
if tbl6.FlyConnection then tbl6.FlyConnection:Disconnect() end
tbl6.FlyConnection = tbl.RunService.Heartbeat:Connect(function()
if not ch or not hrp or not h2 then return end
tbl.UserInputService.MouseBehavior = Enum.MouseBehavior.LockCenter
bg.CFrame = tbl.Camera.CFrame
if h2.MoveDirection.Magnitude > 0 then
local md = h2.MoveDirection
local lv = tbl.Camera.CFrame.LookVector
local y = tbl.UserInputService:IsKeyDown(Enum.KeyCode.W) and lv.Y or (tbl.UserInputService:IsKeyDown(Enum.KeyCode.S) and -lv.Y or 0)
ch:TranslateBy(Vector3.new(md.X, y, md.Z) * (tbl3.Misc_FlySpeed / 10))
end
end)
else
if tbl6.FlyConnection then tbl6.FlyConnection:Disconnect() end
if hrp:FindFirstChild("FlyStable") then hrp.FlyStable:Destroy() end
if hrp:FindFirstChild("FlyGyro") then hrp.FlyGyro:Destroy() end
if ch:FindFirstChild("Animate") then ch.Animate.Disabled = false end
h2.AutoRotate = true h2:ChangeState(Enum.HumanoidStateType.Running)
tbl.UserInputService.MouseBehavior = Enum.MouseBehavior.Default
end
end,
})
MiscMoveST:AddSlider({ Text = "Fly Speed", Min = 10, Max = 500, Default = 10, Increment = 10, Flag = "Misc_FlySpeed", Callback = function(v) tbl3.Misc_FlySpeed = v end })
MiscMoveST:AddSection("Jump", "Lucide:arrow-up")
MiscMoveST:AddToggle({ Text = "High Jump", Default = false, Flag = "Misc_HighJump",
Callback = function(v) tbl3.Misc_HighJump = v if not v and tbl.LocalPlayer.Character then local h2 = tbl.LocalPlayer.Character:FindFirstChildOfClass("Humanoid") if h2 then h2.UseJumpPower = false end end end,
})
MiscMoveST:AddSlider({ Text = "Jump Power", Min = 50, Max = 300, Default = 50, Increment = 10, Flag = "Misc_JumpPower", Callback = function(v) tbl3.Misc_JumpPower = v end })
MiscMoveST:AddToggle({ Text = "Infinite Jump", Default = false, Flag = "Misc_InfJump", Callback = function(v) tbl3.Misc_InfJump = v end })
MiscMoveST:AddToggle({ Text = "Infinite Zoom", Default = false, Flag = "Misc_InfiniteZoom",
Callback = function(v)
tbl3.Misc_InfiniteZoom = v
if tbl6.InfiniteZoomConn then tbl6.InfiniteZoomConn:Disconnect() tbl6.InfiniteZoomConn = nil end
if v then
tbl.LocalPlayer.CameraMaxZoomDistance = math.huge
tbl6.InfiniteZoomConn = tbl.LocalPlayer:GetPropertyChangedSignal("CameraMaxZoomDistance"):Connect(function()
if tbl.LocalPlayer.CameraMaxZoomDistance ~= math.huge then tbl.LocalPlayer.CameraMaxZoomDistance = math.huge end
end)
else tbl.LocalPlayer.CameraMaxZoomDistance = tbl19.MaxZoom or 128 end
end,
})
MiscToolsST:AddSection("Profile Spoofer", "Lucide:user-cog")
MiscToolsST:AddToggle({ Text = "Fake Name", Default = false, Flag = "Misc_FakeName", Callback = function(v) tbl3.Misc_FakeName = v if v then applyFakeName() else removeFakeName() end end })
MiscToolsST:AddToggle({ Text = "Fake Profile", Description = "Spoofs Level, Gears and Screws", Default = false, Flag = "Misc_FakeAttributes",
Callback = function(v)
tbl3.Misc_FakeAttributes = v
if v then
tbl.LocalPlayer:SetAttribute("Level", tonumber(options["Misc_LevelInput"].Value) or tbl4.Level)
tbl.LocalPlayer:SetAttribute("Gears", tonumber(options["Misc_GearsInput"].Value) or tbl4.Gears)
tbl.LocalPlayer:SetAttribute("Screws", tonumber(options["Misc_ScrewsInput"].Value) or tbl4.Screws)
else
tbl.LocalPlayer:SetAttribute("Level", tbl4.Level)
tbl.LocalPlayer:SetAttribute("Gears", tbl4.Gears)
tbl.LocalPlayer:SetAttribute("Screws", tbl4.Screws)
end
end,
})
local _li = MiscToolsST:AddTextbox({ Text = "Set Level", Placeholder = tostring(tbl4.Level), Default = tostring(tbl4.Level), Flag = "Misc_LevelInput",
Callback = function(v) local n = tonumber(v) options["Misc_LevelInput"].Value = v if n and tbl3.Misc_FakeAttributes then tbl.LocalPlayer:SetAttribute("Level", n) end end,
})
options["Misc_LevelInput"] = makeOptProxy(_li, tostring(tbl4.Level))
options["Misc_LevelInput"].Value = tostring(tbl4.Level)
local _gi = MiscToolsST:AddTextbox({ Text = "Set Gears", Placeholder = tostring(tbl4.Gears), Default = tostring(tbl4.Gears), Flag = "Misc_GearsInput",
Callback = function(v) local n = tonumber(v) options["Misc_GearsInput"].Value = v if n and tbl3.Misc_FakeAttributes then tbl.LocalPlayer:SetAttribute("Gears", n) end end,
})
options["Misc_GearsInput"] = makeOptProxy(_gi, tostring(tbl4.Gears))
options["Misc_GearsInput"].Value = tostring(tbl4.Gears)
local _sci = MiscToolsST:AddTextbox({ Text = "Set Screws", Placeholder = tostring(tbl4.Screws), Default = tostring(tbl4.Screws), Flag = "Misc_ScrewsInput",
Callback = function(v) local n = tonumber(v) options["Misc_ScrewsInput"].Value = v if n and tbl3.Misc_FakeAttributes then tbl.LocalPlayer:SetAttribute("Screws", n) end end,
})
options["Misc_ScrewsInput"] = makeOptProxy(_sci, tostring(tbl4.Screws))
options["Misc_ScrewsInput"].Value = tostring(tbl4.Screws)
MiscToolsST:AddSection("GUI Tools", "Lucide:box")
MiscToolsST:AddToggle({ Text = "Invisible GUI (Q)", Default = false, Callback = function(v) if v then pcall(function() loadstring(game:HttpGet(tbl10.SCRIPT .. "/Misc/invis"))() end) elseif getgenv().RemoveInvisibleGui then pcall(getgenv().RemoveInvisibleGui) end end })
MiscToolsST:AddToggle({ Text = "Sky Changer", Default = false, Callback = function(v) if v then pcall(function() loadstring(game:HttpGet(tbl10.SCRIPT .. "/Misc/SkyC"))() end) elseif getgenv().RemoveSkyChanger then pcall(getgenv().RemoveSkyChanger) end end })
MiscToolsST:AddToggle({ Text = "Copy Avatar", Default = false, Callback = function(v) if v then pcall(function() loadstring(game:HttpGet(tbl10.SCRIPT .. "/Misc/copyava"))() end) elseif getgenv().RemoveCopyAvatar then pcall(getgenv().RemoveCopyAvatar) end end })
MiscToolsST:AddToggle({ Text = "Moonwalk (G)", Default = false, Callback = function(v) if v then pcall(function() loadstring(game:HttpGet(tbl10.SCRIPT .. "/Misc/MoonWalk"))() end) elseif getgenv().Moonwalk then pcall(getgenv().Moonwalk) end end })
MiscToolsST:AddToggle({ Text = "Emote GUI", Default = false, Callback = function(v) if v then pcall(function() loadstring(game:HttpGet(tbl10.SCRIPT .. "/Misc/emote"))() end) elseif getgenv().StopEmoteGUI then pcall(getgenv().StopEmoteGUI) end end })
MiscToolsST:AddToggle({ Text = "Super Fling [RISKY]", Default = false, Callback = function(v) if v then pcall(function() loadstring(game:HttpGet(tbl10.SCRIPT .. "/Misc/fling"))() end) elseif getgenv().StopSuperRing then pcall(getgenv().StopSuperRing) end end })
local connection3 = nil
MiscFlingUnloadST:AddSection("Fling", "Lucide:send")
local _af = MiscFlingUnloadST:AddToggle({ Text = "Fling", Default = false, Flag = "Misc_AuraFling",
Callback = function(v)
if v then
if connection3 then connection3:Disconnect() end
connection3 = tbl.RunService.PostSimulation:Connect(function()
local ch = tbl.LocalPlayer.Character
local hrp = ch and ch:FindFirstChild("HumanoidRootPart")
if not hrp then return end
for _, player in ipairs(tbl.Players:GetPlayers()) do
if player ~= tbl.LocalPlayer and player.Character then
for _, child in ipairs(player.Character:GetChildren()) do if child:IsA("BasePart") then child.CanCollide = false end end
end
end
local fval = options["Misc_FlingPower"].Value
local vel = hrp.Velocity
hrp.Velocity = Vector3.new(fval, fval, fval)
for _, d in ipairs(ch:GetDescendants()) do if d:IsA("BasePart") then d.CanCollide = false end end
tbl.RunService.RenderStepped:Wait()
if hrp then hrp.Velocity = vel end
end)
elseif connection3 then connection3:Disconnect() connection3 = nil end
end,
})
toggles["Misc_AuraFling"] = makeTogProxy(_af, false)
MiscFlingUnloadST:AddSlider({ Text = "Fling Power", Min = 5000, Max = 100000, Default = 50000, Increment = 1000, Flag = "Misc_FlingPower",
Callback = function(v) options["Misc_FlingPower"].Value = v end,
})
options["Misc_FlingPower"] = makeOptProxy(nil, 50000)
options["Misc_FlingPower"].Value = 50000
MiscFlingUnloadST:AddButton({ Text = "Tools Jerk", Icon = "Lucide:wrench", Callback = function()
pcall(function() loadstring(game:HttpGet("https://pastefy.app/wa3v2Vgm/raw"))() sendNotif("Tools loaded!", 3) end)
end })
MiscFlingUnloadST:AddSection("Unload", "Lucide:power")
MiscFlingUnloadST:AddButton({
Text = "Destroy UI",
Description = "Completely unloads the script",
Icon = "Lucide:trash-2",
Callback = function()
tbl6.Unloaded = true
pcall(function() VindUI:Unload() end)
if folder then folder:Destroy() end
if circle then circle.Visible = false circle:Remove() end
if tbl6.CutsceneConn then tbl6.CutsceneConn:Disconnect() end
if tbl6.CharCutscene then tbl6.CharCutscene:Disconnect() end
if tbl6.FlyConnection then tbl6.FlyConnection:Disconnect() end
if tbl6.FollowConnection then tbl6.FollowConnection:Disconnect() end
if tbl6.Pv2Con then tbl6.Pv2Con:Disconnect() end
if connection3 then connection3:Disconnect() end
if connection then connection:Disconnect() end
if connection2 then connection2:Disconnect() end
if tbl6.FleeThread then task.cancel(tbl6.FleeThread) end
if tbl6.VaultBoostThread then task.cancel(tbl6.VaultBoostThread) end
activateDashLock(false)
if getgenv().SlasherInvisLoop then task.cancel(getgenv().SlasherInvisLoop) getgenv().SlasherInvisLoop = nil end
if getgenv().resolusi then getgenv().resolusi:Disconnect() getgenv().resolusi = nil end
if getgenv().VD_FakeParry_Cleanup then pcall(getgenv().VD_FakeParry_Cleanup) end
if getgenv().InfoPerkCleanup then pcall(getgenv().InfoPerkCleanup) end
clearAllESP()
if part then part:Destroy() end
if highlight then highlight:Destroy() end
for _, n in ipairs({ "WM", "FovC", "SpcGui", "TargetUI", "Croshair" }) do
local gui = tbl.CoreGui:FindFirstChild(n) or (tbl.LocalPlayer:FindFirstChild("PlayerGui") and tbl.LocalPlayer.PlayerGui:FindFirstChild(n))
if gui then gui:Destroy() end
end
if getgenv().Tixo_SpectatorUI then getgenv().Tixo_SpectatorUI:Destroy() end
local ch = tbl.LocalPlayer.Character
if ch then
local h2 = ch:FindFirstChildOfClass("Humanoid")
local hrp = ch:FindFirstChild("HumanoidRootPart")
if h2 then
h2.WalkSpeed = tbl6.OriginalSpeed or 16 h2.UseJumpPower = false h2.JumpPower = 50
if ch:FindFirstChild("Animate") then ch.Animate.Disabled = false end
h2:ChangeState(Enum.HumanoidStateType.Running)
end
if hrp then
for _, n2 in ipairs({ "FlyStable", "FlyGyro", "SpamHitCircleESP", "AutoParryCircleESP", "KillerWarn" }) do
if hrp:FindFirstChild(n2) then hrp[n2]:Destroy() end
end
end
ch:SetAttribute("vaultspeed", 1) ch:SetAttribute("speedboost", 1)
end
tbl.Camera.FieldOfView = 70
tbl.LocalPlayer.CameraMode = Enum.CameraMode.Classic
tbl.LocalPlayer.CameraMinZoomDistance = 0.5
tbl.LocalPlayer.CameraMaxZoomDistance = 128
stopFullbrightLoop()
if tbl6.OriginalLighting then
tbl.Lighting.Brightness = tbl6.OriginalLighting.Brightness
tbl.Lighting.FogEnd = tbl6.OriginalLighting.FogEnd
tbl.Lighting.GlobalShadows = tbl6.OriginalLighting.GlobalShadows
tbl.Lighting.OutdoorAmbient = tbl6.OriginalLighting.OutdoorAmbient
tbl.Lighting.Ambient = tbl6.OriginalLighting.Ambient
local atm = tbl.Lighting:FindFirstChildOfClass("Atmosphere")
if atm and tbl6.OriginalLighting.AtmosphereDensity then atm.Density = tbl6.OriginalLighting.AtmosphereDensity end
end
removeFakeName()
for _, fn in ipairs({ "CleanupNoCD", "RemoveCopyAvatar", "RemoveSkyChanger", "RemoveGlobalChat", "Moonwalk", "RemoveInvisibleGui" }) do
if getgenv()[fn] then pcall(getgenv()[fn]) end
end
local ic = tbl.Workspace:FindFirstChild("invischair")
if ic then pcall(function() ic:Destroy() end) end
tbl.LocalPlayer:SetAttribute("Level", tbl4.Level)
tbl.LocalPlayer:SetAttribute("Gears", tbl4.Gears)
tbl.LocalPlayer:SetAttribute("Screws", tbl4.Screws)
for k, v in pairs(tbl3) do if type(v) == "boolean" then tbl3[k] = false end end
end,
})
local jobId = game.JobId == "" and "Singleplayer/Studio" or game.JobId
InfoTab:AddCard({
Title = tbl.LocalPlayer.Name,
Description = "Status: " .. (flag and "VIP" or "FREE") .. " | Expired: " .. expired,
UserId = tbl.LocalPlayer.UserId,
})
tbl6.TeamLabel = InfoTab:AddLabel("Team: " .. (tbl6.cachedRole or str or "Unknown"))
InfoTab:AddSection("Server", "Lucide:server")
InfoTab:AddButton({ Text = "Copy Server ID", Icon = "Lucide:copy", Callback = function() if setclipboard then setclipboard(jobId) sendNotif("Copied!", 3) end end })
InfoTab:AddButton({ Text = "Rejoin Server", Icon = "Lucide:refresh-cw",
Callback = function()
local lp = tbl.Players.LocalPlayer
if game.JobId ~= "" then tbl.TeleportService:TeleportToPlaceInstance(game.PlaceId, game.JobId, lp)
else tbl.TeleportService:Teleport(game.PlaceId, lp) end
end,
})
InfoTab:AddButton({ Text = "Server Hop", Icon = "Lucide:shuffle", Callback = function() sendNotif("Finding server...", 2) hopToNewServer() end })
InfoTab:AddButton({ Text = "Copy Key", Icon = "Lucide:key",
Callback = function()
if str2 and str2 ~= "" then
if setclipboard then setclipboard(str2) sendNotif("Key copied!", 3) else sendNotif("Copy not supported!", 3) end
else sendNotif("No key saved!", 3) end
end,
})
InfoTab:AddSection("Script Info", "Lucide:code")
InfoTab:AddInfoGrid({
Title = "PerplexWare",
Color = Color3.fromRGB(255, 255, 255),
Columns = 2,
Items = {
{ Label = "Developer", Value = "by @rainlover.r" },
{ Label = "Version", Value = tbl2.version },
{ Label = "Status", Value = "Active" },
{ Label = "Game", Value = game.Name ~= "" and game.Name:sub(1, 14) or tostring(game.PlaceId) },
},
})
InfoTab:AddSection("Social", "Lucide:message-circle")
InfoTab:AddButton({ Text = "Join Discord", Icon = "Lucide:message-circle",
Callback = function()
if setclipboard then setclipboard(tbl2.dc) sendNotif("Discord link copied!", 2) end
end,
})
task.spawn(function()
local ok, result = pcall(function()
return tbl.HttpService:JSONDecode(game:HttpGet("https://discord.com/api/v9/invites/YCMd7Nq8xf?with_counts=true"))
end)
if ok and result and result.approximate_member_count then
InfoTab:AddLabel("Members: " .. result.approximate_member_count)
else
InfoTab:AddLabel("dsc.gg/PerplexWarehub")
end
end)
InfoTab:AddSection("Config", "Lucide:settings")
local CFOLDER = "PerplexWare_VDCONFIG"
local configNameValue = "default"
local function listConfigs()
local configs = {}
pcall(function()
if listfiles then
for _, path in ipairs(listfiles(CFOLDER)) do
local name = path:match("([^/\\]+)%.json$")
if name then table.insert(configs, name) end
end
end
end)
if #configs == 0 then table.insert(configs, "(none)") end
return configs
end
local function buildConfigTable()
local out = {}
for k, val in pairs(tbl3) do
local t = type(val)
if t == "boolean" or t == "number" or t == "string" then
out[k] = val
end
end
out._chromaEnabled = tbl3.ESP_Chroma
out._parryMethod = tbl3.Surv_ParryMethod
out._pingParry = tbl3.Surv_PingParry
out._espHighestGen = tbl3.ESP_HighestGen
out._injuredColor = tbl3.ESP_InjuredColor
return out
end
local function applyConfig(config)
for k, val in pairs(config) do
if tbl3[k] ~= nil then tbl3[k] = val end
end
end
local configDropdown
local configNameTB = InfoTab:AddTextbox({
Text = "Config Name",
Placeholder = "default",
Default = "default",
Icon = "Lucide:file-cog",
Callback = function(v)
if v and v ~= "" then configNameValue = v end
end,
})
InfoTab:AddButton({ Text = "Refresh List", Icon = "Lucide:refresh-cw",
Callback = function()
if configDropdown then
pcall(function() configDropdown:Refresh(listConfigs()) end)
sendNotif("Config list refreshed", 2)
end
end,
})
configDropdown = InfoTab:AddDropdown({
Text = "Select Config",
Options = listConfigs(),
Flag = "Config_Selected",
Callback = function(v)
if v ~= "(none)" then
configNameValue = v
pcall(function() configNameTB:Set(v) end)
end
end,
})
InfoTab:AddButton({ Text = "Save Config", Icon = "Lucide:save",
Callback = function()
pcall(function()
if not writefile then sendNotif("writefile not supported", 3) return end
local name = configNameValue ~= "" and configNameValue or "default"
local path = CFOLDER .. "/" .. name .. ".json"
writefile(path, tbl.HttpService:JSONEncode(buildConfigTable()))
sendNotif("Saved: " .. name, 3)
if configDropdown then pcall(function() configDropdown:Refresh(listConfigs()) end) end
end)
end,
})
InfoTab:AddButton({ Text = "Load Config", Icon = "Lucide:folder-open",
Callback = function()
pcall(function()
if not readfile then sendNotif("readfile not supported", 3) return end
local name = configNameValue ~= "" and configNameValue or "default"
local path = CFOLDER .. "/" .. name .. ".json"
local ok, data = pcall(readfile, path)
if not ok then sendNotif("Config not found: " .. name, 3) return end
applyConfig(tbl.HttpService:JSONDecode(data))
sendNotif("Loaded: " .. name, 3)
end)
end,
})
InfoTab:AddButton({ Text = "Remove Config", Icon = "Lucide:trash-2",
Callback = function()
pcall(function()
if not delfile then sendNotif("delfile not supported", 3) return end
local name = configNameValue ~= "" and configNameValue or "default"
local path = CFOLDER .. "/" .. name .. ".json"
delfile(path)
sendNotif("Removed: " .. name, 3)
if configDropdown then pcall(function() configDropdown:Refresh(listConfigs()) end) end
end)
end,
})
InfoTab:AddToggle({
Text = "Auto Load Config on Start",
Description = "Loads a saved config automatically when the script runs",
Icon = "Lucide:zap",
Default = false,
Flag = "Config_AutoLoad",
Callback = function(v)
if writefile then
pcall(function()
if v then
writefile(CFOLDER .. "/autoload.txt", configNameValue)
else
if delfile then delfile(CFOLDER .. "/autoload.txt") end
end
end)
end
end,
})
InfoTab:AddButton({ Text = "Copy Config (.json)", Icon = "Lucide:clipboard-copy",
Description = "Copies all flags as JSON to clipboard",
Callback = function()
pcall(function()
local config = buildConfigTable()
local parts = {}
for k, val in pairs(config) do
local v
if type(val) == "string" then v = '"' .. val .. '"'
elseif type(val) == "boolean" then v = tostring(val)
else v = tostring(val) end
table.insert(parts, k .. " = " .. v)
end
table.sort(parts)
local json = "{ " .. table.concat(parts, ", ") .. " }"
if setclipboard then
setclipboard(json)
sendNotif("Config copied!", 3)
else
sendNotif("setclipboard not supported", 3)
end
end)
end,
})
VindUI:Notify({ Title = "PerplexWare", Text = "Loaded | @rainlover.r", Type = "success", Duration = 4, Icon = "Lucide:sparkles" })
end
flag = true
expired = "Trial"
do
pcall(function()
if readfile and isfile then
local autoPath = "PerplexWare_VDCONFIG/autoload.txt"
if isfile(autoPath) then
local cfgName = readfile(autoPath):match("^%s*(.-)%s*$")
if cfgName and cfgName ~= "" then
local cfgPath = "PerplexWare_VDCONFIG/" .. cfgName .. ".json"
if isfile(cfgPath) then
local data = tbl.HttpService:JSONDecode(readfile(cfgPath))
for k, val in pairs(data) do
if tbl3[k] ~= nil then tbl3[k] = val end
end
sendNotif("Auto-loaded config: " .. cfgName, 3)
end
end
end
end
end)
end
buildUITabs()
local function setupParryResultHandler()
task.spawn(function()
local remotes2 = game:GetService("ReplicatedStorage"):WaitForChild("Remotes", 5)
remotes2 = remotes2 and remotes2:WaitForChild("Items", 5):WaitForChild("Parrying Dagger", 5)
remotes2 = remotes2 and remotes2:WaitForChild("parryResult", 5)
if remotes2 then
remotes2.OnClientEvent:Connect(function(arg, arg2)
local n4 = tonumber(arg2) or arg == true and 90 or 60
tbl6.ParryCooldown = true
if tbl6.ParryCooldownThread then
task.cancel(tbl6.ParryCooldownThread)
end
tbl6.ParryCooldownThread = task.delay(n4, function()
tbl6.ParryCooldown = false
end)
end)
end
end)
end
setupParryResultHandler()
local function setupKingScourgeDetect()
task.spawn(function()
local remotes2 = game:GetService("ReplicatedStorage"):WaitForChild("Remotes", 10)
remotes2 = remotes2 and remotes2:WaitForChild("KillerPerks", 5)
remotes2 = remotes2 and remotes2:WaitForChild("kingscourge", 5)
remotes2 = remotes2 and remotes2:WaitForChild("KingScourgeStart", 5)
if remotes2 then
remotes2.OnClientEvent:Connect(function()
if tbl3.Surv_SkillCheckMode == "Random" then
tbl6.RandomMode_IsNormal = true
end
end)
end
end)
end
setupKingScourgeDetect()
local connection3 = nil
local function setupAnimationHandler(arg)
if not arg then
return
end
if connection3 then
connection3:Disconnect()
connection3 = nil
end
task.spawn(function()
setupPistolSound(arg)
local humanoid2 = arg:FindFirstChildOfClass("Humanoid") or arg:WaitForChild("Humanoid", 2)
if not humanoid2 then return end
local animator = humanoid2:FindFirstChildOfClass("Animator") or humanoid2:WaitForChild("Animator", 2)
if not animator then return end
connection3 = animator.AnimationPlayed:Connect(function(arg2)
local animationId = arg2.Animation and arg2.Animation.AnimationId
if not animationId then
return
end
if tbl3.Surv_SelfHeal and string.find(animationId, "95836365038528") then
arg2:Stop(0)
end
end)
end)
end
local function corruptAbysswalker()
if tbl6.cachedRole ~= "Killer" then
return
end
local selectedKiller = tbl.LocalPlayer:FindFirstChild("SelectedKiller")
if string.find(string.lower(tostring(selectedKiller and selectedKiller.Value or tbl.LocalPlayer:GetAttribute("SelectedKiller"))), "abyss") then
pcall(function()
game:GetService("ReplicatedStorage").Remotes.Killers.Abysswalker.corrupt:FireServer()
end)
end
end
local function doCrouchInput(arg)
pcall(function()
local playerGui = tbl.LocalPlayer:FindFirstChild("PlayerGui")
for match in string.gmatch("Survivor-mob.Controls.crouch.icon", "[^%.]+") do
playerGui = playerGui and playerGui:FindFirstChild(match)
end
if playerGui and playerGui:IsA("GuiObject") and playerGui.Visible and playerGui.Parent and playerGui.Parent:IsA("GuiButton") then
local parent = playerGui.Parent
if tbl.UserInputService.TouchEnabled and type(firesignal) == "function" then
firesignal(parent.MouseButton1Click)
task.wait(arg)
firesignal(parent.MouseButton1Click)
else
tbl.VirtualInputManager:SendKeyEvent(true, Enum.KeyCode.LeftControl, false, game)
task.wait(arg)
tbl.VirtualInputManager:SendKeyEvent(false, Enum.KeyCode.LeftControl, false, game)
end
else
tbl.VirtualInputManager:SendKeyEvent(true, Enum.KeyCode.LeftControl, false, game)
task.wait(arg)
tbl.VirtualInputManager:SendKeyEvent(false, Enum.KeyCode.LeftControl, false, game)
end
end)
end
local function startAbyssalLoop()
if tbl6.isHolding then
return
end
tbl6.isHolding = true
task.spawn(function()
while tbl6.isHolding and tbl3.Killer_InfAbyssal and tbl6.cachedRole == "Killer" do
corruptAbysswalker()
task.wait(0.5)
end
end)
end
tbl.UserInputService.InputBegan:Connect(function(input, gameProcessed)
local flag4 = input.UserInputType == Enum.UserInputType.Touch
if gameProcessed and not flag4 then
return
end
local character = tbl.LocalPlayer.Character
character = character and character:GetAttribute("spearmode") == true
if tbl3.Killer_InfAbyssal and input.KeyCode == Enum.KeyCode.Q then
startAbyssalLoop()
end
if input.UserInputType == Enum.UserInputType.MouseButton2 then
if tbl3.Aim_Silent then
tbl8.isChargingPistol = true
tbl6.locked = findAimTarget("Pistol")
end
if tbl3.Flash_Silent then
tbl8.isAimingFlash = true
end
elseif input.UserInputType == Enum.UserInputType.MouseButton1 then
if tbl3.Aim_Silent and tbl8.isChargingPistol then
firePistolAim()
end
character = tbl3.Aim_SilentVeil and character
if character then
tbl8.isChargingSpear = true
tbl8.spearAimStartTime = tick()
task.delay(7, function()
local isChargingSpear = tbl8.isChargingSpear
if isChargingSpear then
local spearAimStartTime = tbl8.spearAimStartTime
isChargingSpear = tick() - spearAimStartTime >= 6.9
end
if isChargingSpear then
tbl8.isChargingSpear = false
tbl8.currentTouchInput = nil
end
end)
end
if tbl6.cachedRole == "Killer" then
if tbl3.Aimbot_Enabled then
tbl8.lockedAimbotTarget = findAimTarget("Aimbot")
if tbl8.lockedAimbotTarget then
tbl8.isAimbotHolding = true
end
end
if tbl3.Killer_InfLunge then
startInfLungeLoop()
end
end
elseif flag4 then
if tbl3.Killer_InfAbyssal then
local v4 = findKillerMobGui()
local move2 = v4 and v4:FindFirstChild("Controls") and v4.Controls:FindFirstChild("move2")
if move2 and move2.Visible then
local position3 = input.Position
local absolutePosition = move2.AbsolutePosition
local absoluteSize = move2.AbsoluteSize
if position3.X >= absolutePosition.X and position3.X <= absolutePosition.X + absoluteSize.X and position3.Y >= absolutePosition.Y and position3.Y <= absolutePosition.Y + absoluteSize.Y then
startAbyssalLoop()
tbl6.currentTouch = input
end
end
end
if tbl6.cachedRole == "Killer" then
local v4 = findKillerMobGui()
local attack = v4 and v4:FindFirstChild("Controls") and v4.Controls:FindFirstChild("attack")
if attack and attack.Visible then
local position3 = input.Position
local absolutePosition = attack.AbsolutePosition
local absoluteSize = attack.AbsoluteSize
if position3.X >= absolutePosition.X and position3.X <= absolutePosition.X + absoluteSize.X and position3.Y >= absolutePosition.Y and position3.Y <= absolutePosition.Y + absoluteSize.Y then
if tbl3.Aimbot_Enabled then
tbl8.lockedAimbotTarget = findAimTarget("Aimbot")
if tbl8.lockedAimbotTarget then
tbl8.isAimbotHolding = true
end
end
if tbl3.Killer_InfLunge then
startInfLungeLoop()
tbl6.touchLunge = input
end
end
end
end
if tbl3.Aim_Silent or tbl3.Flash_Silent then
local playerGui = tbl.LocalPlayer:FindFirstChild("PlayerGui")
local guiMob = playerGui and playerGui:FindFirstChild("Survivor-mob") and playerGui["Survivor-mob"]:FindFirstChild("Controls") and playerGui["Survivor-mob"].Controls:FindFirstChild("Gui-mob")
if guiMob and guiMob.Visible then
local position3 = input.Position
local absolutePosition = guiMob.AbsolutePosition
local absoluteSize = guiMob.AbsoluteSize
if position3.X >= absolutePosition.X and position3.X <= absolutePosition.X + absoluteSize.X and position3.Y >= absolutePosition.Y and position3.Y <= absolutePosition.Y + absoluteSize.Y then
if tbl3.Aim_Silent then
tbl8.isChargingPistol = true
tbl8.currentTouchInput = input
tbl6.locked = findAimTarget("Pistol")
end
if tbl3.Flash_Silent then
tbl8.isAimingFlash = true
tbl8.currentTouchInput = input
end
end
end
end
if tbl3.Aim_SilentVeil and character and not tbl6.spearSwitchCooldown then
local playerGui = tbl.LocalPlayer:FindFirstChild("PlayerGui")
local attack = playerGui and playerGui:FindFirstChild("Slasher-mob") and playerGui["Slasher-mob"]:FindFirstChild("Controls") and playerGui["Slasher-mob"].Controls:FindFirstChild("attack")
if attack and attack.Visible then
local position3 = input.Position
local absolutePosition = attack.AbsolutePosition
local absoluteSize = attack.AbsoluteSize
if position3.X >= absolutePosition.X and position3.X <= absolutePosition.X + absoluteSize.X and position3.Y >= absolutePosition.Y and position3.Y <= absolutePosition.Y + absoluteSize.Y then
tbl8.isChargingSpear = true
tbl8.currentTouchInput = input
tbl8.spearAimStartTime = tick()
task.delay(7, function()
local isChargingSpear = tbl8.isChargingSpear
if isChargingSpear then
local spearAimStartTime = tbl8.spearAimStartTime
isChargingSpear = tick() - spearAimStartTime >= 6.9
end
if isChargingSpear then
tbl8.isChargingSpear = false
tbl8.currentTouchInput = nil
end
end)
end
end
end
end
end)
tbl.UserInputService.InputEnded:Connect(function(input)
local flag4 = input.UserInputType == Enum.UserInputType.Touch
if input.KeyCode == Enum.KeyCode.Q then
tbl6.isHolding = false
end
if input.UserInputType == Enum.UserInputType.MouseButton2 then
if tbl8.isChargingPistol then
tbl8.isChargingPistol = false
tbl6.locked = nil
end
if tbl8.isAimingFlash then
tbl8.isAimingFlash = false
end
end
if input.UserInputType == Enum.UserInputType.MouseButton1 or flag4 then
tbl8.isAimbotHolding = false
tbl8.lockedAimbotTarget = nil
if input.UserInputType == Enum.UserInputType.MouseButton1 then
tbl6.isHoldingLunge = false
end
end
if flag4 and input == tbl6.touchLunge then
tbl6.isHoldingLunge = false
tbl6.touchLunge = nil
end
if flag4 and input == tbl6.currentTouch then
tbl6.isHolding = false
tbl6.currentTouch = nil
end
if tbl8.isChargingSpear and (input == tbl8.currentTouchInput or input.UserInputType == Enum.UserInputType.MouseButton1) then
tbl8.isChargingSpear = false
if tbl8.currentTouchInput == input then
tbl8.currentTouchInput = nil
end
if tbl6.spearSwitchCooldown then
return
end
if tick() - (tbl8.spearAimStartTime or tick()) >= 7 then
return
end
if tbl6.isAttackCd then
return
end
tbl6.isAttackCd = true
task.delay(3, function()
tbl6.isAttackCd = false
end)
local character = tbl.LocalPlayer.Character
local humanoidRootPart2 = character and character:FindFirstChild("HumanoidRootPart")
if character and (character:FindFirstChild("Head") or humanoidRootPart2) and humanoidRootPart2 then
local flag5 = character:GetAttribute("special") == true
local position3 = humanoidRootPart2.Position
local spearSpeed = tbl3.SmartPredict and (flag5 and 165 or 142.5) or tbl3.SPEAR_Speed
local Survivor = findAimTarget("Survivor")
local unit
if Survivor then
local humanoidRootPart3 = Survivor:IsA("Model") and Survivor:FindFirstChild("HumanoidRootPart") or Survivor
local position4 = humanoidRootPart3.Position
local humanoid2 = Survivor.Parent and Survivor.Parent:FindFirstChildOfClass("Humanoid")
local n4
if humanoid2 and humanoid2.MoveDirection.Magnitude > 0 then
n4 = humanoid2.MoveDirection * humanoid2.WalkSpeed
else
n4 = Vector3.zero
if humanoidRootPart3:IsA("BasePart") then
n4 = humanoidRootPart3.AssemblyLinearVelocity
end
end
local vector = Vector3.new(n4.X, 0, n4.Z)
local magnitude = (position4 - position3).Magnitude
local n5 = magnitude / spearSpeed
if tbl3.SmartPredict then
unit = (position4 + vector * n5 * tbl3.Veil_LeadMultiplier + Vector3.new(0, 0.5 * tbl.Workspace.Gravity * 0.5 * n5 ^ 2 - 1.5, 0) - position3).Unit
else
unit = (position4 + vector * n5 * math.clamp(magnitude / 50, 0.1, 4) + Vector3.new(0, 0.5 * tbl3.SPEAR_Gravity * n5 ^ 2 * math.clamp(magnitude / 100, 1, 2.5), 0) - position3).Unit
end
else
unit = tbl.Camera.CFrame.LookVector
end
pcall(function()
tbl.ReplicatedStorage.Remotes.Killers.Veil.Spearthrow:FireServer(unit, spearSpeed, position3)
end)
end
end
if flag4 and input == tbl8.currentTouchInput then
if tbl8.isChargingPistol then
tbl8.isChargingPistol = false
tbl8.currentTouchInput = nil
local flag5 = false
pcall(function()
local playerGui = tbl.LocalPlayer:FindFirstChild("PlayerGui")
local cancelaim = playerGui and playerGui:FindFirstChild("Survivor-mob") and playerGui["Survivor-mob"]:FindFirstChild("Controls") and playerGui["Survivor-mob"].Controls:FindFirstChild("Gui-mob") and playerGui["Survivor-mob"].Controls["Gui-mob"]:FindFirstChild("cancelaim")
if cancelaim and cancelaim.Visible then
local position3 = input.Position
local absolutePosition = cancelaim.AbsolutePosition
local absoluteSize = cancelaim.AbsoluteSize
if position3.X >= absolutePosition.X and position3.X <= absolutePosition.X + absoluteSize.X and position3.Y >= absolutePosition.Y and position3.Y <= absolutePosition.Y + absoluteSize.Y then
flag5 = true
end
end
end)
if not flag5 then
firePistolAim()
end
tbl6.locked = nil
end
if tbl8.isAimingFlash then
tbl8.isAimingFlash = false
tbl8.currentTouchInput = nil
end
end
end)
local flag4 = false
local position3 = nil
local position4 = nil
frame5.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
flag4 = true
position3 = input.Position
position4 = frame4.Position
input.Changed:Connect(function()
if input.UserInputState == Enum.UserInputState.End then
flag4 = false
end
end)
end
end)
tbl.UserInputService.InputChanged:Connect(function(input)
local flag5 = flag4
if flag4 then
flag5 = input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch
end
if flag5 then
local n4 = input.Position - position3
frame4.Position = UDim2.new(position4.X.Scale, position4.X.Offset + n4.X, position4.Y.Scale, position4.Y.Offset + n4.Y)
end
end)
frame.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
flag2 = true
position = input.Position
position2 = frame.Position
input.Changed:Connect(function()
if input.UserInputState == Enum.UserInputState.End then
flag2 = false
end
end)
end
end)
frame.InputChanged:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then
v2 = input
end
end)
tbl.UserInputService.InputChanged:Connect(function(input)
if flag2 and input == v2 then
updateWatermarkDrag(input)
end
end)
local tbl18 = {}
local trackKillerAnimations = nil
trackKillerAnimations = function(arg)
if not arg or tbl18[arg] then return end
tbl18[arg] = true
local humanoid2 = arg:FindFirstChildOfClass("Humanoid")
if not humanoid2 then
humanoid2 = arg:WaitForChild("Humanoid", 2)
if not humanoid2 then tbl18[arg] = nil return end
end
local animator = humanoid2:FindFirstChildOfClass("Animator")
if not animator then
animator = humanoid2:WaitForChild("Animator", 2)
if not animator then tbl18[arg] = nil return end
end
local conn4, conn5
conn4 = humanoid2.ChildAdded:Connect(function(child)
if child:IsA("Animator") then
tbl18[arg] = nil
if conn4 then conn4:Disconnect() conn4 = nil end
if conn5 then conn5:Disconnect() conn5 = nil end
trackKillerAnimations(arg)
end
end)
conn5 = arg.AncestryChanged:Connect(function(_, parent)
if not parent then
tbl18[arg] = nil
if conn4 then conn4:Disconnect() conn4 = nil end
if conn5 then conn5:Disconnect() conn5 = nil end
_pv2KillerCache[arg] = nil
end
end)
animator.AnimationPlayed:Connect(function(arg2)
local match = (arg2.Animation and arg2.Animation.AnimationId or ""):match("%d+")
if (match == "86266790353635" or match == "93136435416899") and tbl3.Surv_CrouchV then
local character = tbl.LocalPlayer.Character
local selfHrp = character and character:FindFirstChild("HumanoidRootPart")
local killerHrp = arg:FindFirstChild("HumanoidRootPart")
if selfHrp and killerHrp and selfHrp.Parent and killerHrp.Parent then
if (selfHrp.Position - killerHrp.Position).Magnitude <= 35 then
local faceDir = Vector3.new(selfHrp.Position.X, 0, selfHrp.Position.Z) - Vector3.new(killerHrp.Position.X, 0, killerHrp.Position.Z)
if faceDir.Magnitude > 0 then
local lookDir = Vector3.new(killerHrp.CFrame.LookVector.X, 0, killerHrp.CFrame.LookVector.Z)
if lookDir.Magnitude > 0.001 and lookDir.Unit:Dot(faceDir.Unit) >= 0.7 then
doCrouchInput(0.3)
end
end
end
end
end
if match == "80411309607666" and tbl3.Surv_AutoCrouch then
local character = tbl.LocalPlayer.Character
if isKnockedOrHooked(character) or not canSafeParry(character) then return end
local selfHrp = character and character:FindFirstChild("HumanoidRootPart")
local killerHrp = arg:FindFirstChild("HumanoidRootPart")
if selfHrp and killerHrp and selfHrp.Parent and killerHrp.Parent then
if (selfHrp.Position - killerHrp.Position).Magnitude <= 35 then
doCrouchInput(1.5)
end
end
return
end
if not tbl3.Surv_AutoParry and not tbl3.Surv_Parry then return end
if tbl6.ParryCooldown then return end
local character = tbl.LocalPlayer.Character
if not character or isKnockedOrHooked(character) or not canSafeParry(character) then return end
local selfHrp = character:FindFirstChild("HumanoidRootPart")
local killerHrp = arg:FindFirstChild("HumanoidRootPart")
if not selfHrp or not killerHrp then return end
local radius = tbl3.Surv_ParryRadius + (tbl3.Surv_ParryAggressive and 5 or 0)
local predictedKillerPos = getKillerPredictedPos(killerHrp)
local magnitude = (selfHrp.Position - predictedKillerPos).Magnitude
if magnitude > radius then return end
local faceDir = Vector3.new(selfHrp.Position.X, 0, selfHrp.Position.Z) - Vector3.new(predictedKillerPos.X, 0, predictedKillerPos.Z)
if faceDir.Magnitude > 0 then
local lookDir = Vector3.new(killerHrp.CFrame.LookVector.X, 0, killerHrp.CFrame.LookVector.Z)
if lookDir.Magnitude > 0.001 and lookDir.Unit:Dot(faceDir.Unit) < (tbl3.Surv_ParryFace or 0.3) then
return
end
end
fireParryInput()
end)
end
local function onKillerCharAdded(arg)
if arg ~= tbl.LocalPlayer and isPlayerKiller(arg) and arg.Character then
trackKillerAnimations(arg.Character)
end
end
local function trackPlayerEvents(arg)
if arg == tbl.LocalPlayer then
return
end
arg.CharacterAdded:Connect(function()
onKillerCharAdded(arg)
end)
arg:GetPropertyChangedSignal("Team"):Connect(function()
onKillerCharAdded(arg)
end)
if arg.Character then
onKillerCharAdded(arg)
end
end
for _, player in ipairs(tbl.Players:GetPlayers()) do
trackPlayerEvents(player)
player:GetPropertyChangedSignal("Team"):Connect(updateSpectatorCount)
end
tbl.Players.PlayerAdded:Connect(function(player)
updateSpectatorCount()
player:GetPropertyChangedSignal("Team"):Connect(updateSpectatorCount)
trackPlayerEvents(player)
end)
tbl.Players.PlayerRemoving:Connect(function()
updateSpectatorCount()
end)
local _rsFrameCount = 0
local _aimbotTarget = nil
local _cachedParryRadius = -1
local _cachedParryAggressive = nil
local _cachedParryCooldown = nil
local _cachedSpamRadius = -1
local _cachedFovCircleRadius = -1
local _cachedFovCircleColor = nil
local _cachedFovCircleVisible = nil
tbl.RunService.RenderStepped:Connect(function()
_rsFrameCount = _rsFrameCount + 1
local character = v
local humanoidRootPart2 = humanoidRootPart
local currentRole = tbl6.cachedRole
if tbl3.Surv_Fov and currentRole == "Survivor" and tbl.Camera.FieldOfView ~= tbl3.Surv_FOV_Value then
tbl.Camera.FieldOfView = tbl3.Surv_FOV_Value
end
if tbl8.isAimingFlash and tbl3.Flash_Silent then
local Flash = findAimTarget("Flash")
if Flash then
local n4 = Flash.Position + Vector3.new(0, tbl3.Flash_YOffset, 0)
local currentCamera = tbl.Workspace.CurrentCamera
currentCamera.CFrame = currentCamera.CFrame:Lerp(CFrame.lookAt(currentCamera.CFrame.Position, n4), 0.5)
if humanoidRootPart2 then
humanoidRootPart2.CFrame = humanoidRootPart2.CFrame:Lerp(CFrame.lookAt(humanoidRootPart2.Position, Vector3.new(n4.X, humanoidRootPart2.Position.Y, n4.Z)), 0.5)
end
end
end
if tbl8.isChargingPistol and tbl3.Aim_Lock then
if tbl6.locked and tbl6.locked.Parent and tbl6.locked.Parent:FindFirstChild("Humanoid") and tbl6.locked.Parent.Humanoid.Health > 0 then
lerpCameraTarget(tbl6.locked)
else
tbl6.locked = findAimTarget("Pistol")
end
end
if tbl3.Aimbot_Enabled and character then
local aimbotSmoothness = tbl3.Aimbot_Smoothness
if currentRole == "Survivor" then
_aimbotTarget = findAimTarget("Aimbot")
if _aimbotTarget and humanoidRootPart2 then
local position5 = _aimbotTarget.Position
local dist = getDistanceTo(position5)
if dist < 100 then
position5 = position5 + tbl.Camera.CFrame.RightVector * (100 - dist) * tbl3.Aimbot_Predict
end
tbl.Camera.CFrame = tbl.Camera.CFrame:Lerp(CFrame.new(tbl.Camera.CFrame.Position, position5), aimbotSmoothness)
humanoidRootPart2.CFrame = humanoidRootPart2.CFrame:Lerp(CFrame.new(humanoidRootPart2.Position, Vector3.new(position5.X, humanoidRootPart2.Position.Y, position5.Z)), aimbotSmoothness)
end
elseif currentRole == "Killer" then
if tbl8.isAimbotHolding then
if tbl8.lockedAimbotTarget then
local parent = tbl8.lockedAimbotTarget.Parent
local h2 = parent and parent:FindFirstChild("Humanoid")
if not h2 or h2.Health <= 0 or isKnockedOrHooked(parent) or (tbl8.lockedAimbotTarget.Position - humanoidRootPart2.Position).Magnitude > tbl3.Aimbot_MaxDist then
tbl8.lockedAimbotTarget = findAimTarget("Aimbot")
end
else
tbl8.lockedAimbotTarget = findAimTarget("Aimbot")
end
if tbl8.lockedAimbotTarget and humanoidRootPart2 then
local position5 = tbl8.lockedAimbotTarget.Position
tbl.Camera.CFrame = tbl.Camera.CFrame:Lerp(CFrame.new(tbl.Camera.CFrame.Position, position5), aimbotSmoothness)
humanoidRootPart2.CFrame = humanoidRootPart2.CFrame:Lerp(CFrame.new(humanoidRootPart2.Position, Vector3.new(position5.X, humanoidRootPart2.Position.Y, position5.Z)), aimbotSmoothness)
end
else
tbl8.lockedAimbotTarget = nil
_aimbotTarget = nil
end
end
else
_aimbotTarget = nil
end
if _rsFrameCount % 2 == 0 then
if tbl3.Killer_HitEspCircle and tbl3.Killer_SpamHit and humanoidRootPart2 then
if not tbl6.SpamHit or tbl6.SpamHit.Parent ~= humanoidRootPart2 then
if tbl6.SpamHit then tbl6.SpamHit:Destroy() end
tbl6.SpamHit = Instance.new("CylinderHandleAdornment")
tbl6.SpamHit.Name = "SpamHitCircleESP"
tbl6.SpamHit.Height = 0.05
tbl6.SpamHit.Color3 = Color3.fromRGB(255, 0, 0)
tbl6.SpamHit.Transparency = 0.3
tbl6.SpamHit.Adornee = humanoidRootPart2
tbl6.SpamHit.Parent = humanoidRootPart2
tbl6.SpamHit.ZIndex = 0
tbl6.SpamHit.AlwaysOnTop = false
_cachedSpamRadius = -1
end
local r = tbl3.Killer_SpamHitRadius
if r ~= _cachedSpamRadius then
tbl6.SpamHit.Radius = r
tbl6.SpamHit.InnerRadius = math.max(0.1, r - 0.15)
tbl6.SpamHit.CFrame = CFrame.new(0, -3, 0) * CFrame.Angles(1.5707963267948966, 0, 0)
_cachedSpamRadius = r
end
elseif tbl6.SpamHit then
tbl6.SpamHit:Destroy()
tbl6.SpamHit = nil
_cachedSpamRadius = -1
end
local survParry = tbl3.Surv_ParryCircle and (tbl3.Surv_AutoParry or tbl3.Surv_Parry or tbl3.Surv_ParryV2)
if survParry and humanoidRootPart2 then
if not tbl6.autoParry or tbl6.autoParry.Parent ~= humanoidRootPart2 then
if tbl6.autoParry then tbl6.autoParry:Destroy() end
tbl6.autoParry = Instance.new("CylinderHandleAdornment")
tbl6.autoParry.Name = "AutoParryCircleESP"
tbl6.autoParry.Height = 0.05
tbl6.autoParry.Transparency = 0.3
tbl6.autoParry.Adornee = humanoidRootPart2
tbl6.autoParry.Parent = humanoidRootPart2
tbl6.autoParry.ZIndex = 0
tbl6.autoParry.AlwaysOnTop = false
_cachedParryRadius = -1
_cachedParryAggressive = nil
_cachedParryCooldown = nil
end
local survParryRadius = tbl3.Surv_ParryRadius + (tbl3.Surv_ParryAggressive and 5 or 0)
local parryCd = tbl6.ParryCooldown
if survParryRadius ~= _cachedParryRadius then
tbl6.autoParry.Radius = survParryRadius
tbl6.autoParry.InnerRadius = math.max(0.1, survParryRadius - 0.15)
tbl6.autoParry.CFrame = CFrame.new(0, -3, 0) * CFrame.Angles(1.5707963267948966, 0, 0)
_cachedParryRadius = survParryRadius
end
if parryCd ~= _cachedParryCooldown or tbl3.Surv_ParryAggressive ~= _cachedParryAggressive then
if parryCd then
tbl6.autoParry.Color3 = Color3.fromRGB(255, 128, 0)
elseif tbl3.Surv_ParryAggressive then
tbl6.autoParry.Color3 = Color3.fromRGB(255, 0, 0)
else
tbl6.autoParry.Color3 = Color3.fromRGB(0, 255, 255)
end
_cachedParryCooldown = parryCd
_cachedParryAggressive = tbl3.Surv_ParryAggressive
end
elseif tbl6.autoParry then
tbl6.autoParry:Destroy()
tbl6.autoParry = nil
_cachedParryRadius = -1
end
local flag5 = character and character:GetAttribute("spearmode") == true
local flag6 = character and character:GetAttribute("special") == true
local vector2 = Vector2.new(tbl.Camera.ViewportSize.X / 2, tbl.Camera.ViewportSize.Y / 2)
local color, aimbotRadius, visible
if tbl3.Aimbot_Enabled and tbl3.Aimbot_ShowFOV then
aimbotRadius = tbl3.Aimbot_Radius
color = _aimbotTarget ~= nil and Color3.fromRGB(255, 0, 0) or Color3.fromRGB(0, 255, 100)
visible = true
elseif tbl3.Aim_SilentVeil and tbl3.Veil_ShowFOV and flag5 then
aimbotRadius = tbl3.Veil_FOV
color = flag6 and Color3.fromRGB(0, 255, 100) or Color3.fromRGB(150, 150, 150)
visible = true
elseif tbl3.Aim_Silent and tbl3.Pistol_ShowFOV and tbl3.Pistol_FOVMode then
aimbotRadius = tbl3.Pistol_FOV
color = Color3.fromRGB(255, 255, 255)
visible = true
else
visible = false
aimbotRadius = 0
end
if visible ~= _cachedFovCircleVisible or aimbotRadius ~= _cachedFovCircleRadius or color ~= _cachedFovCircleColor then
frame3.Visible = visible
if visible then
frame3.Size = UDim2.new(0, aimbotRadius * 2, 0, aimbotRadius * 2)
frame3.Position = UDim2.new(0, vector2.X, 0, vector2.Y)
uiStroke.Color = color
end
_cachedFovCircleVisible = visible
_cachedFovCircleRadius = aimbotRadius
_cachedFovCircleColor = color
end
end
if tbl8.isChargingPistol and tbl3.Aim_Silent then
local Pistol = findAimTarget("Pistol")
if Pistol then
local leftArm = character:FindFirstChild("Left Arm") or character:FindFirstChild("LeftHand")
leftArm = leftArm and leftArm.Position or character:GetPivot().Position
local position5 = Pistol.Position
local assemblyLinearVelocity = Pistol.AssemblyLinearVelocity
local n4 = position5 + Vector3.new(assemblyLinearVelocity.X, 0, assemblyLinearVelocity.Z) * (position5 - leftArm).Magnitude / 400 + Vector3.new(0, tbl3.Pistol_AimOffset, 0)
if tbl3.Pistol_ShowLaser then
part.Parent = workspace
local magnitude = (n4 - leftArm).Magnitude
part.Size = Vector3.new(0.05, 0.05, magnitude)
part.CFrame = CFrame.new(leftArm, n4) * CFrame.new(0, 0, -magnitude / 2)
elseif part.Parent ~= nil then
part.Parent = nil
end
elseif part.Parent ~= nil then
part.Parent = nil
end
elseif part.Parent ~= nil then
part.Parent = nil
end
if tbl8.isChargingSpear and tbl3.Aim_SilentVeil and flag5 and not tbl6.spearSwitchCooldown and not flag7 then
local character2 = tbl.LocalPlayer.Character
local rightArm = character2 and (character2:FindFirstChild("Right Arm") or character2:FindFirstChild("RightHand"))
local humanoidRootPart3 = character2 and character2:FindFirstChild("HumanoidRootPart")
rightArm = rightArm and rightArm.Position or humanoidRootPart3 and humanoidRootPart3.Position + Vector3.new(1.5, 0.5, 0)
if rightArm and character2 then
local flag8 = character2:GetAttribute("special") == true
local smartPredict = tbl3.SmartPredict
local n4
if smartPredict then
n4 = flag8 and 165 or 142.5
else
n4 = smartPredict
end
n4 = n4 or tbl3.SPEAR_Speed
local spearGravity = tbl3.SmartPredict and tbl.Workspace.Gravity * 0.5 or tbl3.SPEAR_Gravity
local Survivor = findAimTarget("Survivor")
local n5, unit
if Survivor then
highlight.Parent = Survivor.Parent
local humanoidRootPart4 = Survivor:IsA("Model") and Survivor:FindFirstChild("HumanoidRootPart") or Survivor
local position5 = humanoidRootPart4.Position
local humanoid2 = Survivor.Parent and Survivor.Parent:FindFirstChildOfClass("Humanoid")
local n6
if humanoid2 and humanoid2.MoveDirection.Magnitude > 0 then
n6 = humanoid2.MoveDirection * humanoid2.WalkSpeed
else
n6 = Vector3.zero
if humanoidRootPart4:IsA("BasePart") then
n6 = humanoidRootPart4.AssemblyLinearVelocity
end
end
local vector = Vector3.new(n6.X, 0, n6.Z)
local magnitude = (position5 - rightArm).Magnitude
local n7 = magnitude / n4
if tbl3.SmartPredict then
n5 = position5 + vector * n7 * tbl3.Veil_LeadMultiplier
unit = (n5 + Vector3.new(0, 0.5 * spearGravity * n7 ^ 2 - 1.5, 0) - rightArm).Unit
else
n5 = position5 + vector * n7 * math.clamp(magnitude / 50, 0.1, 4)
unit = (n5 + Vector3.new(0, 0.5 * spearGravity * n7 ^ 2 * math.clamp(magnitude / 100, 1, 2.5), 0) - rightArm).Unit
end
else
highlight.Parent = nil
unit = tbl.Camera.CFrame.LookVector
n5 = nil
end
renderSpearTrajectory(rightArm, unit, n4, spearGravity, character2, Survivor, n5)
else
hideSpearTrajectory()
highlight.Parent = nil
end
else
hideSpearTrajectory()
highlight.Parent = nil
end
end)
tbl6.cachedRole = str or "Spectator"
local _steppedFrame = 0
tbl.RunService.Stepped:Connect(function()
_steppedFrame = _steppedFrame + 1
if _steppedFrame % 10 == 0 then
tbl6.cachedRole = str
end
if not tbl3.Misc_Noclip then
return
end
local character = tbl.LocalPlayer.Character
if not character then
return
end
if character ~= tbl6.lastNoclipChar then
table.clear(tbl6.cachedNoclipParts)
for _, descendant in ipairs(character:GetDescendants()) do
if descendant:IsA("BasePart") then
table.insert(tbl6.cachedNoclipParts, descendant)
end
end
tbl6.lastNoclipChar = character
end
for _, cachedNoclipPart in ipairs(tbl6.cachedNoclipParts) do
cachedNoclipPart.CanCollide = false
end
end)
local atmosphere = tbl.Lighting:FindFirstChildOfClass("Atmosphere")
local remotes2 = tbl.ReplicatedStorage:FindFirstChild("Remotes")
local attacks = remotes2 and remotes2:FindFirstChild("Attacks")
tbl.Lighting.ChildAdded:Connect(function(child)
if child:IsA("Atmosphere") then
atmosphere = child
end
end)
local _hbFrameCount = 0
local _spamAccum = 0
local _tbl16 = {}
local function rebuildSurvivorList()
table.clear(_tbl16)
for player, cache in pairs(_playerCache) do
if not cache.isKiller then table.insert(_tbl16, player) end
end
end
rebuildSurvivorList()
task.spawn(function()
while not tbl6.Unloaded do
task.wait(0.04)
if not tbl3.ESP_Chroma then continue end
tbl6.ChromaHue = (tbl6.ChromaHue + 3) % 360
local c = Color3.fromHSV(tbl6.ChromaHue / 360, 1, 1)
tbl7.Colors.SCP = c
tbl7.Colors.Player = c
tbl7.Colors.Killer = c
tbl7.Colors.Generator = c
tbl7.Colors.Pallet = c
tbl7.Colors.Window = c
tbl7.Colors.Hook = c
tbl7.Colors.Gate = c
end
end)
tbl.RunService.Heartbeat:Connect(function(deltaTime)
if tbl6.Unloaded then return end
_hbFrameCount = _hbFrameCount + 1
local character = v
local humanoid2 = humanoid
local selfHrp = humanoidRootPart
local currentRole = tbl6.cachedRole
if tbl3.Killer_SpamHit and selfHrp and currentRole == "Killer" then
_spamAccum = _spamAccum + deltaTime
local spamDelay = math.max(0.15, (tbl3.Killer_SpamHitDelay or 100) / 1000)
if _spamAccum >= spamDelay then
_spamAccum = 0
local v5 = attacks and attacks:FindFirstChild(tbl3.Killer_AttackMode)
if v5 then
local selfPos = selfHrp.Position
local hitRadius = tbl3.Killer_SpamHitRadius
for _, player in ipairs(_tbl16) do
local cache = _playerCache[player]
if not cache then continue end
local hrp2 = cache.hrp
local h3 = cache.humanoid
local ch2 = cache.character
if hrp2 and hrp2.Parent and h3 and h3.Health > 0 and ch2
and not (ch2:GetAttribute("isHooked") or ch2:GetAttribute("IsHooked") or ch2:GetAttribute("Hooked"))
and (selfPos - hrp2.Position).Magnitude <= hitRadius then
pcall(function() v5:FireServer() end)
break
end
end
end
end
else
_spamAccum = 0
end
if humanoid2 and character then
if tbl3.Killer_WalkSpeedToggle and currentRole == "Killer" and tbl3.Killer_WalkSpeed > humanoid2.WalkSpeed and humanoid2.MoveDirection.Magnitude > 0 then
character:TranslateBy(humanoid2.MoveDirection * (tbl3.Killer_WalkSpeed - humanoid2.WalkSpeed) * deltaTime)
end
if tbl3.Misc_HighJump and currentRole ~= "Killer" then
humanoid2.UseJumpPower = true
humanoid2.JumpPower = tbl3.Misc_JumpPower
end
if tbl3.Surv_GodMode and currentRole == "Survivor" then
local knocked = character:GetAttribute("Knocked") == true
if knocked or isKnockedOrHooked(humanoid2) then
humanoid2.Health = humanoid2.MaxHealth
if knocked then character:SetAttribute("Knocked", false) end
end
end
if _hbFrameCount % 3 == 0 then
if tbl3.Killer_BreakSpeed and currentRole == "Killer" then
if character:GetAttribute("breakspeed") ~= tbl3.Killer_BreakSpeed then
character:SetAttribute("breakspeed", tbl3.Killer_BreakSpeed)
end
end
if currentRole ~= "Killer" then
if tbl3.Surv_Perks then
local vs = tbl3.Surv_VaultSpeed
if character:GetAttribute("vaultspeed") ~= vs then
character:SetAttribute("vaultspeed", vs)
end
local ss = tbl3.Surv_SkillSpeed
if character:GetAttribute("skillcheckspeed") ~= ss then
character:SetAttribute("skillcheckspeed", ss)
end
end
if tbl3.Surv_FastVault then
local flowTarget = not tbl6.FlowstateOnCD
if character:GetAttribute("Flowstate") ~= flowTarget then
character:SetAttribute("Flowstate", flowTarget)
end
elseif character:GetAttribute("Flowstate") == true then
character:SetAttribute("Flowstate", false)
end
end
end
end
if tbl3.ESP_Master and _hbFrameCount % 60 == 0 then
scanItemESPs()
renderSCPESP()
if tbl3.ESP_HighestGen and tbl9.Generators then
local maxProg = -1
local bestModel = nil
for _, gen in ipairs(tbl9.Generators) do
local prog = gen.model:GetAttribute("RepairProgress") or 0
if prog > maxProg and prog < 100 then
maxProg = prog
bestModel = gen.model
end
end
tbl6.HighestGenModel = bestModel
end
end
end)
local function setupSpeedConn(arg)
if not arg then
return
end
tbl6.VaultBoostActive = false
tbl6.QuickRecoveryOnCD = false
if tbl6.VaultBoostThread then
task.cancel(tbl6.VaultBoostThread)
tbl6.VaultBoostThread = nil
end
if tbl6.TeamLabel then
pcall(function()
tbl6.TeamLabel:Set("Team: " .. str)
end)
end
if str == "Killer" then
local survivorFlags = {
"AUTO_AutoSurvivor", "Surv_AutoSprint", "Surv_SelfHeal", "Surv_AuraHeal",
"Surv_AutoParry", "Surv_Parry", "Surv_ParryV2", "Surv_AutoCrouch", "Surv_Bandage",
"Surv_CrouchV", "Surv_Perks", "Surv_Spdb", "Surv_PerfectVault",
"Surv_FastVault", "Surv_SpeedAfterVault", "Surv_AutoFleeToggle",
"Surv_AutoSkillCheck", "Surv_GodMode", "Surv_NoFall", "Surv_SoundDbd",
"AntiBlockWindowToggle", "Surv_AutoPalletToggle", "Surv_DoubleGenToggle",
"AUTO_Generator", "Surv_Fov",
}
for _, flag in ipairs(survivorFlags) do
if tbl3[flag] then
tbl3[flag] = false
if getgenv().Toggles and getgenv().Toggles[flag] then
pcall(function() getgenv().Toggles[flag]:SetValue(false) end)
end
end
end
if tbl3.Misc_SmoothCam then
tbl3.Misc_SmoothCam = false
pcall(applySmoothCamera)
end
tbl.Camera.FieldOfView = 70
if tbl6.FleeThread then task.cancel(tbl6.FleeThread) tbl6.FleeThread = nil end
if tbl6.AutoSprintThread then task.cancel(tbl6.AutoSprintThread) tbl6.AutoSprintThread = nil end
if tbl6.blockThread then task.cancel(tbl6.blockThread) tbl6.blockThread = nil end
task.spawn(cancelAutoRepair)
end
if tbl6.SpeedConn then
tbl6.SpeedConn:Disconnect()
tbl6.SpeedConn = nil
end
if tbl6.cachedRole == "Survivor" and tbl3.Surv_Perks and tbl3.Surv_Spdb then
arg:SetAttribute("speedboost", tbl3.Surv_SpeedBoost)
end
tbl6.SpeedConn = arg:GetAttributeChangedSignal("speedboost"):Connect(function()
if tbl6.Unloaded or tbl6.cachedRole == "Killer" then
return
end
local attribute = arg:GetAttribute("speedboost") or 1
local survSpeedBoost = tbl3.Surv_SpeedBoost or 1.1
if tbl3.Surv_SpeedAfterVault and tbl6.VaultBoostActive then
if attribute ~= 1.4 then
arg:SetAttribute("speedboost", 1.4)
end
return
end
if tbl3.Surv_Perks and tbl3.Surv_Spdb then
if attribute == 1 then
arg:SetAttribute("speedboost", survSpeedBoost)
elseif attribute < 1 and tbl3.Surv_NoFall then
arg:SetAttribute("speedboost", survSpeedBoost)
end
end
end)
end
tbl.UserInputService.JumpRequest:Connect(function()
if tbl3.Misc_InfJump and tbl.LocalPlayer.Character then
local humanoid2 = tbl.LocalPlayer.Character:FindFirstChildOfClass("Humanoid")
if humanoid2 then
humanoid2:ChangeState(Enum.HumanoidStateType.Jumping)
end
end
end)
tbl.LocalPlayer.CharacterRemoving:Connect(function()
v = nil
humanoidRootPart = nil
humanoid = nil
end)
tbl.LocalPlayer.CharacterAdded:Connect(function(character)
initCharacter(character)
setupSpeedConn(character)
setupAnimationHandler(character)
applySmoothCamera()
setupSpearStunTracking(tbl.LocalPlayer.Character)
if connection then
connection:Disconnect()
end
if connection2 then
connection2:Disconnect()
end
if not tbl3.Killer_3rdPerson then
if isPlayerKiller(tbl.LocalPlayer) then
tbl.LocalPlayer.CameraMode = Enum.CameraMode.LockFirstPerson
tbl.LocalPlayer.CameraMinZoomDistance = 0.5
tbl.LocalPlayer.CameraMaxZoomDistance = 0.5
else
tbl.LocalPlayer.CameraMode = Enum.CameraMode.Classic
tbl.LocalPlayer.CameraMinZoomDistance = 7
tbl.LocalPlayer.CameraMaxZoomDistance = 128
end
end
setupSkillCheckSync()
end)
tbl.LocalPlayer:GetPropertyChangedSignal("Team"):Connect(function()
updateTeamRole()
local character = tbl.LocalPlayer.Character
if character then
setupSpeedConn(character)
setupAnimationHandler(character)
end
end)
if tbl.LocalPlayer.Character then
initCharacter(tbl.LocalPlayer.Character)
setupSpeedConn(tbl.LocalPlayer.Character)
setupAnimationHandler(tbl.LocalPlayer.Character)
setupSkillCheckSync()
setupSpearStunTracking(tbl.LocalPlayer.Character)
applySkillSoundSwap(tbl.LocalPlayer.Character)
end
refreshMapData()
updateSpectatorCount()
updateTeamRole()
task.spawn(function()
local n4 = 0
local connection4 = tbl.RunService.RenderStepped:Connect(function()
n4 = n4 + 1
end)
local remotes3 = tbl.ReplicatedStorage:WaitForChild("Remotes", 5)
remotes3 = remotes3 and remotes3:FindFirstChild("Healing")
local healEvent = remotes3 and remotes3:FindFirstChild("HealEvent")
local tbl19 = {}
local n5 = 0
while not tbl6.Unloaded do
task.wait(1)
local v4 = n4
n4 = 0
local n6 = 0
pcall(function()
n6 = math.round(tbl.Stats.Network.ServerStatsItem["Data Ping"]:GetValue())
end)
tbl6.CurrentPing = n6 / 1000
if textLabel then
textLabel.Text = string.format("nigger | %d FPS | %dms", v4, n6)
if n6 < 80 then
textLabel.TextColor3 = Color3.fromRGB(85, 255, 127)
elseif n6 < 150 then
textLabel.TextColor3 = Color3.fromRGB(255, 255, 0)
else
textLabel.TextColor3 = Color3.fromRGB(255, 85, 85)
end
end
renderAllESP()
local tbl20 = {}
local character = tbl.LocalPlayer.Character
local humanoidRootPart2 = character and character:FindFirstChild("HumanoidRootPart")
local humanoid2 = character and character:FindFirstChildOfClass("Humanoid")
if character and humanoidRootPart2 and humanoid2 then
local flag5 = tbl3.Surv_SelfHeal and humanoid2.Health > 0 and humanoid2.Health < 99
local flag6 = false
if flag5 then
pcall(function()
if healEvent then
healEvent:FireServer(humanoidRootPart2, true)
end
end)
flag6 = true
end
if tbl3.Surv_AuraHeal then
for _, player in pairs(tbl.Players:GetPlayers()) do
if player ~= tbl.LocalPlayer and isPlayerSurvivor(player) and player.Character then
local humanoidRootPart3 = player.Character:FindFirstChild("HumanoidRootPart")
local humanoid3 = player.Character:FindFirstChildOfClass("Humanoid")
if humanoidRootPart3 and humanoid3 and humanoid3.Health > 0 and humanoid3.Health < 99 then
if (humanoidRootPart2.Position - humanoidRootPart3.Position).Magnitude <= (tbl3.Surv_AuraHealRadius or 15) then
tbl20[player] = humanoidRootPart3
flag6 = true
end
end
end
end
end
for k, v5 in pairs(tbl19) do
if not tbl20[k] then
pcall(function()
if healEvent then
healEvent:FireServer(v5, false)
end
end)
tbl19[k] = nil
end
end
local n7 = 0
for k, v5 in pairs(tbl20) do
tbl19[k] = v5
n7 = n7 + 1
pcall(function()
if healEvent then
healEvent:FireServer(v5, true)
end
end)
end
if n7 == 0 and n5 > 0 and not flag6 then
if humanoid2 then
local animator = humanoid2:FindFirstChildOfClass("Animator")
if animator then
for _, v5 in pairs(animator:GetPlayingAnimationTracks()) do
v5:Stop()
end
n5 = n7
else
n5 = n7
end
else
n5 = n7
end
else
n5 = n7
end
end
end
connection4:Disconnect()
end)
task.spawn(function()
local remotes3 = game:GetService("ReplicatedStorage"):WaitForChild("Remotes", 10)
remotes3 = remotes3 and remotes3:FindFirstChild("Mapinfo", true)
if remotes3 and remotes3:IsA("RemoteEvent") then
remotes3.OnClientEvent:Connect(function(arg)
if arg and tbl3.Next_Map then
pcall(function()
if getgenv().Window then
sendNotif("Next Map: " .. tostring(arg), 10, 18595195017)
end
end)
end
end)
end
end)
end
task.spawn(function()
while not tbl6.Unloaded do
task.wait(1)
for _, player in ipairs(tbl.Players:GetPlayers()) do
local character = player.Character
if player ~= tbl.LocalPlayer and isPlayerKiller(player) and character then
if not character:GetAttribute("StunEventAdded") then
character:SetAttribute("StunEventAdded", true)
character:GetAttributeChangedSignal("IsStunned"):Connect(function()
if not tbl3.Show_Stun or tbl6.Unloaded then
return
end
local humanoidRootPart2 = character:FindFirstChild("HumanoidRootPart")
if character:GetAttribute("IsStunned") then
if humanoidRootPart2 and not character:FindFirstChild("StunIn") then
local sound = Instance.new("Sound", humanoidRootPart2)
sound.Name = "StunHitSound"
sound.Volume = 5
sound.SoundId = "rbxassetid://140209514807090"
sound:Play()
sound.Ended:Connect(function()
sound:Destroy()
end)
createBillboardESP(character, "StunIn", { name = "stunned", color = Color3.fromRGB(255, 255, 0), offsetY = 5.5 })
end
else
if character:FindFirstChild("StunIn") then
character.StunIn:Destroy()
end
if humanoidRootPart2 and humanoidRootPart2:FindFirstChild("StunHitSound") then
humanoidRootPart2.StunHitSound:Destroy()
end
end
end)
end
end
end
end
end)
task.spawn(function()
local ok, result = pcall(function()
return require(tbl.ReplicatedStorage:WaitForChild("Modules"):WaitForChild("Survivors"):WaitForChild("SurvivorAnimationsController"))
end)
if not ok or not result then
return
end
local isFacingStraightEnough = result._isFacingStraightEnough
result._isFacingStraightEnough = function(arg, arg2, arg3, arg4)
if tbl3.Surv_PerfectVault then
arg.characterspeed = 20
return true, 0
end
return isFacingStraightEnough(arg, arg2, arg3, arg4)
end
local onVaultAnimation = result._onVaultAnimation
result._onVaultAnimation = function(arg, arg2, arg3)
if tbl3.Surv_PerfectVault then
return onVaultAnimation(arg, arg2, true)
end
return onVaultAnimation(arg, arg2, arg3)
end
local onSkillCheckFail = result._onSkillCheckFail
result._onSkillCheckFail = function(arg, arg2, arg3)
local v3 = onSkillCheckFail(arg, arg2, arg3)
if tbl3.Surv_NoFall then
arg.cantupdatespeed = false
if arg.humanoidRootPart then
arg.humanoidRootPart.Anchored = false
end
end
return v3
end
end)