local y=script local q=y.Parent local g=nil local J=q:FindFirstChild("\084\111\114\115\111")local m=J:FindFirstChild("\082\105\103\104\116 \083\104\111\117\108\100\101\114")local p=J:FindFirstChild("\076\101\102\116 \083\104\111\117\108\100\101\114")local I=J:FindFirstChild("\082\105\103\104\116 \072\105\112")local v=J:FindFirstChild("\076\101\102\116 \072\105\112")local Y=J:FindFirstChild("\078\101\099\107")local a="\083\116\097\110\100\105\110\103"for y,q in pairs(q:GetChildren())do if q.ClassName=="\072\117\109\097\110\111\105\100"then g=q end end function onRunning(y)if y>.001 then a="\082\117\110\110\105\110\103"else a="\083\116\097\110\100\105\110\103"end end function onDied()a="\068\101\097\100"end function onJumping()a="\074\117\109\112\105\110\103"end function onClimbing()a="\067\108\105\109\098\105\110\103"end function onGettingUp()a="\071\101\116\116\105\110\103\085\112"end function onFreeFall()a="\070\114\101\101\070\097\108\108"end function onFallingDown()a="\070\097\108\108\105\110\103\068\111\119\110"end function onSeated()a="\083\101\097\116\101\100"end function moveJump()m.MaxVelocity=.5 p.MaxVelocity=.5 m.DesiredAngle=3.14 p.DesiredAngle=-3.14 I.DesiredAngle=0 v.DesiredAngle=0 end function moveFreeFall()m.MaxVelocity=1 p.MaxVelocity=1 m.DesiredAngle=4 p.DesiredAngle=-4 I.DesiredAngle=1 v.DesiredAngle=1 end function moveSit()m.MaxVelocity=.15 p.MaxVelocity=.15 m.DesiredAngle=1.57 p.DesiredAngle=-1.57 I.DesiredAngle=.5 v.DesiredAngle=-0.5 end function move(y)local q local J if a=="\074\117\109\112\105\110\103"then moveJump()return end if a=="\070\114\101\101\070\097\108\108"then moveFreeFall()return end if a=="\083\101\097\116\101\100"then moveSit()return end local Y=0 if a=="\082\117\110\110\105\110\103"then m.MaxVelocity=.2 p.MaxVelocity=.2 I.MaxVelocity=.2 v.MaxVelocity=.2 if g.WalkSpeed~=35 then q=.4 J=4 else q=2 J=12 end elseif a=="\067\108\105\109\098\105\110\103"then m.MaxVelocity=.3 p.MaxVelocity=.3 I.MaxVelocity=1 v.MaxVelocity=1 q=.4 J=6 Y=3.14 else q=.1 J=1 end local P=q*math.sin(y*J)if g.WalkSpeed==1 then m.MaxVelocity=.05 p.MaxVelocity=.05 m.DesiredAngle=3.14 p.DesiredAngle=-3.14 end if g.WalkSpeed>10 then m.MaxVelocity=5 p.MaxVelocity=5 m.DesiredAngle=1.57 p.DesiredAngle=-1.57 I.MaxVelocity=3 v.MaxVelocity=3 end if g.WalkSpeed~=1 and g.WalkSpeed~=35 then m.DesiredAngle=P+Y p.DesiredAngle=P-Y end I.DesiredAngle=-P v.DesiredAngle=-P end g.Died:connect(onDied)g.Running:connect(onRunning)g.Jumping:connect(onJumping)g.Climbing:connect(onClimbing)g.GettingUp:connect(onGettingUp)g.FreeFalling:connect(onFreeFall)g.FallingDown:connect(onFallingDown)g.Seated:connect(onSeated)local P=0 local C=game:service("\082\117\110\083\101\114\118\105\099\101")while Wait(0)do local y=C.Stepped:wait(0)if y>P then move(y)P=y end end
--
local FreeSCP096AnimationScript=script;
local FreeSCP096=FreeSCP096AnimationScript.Parent
local FreeSCP096Humanoid=nil;
local FreeSCP096Torso=FreeSCP096:FindFirstChild("Torso")
local RightShoulder=FreeSCP096Torso:FindFirstChild("Right Shoulder")
local LeftShoulder=FreeSCP096Torso:FindFirstChild("Left Shoulder")
local RightHip=FreeSCP096Torso:FindFirstChild("Right Hip")
local LeftHip=FreeSCP096Torso:FindFirstChild("Left Hip")
local Neck=FreeSCP096Torso:FindFirstChild("Neck")
local pose="Standing";
for _,Child in pairs(FreeSCP096:GetChildren())do
if Child.ClassName=="Humanoid"then
FreeSCP096Humanoid=Child;
end
end
function onRunning(speed)
if speed>0.001  then
pose = "Running"
else
pose = "Standing"
end
end
function onDied()
pose = "Dead"
end
function onJumping()
pose = "Jumping"
end
function onClimbing()
pose = "Climbing"
end
function onGettingUp()
pose = "GettingUp"
end
function onFreeFall()
pose = "FreeFall"
end
function onFallingDown()
pose = "FallingDown"
end
function onSeated()
pose = "Seated"
end
function moveJump()
RightShoulder.MaxVelocity = 0.5
LeftShoulder.MaxVelocity = 0.5
RightShoulder.DesiredAngle = 3.14
LeftShoulder.DesiredAngle = -3.14
RightHip.DesiredAngle = 0
LeftHip.DesiredAngle = 0
end
function moveFreeFall()
RightShoulder.MaxVelocity = 1
LeftShoulder.MaxVelocity = 1
RightShoulder.DesiredAngle = 4
LeftShoulder.DesiredAngle = -4
RightHip.DesiredAngle = 1
LeftHip.DesiredAngle = 1
end
function moveSit()
RightShoulder.MaxVelocity = 0.15
LeftShoulder.MaxVelocity = 0.15
RightShoulder.DesiredAngle = 3.14 /2
LeftShoulder.DesiredAngle = -3.14 /2
RightHip.DesiredAngle = 1/2
LeftHip.DesiredAngle = -1/2
end
function move(time)
local amplitude
local frequency
if (pose == "Jumping") then
moveJump()
return
end
if (pose == "FreeFall") then
moveFreeFall()
return
end
if (pose == "Seated") then
moveSit()
return
end
local climbFudge = 0
if (pose == "Running") then
RightShoulder.MaxVelocity = 0.2
LeftShoulder.MaxVelocity = 0.2
RightHip.MaxVelocity = 0.2
LeftHip.MaxVelocity = 0.2
if FreeSCP096Humanoid.WalkSpeed~=35 then
amplitude = 0.4
frequency = 4
else
amplitude = 2
frequency = 12
end
elseif (pose == "Climbing") then
RightShoulder.MaxVelocity = 0.3 
LeftShoulder.MaxVelocity = 0.3
RightHip.MaxVelocity = 1
LeftHip.MaxVelocity = 1
amplitude = 0.4
frequency = 6
climbFudge = 3.14
else
amplitude = 0.1
frequency = 1
end
local desiredAngle=amplitude*math.sin(time*frequency);
if FreeSCP096Humanoid.WalkSpeed==1 then --Panic
RightShoulder.MaxVelocity = 0.05
LeftShoulder.MaxVelocity = 0.05
RightShoulder.DesiredAngle = 3.14
LeftShoulder.DesiredAngle = -3.14
end
if FreeSCP096Humanoid.WalkSpeed>10 then
RightShoulder.MaxVelocity = 5
LeftShoulder.MaxVelocity = 5
RightShoulder.DesiredAngle = 1.57
LeftShoulder.DesiredAngle = -1.57
RightHip.MaxVelocity = 3
LeftHip.MaxVelocity =3
end
if FreeSCP096Humanoid.WalkSpeed~=1 and FreeSCP096Humanoid.WalkSpeed~=35 then
RightShoulder.DesiredAngle=desiredAngle+climbFudge;
LeftShoulder.DesiredAngle=desiredAngle-climbFudge;
end
RightHip.DesiredAngle = -desiredAngle
LeftHip.DesiredAngle = -desiredAngle
end
FreeSCP096Humanoid.Died:connect(onDied)
FreeSCP096Humanoid.Running:connect(onRunning)
FreeSCP096Humanoid.Jumping:connect(onJumping)
FreeSCP096Humanoid.Climbing:connect(onClimbing)
FreeSCP096Humanoid.GettingUp:connect(onGettingUp)
FreeSCP096Humanoid.FreeFalling:connect(onFreeFall)
FreeSCP096Humanoid.FallingDown:connect(onFallingDown)
FreeSCP096Humanoid.Seated:connect(onSeated)
local nextTime=0
local runService=game:service("RunService");
while Wait(0)do
local time=runService.Stepped:wait(0);
if time>nextTime then
move(time);
nextTime=time;
end;
end;