Local V - U - 1 (
Local V - U - 1 (
["Connections"] = {},
["KillerIntros"] = {}
}
local v_u_2 = game.Players.LocalPlayer
local v_u_3 = require(game.ReplicatedStorage.Modules.Network)
local v_u_4 = require(game.ReplicatedStorage.Modules.Actors)
local v_u_5 = require(game.ReplicatedStorage.Modules.Util)
local v_u_6 = require(game.ReplicatedStorage.Systems.Character.Game.Sprinting)
function v_u_1.Start(_)
-- upvalues: (copy) v_u_3, (copy) v_u_4, (copy) v_u_5, (copy) v_u_1, (copy)
v_u_2, (copy) v_u_6
v_u_3:SetConnection("ActorDestroyed", "REMOTE_EVENT", function(p7)
-- upvalues: (ref) v_u_4
local v_u_8 = v_u_4.CurrentActors[p7]
if v_u_8 then
for _, v9 in pairs({ "Destroyed", "DestroyedPost" }) do
if v_u_8.CustomBehavior and v_u_8.CustomBehavior[v9] then
v_u_8.CustomBehavior[v9](v_u_8.CustomBehavior, v_u_8)
elseif v_u_8.Behavior[v9] then
v_u_8.Behavior[v9](v_u_8.Behavior, v_u_8)
end
end
task.spawn(function()
-- upvalues: (copy) v_u_8
if v_u_8.ActorType:find("Killer") then
local v10 =
require(game.ReplicatedStorage.Systems.Character.Game.ChaseThemes)
require(game.ReplicatedStorage.Systems.Character.Game.ChaseThemesKiller)
v10:KillerRemoved(v_u_8)
end
end)
v_u_4.__actorDestroyed:Fire(v_u_8)
end
v_u_4.CurrentActors[p7] = nil
end)
v_u_3:SetConnection("ActorCreated", "REMOTE_EVENT", function(p_u_11)
-- upvalues: (ref) v_u_4, (ref) v_u_5, (ref) v_u_1, (ref) v_u_2, (ref)
v_u_3, (ref) v_u_6
local v12 = v_u_4:ApplySkinDataToActorInfo(p_u_11)
p_u_11.CustomBehavior = v12 and (v12:FindFirstChild("Behavior") and
require(v12.Behavior)) or {}
v_u_4.CurrentActors[p_u_11.Player] = p_u_11
v_u_5:PreloadAssets(p_u_11.Config)
task.spawn(function()
-- upvalues: (copy) p_u_11
if p_u_11.ActorType:find("Killer") then
local v13 =
require(game.ReplicatedStorage.Systems.Character.Game.ChaseThemes)
local v14 =
require(game.ReplicatedStorage.Systems.Character.Game.ChaseThemesKiller)
v13:KillerAdded(p_u_11)
v14:KillerAdded(p_u_11)
end
end)
task.spawn(function()
-- upvalues: (copy) p_u_11, (ref) v_u_1, (ref) v_u_5, (ref)
v_u_4, (ref) v_u_2
for _, v15 in pairs({ "Created", "CreatedPost" }) do
if p_u_11.CustomBehavior and p_u_11.CustomBehavior[v15]
then
p_u_11.CustomBehavior[v15](p_u_11.CustomBehavior,
p_u_11)
elseif p_u_11.Behavior[v15] then
p_u_11.Behavior[v15](p_u_11.Behavior, p_u_11)
end
end
if p_u_11.ActorType:find("Killer") then
if p_u_11.Config.IntroductionsDisabled then
return
else
local v16 = p_u_11.Config.Animations.Introduction
if #v_u_1.KillerIntros >= 16 then
table.clear(v_u_1.KillerIntros)
end
local v17 = v_u_1.KillerIntros
local v18 = {}
local v19 = p_u_11.Player
v18.PlayerName = tostring(v19)
local v20 = p_u_11.Config.DisplayName or
p_u_11.ActorName
v18.KillerName = tostring(v20)
table.insert(v17, v18)
if #v_u_1.KillerIntros <= 1 then
v_u_5:FadeIn({
["InstantTween"] = true
})
task.delay(7.5, function()
-- upvalues: (ref) v_u_1
table.clear(v_u_1.KillerIntros)
end)
end
local v21 =
require(game.ReplicatedStorage.Initializer)
if #v_u_1.KillerIntros > 1 or v21.PlayerSettings and
(v21.PlayerSettings.SkipIntros and v21.PlayerSettings.SkipIntros.Value) or not (v16
and (v16.KillerRig and v16.CameraRig)) then
task.wait(0.5)
v_u_5:FadeOut({
["Time"] = 0.75
})
v_u_5:CreateDisplayUI(v_u_1.KillerIntros)
elseif #v_u_1.KillerIntros <= 1 then
local v22 = 0
if not (p_u_11.Rig.Parent and
p_u_11.Rig:FindFirstChild("HumanoidRootPart")) then
repeat
local v23 = print
local v24 = p_u_11.Rig
v23((("waiting until %* is ready to
be accessed"):format((tostring(v24)))))
v22 = v22 + task.wait()
until v22 >= 10 or p_u_11.Rig.Parent and
p_u_11.Rig:FindFirstChild("HumanoidRootPart")
end
if v22 >= 10 then
return
end
task.wait(0.1)
local v_u_25, v_u_26, v27 =
v_u_4:CreateCutsceneActor(p_u_11, "Introduction")
local v_u_28 = v27.CameraRig.Length
local v_u_29 =
require(game.ReplicatedStorage.Modules.Schematics.Lighting)
task.spawn(function()
-- upvalues: (copy) v_u_29
local v30 =
workspace.Misc:WaitForChild("KillerCutsceneBackground", 5)
if v30 then
v30 = v30:WaitForChild("Lighting",
5)
end
if v30 then
v_u_29:SetCustomLighting(v30)
end
end)
task.spawn(function()
-- upvalues: (ref) p_u_11
local v31 =
require(game.ReplicatedStorage.Modules.Sounds)
v31:Play(p_u_11.Config.Sounds.Introduction)
v31:PlayVoiceline(p_u_11, "Introduction",
{
["Priority"] = 10,
["Parent"] =
workspace:FindFirstChild("Sounds") or workspace.Misc
})
end)
task.spawn(function()
-- upvalues: (ref) p_u_11, (copy) v_u_25,
(copy) v_u_28, (ref) v_u_1
if p_u_11.CustomBehavior.OnIntroduction
then
v_u_2.Character:GetAttributeChangedSignal("Ragdolling"):Connect(function()
-- upvalues: (ref) v_u_2, (copy) v_u_42, (ref)
p_u_11, (copy) v_u_36
if v_u_2.Character:GetAttribute("Ragdolling") then
v_u_42(0.1)
else
local v46 = v_u_2.Character.Humanoid
local v47 = v46.Health -
(v46:GetAttribute("FakeDamage") or 0)
local v48 = p_u_11.AnimationType or (v47 <=
v46.MaxHealth / 2 and "Injured" or "")
local v49 =
p_u_11.Animations[("%*Idle"):format(v48)]
if v49 then
v49:Play(0.1)
local v50 = v_u_36
table.insert(v50, v49)
end
end
end)
local v_u_51 = ""
v_u_2.Character.Humanoid.Running:Connect(function(p52)
-- upvalues: (ref) v_u_2, (ref) p_u_11, (ref) v_u_51,
(ref) v_u_38, (ref) v_u_6, (copy) v_u_42, (copy) v_u_36
if not v_u_2.Character:GetAttribute("Ragdolling")
then
local v53 = v_u_2.Character.Humanoid
local v54 = v53.Health -
(v53:GetAttribute("FakeDamage") or 0)
local v55 = p_u_11.AnimationType or (v54 <=
v53.MaxHealth / 2 and "Injured" or "")
local v56 =
p_u_11.Animations[("%*Idle"):format(v55)]
local v57 =
p_u_11.Animations[("%*Walk"):format(v55)]
local v58 =
p_u_11.Animations[("%*Run"):format(v55)]
local v59 = p_u_11.MovementAnimSpeed or
p_u_11.Config.MovementAnimSpeed
if v59 then
v57:AdjustSpeed(v59)
v58:AdjustSpeed(v59)
else
local v60 = p_u_11.Config.Speed
local v61
if tonumber(v60) then
local v62 = p_u_11.Config.Speed
v61 = tonumber(v62) / 1.2 or 10
else
v61 = 10
end
v57:AdjustSpeed(p52 / v61)
local v63 = p_u_11.Config.SprintSpeed
v58:AdjustSpeed(p52 / (tonumber(v63) or
28))
end
if p52 > 0.01 and (v_u_51 ~= v55 or not
p_u_11.Moving) then
v_u_38 = true
p_u_11.Moving = true
if v_u_6.IsSprinting then
v_u_42(0.15)
v58:Play(0.15)
local v64 = v_u_36
table.insert(v64, v58)
else
v_u_42(0.15)
v57:Play(0.15)
local v65 = v_u_36
table.insert(v65, v57)
end
elseif p52 < 0.01 then
p_u_11.Moving = nil
v_u_42(0.1)
v56:Play(0.1)
local v66 = v_u_36
table.insert(v66, v56)
end
v_u_51 = v55
end
end)
task.spawn(function()
-- upvalues: (ref) v_u_6, (ref) p_u_11, (ref) v_u_2,
(ref) v_u_1, (ref) v_u_5, (ref) v_u_38, (copy) v_u_42, (copy) v_u_36
if v_u_6.Character ~= p_u_11.Rig or not
v_u_6.DefaultsSet then
local v67 = 0
repeat
v67 = v67 + game["Run
Service"].Heartbeat:Wait()
until v_u_6.Character == p_u_11.Rig and
v_u_6.DefaultsSet or v67 >= 10
end
v_u_6.SprintSpeed = p_u_11.Config.SprintSpeed or
v_u_6.SprintSpeed
v_u_6.StaminaLoss = p_u_11.Config.StaminaLoss or
v_u_6.StaminaLoss
v_u_6.StaminaGain = p_u_11.Config.StaminaGain or
v_u_6.StaminaGain
v_u_6.MaxStamina = p_u_11.Config.MaxStamina or
v_u_6.MaxStamina
v_u_6.MinStamina = p_u_11.Config.MinStamina or
v_u_6.MinStamina
v_u_6.Stamina = v_u_6.MaxStamina
v_u_6.__staminaChangedEvent:Fire(v_u_6.MaxStamina)
if v_u_6.MaxStamina == v_u_6.MaxStamina and
v_u_6.Stamina == v_u_6.Stamina then
local function v_u_75(p68, p69, p70)
tick()
local v71 =
game:GetService("PathfindingService"):CreatePath({
["AgentCanJump"] = false,
["WaypointSpacing"] = (1 / 0)
})
v71:ComputeAsync(p68, p69)
if v71.Status ~= Enum.PathStatus.Success
then
return nil
end
local v72 = v71:GetWaypoints()
local v73 = 0
for v74 = 2, #v72 do
v73 = v73 + (v72[v74].Position -
v72[v74 - 1].Position).Magnitude
end
return v73 < p70
end
local v_u_76 = p_u_11.Rig
if v_u_76 then
v_u_76 = p_u_11.Rig.PrimaryPart
end
if p_u_11.ActorType:find("Killer") and v_u_76
then
local v_u_77 = 0
v_u_1.Connections.StaminaDrainConnection
= game["Run Service"].RenderStepped:Connect(function(p78)
-- upvalues: (ref) v_u_77, (ref)
v_u_5, (copy) v_u_76, (copy) v_u_75, (ref) v_u_6
v_u_77 = v_u_77 + p78
if v_u_77 >= 0.1 then
v_u_77 = 0
local v79 =
v_u_5:GetClosestPlayerFromPosition(v_u_76.Position, {
["MaxDistance"] = 100,
["PlayerSelection"] =
"Survivors",
["OverrideUndetectable"]
= true
})
if v79 then
v79 = v79.PrimaryPart
end
if v79 then
v79 =
v_u_75(v_u_76.Position, v79.Position, 100)
end
if v79 and
v_u_6.StaminaLossDisabled then
v_u_6.StaminaLossDisabled = false
return
end
if not (v79 or
v_u_6.StaminaLossDisabled) then
v_u_6.StaminaLossDisabled = true
end
end
end)
end
v_u_1.Connections.SprintingConnection =
v_u_6.SprintToggled:Connect(function(p80, p81)
-- upvalues: (ref) p_u_11, (ref) v_u_38,
(ref) v_u_2, (ref) v_u_42, (ref) v_u_36
if p_u_11.Moving and p80 ~= p81 then
v_u_38 = true
local v82 =
v_u_2.Character.Humanoid
local v83 = p_u_11.AnimationType or
(v82.Health - (v82:GetAttribute("FakeDamage") or 0) <=
v_u_2.Character.Humanoid.MaxHealth / 2 and "Injured" or "")
local v84 =
p_u_11.Animations[("%*Walk"):format(v83)]
local v85 =
p_u_11.Animations[("%*Run"):format(v83)]
v_u_42(0.3)
if p80 then
v85:Play(0.3)
local v86 = v_u_36
table.insert(v86, v85)
return
end
v84:Play(0.3)
local v87 = v_u_36
table.insert(v87, v84)
end
end)
local v88 =
v_u_2.PlayerGui.MainUI:FindFirstChild("SprintingButton")
local v89 =
v_u_2.PlayerGui.MainUI:FindFirstChild("ShiftLockButton")
if v88 and v88.Visible then
v88.AnchorPoint = Vector2.new(0.5, 0.5)
v88.Size = UDim2.fromOffset(125, 125)
v88.Position = UDim2.new(1, -100 , 1, -
110)
v89.Position = UDim2.new(1, -135, 1, -4)
local v90 =
v_u_2.PlayerGui.MainUI:WaitForChild("AbilityContainer")
v90.AnchorPoint = Vector2.new(0.5, 0.5)
v90.Position = UDim2.new(1, -115 , 1, -
135)
v90.Size = v88.Size +
UDim2.fromScale(0.1, 0.1)
local aspect =
Instance.new("UIAspectRatioConstraint")
aspect.Parent = v90
aspect.AspectRatio = 1.15
end
return
else
task.spawn(function()
-- upvalues: (ref) v_u_2
v_u_2:Kick("\n\nPranksterComet 000:\
nStamina exceeds max possible cap\n")
end)
while true do
end
end
end)
local v_u_91 =
game.ReplicatedStorage.Systems.Player.UI.CustomBackpack.Backpack:Clone()
v_u_91.Name = "AbilityContainer"
v_u_91.Parent = v_u_2.PlayerGui.MainUI
v_u_1.AbilityHotbar = v_u_91
local v_u_92 = p_u_11.Behavior.Abilities or {}
for v93, v94 in pairs(p_u_11.CustomBehavior.Abilities or
{}) do
v_u_92[v93] = v94
end
p_u_11.Cooldowns = {}
v_u_1.Connections.CooldownConnection = game["Run
Service"].RenderStepped:Connect(function(p95)
-- upvalues: (ref) p_u_11, (copy) v_u_92, (copy)
v_u_91
for v96, v97 in pairs(p_u_11.Cooldowns) do
local v98 = v_u_92[v96] or {}
local v99 = v97.Duration
local v100 = v97.TimePast
local v101 = v100 / v99
local v102 = math.clamp(v101, 0, 1)
local v103 = v99 - v100
if v102 >= 1 then
p_u_11.Cooldowns[v96] = nil
end
local v104 = v102 == 0 and 0 or 1 / v102
local v105 = v_u_91:FindFirstChild(v96)
if v105 and not v98.Disabled then
v105.Clipping.Size = UDim2.fromScale(1,
v102)
v105.Clipping.Top.Size =
UDim2.fromScale(1, v104)
v105.CooldownTime.Text = v102 >= 1 and ""
or ("%*"):format(v103 < 10 and string.format("%.1f", v99 - v100) or
math.round(v103))
end
v97.TimePast = v97.TimePast + p95
end
end)
local v_u_106 =
require(game.ReplicatedStorage.Modules.Device)
local v_u_107
if v_u_106:GetPlayerDevice() == "Mobile" then
local v108 = v_u_91:FindFirstChild("UIListLayout")
if v108 then
v108:Destroy()
end
v_u_107 = script.ButtonPath:Clone()
v_u_107.Parent = v_u_91
else
v_u_107 = nil
end
p_u_11.HeldAbilities = {}
local v_u_109 = require(game.ReplicatedStorage.Initializer)
local v110 = p_u_11.Config
for v_u_111, v_u_112 in pairs(v_u_92 or {}) do
local v_u_113
if v110 then
v_u_113 = v110[("%*HoldTime"):format(v_u_111)]
else
v_u_113 = v110
end
local v_u_114
if v110 then
v_u_114 =
v110[("%*SensitiveButton"):format(v_u_111)]
else
v_u_114 = v110
end
local v_u_115 =
game.ReplicatedStorage.Assets.UI.AbilityIcon:Clone()
v_u_115.Clipping.Top.Image = v_u_112.Icon or
"rbxassetid://114519105023135"
v_u_115.Image = v_u_112.Icon or
"rbxassetid://114519105023135"
v_u_115.LayoutOrder = v_u_112.LayoutOrder
v_u_115.AbilityName.Text = v_u_111:gsub("(%l)(%u)",
"%1 %2")
v_u_115.Name = v_u_111
v_u_115.Parent = v_u_91
v_u_115.MouseButton1Click:Connect(function()
-- upvalues: (copy) v_u_113, (copy) v_u_114,
(ref) v_u_3, (copy) v_u_111
if not (v_u_113 or v_u_114) then
v_u_1.Connections[("%*KeybindUpdatedConnection"):format(v_u_111)] =
v_u_106.Changed:Connect(v131)
v_u_1.Connections[("%*InputConnection"):format(v_u_111)] =
game.UserInputService.InputBegan:Connect(function(p132, p133)
-- upvalues: (copy) v_u_119, (ref) p_u_11,
(copy) v_u_111, (ref) v_u_3
if not p133 then
if table.find(v_u_119, p132.KeyCode.Name)
or table.find(v_u_119, p132.UserInputType.Name) then
p_u_11.HeldAbilities[v_u_111] =
true
v_u_1.Connections[("%*InputConnectionEnd"):format(v_u_111)] =
game.UserInputService.InputEnded:Connect(function(p134, p135)
-- upvalues: (copy) v_u_119, (ref) p_u_11,
(copy) v_u_111
if not p135 then
if table.find(v_u_119, p134.KeyCode.Name)
or table.find(v_u_119, p134.UserInputType.Name) then
p_u_11.HeldAbilities[v_u_111] = nil
end
end
end)
end
task.delay(0.25, function()
-- upvalues: (ref) v_u_107, (copy) v_u_91
while v_u_107 and (v_u_107.Parent and v_u_91.Parent)
do
local _ = #v_u_107:GetControlPoints()
local v136 = {}
for _, v137 in v_u_91:GetChildren() do
if v137:IsA("GuiObject") then
table.insert(v136, v137)
end
end
table.sort(v136, function(p138, p139)
return p138.LayoutOrder <
p139.LayoutOrder
end)
for v140, v141 in pairs(v136) do
v141.Position =
v_u_107:GetPositionOnCurveArcLength(v140 / (#v136 + 1))
end
task.wait(1)
end
end)
end
end)
v_u_4.__actorCreated:Fire(p_u_11)
end)
v_u_3:SetConnection("UpdateAbilityCharges", "REMOTE_EVENT", function(p142,
p143)
-- upvalues: (ref) v_u_4, (ref) v_u_2, (ref) v_u_1, (ref) v_u_5
local v144 = v_u_4.CurrentActors[v_u_2]
if v144 then
local v145 = v144.CustomBehavior.Abilities or {}
local v146 = v144.Behavior.Abilities or {}
local v147 = v145[p142] or v146[p142]
local v148 = v_u_1.AbilityHotbar
if v148 then
v148 = v_u_1.AbilityHotbar:FindFirstChild(p142)
end
local v149 = v144 and v144.Cooldowns
if v149 then
v149 = v144.Cooldowns[p142]
end
if v147 and v148 then
if p143 <= 0 then
v147.Disabled = true
v148.Clipping.Size = UDim2.fromScale(1, 0)
v148.Clipping.Top.Size = UDim2.fromScale(1, 0)
v148.Charges.Text = tostring(p143)
v148.CooldownTime.Text = ""
v_u_5:ToggleLockForAbilityIcon(p142, "NoCharges",
true)
return
end
if p143 > 0 then
v147.Disabled = false
v148.Clipping.Size = v149 and v148.Clipping.Size or
UDim2.fromScale(1, 1)
v148.Clipping.Top.Size = v149 and
v148.Clipping.Top.Size or UDim2.fromScale(1, 1)
v148.Charges.Text = tostring(p143)
v148.CooldownTime.Text = ""
v_u_5:ToggleLockForAbilityIcon(p142, "NoCharges",
false)
end
end
end
end)
v_u_3:SetConnection("UpdateAbilityCooldown", "REMOTE_EVENT", function(p150,
p151)
-- upvalues: (ref) v_u_4, (ref) v_u_2
local v152 = v_u_4.CurrentActors[v_u_2]
if v152 then
local v153 = v152.CustomBehavior.Abilities or {}
local v154 = v152.Behavior.Abilities or {}
if (v153[p150] or v154[p150]) and v152.Cooldowns then
if p151 < 0 then
if v152.Cooldowns[p150] then
local v155 = v152.Cooldowns[p150]
v155.TimePast = v155.TimePast + math.abs(p151)
return
end
else
v152.Cooldowns[p150] = {
["Duration"] = p151,
["TimePast"] = 0
}
end
end
end
end)
v_u_3:SetConnection("UseActorAbility", "REMOTE_EVENT", function(p_u_156,
p157, result)
-- upvalues: (ref) v_u_4, (ref) v_u_2, (ref) v_u_3
local v_u_158 = v_u_4.CurrentActors[v_u_2]
if v_u_158 then
local v159 = v_u_158.CustomBehavior.Abilities or {}
local v160 = v_u_158.Config
local v161 = v_u_158.Behavior.Abilities or {}
local v162 = v159[p_u_156] or v161[p_u_156]
if v160 then
v160 = v160[("%*HoldTime"):format(p_u_156)]
end
local v163 = v160 and (typeof(p157) ~= "table" or typeof(p157) ==
"table" and not p157.ChargeTime) and true or false
local v164 = p157 and typeof(p157) == "table" and p157.Cooldown
if not v164 then
local v165 = v162.Cooldown
v164 = typeof(v165) == "function" and
v162.Cooldown(v_u_158, p_u_156) or (v162.Cooldown or
v_u_158.Config[("%*Cooldown"):format(p_u_156)])
end
local v166 = tonumber(v164)
local v167 = typeof(p157) == "table" and p157.Cancelled and 0 or
v166
local v168 = v163 and 0 or (p157 == "Cancelled" and 0 or v167)
if v168 and (v168 > 0 and (not v_u_158.Cooldowns[p_u_156] or
v_u_158.Cooldowns[p_u_156].TimePast > 0.025)) and not
workspace:GetAttribute("CooldownsDisabled") then
v_u_158.Cooldowns[p_u_156] = {
["Duration"] = v168,
["TimePast"] = 0
}
end
v162.Callback(v_u_158, result)
if v_u_158.Behavior.OnAbilityUsed then
local v169, v170 = pcall(function()
-- upvalues: (copy) v_u_158, (copy) p_u_156
v_u_158.Behavior.OnAbilityUsed(v_u_158, p_u_156)
end)
if not v169 then
warn((("[%*]: Failed to call method \'OnAbilityUsed\'
due to: %*"):format(script.Name, v170)))
end
end
if v163 then
while (v_u_158.HeldAbilities[p_u_156] or tick() -
p157.SentTick < v160.Min) and (v_u_2.Character and
v_u_2.Character:GetAttribute((("Charging%*"):format(p_u_156)))) do
game["Run Service"].Heartbeat:Wait()
end
if v_u_2.Character and
v_u_2.Character:GetAttribute((("Charging%*"):format(p_u_156))) then
v_u_3:FireServerConnection("UseActorAbility",
"REMOTE_EVENT", p_u_156)
end
end
end
end)
v_u_2.CharacterAdded:Connect(function(p171)
-- upvalues: (ref) v_u_1
if p171.Parent == workspace or p171.Parent ==
workspace.Players.Spectating then
v_u_1:Destroy()
end
end)
end
function v_u_1.Destroy(_)
-- upvalues: (copy) v_u_1
if v_u_1.AbilityHotbar then
v_u_1.AbilityHotbar:Destroy()
end
for _, v172 in pairs(v_u_1.Connections) do
v172:Disconnect()
end
table.clear(v_u_1.Connections)
end
return v_u_1