View difference between Paste ID: 59aZY7Uj and vpfmKhmW
SHOW: | | - or go back to the newest paste.
1
pls = game:GetService("Players")
2
rs = game:GetService("RunService")
3
uinps = game:GetService("UserInputService")
4
lp = pls.LocalPlayer
5
mouse = lp:GetMouse()
6
c = lp.Character
7
human = c.Humanoid
8
health = 130
9
root = c.HumanoidRootPart
10
EfxModel = Instance.new("Model", c)
11
Effects = {
12
Spark = {new = function(pos, point, length, thickness, speed, distime, color, trans, material)
13
  local e = Instance.new("Part", EfxModel)
14
  e.Name = "Spark"
15
  e.Size = Vector3.new(thickness, thickness, length + math.random(-10, 10) / 10)
16
  e.BrickColor = BrickColor.new(color or "Black")
17
  if not trans then
18
    e.Transparency = math.random(1, 3) / 10
19
    e.Material = material or "Neon"
20
    e.Anchored = true
21
    e.CanCollide = false
22
    e.CFrame = CFrame.new(pos, point)
23
    local m = Instance.new("SpecialMesh", e)
24
    m.MeshType = "Sphere"
25
    local d = Instance.new("NumberValue", e)
26
    d.Name = "Time"
27
    d.Value = distime or 0.05
28
    local s = Instance.new("NumberValue", e)
29
    s.Name = "Speed"
30
    s.Value = speed or 0.5
31
  end
32
end, move = function(part)
33
  part.CFrame = part.CFrame:toWorldSpace(CFrame.new(0, 0, part.Speed.Value / (Debounces.FPS / 60)))
34
  part.Transparency = part.Transparency + part.Time.Value / (Debounces.FPS / 60)
35
  if part.Transparency > 0.97 then
36
    part:Destroy()
37
  end
38
end}
39
, 
40
Spark2 = {new = function(pos, point, length, thickness, speed, distime, drop, color, trans, material)
41
  local e = Instance.new("Part", EfxModel)
42
  e.Name = "Spark2"
43
  e.Size = Vector3.new(thickness, thickness, length + math.random(-10, 10) / 10)
44
  e.BrickColor = BrickColor.new(color or "Black")
45
  if not trans then
46
    e.Transparency = math.random(1, 3) / 10
47
    e.Material = material or "Neon"
48
    e.Anchored = true
49
    e.CanCollide = false
50
    e.CFrame = CFrame.new(pos, point)
51
    local m = Instance.new("SpecialMesh", e)
52
    m.MeshType = "Sphere"
53
    local d = Instance.new("NumberValue", e)
54
    d.Name = "Time"
55
    d.Value = distime or 0.05
56
    local s = Instance.new("NumberValue", e)
57
    s.Name = "Speed"
58
    s.Value = speed or 0.5
59
    local d2 = Instance.new("NumberValue", e)
60
    d2.Name = "Drop"
61
    d2.Value = drop or 0.2
62
  end
63
end, move = function(part)
64
  local moveTo = part.CFrame.lookVector * part.Speed.Value
65
  moveTo = moveTo - Vector3.new(0, part.Drop.Value / Debounces.FPS, 0)
66
  part.CFrame = CFrame.new(part.CFrame.p + (moveTo), part.CFrame.p + (moveTo) * 2)
67
  part.Transparency = part.Transparency + part.Time.Value / (Debounces.FPS / 60)
68
  if part.Transparency > 0.97 then
69
    part:Destroy()
70
  end
71
end}
72
, 
73
Sphere = {new = function(pos, radius, time, size, color, trans, material)
74
  local e = Instance.new("Part", EfxModel)
75
  e.Name = "Sphere"
76
  e.Size = Vector3.new(radius, radius, radius)
77
  e.BrickColor = BrickColor.new(color or "Purple")
78
  if not trans then
79
    e.Transparency = math.random(1, 3) / 10
80
    e.Material = material or "Neon"
81
    e.Anchored = true
82
    e.CanCollide = false
83
    e.CFrame = CFrame.new(pos)
84
    local m = Instance.new("SpecialMesh", e)
85
    m.MeshType = "Sphere"
86
    local d = Instance.new("NumberValue", e)
87
    d.Name = "Time"
88
    d.Value = distime or 0.055
89
    local s = Instance.new("NumberValue", e)
90
    s.Name = "SizeChange"
91
    s.Value = size or 0.5
92
  end
93
end, move = function(part)
94
  local pcf = part.CFrame
95
  part.Size = part.Size + Vector3.new(part.SizeChange.Value, part.SizeChange.Value, part.SizeChange.Value)
96
  part.CFrame = pcf
97
  part.Transparency = part.Transparency + part.Time.Value
98
  if part.Transparency > 0.95 then
99
    part:Destroy()
100
  end
101
end}
102
, 
103
Fire = {new = function(pos, size, speed, transspeed, wave, color, trans, material)
104
  local e = Instance.new("Part", EfxModel)
105
  e.Name = "Fire"
106
  e.Size = Vector3.new(size, size, size)
107-
  e.BrickColor = BrickColor.new(color or "Bright orange")
107+
  e.BrickColor = BrickColor.new(color or "Purple")
108
  if not trans then
109
    e.Transparency = math.random(1, 3) / 10
110
    e.Material = material or "Neon"
111
    e.Anchored = true
112
    e.CanCollide = false
113
    e.CFrame = CFrame.new(pos)
114
    local d = Instance.new("NumberValue", e)
115
    d.Name = "Time"
116
    d.Value = transspeed or 0.05
117
    local s = Instance.new("NumberValue", e)
118
    s.Name = "Speed"
119
    s.Value = speed or 0.5
120
    local w = Instance.new("NumberValue", e)
121
    w.Name = "Wave"
122
    w.Value = wave or 0
123
  end
124
end, move = function(part)
125
  local partPos = part.CFrame.p
126
  part.Size = part.Size - Vector3.new(0.2, 0.2, 0.2)
127
  part.CFrame = CFrame.new(partPos + Vector3.new(math.sin(tick() * part.Wave.Value), part.Speed.Value, math.sin(tick() * part.Wave.Value)).unit / part.Size.x) * CFrame.Angles(math.random(1, 6), math.random(1, 6), math.random(1, 6))
128
  part.Transparency = part.Transparency + part.Time.Value / (Debounces.FPS / 60)
129
  if part.Transparency > 0.97 then
130
    part:Destroy()
131
  end
132
end}
133
}
134
CEfx = {SparkSphere = function(pos, loopcount, radius, length, thickness, speed, distime, color, trans, material)
135
  for i = 1, loopcount do
136
    Effects.Spark.new(pos + Vector3.new(math.sin(i / loopcount * math.pi * 2), math.abs(math.sin(math.random(0, 50))), math.cos(i / loopcount * math.pi * 2)).unit * radius, pos, length, thickness, speed, distime, color, trans, material)
137
  end
138
end, Spark2Sphere = function(pos, loopcount, radius, length, thickness, speed, distime, drop, color, trans, material)
139
  for i = 1, loopcount do
140
    local vector = Vector3.new(math.sin(i / loopcount * math.pi * 2), math.abs(math.sin(math.random(0, 50))), math.cos(i / loopcount * math.pi * 2)).unit * radius
141
    Effects.Spark2.new(pos + vector, pos + vector * 2, length, thickness, speed, distime, drop, color, trans, material)
142
  end
143
end}
144
Debounces = {FPS = 0, Speed = 1, Combo = 1, ComboTimer = 0, canSpecial = true, canNormal = true, isAttacking = false, isMoving = false, isSprinting = false, isTyping = false}
145
numLerp = function(start, goal, alpha)
146
  return (goal - start) * alpha + start
147
end
148
CFrameZero = function()
149
  return CFrame.new(Vector3.new())
150
end
151
rad = function(value)
152
  return math.rad(value)
153
end
154
CFAngles = function(Vector)
155
  return CFrame.Angles(rad(Vector.x), rad(Vector.y), rad(Vector.z))
156
end
157
AnimStat = {lerpSpeed = 0.2}
158
Joints = {c.HumanoidRootPart.RootJoint, c.Torso.Neck, c.Torso["Left Shoulder"], c.Torso["Right Shoulder"], c.Torso["Left Hip"], c.Torso["Right Hip"]}
159
JointTargets = {CFrameZero(), CFrameZero(), CFrameZero(), CFrameZero(), CFrameZero(), CFrameZero()}
160
Combo = {function()
161
  setLerp(0.3)
162
  Debounces.Speed = 0.7
163
  setJointCFrames({CFrame.new(Vector3.new(0, 0, 0)) * CFAngles(Vector3.new(0, -71, 0)), CFrame.new(Vector3.new(-0.031, 1.5, -0.01)) * CFAngles(Vector3.new(1.336, 35.63, -1.865)), CFrame.new(Vector3.new(-1.501, 0.059, -0.59)) * CFAngles(Vector3.new(150.11, -61.307, -0.508)), CFrame.new(Vector3.new(1.239, 0.43, -0.91)) * CFAngles(Vector3.new(92.909, 10.092, -31.545)), CFrame.new(Vector3.new(-0.55, -2.051, -0.081)) * CFAngles(Vector3.new(0.962, 35.736, 0.77)), CFrame.new(Vector3.new(0.869, -1.881, -0.15)) * CFAngles(Vector3.new(-0.82, -20.773, 16.901))})
164
  wait(0.15)
165
  local hit = takeDamage(root.Position, math.random(13, 16), 5, false)
166
  setLerp(0.4)
167
  Debounces.Speed = 1.1
168
  setJointCFrames({CFrame.new(Vector3.new(0, 0, 0)) * CFAngles(Vector3.new(0, 65, 0)), CFrame.new(Vector3.new(0.079, 1.5, -0.01)) * CFAngles(Vector3.new(-1.221, -44.109, -2.112)), CFrame.new(Vector3.new(-1.251, 0.189, -0.99)) * CFAngles(Vector3.new(90.281, -49.501, 47.064)), CFrame.new(Vector3.new(1.989, 0.47, -0.4)) * CFAngles(Vector3.new(155.987, -32.162, 72.107)), CFrame.new(Vector3.new(-0.71, -1.991, 0.149)) * CFAngles(Vector3.new(-7.213, 10.172, -12.334)), CFrame.new(Vector3.new(0.51, -1.951, 0.21)) * CFAngles(Vector3.new(-10.342, -20.926, -0.716))})
169
  sound(c.Torso, 280667448, math.random(72, 97) / 100, math.random(85, 115) / 100)
170
  wait(0.17)
171
  return hit[1]
172
end, function()
173
  setLerp(0.3)
174
  Debounces.Speed = 0.7
175
  setJointCFrames({CFrame.new(Vector3.new(0, 0, 0)) * CFAngles(Vector3.new(0, 15, 0)), CFrame.new(Vector3.new(-0.031, 1.5, -0.01)) * CFAngles(Vector3.new(-0.157, -15.009, -1.57)), CFrame.new(Vector3.new(-1.621, 0.059, 0.129)) * CFAngles(Vector3.new(25.69, 3.472, -14.641)), CFrame.new(Vector3.new(0.949, 0.239, -0.891)) * CFAngles(Vector3.new(69.388, 5.364, -33.696)), CFrame.new(Vector3.new(-0.8, -1.891, -0.231)) * CFAngles(Vector3.new(-2.542, 16.877, -4.399)), CFrame.new(Vector3.new(0.6, -1.951, 0.13)) * CFAngles(Vector3.new(-8.352, -11.307, 2.56))})
176
  wait(0.15)
177
  local hit = takeDamage(root.Position, math.random(13, 15), 5, false)
178
  setLerp(0.4)
179
  setJointCFrames({CFrame.new(Vector3.new(0, 0, 0)) * CFAngles(Vector3.new(0, -71, 0)), CFrame.new(Vector3.new(-0.031, 1.5, -0.01)) * CFAngles(Vector3.new(3.865, 67.238, -3.921)), CFrame.new(Vector3.new(-2.031, 0.31, -0.211)) * CFAngles(Vector3.new(132.173, -1.906, -79.905)), CFrame.new(Vector3.new(1.499, 0.039, -0.261)) * CFAngles(Vector3.new(43.335, -7.22, 25.135)), CFrame.new(Vector3.new(-0.64, -2.071, -0.031)) * CFAngles(Vector3.new(4.351, 39.697, -5.775)), CFrame.new(Vector3.new(0.6, -1.951, -0.01)) * CFAngles(Vector3.new(-2.073, -25.333, 4.241))})
180
  sound(c.Torso, 280667448, math.random(72, 97) / 100, math.random(85, 115) / 100)
181
  wait(0.17)
182
  return hit[1]
183
end, function()
184
  setLerp(0.3)
185
  Debounces.Speed = 0.7
186
  setJointCFrames({CFrame.new(Vector3.new(0, 0, 0)) * CFAngles(Vector3.new(0, -71, 0)), CFrame.new(Vector3.new(-0.031, 1.5, -0.01)) * CFAngles(Vector3.new(3.247, 63.159, -3.359)), CFrame.new(Vector3.new(-1.771, 0.1, -0.05)) * CFAngles(Vector3.new(-19.34, -18.625, -40.311)), CFrame.new(Vector3.new(1.659, 0.049, -0.251)) * CFAngles(Vector3.new(2.979, 26.217, 31.923)), CFrame.new(Vector3.new(-0.74, -1.941, -0.081)) * CFAngles(Vector3.new(-1.663, 35.343, -2.91)), CFrame.new(Vector3.new(0.909, -1.881, -0.15)) * CFAngles(Vector3.new(1.355, -27.383, 17.173))})
187
  wait(0.15)
188
  local hit = takeDamage(root.Position, math.random(13, 17), 5, false)
189
  setLerp(0.4)
190
  Debounces.Speed = 1.1
191
  setJointCFrames({CFrame.new(Vector3.new(0, 0, 0)) * CFAngles(Vector3.new(75, 75, 0)), CFrame.new(Vector3.new(-0.031, 1.5, -0.01)) * CFAngles(Vector3.new(3.247, 63.159, -3.359)), CFrame.new(Vector3.new(-1.771, 0.1, -0.05)) * CFAngles(Vector3.new(-19.34, -18.625, -40.311)), CFrame.new(Vector3.new(1.659, 0.049, -0.251)) * CFAngles(Vector3.new(2.979, 26.217, 31.923)), CFrame.new(Vector3.new(-1.37, -1.531, 0.379)) * CFAngles(Vector3.new(-25.945, 18.839, -46.095)), CFrame.new(Vector3.new(0.909, -1.881, -0.15)) * CFAngles(Vector3.new(1.355, -27.383, 17.173))})
192
  sound(c.Torso, 147722227, math.random(72, 97) / 100, math.random(85, 115) / 100)
193
  wait(0.06)
194
  Effects.Fire.new(c["Right Leg"].Position, 4, 0.5, 0.04, 3, "Bright yellow")
195
  wait(0.08)
196
  return hit[1]
197
end, function()
198
  setLerp(0.3)
199
  Debounces.Speed = 0.7
200
  setJointCFrames({CFrame.new(Vector3.new(0, 0, 0)) * CFAngles(Vector3.new(0, -71, 0)), CFrame.new(Vector3.new(-0.031, 1.5, -0.01)) * CFAngles(Vector3.new(1.336, 35.63, -1.865)), CFrame.new(Vector3.new(-1.501, 0.059, -0.59)) * CFAngles(Vector3.new(150.11, -61.307, -0.508)), CFrame.new(Vector3.new(1.239, 0.43, -0.91)) * CFAngles(Vector3.new(92.909, 10.092, -31.545)), CFrame.new(Vector3.new(-0.55, -2.051, -0.081)) * CFAngles(Vector3.new(0.962, 35.736, 0.77)), CFrame.new(Vector3.new(0.869, -1.881, -0.15)) * CFAngles(Vector3.new(-0.82, -20.773, 16.901))})
201
  wait(0.15)
202
  local hit = takeDamage(root.Position, math.random(12, 15), 5, false)
203
  setLerp(0.4)
204
  Debounces.Speed = 1.1
205
  setJointCFrames({CFrame.new(Vector3.new(0, 0, 0)) * CFAngles(Vector3.new(0, 65, 0)), CFrame.new(Vector3.new(0.079, 1.5, -0.01)) * CFAngles(Vector3.new(-1.221, -44.109, -2.112)), CFrame.new(Vector3.new(-1.251, 0.189, -0.99)) * CFAngles(Vector3.new(90.281, -49.501, 47.064)), CFrame.new(Vector3.new(1.989, 0.47, -0.4)) * CFAngles(Vector3.new(155.987, -32.162, 72.107)), CFrame.new(Vector3.new(-0.71, -1.991, 0.149)) * CFAngles(Vector3.new(-7.213, 10.172, -12.334)), CFrame.new(Vector3.new(0.51, -1.951, 0.21)) * CFAngles(Vector3.new(-10.342, -20.926, -0.716))})
206
  Effects.Fire.new(c["Right Arm"].Position, 4, 0.5, 0.04, 3, "Bright yellow")
207
  CEfx.Spark2Sphere(c["Right Arm"].Position, 15, 4, 8, 0.3, 2, 0.05, 3, "Bright yellow")
208
  sound(c.Torso, 260430079, math.random(72, 97) / 100, math.random(85, 115) / 100)
209
  wait(0.17)
210
  return hit[1]
211
end, function()
212
  setLerp(0.3)
213
  Debounces.Speed = 0.7
214
  CEfx.SparkSphere(c.Torso.Position, 10, 15, 4, 0.2, -0.8, 0.05, "Bright yellow")
215
  setJointCFrames({CFrame.new(Vector3.new(0, 0, 0)) * CFAngles(Vector3.new(0, 15, 0)), CFrame.new(Vector3.new(-0.031, 1.5, -0.01)) * CFAngles(Vector3.new(-0.157, -15.009, -1.57)), CFrame.new(Vector3.new(-1.621, 0.059, 0.129)) * CFAngles(Vector3.new(25.69, 3.472, -14.641)), CFrame.new(Vector3.new(0.949, 0.239, -0.891)) * CFAngles(Vector3.new(69.388, 5.364, -33.696)), CFrame.new(Vector3.new(-0.8, -1.891, -0.231)) * CFAngles(Vector3.new(-2.542, 16.877, -4.399)), CFrame.new(Vector3.new(0.6, -1.951, 0.13)) * CFAngles(Vector3.new(-8.352, -11.307, 2.56))})
216
  wait(0.15)
217
  local hit = takeDamage(root.Position, math.random(13, 15), 5, false)
218
  setLerp(0.4)
219
  Debounces.Speed = 1.1
220
  setJointCFrames({CFrame.new(Vector3.new(0, 0, 0)) * CFAngles(Vector3.new(0, -71, 0)), CFrame.new(Vector3.new(-0.031, 1.5, -0.01)) * CFAngles(Vector3.new(3.865, 67.238, -3.921)), CFrame.new(Vector3.new(-2.031, 0.31, -0.211)) * CFAngles(Vector3.new(132.173, -1.906, -79.905)), CFrame.new(Vector3.new(1.499, 0.039, -0.261)) * CFAngles(Vector3.new(43.335, -7.22, 25.135)), CFrame.new(Vector3.new(-0.64, -2.071, -0.031)) * CFAngles(Vector3.new(4.351, 39.697, -5.775)), CFrame.new(Vector3.new(0.6, -1.951, -0.01)) * CFAngles(Vector3.new(-2.073, -25.333, 4.241))})
221
  sound(c.Torso, 147722227, math.random(72, 97) / 100, math.random(85, 115) / 100)
222
  wait(0.17)
223
  return hit[1]
224
end, function()
225
  setLerp(0.3)
226
  Debounces.Speed = 0.7
227
  setJointCFrames({CFrame.new(Vector3.new(0, 0, 0)) * CFAngles(Vector3.new(0, -71, 0)), CFrame.new(Vector3.new(-0.031, 1.5, -0.01)) * CFAngles(Vector3.new(3.247, 63.159, -3.359)), CFrame.new(Vector3.new(-1.771, 0.1, -0.05)) * CFAngles(Vector3.new(-19.34, -18.625, -40.311)), CFrame.new(Vector3.new(1.659, 0.049, -0.251)) * CFAngles(Vector3.new(2.979, 26.217, 31.923)), CFrame.new(Vector3.new(-0.74, -1.941, -0.081)) * CFAngles(Vector3.new(-1.663, 35.343, -2.91)), CFrame.new(Vector3.new(0.909, -1.881, -0.15)) * CFAngles(Vector3.new(1.355, -27.383, 17.173))})
228
  wait(0.15)
229
  local hit = takeDamage(root.Position, math.random(10, 12), 5, false)
230
  setLerp(0.4)
231
  Debounces.Speed = 1.1
232
  setJointCFrames({CFrame.new(Vector3.new(0, 0, 0)) * CFAngles(Vector3.new(75, 75, 0)), CFrame.new(Vector3.new(-0.031, 1.5, -0.01)) * CFAngles(Vector3.new(3.247, 63.159, -3.359)), CFrame.new(Vector3.new(-1.771, 0.1, -0.05)) * CFAngles(Vector3.new(-19.34, -18.625, -40.311)), CFrame.new(Vector3.new(1.659, 0.049, -0.251)) * CFAngles(Vector3.new(2.979, 26.217, 31.923)), CFrame.new(Vector3.new(-1.37, -1.531, 0.379)) * CFAngles(Vector3.new(-25.945, 18.839, -46.095)), CFrame.new(Vector3.new(0.909, -1.881, -0.15)) * CFAngles(Vector3.new(1.355, -27.383, 17.173))})
233
  wait(0.06)
234
  Effects.Fire.new(c["Right Leg"].Position, 4, 0.5, 0.04, 3, "Bright yellow")
235
  sound(c.Torso, 260430079, math.random(72, 97) / 100, math.random(105, 115) / 100)
236
  wait(0.08)
237
  return hit[1]
238
end, function()
239
  Debounces.Speed = 0
240
  setLerp(0.2)
241
  CEfx.SparkSphere(c.Torso.Position, 15, 25, 7, 0.3, -0.6, 0.02, "Bright orange")
242
  sound(c.Torso, 280667448, math.random(47, 72) / 100, math.random(85, 90) / 100)
243
  setJointCFrames({CFrame.new(Vector3.new(0, 0, 0)) * CFAngles(Vector3.new(0, -71, 0)), CFrame.new(Vector3.new(-0.031, 1.5, -0.01)) * CFAngles(Vector3.new(1.336, 35.63, -1.865)), CFrame.new(Vector3.new(-1.501, 0.059, -0.59)) * CFAngles(Vector3.new(150.11, -61.307, -0.508)), CFrame.new(Vector3.new(1.239, 0.43, -0.91)) * CFAngles(Vector3.new(92.909, 10.092, -31.545)), CFrame.new(Vector3.new(-0.55, -2.051, -0.081)) * CFAngles(Vector3.new(0.962, 35.736, 0.77)), CFrame.new(Vector3.new(0.869, -1.881, -0.15)) * CFAngles(Vector3.new(-0.82, -20.773, 16.901))})
244
  wait(0.3)
245
  moveVel(root.CFrame.lookVector, 65, 0.5)
246
  setLerp(0.4)
247
  setJointCFrames({CFrame.new(Vector3.new(0, 0, 0)) * CFAngles(Vector3.new(0, 65, 0)), CFrame.new(Vector3.new(0.079, 1.5, -0.01)) * CFAngles(Vector3.new(-1.221, -44.109, -2.112)), CFrame.new(Vector3.new(-1.251, 0.189, -0.99)) * CFAngles(Vector3.new(90.281, -49.501, 47.064)), CFrame.new(Vector3.new(1.989, 0.47, -0.4)) * CFAngles(Vector3.new(155.987, -32.162, 72.107)), CFrame.new(Vector3.new(-0.71, -1.991, 0.149)) * CFAngles(Vector3.new(-7.213, 10.172, -12.334)), CFrame.new(Vector3.new(0.51, -1.951, 0.21)) * CFAngles(Vector3.new(-10.342, -20.926, -0.716))})
248
  sound(c.Torso, 260430117, 1, math.random(95, 115) / 100)
249
  for i = 1, 8 do
250
    wait(0.05)
251
    local hit = takeDamage(root.Position, math.random(5, 7), 5, false)
252
    Effects.Fire.new(c["Right Arm"].Position, 4 + math.random(-10, 10) / 10, 0.5, 0.04, 5 + math.random(1, 4), "Bright yellow")
253
    Effects.Fire.new(c["Right Arm"].Position, 4 + math.random(-10, 10) / 10, 0.5, 0.04, 4 + math.random(1, 4), "Bright orange")
254
    Effects.Fire.new(c["Right Arm"].Position, 4 + math.random(-10, 10) / 10, 0.5, 0.04, 7 + math.random(1, 4), "Bright red")
255
  end
256
  --return hit[1]
257
end}
258
prepareCharacter = function()
259
  local animator = c.Humanoid:FindFirstChild("Animator")
260
  if animator then
261
    animator:Destroy()
262
  end
263
  local animate = c:FindFirstChild("Animate")
264
  if animate then
265
    animate:Destroy()
266
  end
267
  for _,x in pairs(Joints) do
268
    x.C1 = CFrameZero()
269
  end
270
  for _,v in pairs(c.Head:children()) do
271
    if v:isA("Sound") then
272
      v:Destroy()
273
    end
274
  end
275
  c.Humanoid.MaxHealth = health
276
  wait()
277
  c.Humanoid.Health = health
278
end
279
setJointCFrames = function(table)
280
  for i = 1, #table do
281
    JointTargets[i] = table[i]
282
  end
283
end
284
setLerp = function(speed)
285
  AnimStat.lerpSpeed = speed
286
end
287
takeDamage = function(position, damage, distance, platformStand)
288
  hitPlrs = {}
289
  for i,v in pairs(pls:children()) do
290
    if v:isA("Player") and workspace:FindFirstChild(v.Name) and v ~= lp then
291
      local tor = workspace[v.Name]
292
      --if tor and tor:FindFirstChild("HumanoidRootPart") and tor:FindFirstChild("Humanoid") and tor.HumanoidRootPart.Position - position.magnitude < distance then
293
        tor.Humanoid:TakeDamage(damage)
294
        table.insert(hitPlrs, #hitPlrs + 1, v)
295
        sound(tor.HumanoidRootPart, 131237241, math.random(4, 7) / 10, math.random(85, 115) / 100)
296
        if platformStand then
297
          v.Character.PlatformStand = platformStand
298
        end
299
      --end
300
    end
301
  end
302
  return hitPlrs
303
end
304
moveVel = function(dir, speed, time)
305
  spawn(function()
306
    local g = Instance.new("BodyGyro", root)
307
    g.D = 0
308
    g.CFrame = root.CFrame
309
    g.MaxTorque = Vector3.new(1000000000, 1000000000, 1000000000)
310
    g.P = 10000000000
311
    local e = Instance.new("BodyVelocity", root)
312
    e.Velocity = dir.unit * speed
313
    e.P = 10000
314
    e.MaxForce = Vector3.new(100000000, 100000000, 100000000)
315
    wait(time)
316
    e:Destroy()
317
    g:Destroy()
318
  end)
319
end
320
sound = function(part, id, volume, pitch)
321
  local x = Instance.new("Sound", part)
322
  x.SoundId = "rbxassetid://" .. id
323
  x.Volume = volume or 0.7
324
  x.Pitch = pitch or 1
325
  spawn(function()
326
    wait()
327
    x:Play()
328
    wait((x.TimeLength or 120) + 0.033333333333333)
329
    x:Destroy()
330
  end)
331
end
332
prepareCharacter()
333
spawn(function()
334
  Tick = 0
335
  sine = 0
336
  while wait() do
337
    Debounces.ComboTimer = Debounces.ComboTimer - 0.033333333333333
338
    Tick = tick() * 4.5
339
    sine = math.sin(Tick)
340
    if Debounces.isAttacking == false and Debounces.isMoving == false and math.abs(root.Velocity.y) < 1 then
341
      setLerp(0.2)
342
      setJointCFrames({CFrame.new(Vector3.new(0, -0.2 + sine / 45, 0)) * CFAngles(Vector3.new(0, -71, 3)), CFrame.new(Vector3.new(-0.031, 1.5 + math.sin(Tick + 1) / 65, -0.01)) * CFAngles(Vector3.new(2.959 + math.sin(Tick) * 2, 60.763, -3.105)), CFrame.new(Vector3.new(-1.621, 0.229 + math.sin(Tick + 0.5) / 25, -0.46)) * CFAngles(Vector3.new(92.104 + math.sin(Tick + 1.7) * 2, -43.603, -48.471 + math.sin(Tick - 1.4) * 2)), CFrame.new(Vector3.new(0.649, 0.049 + math.sin(Tick + 0.7) / 25, -0.97)) * CFAngles(Vector3.new(121.338 + math.sin(Tick + 1.5) * 2, 13.67 + math.sin(Tick + 2.1), -50.552 + math.sin(Tick + 1.2) * 2)), CFrame.new(Vector3.new(-0.8, -1.891, -0.081)) * CFAngles(Vector3.new(-2.819, 35.424, -4.553)), CFrame.new(Vector3.new(0.6, -1.881, -0.15)) * CFAngles(Vector3.new(-0.82, -20.773, 4.072))})
343
    else
344
      if Debounces.isAttacking == false and Debounces.isMoving == true and math.abs(root.Velocity.y) < 1 then
345
        setLerp(0.3)
346
        Debounces.Speed = 0.9
347
        setJointCFrames({CFrame.new(Vector3.new(0, -0.21 + math.sin(Tick * 4) / 45, 0)) * CFAngles(Vector3.new(-math.abs(root.RotVelocity.y / 1.7), -71, 3.7)), CFrame.new(Vector3.new(-0.031, 1.5 + math.sin(Tick * 4 + 1) / 75, -0.01)) * CFAngles(Vector3.new(2.959 + math.sin(Tick) * 2, 60.763 + root.RotVelocity.y * 3, -3.105)), CFrame.new(Vector3.new(-1.621, 0.229 + math.sin(Tick * 4 + 0.5) / 45, -0.46)) * CFAngles(Vector3.new(92.104 + math.sin(Tick * 4 + 1.7), -43.603 + math.sin(Tick * 4) * 2, -48.471 + math.sin(Tick * 4 + 1.4) * 1)), CFrame.new(Vector3.new(0.649, 0.049 + math.sin(Tick * 4 + 0.7) / 45, -0.97)) * CFAngles(Vector3.new(121.338 + math.sin(Tick * 4 + 1.5), 13.67, -50.552 + math.sin(Tick * 4 + 1.2) * 1.2)), CFrame.new(Vector3.new(-0.7 + math.sin(Tick * 2.5) / 3, -1.791 - math.cos(Tick * 2.5) / 35, -0.081 - math.sin(Tick * 2.5) / 35)) * CFAngles(Vector3.new(-2.819 - math.sin(Tick * 2.5) * 12, 35.424, -8.553 + math.sin(Tick * 2.5 + 0.1) * 14)), CFrame.new(Vector3.new(0.55 + math.sin(Tick * 2.5 + math.pi) / 3, -1.821 - math.cos(Tick * 2.5 + math.pi) / 20, -0.15)) * CFAngles(Vector3.new(-0.82, -20.773, 4.072 + math.sin(Tick * 2.5 + math.pi - 0.1) * 13))})
348
      else
349
        if Debounces.isAttacking == false and math.abs(root.Velocity.y) > 1 then
350
          if root.Velocity.y > 0 then
351
            Debounces.Speed = 0.9
352
            setLerp(0.1)
353
            setJointCFrames({CFrame.new(Vector3.new(0, 0, 0)) * CFAngles(Vector3.new(0, -71, 0)), CFrame.new(Vector3.new(-0.031, 1.5, -0.01)) * CFAngles(Vector3.new(10.058, 50.565 + root.RotVelocity.y * 3, -9.426)), CFrame.new(Vector3.new(-1.671, 0.559, -0.46)) * CFAngles(Vector3.new(134.256, -65.009, -21.142)), CFrame.new(Vector3.new(0.649, 0.049, -0.97)) * CFAngles(Vector3.new(120.776, 14.331, -50.416)), CFrame.new(Vector3.new(-0.39, -2.021, -0.081)) * CFAngles(Vector3.new(-2.819, 35.424, 5.086)), CFrame.new(Vector3.new(0.6, -1.931, -0.15)) * CFAngles(Vector3.new(-2.057, -13.672, 9.265))})
354
          else
355
            setLerp(0.1)
356
            Debounces.Speed = 1.1
357
            setJointCFrames({CFrame.new(Vector3.new(0, 0, 0)) * CFAngles(Vector3.new(0, -71, 0)), CFrame.new(Vector3.new(-0.031, 1.5, -0.01)) * CFAngles(Vector3.new(-10.332, 31.167 + root.RotVelocity.y * 3, 6.469)), CFrame.new(Vector3.new(-1.671, 0.229, -0.46)) * CFAngles(Vector3.new(101.838, -52.86, -49.259)), CFrame.new(Vector3.new(0.929, 0.149, -1.311)) * CFAngles(Vector3.new(95.716, 21.155, -49.455)), CFrame.new(Vector3.new(-0.8, -1.891, -0.081)) * CFAngles(Vector3.new(-10.964, 9.476, -6.771)), CFrame.new(Vector3.new(0.6, -1.881, -0.15)) * CFAngles(Vector3.new(-6.112, -7.568, 7.395))})
358
          end
359
        end
360
      end
361
    end
362
    human.WalkSpeed = Debounces.Speed * 16
363
  end
364
end)
365
human.Changed:connect(function(prop)
366
  if prop == "MoveDirection" then
367
    if human.MoveDirection.magnitude > 0.02 then
368
      Debounces.isMoving = true
369
    else
370
      Debounces.isMoving = false
371
    end
372
  end
373
end)
374
uinps.InputBegan:connect(function(InputObj)
375
  if InputObj.KeyCode == Enum.KeyCode.Slash then
376
    local finishEvent = nil
377
    do
378
      Debounces.isTyping = true
379
      finishEvent = uinps.InputBegan:connect(function(InputObj)
380
    if InputObj.KeyCode == Enum.KeyCode.Return or InputObj.UserInputType == Enum.UserInputType.MouseButton1 then
381
      Debounces.isTyping = false
382
      finishEvent:disconnect()
383
    end
384
  end)
385
    end
386
  end
387
end)
388
uinps.InputBegan:connect(function(InputObj)
389
  if not Debounces.isTyping then
390
    if InputObj.KeyCode == Enum.KeyCode.LeftShift then
391
      Debounces.isSprinting = true
392
    else
393
      if InputObj.KeyCode == Enum.KeyCode.Q and not Debounces.isAttacking then
394
        Debounces.isAttacking = true
395
        wait()
396
        Debounces.Speed = 0.3
397
        setLerp(0.5)
398
        sound(c.Torso, 280667448, 0.3, math.random(100, 110) / 100)
399
        setJointCFrames({CFrame.new(Vector3.new(0, -0.2 + sine / 45, 0)) * CFAngles(Vector3.new(0, -71, 3)), CFrame.new(Vector3.new(-0.031, 1.5 + math.sin(Tick + 1) / 65, -0.01)) * CFAngles(Vector3.new(2.959 + math.sin(Tick) * 2, 60.763, 1.105)), CFrame.new(Vector3.new(-1.621, 0.529, -0.46)) * CFAngles(Vector3.new(130.035, -58.975, -25.477)), CFrame.new(Vector3.new(0.649, 0.049 + math.sin(Tick + 0.7) / 25, -0.97)) * CFAngles(Vector3.new(121.338 + math.sin(Tick + 1.5) * 2, 13.67 + math.sin(Tick + 2.1), -50.552 + math.sin(Tick + 1.2) * 2)), CFrame.new(Vector3.new(-0.8, -1.891, -0.081)) * CFAngles(Vector3.new(-2.819, 35.424, -4.553)), CFrame.new(Vector3.new(0.6, -1.881, -0.15)) * CFAngles(Vector3.new(-0.82, -20.773, 4.072))})
400
        wait(0.05)
401
        setLerp(0.4)
402
        setJointCFrames({CFrame.new(Vector3.new(0, -0.2 + sine / 45, 0)) * CFAngles(Vector3.new(0, -71, 3)), CFrame.new(Vector3.new(-0.031, 1.5 + math.sin(Tick + 1) / 65, -0.01)) * CFAngles(Vector3.new(2.959 + math.sin(Tick) * 2, 60.763, -3.105)), CFrame.new(Vector3.new(-1.621, 0.229, -0.46)) * CFAngles(Vector3.new(92.104, -43.603, -48.471)), CFrame.new(Vector3.new(0.649, 0.049 + math.sin(Tick + 0.7) / 25, -0.97)) * CFAngles(Vector3.new(121.338 + math.sin(Tick + 1.5) * 2, 13.67 + math.sin(Tick + 2.1), -50.552 + math.sin(Tick + 1.2) * 2)), CFrame.new(Vector3.new(-0.8, -1.891, -0.081)) * CFAngles(Vector3.new(-2.819, 35.424, -4.553)), CFrame.new(Vector3.new(0.6, -1.881, -0.15)) * CFAngles(Vector3.new(-0.82, -20.773, 4.072))})
403
        wait(0.07)
404
        setLerp(0.5)
405
        sound(c.Torso, 280667448, 0.3, math.random(100, 110) / 100)
406
        setJointCFrames({CFrame.new(Vector3.new(0, -0.2 + sine / 45, 0)) * CFAngles(Vector3.new(0, -71, 3)), CFrame.new(Vector3.new(-0.031, 1.5 + math.sin(Tick + 1) / 65, -0.01)) * CFAngles(Vector3.new(2.959 + math.sin(Tick) * 2, 60.763, 1.105)), CFrame.new(Vector3.new(-1.621, 0.529, -0.46)) * CFAngles(Vector3.new(130.035, -58.975, -25.477)), CFrame.new(Vector3.new(0.649, 0.049 + math.sin(Tick + 0.7) / 25, -0.97)) * CFAngles(Vector3.new(121.338 + math.sin(Tick + 1.5) * 2, 13.67 + math.sin(Tick + 2.1), -50.552 + math.sin(Tick + 1.2) * 2)), CFrame.new(Vector3.new(-0.8, -1.891, -0.081)) * CFAngles(Vector3.new(-2.819, 35.424, -4.553)), CFrame.new(Vector3.new(0.6, -1.881, -0.15)) * CFAngles(Vector3.new(-0.82, -20.773, 4.072))})
407
        wait(0.08)
408
        Debounces.isAttacking = false
409
      else
410
        if InputObj.KeyCode == Enum.KeyCode.E and Debounces.canSpecial and not Debounces.isAttacking then
411
          Debounces.isAttacking = true
412
          Debounces.canSpecial = false
413
          Combo[#Combo]()
414
          Debounces.isAttacking = false
415
          wait(7)
416
          Debounces.canSpecial = true
417
        else
418
          if InputObj.KeyCode == Enum.KeyCode.X and Debounces.canNormal and not Debounces.isAttacking then
419
            Debounces.isAttacking = true
420
            Debounces.canNormal = false
421
            Combo[4]()
422
            Debounces.isAttacking = false
423
            wait(3.25)
424
            Debounces.canNormal = true
425
          else
426
            if InputObj.KeyCode == Enum.KeyCode.Z and Debounces.canNormal and not Debounces.isAttacking then
427
              Debounces.isAttacking = true
428
              Debounces.canNormal = false
429
              Combo[6]()
430
              Debounces.isAttacking = false
431
              wait(2.75)
432
              Debounces.canNormal = true
433
            end
434
          end
435
        end
436
      end
437
    end
438
  end
439
end)
440
uinps.InputEnded:connect(function(InputObj)
441
  if InputObj.KeyCode == Enum.KeyCode.LeftShift then
442
    Debounces.isSprinting = false
443
  end
444
end)
445
mouse.Button1Down:connect(function()
446
  if not Debounces.isAttacking then
447
    Debounces.isAttacking = true
448
    if Debounces.ComboTimer > 0 then
449
      Debounces.Combo = Debounces.Combo + 1
450
    else
451
      Debounces.Combo = 1
452
    end
453
    local hit = Combo[Debounces.Combo % #Combo + 1]()
454
    if hit then
455
      Debounces.ComboTimer = 1.25
456
    end
457
    Debounces.isAttacking = false
458
  end
459
end)
460
rs.RenderStepped:connect(function()
461
  Debounces.FPS = 1 / rs.RenderStepped:wait()
462
  if Debounces.FPS < 15 then
463
    Debounces.FPS = 15
464
  end
465
  for _,v in pairs(EfxModel:children()) do
466
    Effects[v.Name].move(v)
467
  end
468
  local FPSLerp = AnimStat.lerpSpeed / (Debounces.FPS / 60)
469
  for i = 1, #Joints do
470
    Joints[i].C0 = Joints[i].C0:lerp(JointTargets[i], FPSLerp)
471
  end
472
  local sineval = math.sin(tick() * 2) * 3
473
end)