local chr = owner.Character
local root = chr.HumanoidRootPart
local hum = chr.Humanoid
local speed = hum.WalkSpeed / 16
local function Lerp(a, b, t, dt)
local alpha = 1 - (1 - t) ^ dt
return a:Lerp(b, alpha)
end
local function joint(p0, p1, c0, c1, name)
local w = Instance.new("Weld")
w.Part0 = p0
w.Part1 = p1
w.C0 = c0
w.C1 = c1
w.Name = name
w.Parent = p0
return w
end
local sin, sinh, asin, cos, max, min, clamp, rad = math.sin, math.sinh, math.asin, math.cos, math.max, math.min, math.clamp, math.rad
local function smoothStep(x, steepness, amplitude)
return amplitude * (1 / (1 + math.exp(-steepness * x)) - 0.5)
end
local nk = joint(chr.Torso, chr.Head, CFrame.new(0, 1, 0), CFrame.new(0, -0.5, 0), "Neck")
local rj = joint(root, chr.Torso, CFrame.new(), CFrame.new(), "RootJoint")
local rs = joint(chr.Torso, chr:FindFirstChild("Right Arm"), CFrame.new(1.5, 0.5, 0), CFrame.new(0, 0.5, 0), "Right Shoulder")
local ls = joint(chr.Torso, chr:FindFirstChild("Left Arm"), CFrame.new(-1.5, 0.5, 0), CFrame.new(0, 0.5, 0), "Left Shoulder")
local rh = joint(chr.Torso, chr:FindFirstChild("Right Leg"), CFrame.new(0.5, -1, 0), CFrame.new(0, 1, 0), "Right Hip")
local lh = joint(chr.Torso, chr:FindFirstChild("Left Leg"), CFrame.new(-0.5, -1, 0), CFrame.new(0, 1, 0), "Left Hip")
local rsc0, lsc0, rhc0, lhc0, rjc0, nkc0 = rs.C0, ls.C0, rh.C0, lh.C0, rj.C0, nk.C0
local t = os.clock()
local exactVel = 0
local vel = 0
local animMove = true
local action = "Idle"
local remote = Instance.new("RemoteEvent")
remote.Name = "inputs"
remote.Parent = owner.PlayerGui
local music = Instance.new("Sound")
music.Looped = true
music.Volume = 0.75
music.Playing = not animMove
music.Parent = root
local function playDance(animName, id, pit)
animMove = action == animName and true or false
action = animName
music.SoundId = id
music.Pitch = pit or 1
music.TimePosition = 0
music.Playing = not animMove
end
local animTable = {
Idle = function()
return {
rj = rjc0 *
CFrame.new(0, sin(t / 10) / 50, 0) * CFrame.Angles(-cos(t / 10) / 75, 0, 0),
nk = nkc0 *
CFrame.Angles(-sin(t / 10) / 75, 0, 0),
rs = rsc0 *
CFrame.Angles(0, -rad(3) + sin(t / 10) / 50, rad(2) - cos(t / 10) / 50),
ls = lsc0 *
CFrame.Angles(0, rad(3) - sin(t / 10) / 50, -rad(2) + cos(t / 10) / 50),
rh = rhc0 *
CFrame.new(0, -sin(t / 10) / 50, -0.075 - cos(t / 10) / 75 - cos(t / 10) / 25) *
CFrame.Angles(-rad(1.5) + cos(t / 10) / 75 - cos(t / 10) / 50, -rad(3), rad(2)),
lh = lhc0 *
CFrame.new(0, -sin(t / 10) / 50, -0.075 - cos(t / 10) / 75 - cos(t / 10) / 25) *
CFrame.Angles(-rad(1.5) + cos(t / 10) / 75 - cos(t / 10) / 50, rad(3), -rad(2))
}
end,
Walk = function()
local exactVel = vel / 32
return {
rj = rjc0 *
CFrame.new(0, sin(t * speed / 3) / 7.5, 0) *
CFrame.Angles((-cos(t * speed / 3) / 15) * -exactVel.Z * 3.5 + exactVel.Z / 4, (sin(t * speed / 6) / 7.5) * -exactVel.Z * 3, -exactVel.X / 4) *
CFrame.Angles(0, (sin(t * speed / 6) / 15) * exactVel.X * 3, 0),
nk = nkc0 *
CFrame.Angles((cos(t * speed / 3) / 20) * -exactVel.Z * 3.5, (-sin(t * speed / 6) / 7.5) * -exactVel.Z * 3.5, 0) *
CFrame.Angles(0, (sin(t * speed / 6) / 15) * -exactVel.X * 3.5, 0),
ls = lsc0 *
CFrame.new(0, 0, (-sin(t * speed / 6) / 4) * -exactVel.Z * 3) *
CFrame.Angles((sin(t * speed / 6) / 2) * -exactVel.Z * 3 - exactVel.X / 4, (cos(t * speed / 6) / 7.5) * -exactVel.Z * 3, -rad(5) + exactVel.X / 16),
rs = rsc0 *
CFrame.new(0, 0, (sin(t * speed / 6) / 4) * -exactVel.Z * 3) *
CFrame.Angles((-sin(t * speed / 6) / 2) * -exactVel.Z * 3 + exactVel.X / 4, (cos(t * speed / 6) / 7.5) * -exactVel.Z * 3, rad(5) + exactVel.X / 16),
lh = lhc0 *
CFrame.new(-0.025, max(-cos(t * speed / 6) / 2, 0), -0.25 + (cos(t * speed / 6) / 2) * -exactVel.Z * 3.5) *
CFrame.Angles(min(-sin(t * speed / 6) / 1.5, 0.25) * -exactVel.Z * 3.5, 0, -rad(2)) *
CFrame.Angles(exactVel.X / 4, 0, -sin(t * speed / 6) / 2 * exactVel.X * 3.5),
rh = rhc0 *
CFrame.new(0.025, max(cos(t * speed / 6) / 2, 0), -0.25 - (cos(t * speed / 6) / 2) * -exactVel.Z * 3.5) *
CFrame.Angles(min(sin(t * speed / 6) / 1.5, 0.25) * -exactVel.Z * 3.5, 0, rad(2)) *
CFrame.Angles(-exactVel.X / 4, 0, sin(t * speed / 6) / 2 * exactVel.X * 3.5)
}
end,
Jump = function()
return {
rj = rjc0,
nk = nkc0,
ls = lsc0 *
CFrame.new(0, 0.1, 0.07) *
CFrame.Angles(rad(3) + sin(t / 8) / 15, -rad(12), -rad(9)),
rs = rsc0 *
CFrame.new(0, 0.1, 0.07) *
CFrame.Angles(rad(7) + cos(t / 8) / 15, rad(15), rad(9)),
lh = lhc0 *
CFrame.new(0, 0.5, -0.4) *
CFrame.Angles(-rad(26), rad(5), -rad(2)),
rh = rhc0 *
CFrame.new(0, 0.03, -0.07) *
CFrame.Angles(-rad(8), 0, rad(3))
}
end,
Fall = function()
return {
rj = rjc0 *
CFrame.Angles(-sin(cos(t / 3) / 6) / 8, 0, 0),
nk = nkc0,
ls = lsc0 *
CFrame.new(0, 0.23 + sin(t / 3) / 22 - cos(t / 1.5) / 25, 0.15 + sin(t / 3) / 30) *
CFrame.Angles(-rad(7) - cos(t / 3) / 18, -rad(7), -rad(82) - sin(t / 3) / 7 - cos(t / 1.5) / 20),
rs = rsc0 *
CFrame.new(0, 0.23 + sin(t / 3) / 22 - cos(t / 1.5) / 25, 0.15 + sin(t / 3) / 30) *
CFrame.Angles(-rad(7) + cos(t / 3) / 18, rad(7), rad(82) + sin(t / 3) / 7 + cos(t / 1.5) / 20),
lh = lhc0 *
CFrame.new(0, 0.1 + sin(cos(t / 4) / 4) / 8, -0.07) *
CFrame.Angles(-rad(5) + cos(t / 3) / 20 + sin(t / 1.5) / 20, 0, -rad(4)),
rh = rhc0 *
CFrame.new(0, 0.2 - sin(cos(t / 2) / 4) / 8, -0.1) *
CFrame.Angles(-rad(5) - cos(t / 3) / 20 + sin(t / 1.5) / 15, 0, rad(3))
}
end,
Fly = function()
local exactVel = vel / 32
return {
rj = rjc0 *
CFrame.Angles(exactVel.Z / 3, 0, -exactVel.X / 6) *
CFrame.new(0, sin(t / 20) / 10, 0) *
CFrame.Angles(-cos(t / 20) / 20, 0, 0),
nk = nkc0 *
CFrame.Angles(-cos(t / 20) / 20, 0, 0),
ls = lsc0 *
CFrame.new(0, 0.125 - cos(t / 20) / 20, 0) *
CFrame.Angles(exactVel.Z / 2, rad(7) - sin(t / 20) / 20, (-exactVel.X / 6) - rad(15) + cos(t / 20) / 20),
rs = rsc0 *
CFrame.new(0, 0.125 - cos(t / 20) / 20, 0) *
CFrame.Angles(exactVel.Z / 2, -rad(7) + sin(t / 20) / 20, (-exactVel.X / 6) + rad(15) - cos(t / 20) / 20),
lh = lhc0 *
CFrame.new(0, 0.25, -0.375) *
CFrame.Angles((exactVel.Z / 2) - sin(t / 20) / 10, (-exactVel.X / 6) + rad(7) - sin(t / 20) / 20, -rad(7)),
rh = rhc0 *
CFrame.new(0, 0.5, -0.5) *
CFrame.Angles((exactVel.Z / 2) - sin(t / 20) / 10, (-exactVel.X / 6) - rad(7) + sin(t / 20) / 20, rad(7))
}
end,
Griddy = function()
return {
rj = rjc0 *
CFrame.Angles(0, sin(sin(t / 30) + t / 60) / 4, 0) *
CFrame.new(0, -0.4 + sin(t/2)/5, 0) *
CFrame.Angles(-rad(15) - cos(t / 2) / 10 + sin(t) / 50, 0, cos(t) / 50),
nk = nkc0,
ls = lsc0 *
CFrame.new(0.4 + sin(sin(t / 8) / 2 + t / 16) / 8, -0.13 - cos(t / 2) / 12, -0.2 - sin(sin(t / 8) / 2 + t / 16) / 2) *
CFrame.Angles(sin(t / 2) / 12 + rad(50) + sin(sin(t / 8) / 2 + t / 16) * 1.7, -sin(sin(t / 8) / 2 + t / 16) / 2, sin(sin(t / 8) / 2 + t / 16) / 2),
rs = rsc0 *
CFrame.new(-0.4 - sin(sin(t / 8) / 2 + t / 16) / 8, -0.13 + cos(t / 2) / 12, -0.2 - sin(sin(t / 8) / 2 + t / 16) / 2) *
CFrame.Angles(-sin(t / 2) / 12 + rad(50) + sin(sin(t / 8) / 2 + t / 16) * 1.7, sin(sin(t / 8) / 2 + t / 16) / 2, -sin(sin(t / 8) / 2 + t / 16) / 2),
lh = lhc0 *
CFrame.new(0, -sin(t / 2) / 5, 0) * CFrame.new(0, 0.3 + max(-sin(t / 4) / 2, 0), -0.45 + cos(t / 4) / 8) *
CFrame.Angles(-rad(5) - cos(t) / 50 - sin(sin(t / 2) / 10 + t / 4) / 3, rad(2), -sin(t / 4) / 20),
rh = rhc0 *
CFrame.new(0, -sin(t / 2) / 5, 0) * CFrame.new(0, 0.3 + max(sin(t / 4) / 2, 0), -0.45 - cos(t / 4) / 8) *
CFrame.Angles(-rad(5) + cos(t) / 50 + sin(sin(t / 2) / 10 + t / 4) / 3, -rad(2), -sin(t / 4) / 20)
}
end,
Skepta = function()
return {
rj = rjc0 *
CFrame.new(-sin(sin(t / 16) * 2) / 7, -0.25 + sin(sin(t / 4) * 2) / 7, 0) *
CFrame.Angles(rad(8), -sin(sin(t / 16) * 2) / 7, 0),
nk = nkc0 *
CFrame.Angles(-rad(14) + cos(t / 4) / 22, sin(t / 4) / 7, 0),
ls = lsc0 *
CFrame.new(0, -0.2 + sin(t / 4) / 25, 0) *
CFrame.Angles(rad(60) - cos(t / 4) / 25, rad(7), rad(50)) *
CFrame.new(0, -1, 0.1),
rs = rsc0 *
CFrame.new(0, -0.2 + sin(t / 4) / 25, 0) *
CFrame.Angles(rad(40) - cos(t / 4) / 25, -rad(12), -rad(50)) *
CFrame.new(0, -0.8, 0),
lh = lhc0 *
CFrame.new(-0.125 + sin(sin(t / 16) * 2) / 8, 0.2 - sin(sin(t / 4) * 2) / 7, -0.5 + -sin(sin(t / 16) * 2) / 2) *
CFrame.Angles(-rad(45) + -sin(sin(t / 16) * 2) / 1.25, rad(10) + sin(sin(t / 16) * 2) / 4, -sin(-sin(t / 16) * 2) / 8),
rh = rhc0 *
CFrame.new(0.125 + sin(sin(t / 16) * 2) / 8, 0.2 - sin(sin(t / 4) * 2) / 7, -0.5 + sin(sin(t / 16) * 2) / 2) *
CFrame.Angles(-rad(45) + sin(sin(t / 16) * 2) / 1.25, -rad(10) + sin(sin(t / 16) * 2) / 4, sin(sin(t / 16) * 2) / 8)
}
end,
Naenae = function()
return {
rj = rjc0 *
CFrame.new(sin(t / 6) / 15, -0.7 + math.abs(cos(t / 6)) / 2, 0) *
CFrame.Angles(rad(8) - sin(t / 6) / 15, cos(t / 6) / 3, 0),
nk = nkc0 *
CFrame.Angles(-rad(43), -cos(t / 6) / 6, sin(t / 6) / 26),
rs = rsc0 *
CFrame.new(0, 0.3 - cos(t / 6 + cos(t / 6)) / 5, cos(t / 6) / 5) *
CFrame.Angles(rad(173) - sin(t / 6) / 14, -rad(15) - cos(t / 6) / 8 + sin(t / 3) / 8, rad(12) - sin(t / 6) / 22),
ls = lsc0 *
CFrame.new(0.02, -0.2 - cos(t / 6) / 8, 0.1 + cos(t / 6) / 5) *
CFrame.Angles(rad(6) - sin(t / 6) / 7, rad(16) + sin(t / 6) / 4, -rad(20) + cos(t / 6) / 5),
rh = rhc0 *
CFrame.new(-sin(t / 6) / 15, 0.7 - math.abs(cos(t / 6)) / 2, -sin(t / 6) / 15 + math.abs(cos(t / 6)) / 16 + cos(t / 6) / 6) *
CFrame.Angles(-rad(8) + sin(t / 6) / 15, -cos(t / 6) / 3, -cos(t / 6) / 24) *
CFrame.new(0.37 - cos(t / 6) / 2.2, -0.1, -0.65 + sin(t / 3) / 3.5) *
CFrame.Angles(-rad(18) + sin(t / 3) / 7, -rad(14) + cos(t / 6) / 5, -rad(8) + cos(t / 6) / 4),
lh = lhc0 *
CFrame.new(-sin(t / 6) / 15, 0.7 - math.abs(cos(t / 6)) / 2, -sin(t / 6) / 15 + math.abs(cos(t / 6)) / 16 - cos(t / 6) / 6) *
CFrame.Angles(-rad(8) + sin(t / 6) / 15, -cos(t / 6) / 3, -cos(t / 6) / 24) *
CFrame.new(-0.37 - cos(t / 6) / 2.2, -0.1, -0.65 + sin(t / 3) / 3.5) *
CFrame.Angles(-rad(18) + sin(t / 3) / 7, rad(14) + cos(t / 6) / 5, rad(8) + cos(t / 6) / 4)
}
end,
HowLowCanYouGo = function()
return {
rj = rjc0 *
CFrame.new(0, -1 - cos(t / 4 + sin(t / 4)) / 8 - cos(t / 4) / 7, 0) *
CFrame.Angles(rad(15), sin(t / 8 + sin(t / 4)) / 8, -sin(t / 8 + sin(t / 4)) / 8),
nk = nkc0,
rs = rsc0 *
CFrame.new(0.1, -0.2 + cos(t / 4 + sin(t / 4)) / 5, -0.4) *
CFrame.Angles(rad(100) - sin(t / 4) / 8, rad(10) + cos(t / 4 + sin(t / 4)) / 15, -rad(35) - cos(t / 4 + sin(t / 4)) / 8),
ls = lsc0 *
CFrame.new(-0.1, -0.2 + cos(t / 4 + sin(t / 4)) / 5, -0.4) *
CFrame.Angles(rad(100) + sin(t / 4) / 8, -rad(10) - cos(t / 4 + sin(t / 4)) / 15, rad(35) + cos(t / 4 + sin(t / 4)) / 8),
rh = rhc0 *
CFrame.Angles(-rad(15), -sin(t / 8 + sin(t / 4)) / 8, sin(t / 8 + sin(t / 4)) / 8) *
CFrame.new(-0.1 + sin(t / 8 + sin(t / 4)) / 8, 1 + cos(t / 4 + sin(t / 4)) / 8 + cos(t / 4) / 7, sin(t / 8 + sin(t / 4)) / 8) *
CFrame.Angles(0, 0, -rad(5)) *
CFrame.new(0.75 - cos(t / 4 + sin(t / 4)) / 2.5, 0, -0.8) *
CFrame.Angles(-rad(10), -rad(10) - cos(t / 4 + sin(t / 4)) / 5, rad(5) + cos(t / 4 + sin(t / 4)) / 5),
lh = lhc0 *
CFrame.Angles(-rad(15), -sin(t / 8 + sin(t / 4)) / 8, sin(t / 8 + sin(t / 4)) / 8) *
CFrame.new(0.1 + sin(t / 8 + sin(t / 4)) / 8, 1 + cos(t / 4 + sin(t / 4)) / 8 + cos(t / 4) / 7, -sin(t / 8 + sin(t / 4)) / 8) *
CFrame.Angles(0, 0, rad(5)) *
CFrame.new(-0.75 + cos(t / 4 + sin(t / 4)) / 2.5, 0, -0.8) *
CFrame.Angles(-rad(10), rad(10) + cos(t / 4 + sin(t / 4)) / 5, -rad(5) - cos(t / 4 + sin(t / 4)) / 5)
}
end,
Oluwamark = function()
return {
rj = rjc0 *
CFrame.new(-sinh(sin(sin(t / 22.5))) ^ 3 / 4, sin(t / 5) / 20, 0) *
CFrame.Angles(-cos(t / 5) / 20, sinh(sin(sin(t / 22.5))) ^ 3 / 4, 0),
nk = nkc0 *
CFrame.Angles(-rad(15) - cos(t / 5) / 20 + sin(t / 35 + sin(t / 35)) / 2.5, 0, 0),
rs = rsc0 *
CFrame.new(-sinh(sin(sin(t / 22.5))) ^ 3 / 3, -0.2 + cos(t / 5) / 8 + sinh(sin(sin(t / 22.5))) ^ 3 / 8, -0.25 - sinh(sin(sin(t / 22.5))) ^ 3 / 2) *
CFrame.Angles(rad(20) + sin(t / 5) / 4 + sinh(sin(sin(t / 22.5))) ^ 3 / 2, rad(20) + sinh(sin(sin(t / 22.5))) ^ 3 / 2, -sinh(sin(sin(t / 22.5))) ^ 3 / 2 - cos(t / 5) / 8 - sinh(sin(sin(t / 22.5))) ^ 3 / 2),
ls = lsc0 *
CFrame.new(-sinh(sin(sin(t / 22.5))) ^ 3 / 3, -0.2 + cos(t / 5) / 8 - sinh(sin(sin(t / 22.5))) ^ 3 / 8, -0.25 + sinh(sin(sin(t / 22.5))) ^ 3 / 2) *
CFrame.Angles(rad(20) + sin(t / 5) / 4 - sinh(sin(sin(t / 22.5))) ^ 3 / 2, -rad(20) + sinh(sin(sin(t / 22.5))) ^ 3 / 2, -sinh(sin(sin(t / 22.5))) ^ 3 / 2 + cos(t / 5) / 8 - sinh(sin(sin(t / 22.5))) ^ 3 / 2),
rh = rhc0 *
CFrame.new(sinh(sin(sin(t / 22.5))) ^ 3 / 4, -sin(t / 5) / 20, sinh(sin(sin(t / 22.5))) ^ 3 / 8 - cos(t / 5) / 20) *
CFrame.new(0.075 - sinh(sin(sin(t / 22.5))) ^ 3 / 8, 0, cos(t / 5) / 5) *
CFrame.Angles(cos(t / 5) / 20, -sinh(sin(sin(t / 22.5))) ^ 3 / 4, 0) *
CFrame.Angles(-rad(8) + cos(t / 5) / 10, -rad(15) - sin(t / 5) / 3, rad(5) + sinh(sin(sin(t / 22.5))) ^ 3 / 8),
lh = lhc0 *
CFrame.new(sinh(sin(sin(t / 22.5))) ^ 3 / 4, -sin(t / 5) / 20, -sinh(sin(sin(t / 22.5))) ^ 3 / 8 - cos(t / 5) / 20) *
CFrame.new(-0.075 - sinh(sin(sin(t / 22.5))) ^ 3 / 8, 0, cos(t / 5) / 5) *
CFrame.Angles(cos(t / 5) / 20, -sinh(sin(sin(t / 22.5))) ^ 3 / 4, 0) *
CFrame.Angles(-rad(8) + cos(t / 5) / 10, rad(15) + sin(t / 5) / 3, -rad(5) + sinh(sin(sin(t / 22.5))) ^ 3 / 8)
}
end,
Sidestep = function()
return {
rj = rjc0 *
CFrame.new(cos(t / 8) / 10, -0.15 + math.abs(-sin(t / 4) / 4) + cos(t / 4) / 10, -cos(t / 4) / 10) *
CFrame.Angles(-rad(2) + sin(t / 4) / 20, sin(t / 8) / 10, cos(t / 4) / 40 + sin(t / 8) / 20),
nk = nkc0 *
CFrame.Angles(-rad(10) + cos(t / 4) / 10, -sin(t / 8) / 10, sin(t / 4) / 20),
rs = rsc0 *
CFrame.new(-0.02 + sin(t / 8 + sin(t / 4)) / 10, -0.3 + sin(t / 8) / 4, 0.4 - sin(t / 8) / 4) *
CFrame.Angles(rad(40) + cos(t / 2) / 8 + sin(t / 8) / 5, rad(15), rad(10) + sin(t / 4) / 15 + sin(t / 4) / 15 - sin(t / 8) / 15),
ls = lsc0 *
CFrame.new(0.02 + sin(t / 8 + sin(t / 4)) / 10, -0.3 - sin(t / 8) / 4, 0.4 + sin(t / 8) / 4) *
CFrame.Angles(rad(40) - sin(t / 2) / 8 - sin(t / 8) / 5, -rad(15), -rad(10) - sin(t / 4) / 15 + sin(t / 4) / 15 - sin(t / 8) / 15),
rh = rhc0 *
CFrame.new(0, 0.1 - math.abs(-sin(t / 4) / 4) + cos(t / 2) / 20, 0) *
CFrame.Angles(0, 0, sin(t / 8) / 14) *
CFrame.new(0.04 - min(0, sin(t / 8) / 2.3), max(0, -sin(t / 8) / 2.4), min(0, sin(t / 8 + sin(t / 4)) / 1.7)) *
CFrame.Angles(-rad(15) + max(sin(t / 8) / 2 - cos(t / 4) / 15, -rad(8)), -rad(10) + sin(t / 8 + cos(t / 4)) / 3, rad(3) + sin(t / 8) / 10),
lh = lhc0 *
CFrame.new(0, 0.1 - math.abs(-sin(t / 4) / 4) - cos(t / 2) / 20, 0) *
CFrame.Angles(0, 0, sin(t / 8) / 14) *
CFrame.new(-0.04 - max(0, sin(t / 8) / 2.3), max(0, sin(t / 8) / 2.4), min(0, -sin(t / 8 + sin(t / 4)) / 1.7)) *
CFrame.Angles(-rad(15) + max(-sin(t / 8) / 2 + cos(t / 4) / 15, -rad(8)), rad(10) + sin(t / 8 + cos(t / 4)) / 3, rad(3) + sin(t / 8) / 10)
}
end,
Xavier = function()
return {
rj = rjc0 *
CFrame.new(sin(t / 14) / 20, -0.4 + math.abs(sin(t / 7) / 4), -0.05) *
CFrame.Angles(0, cos(t / 14) / 50, 0) *
CFrame.Angles(rad(15) + sin(t / 14) / 50, 0, cos(t / 14) / 30),
nk = nkc0 *
CFrame.Angles(0, -cos(t / 14) / 50, 0) *
CFrame.new(cos(t / 14) / 80, 0, math.abs(sin(t / 7)) / 19) *
CFrame.new(-sin(t / 14) / 20, 0.2 - math.abs(sin(t / 7) / 4) - cos(t / 3.5) / 80, -0.15) *
CFrame.Angles(-rad(20) - sin(t / 14) / 50, 0, -cos(t / 14) / 30),
rs = rsc0 *
CFrame.new(0, -math.abs(sin(t / 7) / 4), 0) *
CFrame.new(-0.06 + cos(t / 14) / 30, -0.2 + max(0.1, cos(t / 14) / 1.8), -0.1 - math.asin(sin(t / 14)) / 3) *
CFrame.Angles(min(rad(70), rad(50) + sin(t / 14)) * 1.2 + sin(t / 3.5) / 20, rad(5) - sin(t / 3.5) / 15, -rad(2) + cos(t / 3.5) / 40) *
CFrame.Angles(0, 0, -sin(t / 14) / 15),
ls = lsc0 *
CFrame.new(0, -math.abs(sin(t / 7) / 4), 0) *
CFrame.new(0.06 + cos(t / 14) / 30, -0.2 - min(0.1, cos(t / 14) / 1.8), -0.1 + math.asin(sin(t / 14)) / 3) *
CFrame.Angles(min(rad(70), rad(50) - sin(t / 14)) * 1.2 + cos(t / 3.5) / 20, -rad(5) + sin(t / 3.5) / 15, rad(2) - cos(t / 3.5) / 40) *
CFrame.Angles(0, 0, -sin(t / 14) / 15),
rh = rhc0 *
CFrame.Angles(0, -cos(t / 14) / 50, 0) *
CFrame.new(-sin(t / 14) / 20, 0.3 - math.abs(sin(t / 7) / 4), -0.1 - math.abs(sin(t / 7) / 13)) *
CFrame.new(cos(t / 14) / 10, 0, 0) *
CFrame.Angles(-sin(t / 14) / 40, 0, -cos(t / 14) / 11) *
CFrame.Angles(-rad(15) - math.abs(sin(t / 7) / 13), -rad(15), rad(4)),
lh = lhc0 *
CFrame.Angles(0, -cos(t / 14) / 50, 0) *
CFrame.new(-sin(t / 14) / 20, 0.3 - math.abs(sin(t / 7) / 4), -0.1 - math.abs(sin(t / 7) / 13)) *
CFrame.new(cos(t / 14) / 10, 0, 0) *
CFrame.Angles(-sin(t / 14) / 40, 0, -cos(t / 14) / 11) *
CFrame.Angles(-rad(15) - math.abs(sin(t / 7) / 13), rad(15), -rad(4))
}
end,
Kotonai = function()
return {
rj = rjc0 *
CFrame.new(0, sin(t / 4) / 10, 0) *
CFrame.Angles(0, 0, sin(sin(sin(t / 8) * 1.75) * 1.5) / 10),
nk = nkc0 *
CFrame.Angles(0, 0, -sin(sin(sin(t / 8) * 1.75) * 1.5) / 10),
rs = rsc0 *
CFrame.new(-cos(t / 4) / 4, sin(t / 8) / 4, -0.125 + sin(sin(sin(t / 8) * 1.75) * 1.5) / 2) *
CFrame.Angles(0, 0, -rad(25) + sin(sin(sin(t / 8) * 1.75) * 1.5)) *
CFrame.Angles(0, -sin(sin(sin(t / 8) * 1.75) * 1.5), 0),
ls = lsc0 *
CFrame.new(cos(t / 4) / 4, -sin(t / 8) / 4, -0.125 - sin(-sin(-sin(t / 8) * 1.75) * 1.5) / 2) *
CFrame.Angles(0, 0, rad(25) + sin(-sin(-sin(t / 8) * 1.75) * 1.5)) *
CFrame.Angles(0, -sin(-sin(-sin(t / 8) * 1.75) * 1.5), 0),
rh = rhc0 *
CFrame.new(-sin(sin(sin(t / 8) * 1.75) * 1.5) / 10, -sin(t / 4) / 10 - sin(sin(sin(t / 8) * 1.75) * 1.5) / 20, 0) *
CFrame.new(sin(sin(sin(t / 8) * 1.75) * 1.5) / 10, 0, -rad(15)) *
CFrame.Angles(0, 0, -sin(sin(sin(t / 8) * 1.75) * 1.5) / 10) *
CFrame.Angles(-rad(7.5), 0, rad(3) - sin(sin(sin(t / 8) * 1.75) * 1.5) / 20),
lh = lhc0 *
CFrame.new(-sin(sin(sin(t / 8) * 1.75) * 1.5) / 10, -sin(t / 4) / 10 + sin(sin(sin(t / 8) * 1.75) * 1.5) / 20, 0) *
CFrame.new(sin(sin(sin(t / 8) * 1.75) * 1.5) / 10, 0, -rad(15)) *
CFrame.Angles(0, 0, -sin(sin(sin(t / 8) * 1.75) * 1.5) / 10) *
CFrame.Angles(-rad(7.5), 0, -rad(3) - sin(sin(sin(t / 8) * 1.75) * 1.5) / 20)
}
end,
SkillIssue = function()
local value = math.asin(sin(sin(t / 18)))
sideFactor = (math.abs(value) > 0.73) and (rad(13) * math.sign(value)) / 2 or 0
return {
rj = rjc0 *
CFrame.new(sideFactor, -0.1 - cos(t / 4.5) / 20 + sin(t / 9 + sin(t / 4.5)) / 9, 0) *
CFrame.Angles(0, 0, sideFactor),
nk = nkc0 *
CFrame.Angles(0, 0, -sideFactor * 1.2),
rs = rsc0 *
CFrame.new(-0.13 - sin(t / 9 + sin(t / 4.5) / 4) / 6, -0.3 + sin(t / 9 + sin(t / 4.5) / 4) / 10 - cos(t / 4.5) / 6, -0.1 - sin(t / 9 + sin(t / 4.5) / 4) / 6) *
CFrame.Angles(rad(45) + sin(t / 9 + sin(t / 4.5) / 4) * 1.4, rad(5) - sin(t / 9 + sin(t / 4.5) / 4) / 9, -rad(6) - sin(t / 9 + sin(t / 4.5) / 4) / 4),
ls = lsc0 *
CFrame.new(0.13 + sin(t / 9 + sin(t / 4.5) / 4) / 6, -0.3 + sin(t / 9 + sin(t / 4.5) / 4) / 10 - cos(t / 4.5) / 6, -0.1 - sin(t / 9 + sin(t / 4.5) / 4) / 6) *
CFrame.Angles(rad(45) + sin(t / 9 + sin(t / 4.5) / 4) * 1.4, -rad(5) + sin(t / 9 + sin(t / 4.5) / 4) / 9, rad(6) + sin(t / 9 + sin(t / 4.5) / 4) / 4),
rh = rhc0 *
CFrame.Angles(0, 0, -sideFactor) *
CFrame.new(-sideFactor * 2, 0.1 + cos(t / 4.5) / 20 - sin(t / 9 + sin(t / 4.5)) / 9 - sideFactor / 2, 0) *
CFrame.new(sideFactor * 2, 0, -0.1) *
CFrame.Angles(0, 0, -sideFactor * 1.2),
lh = lhc0 *
CFrame.Angles(0, 0, -sideFactor) *
CFrame.new(-sideFactor * 2, 0.1 + cos(t / 4.5) / 20 - sin(t / 9 + sin(t / 4.5)) / 9 + sideFactor / 2, 0) *
CFrame.new(sideFactor * 2, 0, -0.1) *
CFrame.Angles(0, 0, -sideFactor * 1.2)
}
end,
Shuffle = function()
return {
rj = rjc0 *
CFrame.new(0, sin(t / 3.5) / 10, sin(cos(t / 14) * 1.625) / 2.5) *
CFrame.Angles(-cos(t / 3.5) / 80, 0, 0),
nk = nkc0 *
CFrame.Angles(-rad(7) - cos(t / 3.5) / 20, 0, 0),
ls = lsc0 *
CFrame.new(0.15 + sin(sin(cos(t / 14) * 1.625) * 1.625) / 4, 0.2 - sin(sin(cos(t / 14) * 1.625) * 1.625) / 2, -sin(sin(cos(t / 14) * 1.625) * 1.625) / 4) *
CFrame.Angles(sin(sin(cos(t / 14) * 1.625) * 1.625), cos(t / 7) * sin(t / 14) / 2.5, rad(7) + sin(sin(cos(t / 14) * 1.625) * 1.625) - cos(t / 7) * cos(t / 14) / 5),
rs = rsc0 *
CFrame.new(-0.15 - sin(sin(cos(t / 14) * 1.625) * 1.625) / 4, -sin(sin(cos(t / 14) * 1.625) * 1.625) / 2, -sin(sin(cos(t / 14) * 1.625) * 1.625) / 4) *
CFrame.Angles(sin(sin(cos(t / 14) * 1.625) * 1.625), -(cos(t / 7) * sin(t / 14) / 2.5), rad(7) - sin(sin(cos(t / 14) * 1.625) * 1.625) + cos(t / 7) * cos(t / 14) / 5),
lh = lhc0 *
CFrame.new(0, -sin(t / 3.5) / 10, -sin(cos(t / 14) * 1.625) / 2.5) *
CFrame.Angles(cos(t / 3.5) / 80, 0, 0) *
CFrame.new(0, -sin(sin(cos(t / 7) * 1.625) * 1.625) / 5, -0.25 + sin((cos(t / 7) * cos(t / 14) + cos(t / 14)) / 2) / 2.5) *
CFrame.Angles(sin((-cos(t / 7) * cos(t / 14) - cos(t / 14)) / 2) / 2.5, 0.2 + sin(sin(cos(t / 14) * 1.625) * 1.625) / 5, -rad(2)),
rh = rhc0 *
CFrame.new(0, -sin(t / 3.5) / 10, -sin(cos(t / 14) * 1.625) / 2.5) *
CFrame.Angles(cos(t / 3.5) / 80, 0, 0) *
CFrame.new(max(cos(t / 7) * cos(t / 14) + cos(t / 14), 0) / 10, 0.2 + sin(sin(cos(t / 7) * 1.625) * 1.625) / 5, -0.125 + sin(cos(t / 14) * 1.625) / 2.5 - max(-cos(t / 7) * cos(t / 14) - cos(t / 14), 0) / 5) *
CFrame.Angles(-max(-cos(t / 7) * cos(t / 14) - cos(t / 14), 0) / 1.5 + sin(cos(t / 14) * 1.625) / 5, -max(-cos(t / 7) * cos(t / 14) - cos(t / 14), 0) / 5 - max(cos(t / 7) * cos(t / 14) + cos(t / 14), 0) / 2.5, rad(2) - max(cos(t / 7) * cos(t / 14) + cos(t / 14), 0) / 10)
}
end,
Hugo = function()
return {
nk = nkc0 *
CFrame.new(asin(cos(t / 12)) / 16, 0, 0) *
CFrame.Angles(min(cos(t / 6 - 1) / 10, 0) + sin(t / 24) ^ 3 / 4, -smoothStep(sin(t / 12) / 10, 3, 1) + smoothStep(-cos(t / 12) / 10, 3, 1), smoothStep(-cos(t / 12) / 20, 3, 1)),
rj = rjc0 *
CFrame.new(-smoothStep(sin(t / 12) / 2, 3, 1), -0.0625 + cos(t / 6) / 10 + sin(t / 2.75) / 10, 0) *
CFrame.Angles(0, smoothStep(sin(t / 12) / 10, 3, 1), 0),
ls = lsc0 *
CFrame.new(0, sin(t / 12) / 3, 0.25 + cos(t / 12) / 3) *
CFrame.Angles(rad(35) + sin(t / 12), cos(t / 12) / 4, -rad(10) + cos(t / 12) / 8),
rs = rsc0 *
CFrame.new(0, -sin(t / 12) / 3, 0.25 - cos(t / 12) / 3) *
CFrame.Angles(rad(35) - sin(t / 12), cos(t / 12) / 4, rad(10) + cos(t / 12) / 8),
lh = {Stabilized = true, Pose = lhc0 *
CFrame.new(-sin(t / 12) ^ 3 / 2 + sin(t / 6) ^ 3 / 4, -0.175 + sin(t / 6) ^ 4 / 1.75, -0.25 + sin(t / 12) ^ 3 / 3) *
CFrame.Angles(-math.rad(5) - sin(t / 12) ^ 3 / 4, -sin(t / 12) ^ 3 / 2, -cos(t / 6) / 4)},
rh = {Stabilized = true, Pose = rhc0 *
CFrame.new(-sin(t / 12) ^ 3 / 2 - sin(t / 6) ^ 3 / 4, -0.175 + sin(t / 6) ^ 4 / 1.75, -0.25 - sin(t / 12) ^ 3 / 3) *
CFrame.Angles(-math.rad(5) + sin(t / 12) ^ 3 / 4, -sin(t / 12) ^ 3 / 2, cos(t / 6) / 4)}
}
end,
}
local keyFuncs = {
One = function() playDance("Griddy", "rbxassetid://12578363577") end,
Two = function() playDance("Skepta", "rbxassetid://16033332539") end,
Three = function() playDance("Naenae", "rbxassetid://14817128028") end,
Four = function() playDance("HowLowCanYouGo", "rbxassetid://9124780123") end,
Five = function() playDance("Oluwamark", "rbxassetid://16744083583", 2) end,
Six = function() playDance("Sidestep", "rbxassetid://16744083583", 2.5) end,
Seven = function() playDance("Xavier", "rbxassetid://15395092532", 0.85) end,
Eight = function() playDance("Kotonai", "rbxassetid://16769384569", 2) end,
Nine = function() playDance("SkillIssue", "rbxassetid://16852898854") end,
Zero = function() playDance("Shuffle", "rbxassetid://18236510817") end,
Minus = function() playDance("Hugo", "", 1) end
}
local joints = {rj = {rj, rjc0, CFrame.new()}, nk = {nk, nkc0, CFrame.new()}, rs = {rs, rsc0, CFrame.new()}, ls = {ls, lsc0, CFrame.new()}, rh = {rh, rhc0, CFrame.new()}, lh = {lh, lhc0, CFrame.new()}}
game:GetService("RunService").PostSimulation:Connect(function(dt)
t = os.clock() * 60
exactVel = CFrame.new(root.CFrame:VectorToObjectSpace(root.Velocity))
vel = Vector3.new(clamp(exactVel.x, -64, 64), clamp(exactVel.y, -64, 64), clamp(exactVel.z, -64, 64))
if animMove then
if hum:GetState() ~= Enum.HumanoidStateType.Climbing then
if not hum.Sit then
if hum.FloorMaterial == Enum.Material.Air then
action = "Jump"
else
action = hum.MoveDirection.Magnitude > 0 and "Walk" or "Idle"
end
else
action = "Sit"
end
else
if math.abs(vel.Y) > 0 then
action = "Climb"
end
end
end
for i, v in next, joints do
local joint, jointc0, transform = v[1], v[2], v[3]
if animTable[action] and animTable[action]()[i] then
local animCF = animTable[action]()[i]
local stabilized
if typeof(animCF) == "table" and animCF["Stabilized"] then
stabilized = true
animCF = animCF["Pose"]
end
v[3] = Lerp(v[3], jointc0:Inverse() * animCF, 0.3, dt * 60)
transform = v[3]
joint.C0 = (stabilized and joint.Part0.CFrame:Inverse() * root.CFrame * jointc0 or jointc0) * transform
end
end
end)
NLS([[
local uis = game:GetService("UserInputService")
local remote = script.Parent:FindFirstChild("inputs")
if not remote then
error("no remote found")
end
uis.InputEnded:Connect(function(key, gp)
if not gp then
remote:FireServer(key.KeyCode)
end
end)
]])
remote.OnServerEvent:Connect(function(plr, key)
if plr == owner and keyFuncs[tostring(key):sub(14)] then
keyFuncs[tostring(key):sub(14)]()
end
end)