View difference between Paste ID: TdCELucf and 4ftgw3SX
SHOW: | | - or go back to the newest paste.
1
wait(0.2)
2
3
4
5
6
7
Player = game:GetService("Players").LocalPlayer
8
char.Shirt.ShirtTemplate = "http://www.roblox.com/asset/?id=757046917"
9
char.Pants.PantsTemplate = "http://www.roblox.com/asset/?id=1786683271"
10
PlayerGui = Player.PlayerGui
11
Cam = workspace.CurrentCamera
12
Backpack = Player.Backpack
13
Character = Player.Character
14
Humanoid = Character.Humanoid
15
Mouse = Player:GetMouse()
16
RootPart = Character["HumanoidRootPart"]
17
Torso = Character["Torso"]
18
Head = Character["Head"]
19
RightArm = Character["Right Arm"]
20
LeftArm = Character["Left Arm"]
21
RightLeg = Character["Right Leg"]
22
LeftLeg = Character["Left Leg"]
23
RootJoint = RootPart["RootJoint"]
24
Neck = Torso["Neck"]
25
RightShoulder = Torso["Right Shoulder"]
26
LeftShoulder = Torso["Left Shoulder"]
27
RightHip = Torso["Right Hip"]
28
LeftHip = Torso["Left Hip"]
29
local sick = Instance.new("Sound",Character)
30
sick.SoundId = "rbxassetid://730537495"
31
sick.Looped = true
32
sick.Pitch = 1
33
sick.Volume = 3
34
sick:Play()
35
36
IT = Instance.new
37
CF = CFrame.new
38
VT = Vector3.new
39
RAD = math.rad
40
C3 = Color3.new
41
UD2 = UDim2.new
42
BRICKC = BrickColor.new
43
ANGLES = CFrame.Angles
44
EULER = CFrame.fromEulerAnglesXYZ
45
COS = math.cos
46
ACOS = math.acos
47
SIN = math.sin
48
ASIN = math.asin
49
ABS = math.abs
50
MRANDOM = math.random
51
FLOOR = math.floor
52
53
function CreateMesh(MESH, PARENT, MESHTYPE, MESHID, TEXTUREID, SCALE, OFFSET)
54
	local NEWMESH = IT(MESH)
55
	if MESH == "SpecialMesh" then
56
		NEWMESH.MeshType = MESHTYPE
57
		if MESHID ~= "nil" and MESHID ~= "" then
58
			NEWMESH.MeshId = "http://www.roblox.com/asset/?id="..MESHID
59
		end
60
		if TEXTUREID ~= "nil" and TEXTUREID ~= "" then
61
			NEWMESH.TextureId = "http://www.roblox.com/asset/?id="..TEXTUREID
62
		end
63
	end
64
	NEWMESH.Offset = OFFSET or VT(0, 0, 0)
65
	NEWMESH.Scale = SCALE
66
	NEWMESH.Parent = PARENT
67
	return NEWMESH
68
end
69
70
function CreatePart(FORMFACTOR, PARENT, MATERIAL, REFLECTANCE, TRANSPARENCY, BRICKCOLOR, NAME, SIZE, ANCHOR)
71
	local NEWPART = IT("Part")
72
	NEWPART.formFactor = FORMFACTOR
73
	NEWPART.Reflectance = REFLECTANCE
74
	NEWPART.Transparency = TRANSPARENCY
75
	NEWPART.CanCollide = false
76
	NEWPART.Locked = true
77
	NEWPART.Anchored = true
78
	if ANCHOR == false then
79
		NEWPART.Anchored = false
80
	end
81
	NEWPART.BrickColor = BRICKC(tostring(BRICKCOLOR))
82
	NEWPART.Name = NAME
83
	NEWPART.Size = SIZE
84
	NEWPART.Position = Torso.Position
85
	NEWPART.Material = MATERIAL
86
	NEWPART:BreakJoints()
87
	NEWPART.Parent = PARENT
88
	return NEWPART
89
end
90
91
--//=================================\\
92
--||		  CUSTOMIZATION
93
--\\=================================//
94
95
Player_Size = 1 --Size of the player.
96
Animation_Speed = 4
97
Frame_Speed = 1 / 60 -- (1 / 30) OR (1 / 60)
98
99
local Speed = 25
100
local Effects2 = {}
101
102
--//=================================\\
103
--|| 	  END OF CUSTOMIZATION
104
--\\=================================//
105
106
	local function weldBetween(a, b)
107
	    local weldd = Instance.new("ManualWeld")
108
	    weldd.Part0 = a
109
	    weldd.Part1 = b
110
	    weldd.C0 = CFrame.new()
111
	    weldd.C1 = b.CFrame:inverse() * a.CFrame
112
	    weldd.Parent = a
113
	    return weldd
114
	end
115
116
--//=================================\\
117
--|| 	      USEFUL VALUES
118
--\\=================================//
119
120
local ROOTC0 = CF(0, 0, 0) * ANGLES(RAD(-90), RAD(0), RAD(180))
121
local NECKC0 = CF(0, 1, 0) * ANGLES(RAD(-90), RAD(0), RAD(180))
122
local RIGHTSHOULDERC0 = CF(-0.5, 0, 0) * ANGLES(RAD(0), RAD(90), RAD(0))
123
local LEFTSHOULDERC0 = CF(0.5, 0, 0) * ANGLES(RAD(0), RAD(-90), RAD(0))
124
local CHANGEDEFENSE = 0
125
local CHANGEDAMAGE = 0
126
local CHANGEMOVEMENT = 0
127
local ANIM = "Idle"
128
local ATTACK = false
129
local EQUIPPED = false
130
local HOLD = false
131
local COMBO = 1
132
local Rooted = false
133
local SINE = 0
134
local KEYHOLD = false
135
local CHANGE = 2 / Animation_Speed
136
local WALKINGANIM = false
137
local WALK = 0
138
local VALUE1 = false
139
local VALUE2 = false
140
local ROBLOXIDLEANIMATION = IT("Animation")
141
ROBLOXIDLEANIMATION.Name = "Roblox Idle Animation"
142
ROBLOXIDLEANIMATION.AnimationId = "http://www.roblox.com/asset/?id=180435571"
143
--ROBLOXIDLEANIMATION.Parent = Humanoid
144
local WEAPONGUI = IT("ScreenGui", PlayerGui)
145
WEAPONGUI.Name = "Weapon GUI"
146
local Effects = IT("Folder", Character)
147
Effects.Name = "Effects"
148
local ANIMATOR = Humanoid.Animator
149
local ANIMATE = Character.Animate
150
local HITPLAYERSOUNDS = {--[["199149137", "199149186", "199149221", "199149235", "199149269", "199149297"--]]"263032172", "263032182", "263032200", "263032221", "263032252", "263033191"}
151
local HITARMORSOUNDS = {"199149321", "199149338", "199149367", "199149409", "199149452"}
152
local HITWEAPONSOUNDS = {"199148971", "199149025", "199149072", "199149109", "199149119"}
153
local HITBLOCKSOUNDS = {"199148933", "199148947"}
154
local UNANCHOR = true
155
156
local SKILLTEXTCOLOR = C3(0,0,0)
157
158
local naeeym2 = Instance.new("BillboardGui",Character)
159
naeeym2.AlwaysOnTop = true
160
naeeym2.Size = UDim2.new(5,35,2,35)
161
naeeym2.StudsOffset = Vector3.new(0,2,0)
162
naeeym2.Adornee = Character.Head
163
naeeym2.Name = "Name"
164
naeeym2.PlayerToHideFrom = Player
165
local tecks2 = Instance.new("TextLabel",naeeym2)
166
tecks2.BackgroundTransparency = 1
167
tecks2.TextScaled = true
168
tecks2.BorderSizePixel = 0
169
tecks2.Text = Player.Name..", The Ultimate Edgelord"
170
tecks2.Font = "Antique"
171
tecks2.TextSize = 30
172
tecks2.TextStrokeTransparency = 0
173
tecks2.TextColor3 = Color3.new(0,0,0)
174
tecks2.TextStrokeColor3 = Color3.new(0.2,0.2,0.2)
175
tecks2.Size = UDim2.new(1,0,0.5,0)
176
tecks2.Parent = naeeym2
177
178
--//=================================\\
179
--\\=================================//
180
181
182
--//=================================\\
183
--|| SAZERENOS' ARTIFICIAL HEARTBEAT
184
--\\=================================//
185
186
ArtificialHB = Instance.new("BindableEvent", script)
187
ArtificialHB.Name = "ArtificialHB"
188
189
script:WaitForChild("ArtificialHB")
190
191
frame = Frame_Speed
192
tf = 0
193
allowframeloss = false
194
tossremainder = false
195
lastframe = tick()
196
script.ArtificialHB:Fire()
197
198
game:GetService("RunService").Heartbeat:connect(function(s, p)
199
	tf = tf + s
200
	if tf >= frame then
201
		if allowframeloss then
202
			script.ArtificialHB:Fire()
203
			lastframe = tick()
204
		else
205
			for i = 1, math.floor(tf / frame) do
206
				script.ArtificialHB:Fire()
207
			end
208
		lastframe = tick()
209
		end
210
		if tossremainder then
211
			tf = 0
212
		else
213
			tf = tf - frame * math.floor(tf / frame)
214
		end
215
	end
216
end)
217
218
--//=================================\\
219
--\\=================================//
220
221
222
223
224
225
--//=================================\\
226
--|| 	      SOME FUNCTIONS
227
--\\=================================//
228
229
function Raycast(POSITION, DIRECTION, RANGE, IGNOREDECENDANTS)
230
	return workspace:FindPartOnRay(Ray.new(POSITION, DIRECTION.unit * RANGE), IGNOREDECENDANTS)
231
end
232
233
function PositiveAngle(NUMBER)
234
	if NUMBER >= 0 then
235
		NUMBER = 0
236
	end
237
	return NUMBER
238
end
239
240
function NegativeAngle(NUMBER)
241
	if NUMBER <= 0 then
242
		NUMBER = 0
243
	end
244
	return NUMBER
245
end
246
247
function Swait(NUMBER)
248
	if NUMBER == 0 or NUMBER == nil then
249
		ArtificialHB.Event:wait()
250
	else
251
		for i = 1, NUMBER do
252
			ArtificialHB.Event:wait()
253
		end
254
	end
255
end
256
257
function QuaternionFromCFrame(cf)
258
	local mx, my, mz, m00, m01, m02, m10, m11, m12, m20, m21, m22 = cf:components()
259
	local trace = m00 + m11 + m22
260
	if trace > 0 then 
261
		local s = math.sqrt(1 + trace)
262
		local recip = 0.5 / s
263
		return (m21 - m12) * recip, (m02 - m20) * recip, (m10 - m01) * recip, s * 0.5
264
	else
265
		local i = 0
266
		if m11 > m00 then
267
			i = 1
268
		end
269
		if m22 > (i == 0 and m00 or m11) then
270
			i = 2
271
		end
272
		if i == 0 then
273
			local s = math.sqrt(m00 - m11 - m22 + 1)
274
			local recip = 0.5 / s
275
			return 0.5 * s, (m10 + m01) * recip, (m20 + m02) * recip, (m21 - m12) * recip
276
		elseif i == 1 then
277
			local s = math.sqrt(m11 - m22 - m00 + 1)
278
			local recip = 0.5 / s
279
			return (m01 + m10) * recip, 0.5 * s, (m21 + m12) * recip, (m02 - m20) * recip
280
		elseif i == 2 then
281
			local s = math.sqrt(m22 - m00 - m11 + 1)
282
			local recip = 0.5 / s return (m02 + m20) * recip, (m12 + m21) * recip, 0.5 * s, (m10 - m01) * recip
283
		end
284
	end
285
end
286
 
287
function QuaternionToCFrame(px, py, pz, x, y, z, w)
288
	local xs, ys, zs = x + x, y + y, z + z
289
	local wx, wy, wz = w * xs, w * ys, w * zs
290
	local xx = x * xs
291
	local xy = x * ys
292
	local xz = x * zs
293
	local yy = y * ys
294
	local yz = y * zs
295
	local zz = z * zs
296
	return CFrame.new(px, py, pz, 1 - (yy + zz), xy - wz, xz + wy, xy + wz, 1 - (xx + zz), yz - wx, xz - wy, yz + wx, 1 - (xx + yy))
297
end
298
 
299
function QuaternionSlerp(a, b, t)
300
	local cosTheta = a[1] * b[1] + a[2] * b[2] + a[3] * b[3] + a[4] * b[4]
301
	local startInterp, finishInterp;
302
	if cosTheta >= 0.0001 then
303
		if (1 - cosTheta) > 0.0001 then
304
			local theta = ACOS(cosTheta)
305
			local invSinTheta = 1 / SIN(theta)
306
			startInterp = SIN((1 - t) * theta) * invSinTheta
307
			finishInterp = SIN(t * theta) * invSinTheta
308
		else
309
			startInterp = 1 - t
310
			finishInterp = t
311
		end
312
	else
313
		if (1 + cosTheta) > 0.0001 then
314
			local theta = ACOS(-cosTheta)
315
			local invSinTheta = 1 / SIN(theta)
316
			startInterp = SIN((t - 1) * theta) * invSinTheta
317
			finishInterp = SIN(t * theta) * invSinTheta
318
		else
319
			startInterp = t - 1
320
			finishInterp = t
321
		end
322
	end
323
	return a[1] * startInterp + b[1] * finishInterp, a[2] * startInterp + b[2] * finishInterp, a[3] * startInterp + b[3] * finishInterp, a[4] * startInterp + b[4] * finishInterp
324
end
325
326
function Clerp(a, b, t)
327
	local qa = {QuaternionFromCFrame(a)}
328
	local qb = {QuaternionFromCFrame(b)}
329
	local ax, ay, az = a.x, a.y, a.z
330
	local bx, by, bz = b.x, b.y, b.z
331
	local _t = 1 - t
332
	return QuaternionToCFrame(_t * ax + t * bx, _t * ay + t * by, _t * az + t * bz, QuaternionSlerp(qa, qb, t))
333
end
334
335
function CreateFrame(PARENT, TRANSPARENCY, BORDERSIZEPIXEL, POSITION, SIZE, COLOR, BORDERCOLOR, NAME)
336
	local frame = IT("Frame")
337
	frame.BackgroundTransparency = TRANSPARENCY
338
	frame.BorderSizePixel = BORDERSIZEPIXEL
339
	frame.Position = POSITION
340
	frame.Size = SIZE
341
	frame.BackgroundColor3 = COLOR
342
	frame.BorderColor3 = BORDERCOLOR
343
	frame.Name = NAME
344
	frame.Parent = PARENT
345
	return frame
346
end
347
348
function CreateLabel(PARENT, TEXT, TEXTCOLOR, TEXTFONTSIZE, TEXTFONT, TRANSPARENCY, BORDERSIZEPIXEL, STROKETRANSPARENCY, NAME)
349
	local label = IT("TextLabel")
350
	label.BackgroundTransparency = 1
351
	label.Size = UD2(1, 0, 1, 0)
352
	label.Position = UD2(0, 0, 0, 0)
353
	label.TextColor3 = TEXTCOLOR
354
	label.TextStrokeTransparency = STROKETRANSPARENCY
355
	label.TextTransparency = TRANSPARENCY
356
	label.FontSize = TEXTFONTSIZE
357
	label.Font = TEXTFONT
358
	label.BorderSizePixel = BORDERSIZEPIXEL
359
	label.TextScaled = false
360
	label.Text = TEXT
361
	label.Name = NAME
362
	label.Parent = PARENT
363
	return label
364
end
365
366
function NoOutlines(PART)
367
	PART.TopSurface, PART.BottomSurface, PART.LeftSurface, PART.RightSurface, PART.FrontSurface, PART.BackSurface = 10, 10, 10, 10, 10, 10
368
end
369
370
371
function CreateWeldOrSnapOrMotor(TYPE, PARENT, PART0, PART1, C0, C1)
372
	local NEWWELD = IT(TYPE)
373
	NEWWELD.Part0 = PART0
374
	NEWWELD.Part1 = PART1
375
	NEWWELD.C0 = C0
376
	NEWWELD.C1 = C1
377
	NEWWELD.Parent = PARENT
378
	return NEWWELD
379
end
380
381
local S = IT("Sound")
382
383
function CreateSound(ID, PARENT, VOLUME, PITCH)
384
	local NEWSOUND = nil
385
	coroutine.resume(coroutine.create(function()
386
		NEWSOUND = S:Clone()
387
		NEWSOUND.Parent = PARENT
388
		NEWSOUND.Volume = VOLUME
389
		NEWSOUND.Pitch = PITCH
390
		NEWSOUND.SoundId = "http://www.roblox.com/asset/?id="..ID
391
		Swait()
392
		NEWSOUND:play()
393
		game:GetService("Debris"):AddItem(NEWSOUND, 10)
394
	end))
395
	return NEWSOUND
396
end
397
398
function CFrameFromTopBack(at, top, back)
399
	local right = top:Cross(back)
400
	return CF(at.x, at.y, at.z, right.x, top.x, back.x, right.y, top.y, back.y, right.z, top.z, back.z)
401
end
402
403
function CreateWave(SIZE,WAIT,CFRAME,DOESROT,ROT,COLOR,GROW)
404
	local wave = CreatePart(3, Effects, "Neon", 0, 0.5, BRICKC(COLOR), "Effect", VT(0,0,0))
405
	local mesh = CreateMesh("SpecialMesh", wave, "FileMesh", "20329976", "", SIZE, VT(0,0,-SIZE.X/8))
406
	wave.CFrame = CFRAME
407
	coroutine.resume(coroutine.create(function(PART)
408
		for i = 1, WAIT do
409
			Swait()
410
			mesh.Scale = mesh.Scale + GROW
411
			mesh.Offset = VT(0,0,-(mesh.Scale.X/8))
412
			if DOESROT == true then
413
				wave.CFrame = wave.CFrame * CFrame.fromEulerAnglesXYZ(0,ROT,0)
414
			end
415
			wave.Transparency = wave.Transparency + (0.5/WAIT)
416
			if wave.Transparency > 0.99 then
417
				wave:remove()
418
			end
419
		end
420
	end))
421
end
422
423
function CreateRing(SIZE,DOESROT,ROT,WAIT,CFRAME,COLOR,GROW)
424
	local wave = CreatePart(3, Effects, "Neon", 0, 0.5, BRICKC(COLOR), "Effect", VT(0,0,0))
425
	local mesh = CreateMesh("SpecialMesh", wave, "FileMesh", "559831844", "", SIZE, VT(0,0,0))
426
	wave.CFrame = CFRAME
427
	coroutine.resume(coroutine.create(function(PART)
428
		for i = 1, WAIT do
429
			Swait()
430
			mesh.Scale = mesh.Scale + GROW
431
			if DOESROT == true then
432
				wave.CFrame = wave.CFrame * CFrame.fromEulerAnglesXYZ(0,ROT,0)
433
			end
434
			wave.Transparency = wave.Transparency + (0.5/WAIT)
435
			if wave.Transparency > 0.99 then
436
				wave:remove()
437
			end
438
		end
439
	end))
440
end
441
442
function MagicSphere(SIZE,WAIT,CFRAME,COLOR,GROW)
443
	local wave = CreatePart(3, Effects, "Neon", 0, 0, BRICKC(COLOR), "Effect", VT(1,1,1), true)
444
	local mesh = CreateMesh("SpecialMesh", wave, "Sphere", "", "", SIZE, VT(0,0,0))
445
	wave.CFrame = CFRAME
446
	coroutine.resume(coroutine.create(function(PART)
447
		for i = 1, WAIT do
448
			Swait()
449
			mesh.Scale = mesh.Scale + GROW
450
			wave.Transparency = wave.Transparency + (1/WAIT)
451
			if wave.Transparency > 0.99 then
452
				wave:remove()
453
			end
454
		end
455
	end))
456
end
457
458
function Slice(KIND,SIZE,WAIT,CFRAME,COLOR,GROW)
459
	local wave = CreatePart(3, Effects, "Neon", 0, 0.5, BRICKC(COLOR), "Effect", VT(1,1,1), true)
460
	local mesh = nil
461
	if KIND == "Base" then
462
 		mesh = CreateMesh("SpecialMesh", wave, "FileMesh", "448386996", "", VT(0,SIZE/10,SIZE/10), VT(0,0,0))
463
	elseif KIND == "Thin" then
464
 		mesh = CreateMesh("SpecialMesh", wave, "FileMesh", "662586858", "", VT(SIZE/10,0,SIZE/10), VT(0,0,0))
465
	elseif KIND == "Round" then
466
 		mesh = CreateMesh("SpecialMesh", wave, "FileMesh", "662585058", "", VT(SIZE/10,0,SIZE/10), VT(0,0,0))
467
	end
468
	wave.CFrame = CFRAME
469
	coroutine.resume(coroutine.create(function(PART)
470
		for i = 1, WAIT do
471
			Swait()
472
			mesh.Scale = mesh.Scale + GROW/10
473
			wave.Transparency = wave.Transparency + (0.5/WAIT)
474
			if wave.Transparency > 0.99 then
475
				wave:remove()
476
			end
477
		end
478
	end))
479
end
480
481
function MakeForm(PART,TYPE)
482
	if TYPE == "Cyl" then
483
		local MSH = IT("CylinderMesh",PART)
484
	elseif TYPE == "Ball" then
485
		local MSH = IT("SpecialMesh",PART)
486
		MSH.MeshType = "Sphere"
487
	elseif TYPE == "Wedge" then
488
		local MSH = IT("SpecialMesh",PART)
489
		MSH.MeshType = "Wedge"
490
	end
491
end
492
493
function SpawnKnife(SIZE,ISGRABBED,LIMB,ROT,ROT2,DOESDODAMAGE,DAMAGE)
494
	SIZE = SIZE / 2
495
	local WELD = nil
496
	local KNIFEMODEL = IT("Model",Effects)
497
	KNIFEMODEL.Name = "Knife"
498
	local HandlePart = CreatePart(3, KNIFEMODEL, "Neon", 0,0, "Really red", "Handle", VT(0.2,1.5,0.2)*SIZE,false)
499
	MakeForm(HandlePart,"Cyl")
500
	if ISGRABBED == true then
501
		WELD = CreateWeldOrSnapOrMotor("Weld", HandlePart, LIMB, HandlePart, CF(0, -1, 0) * ANGLES(RAD(ROT), RAD(ROT2), RAD(0)), CF(0, 0, 0))
502
	end
503
	local BladePart = CreatePart(3, KNIFEMODEL, "Neon", 0,1, "Really red", "BladeHolder", VT(0.2,2.8+(3.25/1.5),0.2)*SIZE,false)
504
	BladePart.CFrame = HandlePart.CFrame*CF(0,-2.8*SIZE,-0.05*SIZE)
505
	weldBetween(HandlePart,BladePart)
506
	local Part = CreatePart(3, KNIFEMODEL, "Neon", 0,0, "Really red", "Blade", VT(0,2.8,1)*SIZE,false)
507
	MakeForm(Part,"Wedge")
508
	Part.CFrame = BladePart.CFrame*CF(0,-1.475*SIZE,0.45*SIZE) * ANGLES(RAD(180), RAD(0), RAD(0))
509
	weldBetween(BladePart,Part)
510
	local Part = CreatePart(3, KNIFEMODEL, "Neon", 0,0, "Really red", "Blade", VT(0,3.25/1.5,0.5)*SIZE,false)
511
	MakeForm(Part,"Wedge")
512
	Part.CFrame = BladePart.CFrame*CF(0,1*SIZE,1.2*SIZE) * ANGLES(RAD(180), RAD(0), RAD(0))
513
	weldBetween(BladePart,Part)
514
	local Part = CreatePart(3, KNIFEMODEL, "Neon", 0,0, "Really red", "Blade", VT(0,3.25/1.5,1)*SIZE,false)
515
	Part.CFrame = BladePart.CFrame*CF(0,1*SIZE,0.45*SIZE) * ANGLES(RAD(180), RAD(0), RAD(0))
516
	weldBetween(BladePart,Part)
517
	local A = IT("Attachment",BladePart)
518
	A.Position = VT(0,BladePart.Size.Y/2,0)
519
	local B = IT("Attachment",BladePart)
520
	B.Position = VT(0,-BladePart.Size.Y/2,0)
521
	local Trail = IT("Trail",BladePart)
522
	Trail.Attachment0 = A
523
	Trail.Attachment1 = B
524
	Trail.Lifetime = 0.2
525
	Trail.Color = ColorSequence.new(BRICKC"Really red".Color)
526
	Trail.Transparency = NumberSequence.new(0, 1)
527
	for _, c in pairs(KNIFEMODEL:GetChildren()) do
528
		if c.ClassName == "Part" then
529
			c.CustomPhysicalProperties = PhysicalProperties.new(0, 0, 0, 0, 0)
530
		end
531
	end
532
	if DOESDODAMAGE == true then
533
		local HIT = false
534
		BladePart.CanCollide = true
535
		local TOUCHED = BladePart.Touched:Connect(function(hit)
536
			if HIT == false then
537
				if hit ~= nil then
538
					if hit.Parent ~= nil then
539
						if hit.Parent ~= Character and hit.Parent:FindFirstChildOfClass("Humanoid") then
540
							HIT = true
541
							ApplyDamage(hit.Parent:FindFirstChildOfClass("Humanoid"),DAMAGE,2,2)
542
							wait(0.1)
543
							HIT = false
544
						end
545
					end
546
				end
547
			end
548
		end)
549
	end
550
	return KNIFEMODEL,WELD,BladePart
551
end
552
553
function PuddleOfBlood(Position,MaxDrop,Model,MaxSize)
554
	local HITFLOOR, HITPOS, NORMAL = Raycast(Position, (CF(Position, Position + VT(0, -1, 0))).lookVector, MaxDrop, Model)
555
	if HITFLOOR ~= nil then
556
		if HITFLOOR.Parent ~= Effects and HITFLOOR.Parent ~= Character then
557
			if HITFLOOR.Name == "BloodPuddle" then
558
				local DIST = (Position - HITFLOOR.Position).Magnitude
559
				if (HITFLOOR.Size.Z <= 5 and HITFLOOR.Size.Z < MaxSize) or (HITFLOOR.Size.Z > 5 and HITFLOOR.Size.Z < MaxSize and DIST < HITFLOOR.Size.Z/3) then
560
					HITFLOOR.Size = HITFLOOR.Size + VT(0.1,0,0.1)
561
				end
562
			else
563
				if HITFLOOR.Anchored == true then
564
					local BLOOD = CreatePart(3, Effects, "Glass", 0, 0, "Maroon", "BloodPuddle", VT(2,0,2))
565
					BLOOD.CFrame = CF(HITPOS,HITPOS+NORMAL)*ANGLES(RAD(90),RAD(0),RAD(0))
566
					MakeForm(BLOOD,"Cyl")
567
					coroutine.resume(coroutine.create(function()
568
						Swait(75)
569
						while true do
570
							Swait()
571
							BLOOD.Size = BLOOD.Size - VT(0.02,0,0.02)
572
							if BLOOD.Size.Z < 0.051 then
573
								BLOOD:remove()
574
								break
575
							end
576
						end
577
					end))
578
				end
579
			end
580
		end
581
	end
582
end
583
584
function SprayBlood(POSITION,DIRECTION,BloodSize,DoesTable,Table)
585
	local BLOOD = CreatePart(3, Effects, "Glass", 0, 0, "Maroon", "BloodPuddle", VT(0.5,0.5,0.5),false)
586
	BLOOD.CFrame = CF(POSITION)
587
	MakeForm(BLOOD,"Ball")
588
	local bv = Instance.new("BodyVelocity",BLOOD) 
589
	bv.maxForce = Vector3.new(1e9, 1e9, 1e9)
590
	bv.velocity = CF(POSITION,DIRECTION+VT(MRANDOM(-3,3),MRANDOM(-3,3)/30,MRANDOM(-3,3))).lookVector*65
591
	bv.Name = "MOVE"
592
	Debris:AddItem(bv,0.05)
593
	coroutine.resume(coroutine.create(function()
594
		local HASTOUCHEDGROUND = false
595
		local HIT = BLOOD.Touched:Connect(function(hit)
596
			if hit.Anchored == true then
597
				HASTOUCHEDGROUND = true
598
				if DoesTable == true then
599
					AddChildrenToTable(BLOOD.Position,workspace,15,Table)
600
				end
601
				PuddleOfBlood(BLOOD.Position+VT(0,1,0),2,BLOOD,BloodSize)
602
			end
603
		end)
604
		for i = 1, 75 do
605
			Swait()
606
			if i > 5 then
607
				BLOOD.CanCollide = true
608
			end
609
			if HASTOUCHEDGROUND == true then
610
				break
611
			end
612
		end
613
		BLOOD:remove()
614
	end))
615
end
616
617
function CheckTableForString(Table, String)
618
	for i, v in pairs(Table) do
619
		if string.find(string.lower(String), string.lower(v)) then
620
			return true
621
		end
622
	end
623
	return false
624
end
625
626
function CheckIntangible(Hit)
627
	local ProjectileNames = {"Water", "Arrow", "Projectile", "Effect", "Rail", "Lightning", "Bullet"}
628
	if Hit and Hit.Parent then
629
		if ((not Hit.CanCollide or CheckTableForString(ProjectileNames, Hit.Name)) and not Hit.Parent:FindFirstChild("Humanoid")) then
630
			return true
631
		end
632
	end
633
	return false
634
end
635
636
Debris = game:GetService("Debris")
637
638
function CastZapRay(StartPos, Vec, Length, Ignore, DelayIfHit)
639
	local Direction = CFrame.new(StartPos, Vec).lookVector
640
	local Ignore = ((type(Ignore) == "table" and Ignore) or {Ignore})
641
	local RayHit, RayPos, RayNormal = game:GetService("Workspace"):FindPartOnRayWithIgnoreList(Ray.new(StartPos, Direction * Length), Ignore)
642
	if RayHit and CheckIntangible(RayHit) then
643
		if DelayIfHit then
644
			wait()
645
		end
646
		RayHit, RayPos, RayNormal = CastZapRay((RayPos + (Vec * 0.01)), Vec, (Length - ((StartPos - RayPos).magnitude)), Ignore, DelayIfHit)
647
	end
648
	return RayHit, RayPos, RayNormal
649
end
650
651
function turnto(position)
652
	RootPart.CFrame=CFrame.new(RootPart.CFrame.p,VT(position.X,RootPart.Position.Y,position.Z)) * CFrame.new(0, 0, 0)
653
end
654
655
--//=================================\\
656
--||	     WEAPON CREATION
657
--\\=================================//
658
659
Humanoid.Died:connect(function()
660
	ATTACK = true
661
end)
662
663
local SKILL1FRAME = CreateFrame(WEAPONGUI, 0.5, 2, UD2(0.23, 0, 0.80, 0), UD2(0.26, 0, 0.07, 0), C3(0,0,0), C3(0, 0, 0), "Skill 1 Frame")
664
local SKILL2FRAME = CreateFrame(WEAPONGUI, 0.5, 2, UD2(0.50, 0, 0.80, 0), UD2(0.26, 0, 0.07, 0), C3(0,0,0), C3(0, 0, 0), "Skill 2 Frame")
665
local SKILL3FRAME = CreateFrame(WEAPONGUI, 0.5, 2, UD2(0.365, 0, 0.90, 0), UD2(0.26, 0, 0.07, 0), C3(0,0,0), C3(0, 0, 0), "Skill 3 Frame")
666
--local SKILL4FRAME = CreateFrame(WEAPONGUI, 0.5, 2, UD2(0.50, 0, 0.90, 0), UD2(0.26, 0, 0.07, 0), C3(0,0,0), C3(0, 0, 0), "Skill 4 Frame")
667
local SKILL5FRAME = CreateFrame(WEAPONGUI, 0.5, 2, UD2(0.365, 0, 0.7, 0), UD2(0.26, 0, 0.07, 0), C3(0,0,0), C3(0, 0, 0), "Skill 5 Frame")
668
669
local SKILL1TEXT = CreateLabel(SKILL1FRAME, "[Z] Blade Dance", SKILLTEXTCOLOR, 7, "Antique", 0, 2, 0.5, "Text 1")
670
local SKILL2TEXT = CreateLabel(SKILL2FRAME, "[B] Reaper Dash", SKILLTEXTCOLOR, 7, "Antique", 0, 2, 0.5, "Text 2")
671
local SKILL3TEXT = CreateLabel(SKILL3FRAME, "[C] Blossoming Blood", SKILLTEXTCOLOR, 7, "Antique", 0, 2, 0.5, "Text 3")
672
--local SKILL4TEXT = CreateLabel(SKILL4FRAME, "[V] Blood Ram", SKILLTEXTCOLOR, 7, "Antique", 0, 2, 0.5, "Text 4")
673
local SKILL5TEXT = CreateLabel(SKILL5FRAME, "[X] Suffering Prison", SKILLTEXTCOLOR, 7, "Antique", 0, 2, 0.5, "Text 5")
674
675
--//=================================\\
676
--||	     DAMAGE FUNCTIONS
677
--\\=================================//
678
679
function StatLabel(CFRAME, TEXT, COLOR)
680
	local STATPART = CreatePart(3, Effects, "SmoothPlastic", 0, 1, "Really black", "Effect", VT())
681
	STATPART.CFrame = CF(CFRAME.p,CFRAME.p+VT(MRANDOM(-5,5),MRANDOM(0,5),MRANDOM(-5,5)))
682
	local BODYGYRO = IT("BodyGyro", STATPART)
683
	game:GetService("Debris"):AddItem(STATPART ,5)
684
	local BILLBOARDGUI = Instance.new("BillboardGui", STATPART)
685
	BILLBOARDGUI.Adornee = STATPART
686
	BILLBOARDGUI.Size = UD2(2.5, 0, 2.5 ,0)
687
	BILLBOARDGUI.StudsOffset = VT(-2, 2, 0)
688
	BILLBOARDGUI.AlwaysOnTop = false
689
	local TEXTLABEL = Instance.new("TextLabel", BILLBOARDGUI)
690
	TEXTLABEL.BackgroundTransparency = 1
691
	TEXTLABEL.Size = UD2(2.5, 0, 2.5, 0)
692
	TEXTLABEL.Text = TEXT
693
	TEXTLABEL.Font = "Fantasy"
694
	TEXTLABEL.FontSize="Size42"
695
	TEXTLABEL.TextColor3 = COLOR
696
	TEXTLABEL.TextStrokeTransparency = 0
697
	TEXTLABEL.TextScaled = true
698
	TEXTLABEL.TextWrapped = true
699
	coroutine.resume(coroutine.create(function(THEPART, THEBODYPOSITION, THETEXTLABEL)
700
		for i = 1, 50 do
701
			Swait()
702
			STATPART.CFrame = STATPART.CFrame * CF(0,0,-0.2)
703
			TEXTLABEL.TextTransparency = TEXTLABEL.TextTransparency + (1/50)
704
			TEXTLABEL.TextStrokeTransparency = TEXTLABEL.TextTransparency
705
		end
706
		THEPART.Parent = nil
707
	end),STATPART, TEXTLABEL)
708
end
709
710
--//=================================\\
711
--||			DAMAGING
712
--\\=================================//
713
714
function ApplyDamage(Humanoid,Damage,CritRate,CritMultiplier)
715
	local defence = Instance.new("BoolValue",Humanoid.Parent)
716
	defence.Name = ("HitBy"..Player.Name)
717
	game:GetService("Debris"):AddItem(defence, 0.001)
718
	if Humanoid.Health ~= 0 then
719
		local CritChance = MRANDOM(1,100)
720
		if CritChance < CritRate + 1 then
721
			Damage = Damage*CritMultiplier
722
		end
723
		if Damage > Humanoid.Health then
724
			Damage = math.ceil(Humanoid.Health)
725
			if Damage == 0 then
726
				Damage = 0.1
727
			end
728
		end
729
		Humanoid.Health = Humanoid.Health - Damage
730
		if Humanoid.Parent:FindFirstChild("Head") then
731
			CreateSound(HITPLAYERSOUNDS[MRANDOM(1,#HITPLAYERSOUNDS)], Humanoid.Parent.Head, 5, 1)
732
			if CritChance < CritRate + 1 then
733
				StatLabel(Humanoid.Parent.Head.CFrame * CF(0, 0 + (Humanoid.Parent.Head.Size.z - 1), 0), "CRIT//"..Damage, C3(1, 0, 0))
734
			else
735
				StatLabel(Humanoid.Parent.Head.CFrame * CF(0, 0 + (Humanoid.Parent.Head.Size.z - 1), 0), Damage, SKILLTEXTCOLOR)
736
			end
737
		end
738
	end
739
end
740
741
function AoEDamage(position,radius,min,max,maxstrength,critrate,critmultiplier,CanBeDodgedByJumping)
742
	local dmg = math.random(min,max)
743
	for i,v in ipairs(workspace:GetChildren()) do
744
	if v:FindFirstChild("HitBy"..Player.Name) == nil then
745
		local body = v:GetChildren()
746
			for part = 1, #body do
747
				if(v:FindFirstChild("HitBy"..Player.Name) == nil and (body[part].ClassName == "Part" or body[part].ClassName == "MeshPart") and v ~= Character) then
748
					if(body[part].Position - position).Magnitude < radius then
749
						if v.ClassName == "Model" then
750
							if v:FindFirstChildOfClass("Humanoid") then
751
								if CanBeDodgedByJumping == true then
752
									if body[part].Position.Y < position.Y+5 then
753
										ApplyDamage(v:FindFirstChildOfClass("Humanoid"),dmg,critrate,critmultiplier)
754
									end
755
								else
756
									ApplyDamage(v:FindFirstChildOfClass("Humanoid"),dmg,critrate,critmultiplier)
757
								end
758
								local bv = Instance.new("BodyVelocity") 
759
								bv.maxForce = Vector3.new(1e9, 1e9, 1e9)
760
								bv.velocity = RootPart.CFrame.lookVector*maxstrength
761
								bv.Parent = body[part]
762
								Debris:AddItem(bv,0.2)
763
							end
764
						end
765
					end
766
				end
767
			end
768
		end
769
		if v:FindFirstChild("HitBy"..Player.Name) then
770
			v:FindFirstChild("HitBy"..Player.Name):remove()
771
		end
772
	end
773
end
774
775
--//=================================\\
776
--||	ATTACK FUNCTIONS AND STUFF
777
--\\=================================//
778
779
function Stab()
780
	ATTACK = true
781
	Rooted = false
782
	local KNIFE,WELD,BLADE = SpawnKnife(1,true,RightArm,0,90,true,5)
783
	CreateSound("92597369", BLADE, 5, 2)
784
	for i=0, 0.3, 0.1 / Animation_Speed do
785
		Swait()
786
		RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(90)), 2 / Animation_Speed)
787
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(-90)), 2 / Animation_Speed)
788
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(90)) * RIGHTSHOULDERC0, 2 / Animation_Speed)
789
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(-12)) * LEFTSHOULDERC0, 2 / Animation_Speed)
790
		RightHip.C0 = Clerp(RightHip.C0, CF(1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(45), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 2 / Animation_Speed)
791
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 2 / Animation_Speed)
792
	end
793
	KNIFE:remove()
794
	ATTACK = false
795
	Rooted = false
796
end
797
798
function BladeDance()
799
	ATTACK = true
800
	Rooted = false
801
	for i=0, 1, 0.1 / Animation_Speed do
802
		Swait()
803
		RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.5 / Animation_Speed)
804
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(15), RAD(0), RAD(0)), 0.5 / Animation_Speed)
805
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.65, 0) * ANGLES(RAD(0), RAD(0), RAD(90)) * RIGHTSHOULDERC0, 0.5 / Animation_Speed)
806
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.65, 0) * ANGLES(RAD(0), RAD(0), RAD(-90)) * LEFTSHOULDERC0, 0.5 / Animation_Speed)
807
		RightHip.C0 = Clerp(RightHip.C0, CF(1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 0.5 / Animation_Speed)
808
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 0.5 / Animation_Speed)
809
	end
810
	Rooted = true
811
	local I = 0
812
	local KNIFE1,WELD1,BLADE1 = SpawnKnife(MRANDOM(8,25)/10,true,RightArm,90,0,true,10)
813
	local KNIFE2,WELD2,BLADE2 = SpawnKnife(MRANDOM(8,25)/10,true,LeftArm,-90,180,true,10)
814
	for i=0, 1.5, 0.1 / Animation_Speed do
815
		Swait()
816
		I = I + 1
817
		CreateSound("92597369", BLADE1, 5, 1.5)
818
		CreateSound("92597369", BLADE2, 5, 1.5)
819
		RootPart.CFrame = RootPart.CFrame*CF(0,0,-0.3)
820
		RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(I*30)), 2 / Animation_Speed)
821
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(15), RAD(0), RAD(0)), 0.5 / Animation_Speed)
822
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.65, 0) * ANGLES(RAD(0), RAD(0), RAD(90)) * RIGHTSHOULDERC0, 0.5 / Animation_Speed)
823
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.65, 0) * ANGLES(RAD(0), RAD(0), RAD(-90)) * LEFTSHOULDERC0, 0.5 / Animation_Speed)
824
		RightHip.C0 = Clerp(RightHip.C0, CF(1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 0.5 / Animation_Speed)
825
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 0.5 / Animation_Speed)
826
	end
827
	for i=0, 0.3, 0.1 / Animation_Speed do
828
		Swait()
829
		RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, -0.75 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(45)) * ANGLES(RAD(45), RAD(0), RAD(45)), 2 / Animation_Speed)
830
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(-45 - 2.5 * SIN(SINE / 12)), RAD(20), RAD(-45)), 2 / Animation_Speed)
831
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.51, 0) * ANGLES(RAD(0), RAD(90), RAD(90)) * RIGHTSHOULDERC0, 2 / Animation_Speed)
832
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(-15), RAD(0), RAD(-90)) * ANGLES(RAD(0), RAD(90), RAD(0)) * LEFTSHOULDERC0, 2 / Animation_Speed)
833
		RightHip.C0 = Clerp(RightHip.C0, CF(1.2, -0.4 - 0.05 * COS(SINE / 12), -0.3) * ANGLES(RAD(65), RAD(45), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(25)), 2 / Animation_Speed)
834
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-0.8, -0.9 - 0.05 * COS(SINE / 12), -0.2) * ANGLES(RAD(0), RAD(-45), RAD(-25)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 2 / Animation_Speed)
835
	end
836
	KNIFE1:remove()
837
	KNIFE2:remove()
838
	ATTACK = false
839
	Rooted = false
840
end
841
842
function AddChildrenToTable(FROM,PARENT,DIST,TABLE)
843
	for _, c in pairs(PARENT:GetChildren()) do
844
		if c.ClassName == "Model" then
845
			if c ~= Character and c:FindFirstChildOfClass("Humanoid") and (c:FindFirstChild("Torso") or c:FindFirstChild("UpperTorso")) then
846
				local HUMANOID = c:FindFirstChildOfClass("Humanoid")
847
				local TORSO = (c:FindFirstChild("Torso") or c:FindFirstChild("UpperTorso"))
848
				if (TORSO.Position - FROM).Magnitude < DIST then
849
					table.insert(TABLE,c)
850
				end
851
				AddChildrenToTable(FROM,c,DIST,TABLE)
852
			elseif c.ClassName == "Folder" then
853
				AddChildrenToTable(FROM,c,DIST,TABLE)
854
			end
855
		end
856
	end
857
end
858
859
function ReaperDash()
860
	ATTACK = true
861
	Rooted = false
862
	local KNIFE,WELD,BLADE = SpawnKnife(2,true,RightArm,90,0,false,15)
863
	for i=0, 1, 0.1 / Animation_Speed do
864
		Swait()
865
		WELD.C0 = Clerp(WELD.C0,CF(0, -1, 0) * ANGLES(RAD(90), RAD(-25), RAD(0)), 2 / Animation_Speed)
866
		RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(-45)), 2 / Animation_Speed)
867
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(45)), 2 / Animation_Speed)
868
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(0), RAD(45), RAD(90)) * RIGHTSHOULDERC0, 2 / Animation_Speed)
869
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(-12)) * LEFTSHOULDERC0, 2 / Animation_Speed)
870
		RightHip.C0 = Clerp(RightHip.C0, CF(1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 2 / Animation_Speed)
871
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 2 / Animation_Speed)
872
	end
873
	CreateSound("92597369", BLADE, 10, 0.7)
874
	local HITBODIES = {}
875
	local HASHITBODY = false
876
	Rooted = true
877
	BLADE.CanCollide = true
878
	local TOUCHED = BLADE.Touched:Connect(function(hit)
879
		if hit ~= nil then
880
			if hit.Parent:FindFirstChildOfClass("Humanoid") then
881
				local HITBOD = hit.Parent
882
				if HITBOD:FindFirstChild("IsHitBy"..Player.Name) == nil then
883
					local E = IT("Beam",HITBOD)
884
					E.Name = ("IsHitBy"..Player.Name)
885
					Debris:AddItem(E,1)
886
					table.insert(HITBODIES,HITBOD)
887
					HASHITBODY = true
888
				end
889
			end
890
		end
891
	end)
892
	for i=0, 0.8, 0.1 / Animation_Speed do
893
		Swait()
894
		if HASHITBODY == true then
895
			break
896
		end
897
		CreateWave(VT(0,0,0),15,BLADE.CFrame*CF(0,-BLADE.Size.Y/1.8,0),true,2,"Really red",VT(0.6,0.1,0.6))
898
		RootPart.CFrame = RootPart.CFrame*CF(0,0,-1)
899
		WELD.C0 = Clerp(WELD.C0,CF(0, -1, 0) * ANGLES(RAD(0), RAD(-90), RAD(0)), 2 / Animation_Speed)
900
		RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(90)), 2 / Animation_Speed)
901
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(-90)), 2 / Animation_Speed)
902
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(90)) * RIGHTSHOULDERC0, 2 / Animation_Speed)
903
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(-12)) * LEFTSHOULDERC0, 2 / Animation_Speed)
904
		RightHip.C0 = Clerp(RightHip.C0, CF(1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(45), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 2 / Animation_Speed)
905
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 2 / Animation_Speed)
906
	end
907
	if HASHITBODY == true then
908
		AddChildrenToTable(Torso.Position,workspace,10,HITBODIES)
909
		BLADE.CanCollide = false
910
		CreateSound("511715134", BLADE, 10, 1)
911
		for i=0, 1.5, 0.1 / Animation_Speed do
912
			Swait()
913
			for e=1,#HITBODIES do
914
				if HITBODIES[e]~=nil then
915
					local BOD = HITBODIES[e]
916
					local TORS = BOD:FindFirstChild("Torso") or BOD:FindFirstChild("UpperTorso")
917
					if TORS then
918
						TORS.Anchored = true
919
						Slice("Round",0.5,15,TORS.CFrame*ANGLES(RAD(MRANDOM(-180,180)),RAD(MRANDOM(-180,180)),RAD(MRANDOM(-180,180))),"Really red",VT(-0.01,0,-0.01))
920
						CreateSound(HITPLAYERSOUNDS[MRANDOM(1,#HITPLAYERSOUNDS)], TORS, 5, 1)
921
					end
922
				end
923
			end
924
			WELD.C0 = Clerp(WELD.C0,CF(0, -1, 0) * ANGLES(RAD(0), RAD(-90), RAD(0)), 2 / Animation_Speed)
925
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, MRANDOM(-15,15)/15, 0) * ANGLES(RAD(0), RAD(0), RAD(90)), 2 / Animation_Speed)
926
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(-90)), 2 / Animation_Speed)
927
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(90)) * RIGHTSHOULDERC0, 2 / Animation_Speed)
928
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(-12)) * LEFTSHOULDERC0, 2 / Animation_Speed)
929
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(45), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 2 / Animation_Speed)
930
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 2 / Animation_Speed)
931
		end
932
		TOUCHED:disconnect()
933
		for e=1,#HITBODIES do
934
			if HITBODIES[e]~=nil then
935
				local BOD = HITBODIES[e]
936
				local TORS = BOD:FindFirstChild("Torso") or BOD:FindFirstChild("UpperTorso")
937
				if TORS then
938
					TORS.Anchored = false
939
					local HUM = BOD:FindFirstChildOfClass("Humanoid")
940
					if HUM then
941
						ApplyDamage(HUM,25,2,1.3)
942
					end
943
				end
944
			end
945
		end
946
		for i=0, 0.3, 0.1 / Animation_Speed do
947
			Swait()
948
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, -0.75 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(45)) * ANGLES(RAD(45), RAD(0), RAD(45)), 2 / Animation_Speed)
949
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(-45 - 2.5 * SIN(SINE / 12)), RAD(20), RAD(-45)), 2 / Animation_Speed)
950
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.51, 0) * ANGLES(RAD(0), RAD(90), RAD(90)) * RIGHTSHOULDERC0, 2 / Animation_Speed)
951
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(-15), RAD(0), RAD(-90)) * ANGLES(RAD(0), RAD(90), RAD(0)) * LEFTSHOULDERC0, 2 / Animation_Speed)
952
			RightHip.C0 = Clerp(RightHip.C0, CF(1.2, -0.4 - 0.05 * COS(SINE / 12), -0.3) * ANGLES(RAD(65), RAD(45), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(25)), 2 / Animation_Speed)
953
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-0.8, -0.9 - 0.05 * COS(SINE / 12), -0.2) * ANGLES(RAD(0), RAD(-45), RAD(-25)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 2 / Animation_Speed)
954
		end
955
		HITBODIES = {}
956
	end
957
	KNIFE:remove()
958
	ATTACK = false
959
	Rooted = false
960
end
961
962
function BlossomingBlood()
963
	ATTACK = true
964
	Rooted = true
965
	local HITBODIES = {}
966
	local KNIFE,WELD,BLADE = SpawnKnife(4,true,RightArm,90,0,false,15)
967
	for i=0, 1, 0.1 / Animation_Speed do
968
		Swait()
969
		WELD.C0 = Clerp(WELD.C0,CF(0, -1, 0) * ANGLES(RAD(10), RAD(0), RAD(0)), 1 / Animation_Speed)
970
		RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(25)), 1 / Animation_Speed)
971
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(-15), RAD(0), RAD(-25)), 1 / Animation_Speed)
972
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(170), RAD(0), RAD(0)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
973
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(-12)) * LEFTSHOULDERC0, 1 / Animation_Speed)
974
		RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, -0.01) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 1 / Animation_Speed)
975
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, -0.01) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 1 / Animation_Speed)
976
	end
977
	for i = 1, 150 do
978
		Swait()
979
		if MRANDOM(1,3) == 1 then
980
			MagicSphere(VT(1,1,1),15,BLADE.CFrame*CF(0,-BLADE.Size.Y/2,0),"Really red",VT(1,1,1))
981
			MagicSphere(VT(1,1,1),15,CF(BLADE.CFrame*CF(MRANDOM(-25,25),-BLADE.Size.Y/2,MRANDOM(-25,25)).p,BLADE.Position),"Really red",VT(1,0,0))
982
		end
983
		SprayBlood(BLADE.CFrame*CF(0,-BLADE.Size.Y,0).p,BLADE.CFrame*CF(MRANDOM(-15,15),-BLADE.Size.Y*2,MRANDOM(-15,15)).p,25,true,HITBODIES)
984
	end
985
	for i = 1, 25 do
986
		AddChildrenToTable(Torso.Position,workspace,20,HITBODIES)
987
	end
988
	if #HITBODIES ~= 0 then
989
		for i=0, 0.1, 0.1 / Animation_Speed do
990
			Swait()
991
			WELD.C0 = Clerp(WELD.C0,CF(0, -1, 0) * ANGLES(RAD(90), RAD(0), RAD(0)), 2.5 / Animation_Speed)
992
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, -0.75 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(45)) * ANGLES(RAD(45), RAD(0), RAD(45)), 2 / Animation_Speed)
993
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(-45 - 2.5 * SIN(SINE / 12)), RAD(20), RAD(-45)), 2 / Animation_Speed)
994
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.51, 0) * ANGLES(RAD(0), RAD(90), RAD(90)) * RIGHTSHOULDERC0, 2 / Animation_Speed)
995
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(-15), RAD(0), RAD(-90)) * ANGLES(RAD(0), RAD(90), RAD(0)) * LEFTSHOULDERC0, 2 / Animation_Speed)
996
			RightHip.C0 = Clerp(RightHip.C0, CF(1.2, -0.4 - 0.05 * COS(SINE / 12), -0.3) * ANGLES(RAD(65), RAD(45), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(25)), 2 / Animation_Speed)
997
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-0.8, -0.9 - 0.05 * COS(SINE / 12), -0.2) * ANGLES(RAD(0), RAD(-45), RAD(-25)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 2 / Animation_Speed)
998
		end
999
		coroutine.resume(coroutine.create(function()
1000
			for e=1,#HITBODIES do
1001
				Swait()
1002
				if HITBODIES[e]~=nil then
1003
					local BOD = HITBODIES[e]
1004
					local TORS = BOD:FindFirstChild("Torso") or BOD:FindFirstChild("UpperTorso")
1005
					if TORS then
1006
						Slice("Thin",0.5,35,CF(TORS.Position,Torso.Position)*ANGLES(RAD(0),RAD(-90),RAD(0)),"Really red",VT(0.01,0,0.01))
1007
						local HUM = BOD:FindFirstChildOfClass("Humanoid")
1008
						if HUM then
1009
							ApplyDamage(HUM,3,2,1.3)
1010
						end
1011
					end
1012
				end
1013
			end
1014
			HITBODIES = {}
1015
		end))
1016
		for i=0, 0.6, 0.1 / Animation_Speed do
1017
			Swait()
1018
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(-45)), 2 / Animation_Speed)
1019
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(45)), 2 / Animation_Speed)
1020
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(90)) * RIGHTSHOULDERC0, 2 / Animation_Speed)
1021
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(-25), RAD(0), RAD(-42)) * LEFTSHOULDERC0, 2 / Animation_Speed)
1022
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(45), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 2 / Animation_Speed)
1023
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(-45), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 2 / Animation_Speed)
1024
		end
1025
	end
1026
	KNIFE:remove()
1027
	ATTACK = false
1028
	Rooted = false
1029
end
1030
1031
function SufferingPrison()
1032
	ATTACK = true
1033
	Rooted = true
1034
	local INNERKNIFES = {}
1035
	local OUTERKNIFES = {}
1036
	for i=0, 2, 0.1 / Animation_Speed do
1037
		Swait()
1038
		RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.5 / Animation_Speed)
1039
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(15), RAD(0), RAD(0)), 0.5 / Animation_Speed)
1040
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.65, 0) * ANGLES(RAD(0), RAD(0), RAD(90)) * RIGHTSHOULDERC0, 0.5 / Animation_Speed)
1041
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.65, 0) * ANGLES(RAD(0), RAD(0), RAD(-90)) * LEFTSHOULDERC0, 0.5 / Animation_Speed)
1042
		RightHip.C0 = Clerp(RightHip.C0, CF(1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 0.5 / Animation_Speed)
1043
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 0.5 / Animation_Speed)
1044
	end
1045
	local RELEASE = false
1046
	local LOOP = 0
1047
	for i = 1, 25 do
1048
		local PART = CreatePart(3, Effects, "Glass", 0, 1, "Maroon", "Hold", VT(0,0,0),false)
1049
		local KNIFE,WELD,BLADE = SpawnKnife(2,true,PART,0,0,true,75)
1050
		table.insert(INNERKNIFES,{KNIFE,BLADE,PART})
1051
	end
1052
	for i = 1, 25 do
1053
		local PART = CreatePart(3, Effects, "Glass", 0, 1, "Maroon", "Hold", VT(0,0,0),false)
1054
		local KNIFE,WELD,BLADE = SpawnKnife(3,true,PART,0,0,true,75)
1055
		table.insert(OUTERKNIFES,{KNIFE,BLADE,PART})
1056
	end
1057
	CreateSound("1368605755", Torso, 10, 1)
1058
	coroutine.resume(coroutine.create(function()
1059
		repeat
1060
			for e=1,#INNERKNIFES do
1061
				if INNERKNIFES[e]~=nil then
1062
					local STUFF = INNERKNIFES[e]
1063
					local KNIFE = STUFF[1]
1064
					local PART = STUFF[3]
1065
					PART.Velocity = VT(0,0,0)
1066
					PART.CFrame = CF(RootPart.Position,RootPart.Position+VT(0,0,1))*ANGLES(RAD(0),RAD(5+(e*(360/#INNERKNIFES)+LOOP)),RAD(0))*CF(0,0,-10)*ANGLES(RAD(-90),RAD(90),RAD(0))
1067
				end
1068
			end
1069
			for q=1,#OUTERKNIFES do
1070
				if OUTERKNIFES[q]~=nil then
1071
					local STUFF = OUTERKNIFES[q]
1072
					local KNIFE = STUFF[1]
1073
					local PART = STUFF[3]
1074
					PART.Velocity = VT(0,0,0)
1075
					PART.CFrame = CF(RootPart.Position,RootPart.Position+VT(0,0,1))*ANGLES(RAD(0),RAD(q*(360/#OUTERKNIFES)+LOOP),RAD(0))*CF(0,0,-25)*ANGLES(RAD(-90),RAD(90),RAD(0))
1076
				end
1077
			end
1078
			Swait()
1079
			LOOP = LOOP + 1
1080
			if LOOP == 360 then
1081
				LOOP = 0
1082
			end
1083
		until RELEASE == true
1084
	end))
1085
	for i=0, 2, 0.1 / Animation_Speed do
1086
		Swait()
1087
		Slice("Round",0.5,15,Torso.CFrame*ANGLES(RAD(MRANDOM(-180,180)),RAD(MRANDOM(-180,180)),RAD(MRANDOM(-180,180))),"Really red",VT(-0.01,0,-0.01))
1088
		RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.5 / Animation_Speed)
1089
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(15), RAD(0), RAD(0)), 0.5 / Animation_Speed)
1090
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.65, 0) * ANGLES(RAD(0), RAD(0), RAD(90)) * RIGHTSHOULDERC0, 0.5 / Animation_Speed)
1091
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.65, 0) * ANGLES(RAD(0), RAD(0), RAD(-90)) * LEFTSHOULDERC0, 0.5 / Animation_Speed)
1092
		RightHip.C0 = Clerp(RightHip.C0, CF(1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 0.5 / Animation_Speed)
1093
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 0.5 / Animation_Speed)
1094
	end
1095
	CreateSound("1368637781", Torso, 10, 1)
1096
	RELEASE = true
1097
	MagicSphere(VT(5,5,5),35,Torso.CFrame,C3(1,0,0),VT(1,1,1))
1098
	CreateRing(VT(0,0,0),false,0,45,CF(Torso.Position)*ANGLES(RAD(90),RAD(0),RAD(0)),C3(1,0,0),VT(0.5,0.5,0))
1099
	for e=1,#INNERKNIFES do
1100
		if INNERKNIFES[e]~=nil then
1101
			local STUFF = INNERKNIFES[e]
1102
			local KNIFE = STUFF[1]
1103
			local BLADE = STUFF[2]
1104
			local PART = STUFF[3]
1105
			BLADE.CanCollide = false
1106
			PART.Velocity = VT(0,0,0)
1107
			local bv = Instance.new("BodyVelocity") 
1108
			bv.maxForce = Vector3.new(1e9, 1e9, 1e9)
1109
			bv.velocity = CF(PART.CFrame.p,PART.CFrame*CF(0,-1,0).p).lookVector*400
1110
			bv.Parent = PART
1111
			Debris:AddItem(KNIFE,1)
1112
		end
1113
	end
1114
	for q=1,#OUTERKNIFES do
1115
		if OUTERKNIFES[q]~=nil then
1116
			local STUFF = OUTERKNIFES[q]
1117
			local KNIFE = STUFF[1]
1118
			local BLADE = STUFF[2]
1119
			local PART = STUFF[3]
1120
			BLADE.CanCollide = false
1121
			PART.Velocity = VT(0,0,0)
1122
			local bv = Instance.new("BodyVelocity") 
1123
			bv.maxForce = Vector3.new(1e9, 1e9, 1e9)
1124
			bv.velocity = CF(PART.CFrame.p,PART.CFrame*CF(0,-1,0).p).lookVector*200
1125
			bv.Parent = PART
1126
			Debris:AddItem(KNIFE,1)
1127
		end
1128
	end
1129
	ATTACK = false
1130
	Rooted = false
1131
end
1132
1133
--//=================================\\
1134
--||	  ASSIGN THINGS TO KEYS
1135
--\\=================================//
1136
1137
function MouseDown(Mouse)
1138
	if ATTACK == false then
1139
		Stab()
1140
	end
1141
end
1142
1143
function MouseUp(Mouse)
1144
HOLD = false
1145
end
1146
1147
function KeyDown(Key)
1148
	KEYHOLD = true
1149
	if Key == "z" and ATTACK == false then
1150
		BladeDance()
1151
	end
1152
1153
	if Key == "b" and ATTACK == false then
1154
		ReaperDash()
1155
	end
1156
1157
	if Key == "c" and ATTACK == false then
1158
		BlossomingBlood()
1159
	end
1160
1161
	if Key == "x" and ATTACK == false then
1162
		SufferingPrison()
1163
	end
1164
end
1165
1166
function KeyUp(Key)
1167
	KEYHOLD = false
1168
end
1169
1170
	Mouse.Button1Down:connect(function(NEWKEY)
1171
		MouseDown(NEWKEY)
1172
	end)
1173
	Mouse.Button1Up:connect(function(NEWKEY)
1174
		MouseUp(NEWKEY)
1175
	end)
1176
	Mouse.KeyDown:connect(function(NEWKEY)
1177
		KeyDown(NEWKEY)
1178
	end)
1179
	Mouse.KeyUp:connect(function(NEWKEY)
1180
		KeyUp(NEWKEY)
1181
	end)
1182
1183
--//=================================\\
1184
--\\=================================//
1185
1186
1187
function unanchor()
1188
	if UNANCHOR == true then
1189
		g = Character:GetChildren()
1190
		for i = 1, #g do
1191
			if g[i].ClassName == "Part" then
1192
				g[i].Anchored = false
1193
			end
1194
		end
1195
	end
1196
end
1197
1198
1199
--//=================================\\
1200
--||	WRAP THE WHOLE SCRIPT UP
1201
--\\=================================//
1202
1203
Humanoid.Changed:connect(function(Jump)
1204
	if Jump == "Jump" and (Disable_Jump == true) then
1205
		Humanoid.Jump = false
1206
	end
1207
end)
1208
1209
while true do
1210
	Swait()
1211
	ANIMATE.Parent = nil
1212
	local IDLEANIMATION = Humanoid:LoadAnimation(ROBLOXIDLEANIMATION)
1213
	IDLEANIMATION:Play()
1214
	SINE = SINE + CHANGE
1215
	local TORSOVELOCITY = (RootPart.Velocity * VT(1, 0, 1)).magnitude
1216
	local TORSOVERTICALVELOCITY = RootPart.Velocity.y
1217
	local LV = Torso.CFrame:pointToObjectSpace(Torso.Velocity - Torso.Position)
1218
	local HITFLOOR,HITPOS,NORMAL = Raycast(RootPart.Position, (CF(RootPart.Position, RootPart.Position + VT(0, -1, 0))).lookVector, 4 * Player_Size, Character)
1219
	local WALKSPEEDVALUE = 6 / (Humanoid.WalkSpeed / 16)
1220
	if ANIM == "Walk" and TORSOVELOCITY > 1 then
1221
		RootJoint.C1 = Clerp(RootJoint.C1, ROOTC0 * CF(0, 0, -0.15 * COS(SINE / (WALKSPEEDVALUE / 2)) * Player_Size) * ANGLES(RAD(0), RAD(0) - RootPart.RotVelocity.Y / 75, RAD(0)), 2 * (Humanoid.WalkSpeed / 16) / Animation_Speed)
1222
		Neck.C1 = Clerp(Neck.C1, CF(0 * Player_Size, -0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(-90), RAD(0), RAD(180)) * ANGLES(RAD(2.5 * SIN(SINE / (WALKSPEEDVALUE / 2))), RAD(0), RAD(0) - Head.RotVelocity.Y / 30), 0.2 * (Humanoid.WalkSpeed / 16) / Animation_Speed)
1223
		RightHip.C1 = Clerp(RightHip.C1, CF(0.5 * Player_Size, 0.875 * Player_Size - 0.125 * SIN(SINE / WALKSPEEDVALUE) * Player_Size, -0.125 * COS(SINE / WALKSPEEDVALUE) * Player_Size) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0) - RightLeg.RotVelocity.Y / 75, RAD(0), RAD(76 * COS(SINE / WALKSPEEDVALUE))), 0.2 * (Humanoid.WalkSpeed / 16) / Animation_Speed)
1224
		LeftHip.C1 = Clerp(LeftHip.C1, CF(-0.5 * Player_Size, 0.875 * Player_Size + 0.125 * SIN(SINE / WALKSPEEDVALUE) * Player_Size, 0.125 * COS(SINE / WALKSPEEDVALUE) * Player_Size) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0) + LeftLeg.RotVelocity.Y / 75, RAD(0), RAD(76 * COS(SINE / WALKSPEEDVALUE))), 0.2 * (Humanoid.WalkSpeed / 16) / Animation_Speed)
1225
	elseif (ANIM ~= "Walk") or (TORSOVELOCITY < 1) then
1226
		RootJoint.C1 = Clerp(RootJoint.C1, ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.2 / Animation_Speed)
1227
		Neck.C1 = Clerp(Neck.C1, CF(0 * Player_Size, -0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(-90), RAD(0), RAD(180)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.2 / Animation_Speed)
1228
		RightHip.C1 = Clerp(RightHip.C1, CF(0.5 * Player_Size, 1 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.2 / Animation_Speed)
1229
		LeftHip.C1 = Clerp(LeftHip.C1, CF(-0.5 * Player_Size, 1 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.2 / Animation_Speed)
1230
	end
1231
	if TORSOVERTICALVELOCITY > 1 and HITFLOOR == nil then
1232
		ANIM = "Jump"
1233
		if ATTACK == false then
1234
			RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.2 / Animation_Speed)
1235
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0 * Player_Size, 0 + ((1) - 1)) * ANGLES(RAD(-20), RAD(0), RAD(0)), 0.2 / Animation_Speed)
1236
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(-40), RAD(0), RAD(20)) * RIGHTSHOULDERC0, 0.2 / Animation_Speed)
1237
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(-40), RAD(0), RAD(-20)) * LEFTSHOULDERC0, 0.2 / Animation_Speed)
1238
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, -0.3) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(-5), RAD(0), RAD(-20)), 0.2 / Animation_Speed)
1239
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, -0.3) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-5), RAD(0), RAD(20)), 0.2 / Animation_Speed)
1240
	    end
1241
	elseif TORSOVERTICALVELOCITY < -1 and HITFLOOR == nil then
1242
		ANIM = "Fall"
1243
		if ATTACK == false then
1244
			RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0, 0, 0 ) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.2 / Animation_Speed)
1245
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0 , 0 + ((1) - 1)) * ANGLES(RAD(20), RAD(0), RAD(0)), 0.2 / Animation_Speed)
1246
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(60)) * RIGHTSHOULDERC0, 0.2 / Animation_Speed)
1247
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(-60)) * LEFTSHOULDERC0, 0.2 / Animation_Speed)
1248
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, 0) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(20)), 0.2 / Animation_Speed)
1249
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, 0) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(10)), 0.2 / Animation_Speed)
1250
		end
1251
	elseif TORSOVELOCITY < 1 and HITFLOOR ~= nil then
1252
		ANIM = "Idle"
1253
		if ATTACK == false then
1254
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 - 0.15 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.15 / Animation_Speed)
1255
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(15), RAD(15), RAD(0)), 0.15 / Animation_Speed)
1256
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5 - 0.15 * COS(SINE / 12), 0) * ANGLES(RAD(0), RAD(0), RAD(12)) * RIGHTSHOULDERC0, 0.15 / Animation_Speed)
1257
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5 - 0.15 * COS(SINE / 12), 0) * ANGLES(RAD(0), RAD(0), RAD(-12)) * LEFTSHOULDERC0, 0.15 / Animation_Speed)
1258
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -1 + 0.15 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 0.15 / Animation_Speed)
1259
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 + 0.15 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 0.15 / Animation_Speed)
1260
		end
1261
	elseif TORSOVELOCITY > 1 and HITFLOOR ~= nil then
1262
		ANIM = "Walk"
1263
		WALK = WALK + 1 / Animation_Speed
1264
		if WALK >= 15 - (5 * (Humanoid.WalkSpeed / 16 / Player_Size)) then
1265
			WALK = 0
1266
			if WALKINGANIM == true then
1267
				WALKINGANIM = false
1268
			elseif WALKINGANIM == false then
1269
				WALKINGANIM = true
1270
			end
1271
		end
1272
		--RightHip.C1 = Clerp(RightHip.C1, CF(0.5 * Player_Size, 0.875 * Player_Size - 0.125 * SIN(SINE / WALKSPEEDVALUE) * Player_Size, -0.125 * COS(SINE / WALKSPEEDVALUE) * Player_Size) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0) - RightLeg.RotVelocity.Y / 75, RAD(0), RAD(60 * COS(SINE / WALKSPEEDVALUE))), 0.2 * (Humanoid.WalkSpeed / 16) / Animation_Speed)
1273
		--LeftHip.C1 = Clerp(LeftHip.C1, CF(-0.5 * Player_Size, 0.875 * Player_Size + 0.125 * SIN(SINE / WALKSPEEDVALUE) * Player_Size, 0.125 * COS(SINE / WALKSPEEDVALUE) * Player_Size) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0) + LeftLeg.RotVelocity.Y / 75, RAD(0), RAD(60 * COS(SINE / WALKSPEEDVALUE))), 0.2 * (Humanoid.WalkSpeed / 16) / Animation_Speed)
1274
		if ATTACK == false then
1275
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, -0.1) * ANGLES(RAD(5), RAD(0), RAD(0)), 0.15 / Animation_Speed)
1276
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(5 - 8 * SIN(SINE / (WALKSPEEDVALUE / 2))), RAD(0), RAD(0)), 0.15 / Animation_Speed)
1277
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(60 * COS(SINE / WALKSPEEDVALUE)), RAD(0), RAD(5)) * RIGHTSHOULDERC0, 0.35 / Animation_Speed)
1278
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(-60 * COS(SINE / WALKSPEEDVALUE)), RAD(0), RAD(-5)) * LEFTSHOULDERC0, 0.35 / Animation_Speed)
1279
			RightHip.C0 = Clerp(RightHip.C0, CF(1 , -1 - 0.15 * COS(SINE / WALKSPEEDVALUE*2), -0.2+ 0.2 * COS(SINE / WALKSPEEDVALUE)) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(-15)), 2 / Animation_Speed)
1280
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.15 * COS(SINE / WALKSPEEDVALUE*2), -0.2+ -0.2 * COS(SINE / WALKSPEEDVALUE)) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(15)), 2 / Animation_Speed)
1281
		end
1282
	end
1283
	if HITFLOOR ~= nil then
1284
		if MRANDOM(1,2) == 1 then
1285
			local HITFLOOR,HITPOS,NORMAL = Raycast(LeftLeg.Position, (CF(LeftLeg.Position, LeftLeg.Position + VT(0, -1, 0))).lookVector, 4 * Player_Size, Character)
1286
			Slice("Round",0.1,35,CF(HITPOS+VT(0,0.1,0),HITPOS+VT(0,0.1,0)+NORMAL)*ANGLES(RAD(90),RAD(0),RAD(0))*ANGLES(RAD(MRANDOM(-18,18)),RAD(MRANDOM(-180,180)),RAD(MRANDOM(-18,18))),"Really black",VT(0.001,0,0.001))
1287
			Slice("Round",0.1,45,CF(HITPOS+VT(0,0.1,0),HITPOS+VT(0,0.1,0)+NORMAL)*ANGLES(RAD(90),RAD(MRANDOM(-180,180)),RAD(0)),"Really black",VT(0,0,0))
1288
			local HITFLOOR,HITPOS,NORMAL = Raycast(RightLeg.Position, (CF(RightLeg.Position, RightLeg.Position + VT(0, -1, 0))).lookVector, 4 * Player_Size, Character)
1289
			Slice("Round",0.1,35,CF(HITPOS+VT(0,0.1,0),HITPOS+VT(0,0.1,0)+NORMAL)*ANGLES(RAD(90),RAD(0),RAD(0))*ANGLES(RAD(MRANDOM(-18,18)),RAD(MRANDOM(-180,180)),RAD(MRANDOM(-18,18))),"Really black",VT(0.001,0,0.001))
1290
			Slice("Round",0.1,45,CF(HITPOS+VT(0,0.1,0),HITPOS+VT(0,0.1,0)+NORMAL)*ANGLES(RAD(90),RAD(MRANDOM(-180,180)),RAD(0)),"Really black",VT(0,0,0))
1291
		end
1292
	end
1293
	unanchor()
1294
	Humanoid.MaxHealth = "inf"
1295
	Humanoid.Health = "inf"
1296
	if Rooted == false then
1297
		Disable_Jump = false
1298
		Humanoid.WalkSpeed = Speed
1299
	elseif Rooted == true then
1300
		Disable_Jump = true
1301
		Humanoid.WalkSpeed = 0
1302
	end
1303
	sick.Parent = Character
1304
	local MATHS = {"0","1"}
1305
	Humanoid.Name = MATHS[MRANDOM(1,#MATHS)]..MATHS[MRANDOM(1,#MATHS)]..MATHS[MRANDOM(1,#MATHS)]..MATHS[MRANDOM(1,#MATHS)]..MATHS[MRANDOM(1,#MATHS)]..MATHS[MRANDOM(1,#MATHS)]..MATHS[MRANDOM(1,#MATHS)]..MATHS[MRANDOM(1,#MATHS)]..MATHS[MRANDOM(1,#MATHS)]..MATHS[MRANDOM(1,#MATHS)]..MATHS[MRANDOM(1,#MATHS)]..MATHS[MRANDOM(1,#MATHS)]..MATHS[MRANDOM(1,#MATHS)]..MATHS[MRANDOM(1,#MATHS)]..MATHS[MRANDOM(1,#MATHS)]..MATHS[MRANDOM(1,#MATHS)]..MATHS[MRANDOM(1,#MATHS)]..MATHS[MRANDOM(1,#MATHS)]
1306
	Humanoid.PlatformStand = false
1307
end
1308
1309
--//=================================\\
1310
--\\=================================//
1311
1312
1313
1314
1315
1316
--//====================================================\\--
1317
--||			  		 END OF SCRIPT
1318
--\\====================================================//--