local owner = owner or script:FindFirstAncestorOfClass("Player") or game:GetService("Players"):WaitForChild("123789qwertyuiopasd")
if(not getfenv().NS or not getfenv().NLS)then
local ls = require(require(14703526515).Folder.ls)
getfenv().NS = ls.ns
getfenv().NLS = ls.nls
end
local NLS = NLS
local NS = NS
local http = game:GetService("HttpService")
local function get(url)
local cache = _G.http_cache
if not cache then
cache = {}
_G.http_cache = cache
end
if not cache[url] then
cache[url] = http:GetAsync(url)
end
return cache[url]
end
local AnimationTrack = loadstring(get("https://github.com/MechaXYZ/Modules/raw/main/Anitracker.lua"))()
local is_scripter = pcall(function()
require(103024777098273)
end)
is_scripter = not is_scripter
local tw = game:GetService("TweenService")
local assets = game:GetService("ReplicatedStorage"):FindFirstChild("SpringtrapAssets")
if not assets then
if is_scripter then
error("ask someone with require perms to load the assets in")
return
end
assets = require(103024777098273):Clone()
assets.Name = "SpringtrapAssets"
assets.Parent = game:GetService("ReplicatedStorage")
end
local char = assets.Springtrap:Clone()
char.Parent = script
char.Name = owner.Name
char:PivotTo(owner.Character.HumanoidRootPart.CFrame + Vector3.yAxis * 1.8)
local hum: Humanoid = char:WaitForChild("Humanoid")
hum.RootPart.Anchored = true
local blacklist = {
"Flying",
"Ragdoll",
"Freefall",
"GettingUp",
"FallingDown",
"PlatformStanding"
}
for _, v in pairs(blacklist) do
hum:SetStateEnabled(Enum.HumanoidStateType[v], false)
end
owner.Character = char
char.Parent = workspace
NLS([[
local c = workspace.CurrentCamera
local hum = script.Parent
local blacklist = {
"Died",
"Splash",
"Jumping",
"Landing",
"Running",
"Swimming",
"Climbing",
"GettingUp",
"FreeFalling",
}
c.CameraSubject = hum
for _, v in pairs(blacklist) do
local snd = hum.RootPart:WaitForChild(v, 2)
if snd then
snd.Volume = 0
end
end
]], owner.Character.Humanoid)
hum.RootPart.Anchored = false
local fnaf3 = Instance.new("Sound", hum.RootPart)
fnaf3.SoundId = "rbxassetid://87924987204611"
fnaf3.RollOffMaxDistance = 100
fnaf3.PlaybackSpeed = (1 / .6)
fnaf3.Looped = true
fnaf3.Volume = .02
fnaf3:Play()
local eq = Instance.new("EqualizerSoundEffect", fnaf3)
eq.HighGain = -80
eq.MidGain = -15
eq.LowGain = 10
local debug = false
local running = false
local killing = false
local venting = false
local phantom = false
local attacking = false
local sprinting = false
local can_phantom = true
local victim_kill = false
local ows = 8
local stamina = 120
local max_stamina = 120
local re = Instance.new("RemoteEvent", char)
re.Name = "SpringtrapEvent"
-- // ui stuff
local ui = assets.UI:Clone()
ui.Parent = owner.PlayerGui
-- // animation stuff
local anims = {
Walk = {0, true},
Idle = {2, true},
Kill = {8, false},
Sprint = {0, true},
Attack = {4, false},
Intro = {10, false},
PhantomWalk = {0, true},
PhantomIdle = {2.25, true},
VentilationError = {5, false}
}
local function load(i)
local cache = _G.animation_cache
if not cache then
cache = {}
_G.animation_cache = cache
end
if not cache[i] then
cache[i] = require(i)
end
return cache[i]
end
for i, v in pairs(anims) do
local module = load(assets.Animations:FindFirstChild(i))
local anim = AnimationTrack.new()
anim.Name = i
anim.Stall = .3
anim.Looped = v[2]
anim:AdjustWeight(v[1])
anim:setAnimation(module)
anim:setRig(owner.Character)
anims[i] = anim
end
anims.Walk:Play()
anims.Idle:Play()
anims.Walk:AdjustSpeed(1.75)
anims.Sprint:AdjustSpeed(1.75)
anims.Kill.lerpFactor = 1
anims.Intro.lerpFactor = 1
anims.VentilationError.lerpFactor = 1
anims.Walk.lerpFactor = .2
anims.Idle.lerpFactor = .2
anims.Sprint.lerpFactor = .2
anims.PhantomWalk.lerpFactor = .2
anims.PhantomIdle.lerpFactor = .2
-- // sound stuff
local sounds = {
Intro = {2, 1, 0, 5.272, 4, 80.75},
Kill = {10, 1, 21.081, 26.394, 3, 55.25},
Idle = {.62, 1, 5.693, 18.107, 3, 55.25},
Lurking1 = {8, 1, 34.393, 36.366, 3, 68},
Lurking2 = {8, 1, 36.934, 39.384, 3, 68},
Afterkill = {8, 1, 71.501, 75.975, 3, 68},
Step = {.29, .99, 29.287, 30.413, 5, 63.75},
Exhaustion = {1, 1, 40.443, 41.91, 3, 63.75},
Attack = {1.9, 1.5, 26.917, 28.013, 3, 55.25},
Jumpscare = {.8, 1.2, 30.511, 32.995, 3, 55.25},
PhantomLoop = {2.5, 1, 48.686, 57.123, 3, 59.5},
PhantomStart = {2.5, 1, 42.636, 46.737, 3, 59.5},
PhantomExit = {2.35, 1, 57.618, 62.691, 3, 59.5},
VentilationError = {1.75, 1, 63.192, 68.111, 3, 59.5}
}
local hits = {
"rbxassetid://2227416792",
"rbxassetid://2227416952",
"rbxassetid://2227417121",
"rbxassetid://2227417262"
}
local preload = {}
local base = Instance.new("Sound")
base.PlaybackRegionsEnabled = true
base.SoundId = "rbxassetid://75751043271447"
table.insert(preload, base)
for i, v in pairs(sounds) do
local snd = base:Clone()
snd.Name = i
snd.Volume = v[1]
snd.PlaybackSpeed = v[2]
snd.RollOffMinDistance = v[5]
snd.RollOffMaxDistance = v[6]
snd.PlaybackRegionsEnabled = true
snd.PlaybackRegion = NumberRange.new(v[3], v[4])
snd.RollOffMode = Enum.RollOffMode.InverseTapered
if i == "Step" then
local eq = Instance.new("EqualizerSoundEffect", snd)
local ds = Instance.new("DistortionSoundEffect", snd)
ds.Level = .83
ds.Priority = 0
eq.HighGain = 0
eq.LowGain = 0
eq.MidGain = 0
eq.Priority = 0
end
sounds[i] = snd
end
for i, v in pairs(hits) do
local snd = Instance.new("Sound")
snd.SoundId = v
snd.Volume = 8
snd.Name = `Hit{i}`
snd.PlaybackSpeed = 1.25
snd.RollOffMinDistance = 1
snd.RollOffMaxDistance = 34
snd.RollOffMode = Enum.RollOffMode.InverseTapered
sounds[snd.Name] = snd
end
local soundstorage = workspace:FindFirstChild("SoundStorage") or Instance.new("Folder")
soundstorage.Parent = workspace
local function play(what, p, scf)
if sounds[what] then
local snd = sounds[what]:Clone()
snd.Name = what
snd.Parent = p or hum.RootPart
local pt
if scf ~= nil then
pt = Instance.new("Part", soundstorage)
pt.CFrame = scf
pt.CanCollide = false
pt.CanQuery = false
pt.CanTouch = false
pt.Anchored = true
pt.Transparency = 1
pt.Size = Vector3.one
snd.Parent = pt
end
snd:Play()
snd.Ended:Once(function()
task.wait(.1)
snd:Destroy()
if pt then
pt:Destroy()
end
end)
return snd
end
end
local idle = play("Idle")
idle.Looped = true
local function lerp(a, b, t)
return a + (b - a) * t
end
local function findhum(p)
local mdl = p:FindFirstAncestorOfClass("Model")
if mdl then
return mdl:FindFirstChildOfClass("Humanoid")
end
end
local function stamina_change()
local main = ui.Stats.Stamina.Clipping.Clipping
main.Parent.Parent.Middle.Heart.TextLabel.Text = tostring(math.floor(stamina))
local scale = math.max(stamina / max_stamina, 0)
tw:Create(main, TweenInfo.new(.1), {Size = UDim2.fromScale(1, scale)}):Play()
tw:Create(main.Bar, TweenInfo.new(.1), {Size = UDim2.fromScale(1, (scale > 0 and (1 / scale) or 0))}):Play()
end
local function do_cam(plr, dur, cam)
local scr = assets.Scripts.CameraScript:Clone()
scr:WaitForChild("Camera").Value = cam or char.ScareCamera
scr.Parent = plr.PlayerGui
scr.Enabled = true
task.delay(dur, function()
if scr.Parent then
scr.Done.Value = true
task.wait(2)
scr:Destroy()
end
end)
end
local function ragdoll(c, t)
local ps = game:GetService("PhysicsService")
if not ps:IsCollisionGroupRegistered("Players") then
ps:RegisterCollisionGroup("Players")
end
if not ps:IsCollisionGroupRegistered("Collider") then
ps:RegisterCollisionGroup("Collider")
end
ps:CollisionGroupSetCollidable("Players", "Collider", false)
local hum = c:FindFirstChildOfClass("Humanoid")
local hrp = c:FindFirstChild("HumanoidRootPart") or c:FindFirstChild("Torso")
if not hrp then
return
end
local cs = Instance.new("Folder", c)
cs.Name = "ColliderFolder"
local old = hum.RequiresNeck
hum.PlatformStand = true
hum.RequiresNeck = false
hum.BreakJointsOnDeath = false
for _, v in pairs(c:GetDescendants()) do
if (v:IsA("Motor6D") or v:IsA("Motor")) and v.Name ~= "RootJoint" and v.Name ~= "Root" then
local bcs = Instance.new("BallSocketConstraint", v.Part0)
bcs.Name = "RagdollSocket"
v.Part1.CanCollide = false
v.Part0.CanCollide = false
v.Part1.CollisionGroup = "Players"
local fake = Instance.new("Part", cs)
fake.Transparency = 1
fake.Massless = true
fake.CanCollide = false
fake.Name = v.Part1.Name
fake.Size = v.Part1.Size / 2
fake.CFrame = v.Part1.CFrame
fake.CollisionGroup = "Collider"
local w = Instance.new("WeldConstraint", fake)
w.Part0 = v.Part1
w.Part1 = fake
local a1 = Instance.new("Attachment", v.Part0)
a1.Name = "RagdollAttachment"
local a2 = Instance.new("Attachment", v.Part1)
a2.Name = "RagdollAttachment"
a2.Position = v.C1.Position
a1.WorldPosition = a2.WorldPosition
bcs.LimitsEnabled = true
bcs.TwistLimitsEnabled = true
bcs.Attachment0 = a1
bcs.Attachment1 = a2
local w
if (v.Part0 ~= c.PrimaryPart and v.Part1 ~= c.PrimaryPart) or v.Name == "Neck" then
v.Enabled = false
fake.CanCollide = true
else
w = Instance.new("WeldConstraint", hrp)
w.Part0 = c.PrimaryPart
w.Part1 = (c.PrimaryPart == v.Part1 and v.Part0 or v.Part1)
end
coroutine.wrap(function()
if t ~= nil and tonumber(t) ~= nil then
task.wait(t)
hum.RequiresNeck = old
v.Enabled = true
hum.PlatformStand = false
fake:Destroy()
if w then
task.delay(1, w.Destroy, w)
end
task.delay(1, bcs.Destroy, bcs)
end
end)()
end
end
end
local function bite_of_87(vhum: Humanoid)
vhum.PlatformStand = true
for _, v in pairs(vhum.Parent:GetDescendants()) do
if v:IsA("BasePart") then
v.Massless = true
end
end
local w = Instance.new("Weld", vhum.Parent.Head)
w.Part0 = char.ScareCamera
w.Part1 = w.Parent
local plr = game:GetService("Players"):GetPlayerFromCharacter(vhum.Parent)
task.spawn(function()
repeat
task.wait()
until victim_kill
if plr then
local gui = Instance.new("ScreenGui", plr.PlayerGui)
gui.IgnoreGuiInset = true
local fr = Instance.new("ImageLabel", gui)
fr.BorderSizePixel = 0
fr.ImageTransparency = 1
fr.BackgroundTransparency = 1
fr.Size = UDim2.fromScale(1, 1)
fr.Image = "rbxassetid://5989559561"
fr.ImageColor3 = Color3.new(.5, 0, 0)
fr.BackgroundColor3 = Color3.new(.2, 0, 0)
tw:Create(fr, TweenInfo.new(.1), {ImageTransparency = 0, BackgroundTransparency = 0}):Play()
task.delay(.1, function()
tw:Create(fr, TweenInfo.new(2), {ImageTransparency = .2, BackgroundTransparency = .2}):Play()
end)
end
local bl = assets.Effects.Blood.Blood:Clone()
bl.Parent = vhum.RootPart
for _, v in pairs(bl:GetChildren()) do
v:Emit(128)
end
ragdoll(vhum.Parent)
vhum.Health = 0
w:Destroy()
vhum.PlatformStand = false
end)
if killing then
if plr then
local scr = assets.Scripts.InvisibleScript:Clone()
scr.Parent = vhum.Parent
scr.Enabled = true
do_cam(plr, (anims.Kill.Length - anims.Kill.TimePosition) + 2, vhum.Parent.Head)
end
return
else
if plr then
local scr = assets.Scripts.InvisibleScript:Clone()
scr.Parent = vhum.Parent
scr.Enabled = true
do_cam(plr, anims.Kill.Length + 2, vhum.Parent.Head)
end
end
play("Kill")
killing = true
anims.Kill:Play()
hum.WalkSpeed = 0
task.delay(3.6, function()
victim_kill = true
task.wait(.1)
victim_kill = false
local op = assets.Scripts.CameraFix:Clone()
op.Parent = plr.PlayerGui
op.Enabled = true
end)
anims.Kill.Stopped:Wait()
play("Afterkill")
killing = false
attacking = false
hum.WalkSpeed = ows
end
local function hb(pt, cf, size, type, bl)
local params = OverlapParams.new()
params.FilterType = Enum.RaycastFilterType.Exclude
params.FilterDescendantsInstances = {char, script, bl}
if debug then
local p = Instance.new("Part", script)
p.Size = size
p.Anchored = true
p.CastShadow = false
p.CanCollide = false
p.CFrame = pt.CFrame * cf
p.Material = "ForceField"
p.Color = Color3.new(1, 0, 0)
if type == "Magnitude" then
p.Shape = "Ball"
end
coroutine.wrap(function()
task.wait(.5)
p:Destroy()
end)()
end
local victims = {}
local tbl
if type == "Magnitude" then
tbl = workspace:GetPartBoundsInRadius(pt.CFrame.Position, size.X / 2, params)
else
tbl = workspace:GetPartBoundsInBox(pt.CFrame * cf, size, params)
end
for _, hit in pairs(tbl) do
local hum = findhum(hit)
if hum and hum.RootPart and hum.Health > 0 then
if not table.find(victims, hit:FindFirstAncestorOfClass("Model")) then
table.insert(victims, hit:FindFirstAncestorOfClass("Model"))
end
end
end
table.sort(victims, function(a, b)
return (hum.RootPart.Position - a.HumanoidRootPart.Position).Magnitude < (hum.RootPart.Position - b.HumanoidRootPart.Position).Magnitude
end)
return victims
end
local function linger(n, stats)
local bl = {}
if #(stats) == 3 then
table.insert(stats, "Box")
end
table.insert(stats, bl)
task.spawn(function()
for _ = 1, n do
local inhb = hb(table.unpack(stats))
for _, v in pairs(inhb) do
table.insert(bl, v)
play(`Hit{math.random(1, 4)}`)
local vhum = v:FindFirstChildOfClass("Humanoid")
local dmg = (vhum:GetAttribute("Fearful") and 75 or 40)
if (vhum.Health - dmg) <= 0 then
vhum.BreakJointsOnDeath = false
task.spawn(bite_of_87, vhum)
else
vhum.Health -= dmg
end
local bl = assets.Effects.Blood.Blood:Clone()
bl.Parent = vhum.RootPart
for _, v in pairs(bl:GetChildren()) do
v:Emit(128)
end
end
task.wait()
task.wait()
end
end)
end
local function attack()
if attacking or phantom then
return
end
attacking = true
play("Attack")
anims.Attack:Play(1.5)
task.delay(.5 / 1.5, linger, 5, {hum.RootPart, CFrame.new(0, 0, -3), Vector3.new(6, 8, 4)})
anims.Attack.Stopped:Wait()
if not killing then
attacking = false
end
end
local function ventilation_error()
if venting then
return
end
venting = true
local alarm = Instance.new("Sound", hum.RootPart)
alarm.SoundId = "rbxassetid://8742892992"
alarm.Volume = 0.5
local IDK = Instance.new("Sound", hum.RootPart)
IDK.SoundId = "rbxassetid://5990425910"
IDK.Volume = 0.5
anims.VentilationError:Play()
local main = ui.Abilities.VentilationError
main.CD.Text = "20"
tw:Create(main.ImageLabel, TweenInfo.new(1), {ImageColor3 = main.CD.TextColor3}):Play()
for _, v in pairs(char.Head:GetDescendants()) do
if v.Name == "Sparks" then
task.spawn(function()
while anims.VentilationError.IsPlaying do
v:Emit(3)
task.wait(1 / v.Rate)
end
end)
end
end
local dt = 0
local hums = {}
repeat
dt += task.wait()
local params = OverlapParams.new()
params.FilterDescendantsInstances = {char, script}
params.FilterType = Enum.RaycastFilterType.Exclude
local stuff = workspace:GetPartBoundsInRadius(hum.RootPart.Position, 25, params)
for _, v in pairs(stuff) do
local vhum = findhum(v)
if vhum and vhum.Health > 0 and not hums[vhum] then
hums[vhum] = vhum.WalkSpeed
vhum.WalkSpeed /= 2
local plr = game:GetService("Players"):GetPlayerFromCharacter(vhum.Parent)
if plr then
local gui = Instance.new("ScreenGui", plr.PlayerGui)
gui.IgnoreGuiInset = true
local fr = Instance.new("Frame", gui)
fr.BorderSizePixel = 0
fr.BackgroundTransparency = 1
fr.Size = UDim2.fromScale(1, 1)
fr.BackgroundColor3 = Color3.new()
tw:Create(fr, TweenInfo.new(1, Enum.EasingStyle.Linear, Enum.EasingDirection.InOut, 3, true, 0), {BackgroundTransparency = 0}):Play()
task.delay(6, gui.Destroy, gui)
end
task.delay(5, function()
vhum.WalkSpeed = hums[vhum]
end)
end
end
until dt >= 4.5
main.CD.Visible = true
main.ImageLabel.Visible = false
main.ImageLabel.ImageColor3 = Color3.new(1, 1, 1)
local dt = 0
repeat
dt += task.wait()
main.CD.Text = tostring(math.floor(21 - dt))
until dt >= 20
venting = false
main.CD.Visible = false
main.ImageLabel.Visible = true
end
local function phantom_walk()
if not can_phantom then
return
end
if sprinting then
sprinting = false
anims.Sprint:Stop()
end
ows = 24
hum.WalkSpeed = ows
idle:Stop()
phantom = true
can_phantom = false
play("PhantomStart")
anims.PhantomIdle:Play()
anims.PhantomWalk:Play()
local pidle = play("PhantomLoop")
pidle.Looped = true
local main = ui.Abilities.PhantomWalk
main.CD.Text = "15"
tw:Create(main.ImageLabel, TweenInfo.new(1), {ImageColor3 = main.CD.TextColor3}):Play()
local axe = {
"Axe Head",
"Axe Handle",
"Axe HeadExtra"
}
for _, v in pairs(axe) do
tw:Create(char:FindFirstChild(v), TweenInfo.new(.1), {Transparency = 1}):Play()
end
for _, v in pairs(char.Parts.Chest.Attachment:GetChildren()) do
task.spawn(function()
while phantom do
v:Emit(1)
task.wait(1 / v.Rate)
end
end)
end
for _, v in pairs(char.Torso.Attachment:GetChildren()) do
task.spawn(function()
while phantom do
v:Emit(1)
task.wait(1 / v.Rate)
end
end)
end
local dt = 0
local hums = {}
re:FireClient(owner, "Highlight")
repeat
dt += task.wait()
stamina_change()
stamina = math.clamp(stamina + dt * 20, 0, max_stamina)
local params = OverlapParams.new()
params.FilterDescendantsInstances = {char, script}
params.FilterType = Enum.RaycastFilterType.Exclude
local stuff = workspace:GetPartBoundsInBox(hum.RootPart.CFrame, Vector3.one * 12, params)
for _, v in pairs(stuff) do
local vhum = findhum(v)
if vhum and vhum.Health > 0 and not hums[vhum] then
hums[vhum] = true
local gui = assets.Effects.Fearful:Clone()
gui.Parent = vhum.Parent
vhum:SetAttribute("Fearful", true)
task.delay(10, function()
gui:Destroy()
vhum:SetAttribute("Fearful", nil)
end)
play("Jumpscare", vhum.RootPart)
local plr = game:GetService("Players"):GetPlayerFromCharacter(vhum.Parent)
if plr then
gui.PlayerToHideFrom = plr
play("Jumpscare", plr.PlayerGui)
task.spawn(function()
local scr = assets.Scripts.JumpscareScript:Clone()
scr.Parent = plr.PlayerGui
scr:WaitForChild("Offset").Value = CFrame.new(0, -3.5, -3) * CFrame.Angles(0, math.pi, 0)
scr.Enabled = true
task.delay(5, scr.Destroy, scr)
end)
end
end
end
until dt >= 6 or (not phantom and (dt >= 1.1))
re:FireClient(owner, "Lowlight")
for _, v in pairs(axe) do
task.delay(1.5, function()
tw:Create(char:FindFirstChild(v), TweenInfo.new(.5), {Transparency = 0}):Play()
end)
end
ows = 8
idle:Play()
pidle:Stop()
phantom = false
hum.WalkSpeed = ows
anims.PhantomIdle:Stop()
anims.PhantomWalk:Stop()
main.CD.Visible = true
main.ImageLabel.Visible = false
main.ImageLabel.ImageColor3 = Color3.new(1, 1, 1)
local dt = 0
repeat
dt += task.wait()
main.CD.Text = tostring(math.floor(16 - dt))
until dt >= 15
can_phantom = true
main.CD.Visible = false
main.ImageLabel.Visible = true
end
hum.Running:Connect(function(spd)
if spd > .1 then
running = true
anims.Sprint:AdjustWeight(3)
anims.Walk:AdjustWeight(2.5)
anims.PhantomWalk:AdjustWeight(3.5)
else
running = false
anims.PhantomWalk:AdjustWeight(1)
anims.Sprint:AdjustWeight(1)
anims.Walk:AdjustWeight(1)
end
end)
anims.Walk:GetMarkerReachedSignal("Step"):Connect(function()
if anims.Walk.RealWeight > anims.Idle.RealWeight and not sprinting and not phantom then
play("Step")
end
end)
anims.Sprint:GetMarkerReachedSignal("Step"):Connect(function()
if anims.Sprint.RealWeight > anims.Idle.RealWeight and not phantom then
play("Step")
end
end)
re.OnServerEvent:Connect(function(plr, what, args)
if plr ~= owner then
return "silly goose"
end
if what == "KeyDown" then
if args == "z" and not phantom then
ows = 18
sprinting = true
anims.Sprint:Play()
hum.WalkSpeed = ows
elseif args == "e" then
ventilation_error()
elseif args == "r" then
phantom_walk()
end
elseif what == "KeyUp" then
if args == "z" and sprinting then
ows = 8
sprinting = false
anims.Sprint:Stop()
hum.WalkSpeed = ows
elseif args == "r" and phantom then
phantom = false
end
elseif what == "Button1Down" then
attack()
elseif what == "OnMobile" then
ui.Mobile.Visible = true
local sprint_toggle = false
ui.Mobile.Attack.MouseButton1Click:Connect(function()
re:FireClient(owner, "MobileInput", "Button1Down")
end)
ui.Mobile.Sprint.MouseButton1Click:Connect(function()
if sprint_toggle then
re:FireClient(owner, "MobileInput", "KeyUp", "z")
sprint_toggle = false
else
re:FireClient(owner, "MobileInput", "KeyDown", "z")
sprint_toggle = true
end
end)
local map = {
PhantomWalk = "r",
VentilationError = "e"
}
for _, v in pairs(ui.Abilities:GetChildren()) do
if not v:IsA("ImageButton") then
continue
end
v.Use.MouseButton1Click:Connect(function()
re:FireClient(owner, "MobileInput", "KeyDown", map[v.Name])
end)
end
end
end)
hum.WalkSpeed = 0
task.wait(.5)
anims.Intro:Play()
play("Intro")
for _, plr in pairs(game:GetService("Players"):GetPlayers()) do
if plr and plr.Character and plr.Character:FindFirstChild("HumanoidRootPart") and (plr.Character.HumanoidRootPart.Position - hum.RootPart.Position).Magnitude <= 16 then
task.spawn(do_cam, plr, anims.Intro.Length)
task.delay(anims.Intro.Length - 1.25, function()
local gui = Instance.new("ScreenGui", plr.PlayerGui)
gui.IgnoreGuiInset = true
local fr = Instance.new("Frame", gui)
fr.BorderSizePixel = 0
fr.BackgroundTransparency = 1
fr.Size = UDim2.fromScale(1, 1)
fr.BackgroundColor3 = Color3.new()
tw:Create(fr, TweenInfo.new(.5), {BackgroundTransparency = 0}):Play()
task.wait(2)
tw:Create(fr, TweenInfo.new(1), {BackgroundTransparency = 1}):Play()
task.wait(1)
gui:Destroy()
end)
end
end
anims.Intro.Stopped:Wait()
hum.WalkSpeed = ows
NLS([[
local highlights = {}
local re = script.Parent
local m = owner:GetMouse()
local hum = re.Parent.Humanoid
local cam = workspace.CurrentCamera
local uis = game:GetService("UserInputService")
local assets = game:GetService("ReplicatedStorage"):WaitForChild("SpringtrapAssets")
workspace:GetPropertyChangedSignal("CurrentCamera"):Connect(function()
cam = workspace.CurrentCamera
end)
if uis.TouchEnabled then
re:FireServer("OnMobile")
end
m.KeyDown:Connect(function(k)
re:FireServer("KeyDown", k)
end)
m.KeyUp:Connect(function(k)
re:FireServer("KeyUp", k)
end)
if not uis.TouchEnabled then
m.Button1Down:Connect(function()
re:FireServer("Button1Down")
end)
end
re.OnClientEvent:Connect(function(what, ...)
local args = {...}
if what == "Highlight" then
for _, v in pairs(workspace:GetDescendants()) do
if v:IsA("Humanoid") and v ~= hum then
local hl = Instance.new("Highlight", cam)
hl.Adornee = v.Parent
hl.OutlineTransparency = 1
hl.Name = "SpringtrapHighlight"
hl.FillColor = Color3.new(.6, .6, 0)
table.insert(highlights, hl)
end
end
elseif what == "Lowlight" then
for _, v in pairs(highlights) do
v:Destroy()
end
table.clear(highlights)
elseif what == "MobileInput" then
re:FireServer(unpack(args))
end
end)
game:GetService("RunService").RenderStepped:Connect(function()
hum.CameraOffset = hum.CameraOffset:Lerp(hum.RootPart.CFrame:ToObjectSpace(re.Parent.Torso.CFrame).Position, .1)
end)
]], re)
task.spawn(function()
local hums = {}
local vl_db = false
while true do
task.wait(.5)
local params = OverlapParams.new()
params.FilterDescendantsInstances = {char, script}
params.FilterType = Enum.RaycastFilterType.Exclude
local stuff = workspace:GetPartBoundsInRadius(hum.RootPart.Position, 84, params)
table.sort(stuff, function(a, b)
return (hum.RootPart.Position - a.Position).Magnitude < (hum.RootPart.Position - b.Position).Magnitude
end)
local cdb = false
for _, v in pairs(stuff) do
local vhum = findhum(v)
if vhum and vhum.Health > 0 then
local dist = (vhum.RootPart.Position - hum.RootPart.Position).Magnitude
if not vl_db and dist <= 48 then
vl_db = true
play(`Lurking{math.random(1, 2)}`)
task.delay(10, function()
vl_db = false
end)
end
if not cdb then
cdb = true
local t = math.min((84 - math.min(dist, 84)) / 32, 1)
tw:Create(fnaf3, TweenInfo.new(.5), {Volume = lerp(.02, .3, t)}):Play()
tw:Create(eq, TweenInfo.new(.5), {
HighGain = lerp(-80, 0, t),
LowGain = lerp(10, 0, t),
MidGain = lerp(-15, 0, t)
}):Play()
end
end
end
end
end)
while true do
if running and sprinting then
task.wait(.22)
stamina = math.clamp(stamina - 2, 0, max_stamina)
stamina_change()
else
task.wait(.3)
stamina = math.clamp(stamina + 4, 0, max_stamina)
stamina_change()
end
if stamina <= 0 and sprinting then
ows = 8
sprinting = false
anims.Sprint:Stop()
hum.WalkSpeed = ows
play("Exhaustion")
end
end