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