View difference between Paste ID: z9NA2WF8 and 4wAPZQB6
SHOW: | | - or go back to the newest paste.
1
--//====================================================\\--
2
--||			   CREATED BY SHACKLUSTER
3
--\\====================================================//--
4
5
wait(0.2)
6
7
Player = game:GetService("Players").LocalPlayer
8
PlayerGui = Player.PlayerGui
9
Cam = workspace.CurrentCamera
10
Backpack = Player.Backpack
11
Character = Player.Character
12
Humanoid = Character.Humanoid
13
Mouse = Player:GetMouse()
14
RootPart = Character["HumanoidRootPart"]
15
Torso = Character["Torso"]
16
Head = Character["Head"]
17
RightArm = Character["Right Arm"]
18
LeftArm = Character["Left Arm"]
19
RightLeg = Character["Right Leg"]
20
LeftLeg = Character["Left Leg"]
21
RootJoint = RootPart["RootJoint"]
22
Neck = Torso["Neck"]
23
RightShoulder = Torso["Right Shoulder"]
24
LeftShoulder = Torso["Left Shoulder"]
25
RightHip = Torso["Right Hip"]
26
LeftHip = Torso["Left Hip"]
27
local sick = Instance.new("Sound",Character)
28
29
IT = Instance.new
30
CF = CFrame.new
31
VT = Vector3.new
32
RAD = math.rad
33
C3 = Color3.new
34
UD2 = UDim2.new
35
BRICKC = BrickColor.new
36
ANGLES = CFrame.Angles
37
EULER = CFrame.fromEulerAnglesXYZ
38
COS = math.cos
39
ACOS = math.acos
40
SIN = math.sin
41
ASIN = math.asin
42
ABS = math.abs
43
MRANDOM = math.random
44
FLOOR = math.floor
45
46
--//=================================\\
47
--|| 	      USEFUL VALUES
48
--\\=================================//
49
50
Animation_Speed = 3
51
Frame_Speed = 1 / 60 -- (1 / 30) OR (1 / 60)
52
local Speed = 35
53
local ROOTC0 = CF(0, 0, 0) * ANGLES(RAD(-90), RAD(0), RAD(180))
54
local NECKC0 = CF(0, 1, 0) * ANGLES(RAD(-90), RAD(0), RAD(180))
55
local RIGHTSHOULDERC0 = CF(-0.5, 0, 0) * ANGLES(RAD(0), RAD(90), RAD(0))
56
local LEFTSHOULDERC0 = CF(0.5, 0, 0) * ANGLES(RAD(0), RAD(-90), RAD(0))
57
local DAMAGEMULTIPLIER = 1
58
local ANIM = "Idle"
59
local ATTACK = false
60
local EQUIPPED = false
61
local HOLD = false
62
local COMBO = 1
63
local Rooted = false
64
local SINE = 0
65
local KEYHOLD = false
66
local CHANGE = 2 / Animation_Speed
67
local WALKINGANIM = false
68
local VALUE1 = false
69
local VALUE2 = false
70
local ROBLOXIDLEANIMATION = IT("Animation")
71
ROBLOXIDLEANIMATION.Name = "Roblox Idle Animation"
72
ROBLOXIDLEANIMATION.AnimationId = "http://www.roblox.com/asset/?id=180435571"
73
--ROBLOXIDLEANIMATION.Parent = Humanoid
74
local WEAPONGUI = IT("ScreenGui", PlayerGui)
75
WEAPONGUI.Name = "Weapon GUI"
76
local Effects = IT("Folder", Character)
77
Effects.Name = "Effects"
78
local ANIMATOR = Humanoid.Animator
79
local ANIMATE = Character.Animate
80
local UNANCHOR = true
81
82
--//=================================\\
83
--\\=================================//
84
85
86
--//=================================\\
87
--|| SAZERENOS' ARTIFICIAL HEARTBEAT
88
--\\=================================//
89
90
ArtificialHB = Instance.new("BindableEvent", script)
91
ArtificialHB.Name = "ArtificialHB"
92
93
script:WaitForChild("ArtificialHB")
94
95
frame = Frame_Speed
96
tf = 0
97
allowframeloss = false
98
tossremainder = false
99
lastframe = tick()
100
script.ArtificialHB:Fire()
101
102
game:GetService("RunService").Heartbeat:connect(function(s, p)
103
	tf = tf + s
104
	if tf >= frame then
105
		if allowframeloss then
106
			script.ArtificialHB:Fire()
107
			lastframe = tick()
108
		else
109
			for i = 1, math.floor(tf / frame) do
110
				script.ArtificialHB:Fire()
111
			end
112
		lastframe = tick()
113
		end
114
		if tossremainder then
115
			tf = 0
116
		else
117
			tf = tf - frame * math.floor(tf / frame)
118
		end
119
	end
120
end)
121
122
--//=================================\\
123
--\\=================================//
124
125
--//=================================\\
126
--|| 	      SOME FUNCTIONS
127
--\\=================================//
128
129
function Raycast(POSITION, DIRECTION, RANGE, IGNOREDECENDANTS)
130
	return workspace:FindPartOnRay(Ray.new(POSITION, DIRECTION.unit * RANGE), IGNOREDECENDANTS)
131
end
132
133
function PositiveAngle(NUMBER)
134
	if NUMBER >= 0 then
135
		NUMBER = 0
136
	end
137
	return NUMBER
138
end
139
140
function NegativeAngle(NUMBER)
141
	if NUMBER <= 0 then
142
		NUMBER = 0
143
	end
144
	return NUMBER
145
end
146
147
function Swait(NUMBER)
148
	if NUMBER == 0 or NUMBER == nil then
149
		ArtificialHB.Event:wait()
150
	else
151
		for i = 1, NUMBER do
152
			ArtificialHB.Event:wait()
153
		end
154
	end
155
end
156
157
function CreateMesh(MESH, PARENT, MESHTYPE, MESHID, TEXTUREID, SCALE, OFFSET)
158
	local NEWMESH = IT(MESH)
159
	if MESH == "SpecialMesh" then
160
		NEWMESH.MeshType = MESHTYPE
161
		if MESHID ~= "nil" and MESHID ~= "" then
162
			NEWMESH.MeshId = "http://www.roblox.com/asset/?id="..MESHID
163
		end
164
		if TEXTUREID ~= "nil" and TEXTUREID ~= "" then
165
			NEWMESH.TextureId = "http://www.roblox.com/asset/?id="..TEXTUREID
166
		end
167
	end
168
	NEWMESH.Offset = OFFSET or VT(0, 0, 0)
169
	NEWMESH.Scale = SCALE
170
	NEWMESH.Parent = PARENT
171
	return NEWMESH
172
end
173
174
function CreatePart(FORMFACTOR, PARENT, MATERIAL, REFLECTANCE, TRANSPARENCY, BRICKCOLOR, NAME, SIZE, ANCHOR)
175
	local NEWPART = IT("Part")
176
	NEWPART.formFactor = FORMFACTOR
177
	NEWPART.Reflectance = REFLECTANCE
178
	NEWPART.Transparency = TRANSPARENCY
179
	NEWPART.CanCollide = false
180
	NEWPART.Locked = true
181
	NEWPART.Anchored = true
182
	if ANCHOR == false then
183
		NEWPART.Anchored = false
184
	end
185
	NEWPART.BrickColor = BRICKC(tostring(BRICKCOLOR))
186
	NEWPART.Name = NAME
187
	NEWPART.Size = SIZE
188
	NEWPART.Position = Torso.Position
189
	NEWPART.Material = MATERIAL
190
	NEWPART:BreakJoints()
191
	NEWPART.Parent = PARENT
192
	return NEWPART
193
end
194
195
	local function weldBetween(a, b)
196
	    local weldd = Instance.new("ManualWeld")
197
	    weldd.Part0 = a
198
	    weldd.Part1 = b
199
	    weldd.C0 = CFrame.new()
200
	    weldd.C1 = b.CFrame:inverse() * a.CFrame
201
	    weldd.Parent = a
202
	    return weldd
203
	end
204
205
206
function QuaternionFromCFrame(cf)
207
	local mx, my, mz, m00, m01, m02, m10, m11, m12, m20, m21, m22 = cf:components()
208
	local trace = m00 + m11 + m22
209
	if trace > 0 then 
210
		local s = math.sqrt(1 + trace)
211
		local recip = 0.5 / s
212
		return (m21 - m12) * recip, (m02 - m20) * recip, (m10 - m01) * recip, s * 0.5
213
	else
214
		local i = 0
215
		if m11 > m00 then
216
			i = 1
217
		end
218
		if m22 > (i == 0 and m00 or m11) then
219
			i = 2
220
		end
221
		if i == 0 then
222
			local s = math.sqrt(m00 - m11 - m22 + 1)
223
			local recip = 0.5 / s
224
			return 0.5 * s, (m10 + m01) * recip, (m20 + m02) * recip, (m21 - m12) * recip
225
		elseif i == 1 then
226
			local s = math.sqrt(m11 - m22 - m00 + 1)
227
			local recip = 0.5 / s
228
			return (m01 + m10) * recip, 0.5 * s, (m21 + m12) * recip, (m02 - m20) * recip
229
		elseif i == 2 then
230
			local s = math.sqrt(m22 - m00 - m11 + 1)
231
			local recip = 0.5 / s return (m02 + m20) * recip, (m12 + m21) * recip, 0.5 * s, (m10 - m01) * recip
232
		end
233
	end
234
end
235
 
236
function QuaternionToCFrame(px, py, pz, x, y, z, w)
237
	local xs, ys, zs = x + x, y + y, z + z
238
	local wx, wy, wz = w * xs, w * ys, w * zs
239
	local xx = x * xs
240
	local xy = x * ys
241
	local xz = x * zs
242
	local yy = y * ys
243
	local yz = y * zs
244
	local zz = z * zs
245
	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))
246
end
247
 
248
function QuaternionSlerp(a, b, t)
249
	local cosTheta = a[1] * b[1] + a[2] * b[2] + a[3] * b[3] + a[4] * b[4]
250
	local startInterp, finishInterp;
251
	if cosTheta >= 0.0001 then
252
		if (1 - cosTheta) > 0.0001 then
253
			local theta = ACOS(cosTheta)
254
			local invSinTheta = 1 / SIN(theta)
255
			startInterp = SIN((1 - t) * theta) * invSinTheta
256
			finishInterp = SIN(t * theta) * invSinTheta
257
		else
258
			startInterp = 1 - t
259
			finishInterp = t
260
		end
261
	else
262
		if (1 + cosTheta) > 0.0001 then
263
			local theta = ACOS(-cosTheta)
264
			local invSinTheta = 1 / SIN(theta)
265
			startInterp = SIN((t - 1) * theta) * invSinTheta
266
			finishInterp = SIN(t * theta) * invSinTheta
267
		else
268
			startInterp = t - 1
269
			finishInterp = t
270
		end
271
	end
272
	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
273
end
274
275
function Clerp(a, b, t)
276
	local qa = {QuaternionFromCFrame(a)}
277
	local qb = {QuaternionFromCFrame(b)}
278
	local ax, ay, az = a.x, a.y, a.z
279
	local bx, by, bz = b.x, b.y, b.z
280
	local _t = 1 - t
281
	return QuaternionToCFrame(_t * ax + t * bx, _t * ay + t * by, _t * az + t * bz, QuaternionSlerp(qa, qb, t))
282
end
283
284
function CreateFrame(PARENT, TRANSPARENCY, BORDERSIZEPIXEL, POSITION, SIZE, COLOR, BORDERCOLOR, NAME)
285
	local frame = IT("Frame")
286
	frame.BackgroundTransparency = TRANSPARENCY
287
	frame.BorderSizePixel = BORDERSIZEPIXEL
288
	frame.Position = POSITION
289
	frame.Size = SIZE
290
	frame.BackgroundColor3 = COLOR
291
	frame.BorderColor3 = BORDERCOLOR
292
	frame.Name = NAME
293
	frame.Parent = PARENT
294
	return frame
295
end
296
297
function CreateLabel(PARENT, TEXT, TEXTCOLOR, TEXTFONTSIZE, TEXTFONT, TRANSPARENCY, BORDERSIZEPIXEL, STROKETRANSPARENCY, NAME)
298
	local label = IT("TextLabel")
299
	label.BackgroundTransparency = 1
300
	label.Size = UD2(1, 0, 1, 0)
301
	label.Position = UD2(0, 0, 0, 0)
302
	label.TextColor3 = TEXTCOLOR
303
	label.TextStrokeTransparency = STROKETRANSPARENCY
304
	label.TextTransparency = TRANSPARENCY
305
	label.FontSize = TEXTFONTSIZE
306
	label.Font = TEXTFONT
307
	label.BorderSizePixel = BORDERSIZEPIXEL
308
	label.TextScaled = false
309
	label.Text = TEXT
310
	label.Name = NAME
311
	label.Parent = PARENT
312
	return label
313
end
314
315
function NoOutlines(PART)
316
	PART.TopSurface, PART.BottomSurface, PART.LeftSurface, PART.RightSurface, PART.FrontSurface, PART.BackSurface = 10, 10, 10, 10, 10, 10
317
end
318
319
function CreateWeldOrSnapOrMotor(TYPE, PARENT, PART0, PART1, C0, C1)
320
	local NEWWELD = IT(TYPE)
321
	NEWWELD.Part0 = PART0
322
	NEWWELD.Part1 = PART1
323
	NEWWELD.C0 = C0
324
	NEWWELD.C1 = C1
325
	NEWWELD.Parent = PARENT
326
	return NEWWELD
327
end
328
329
local S = IT("Sound")
330
function CreateSound(ID, PARENT, VOLUME, PITCH, DOESLOOP)
331
	local NEWSOUND = nil
332
	coroutine.resume(coroutine.create(function()
333
		NEWSOUND = S:Clone()
334
		NEWSOUND.Parent = PARENT
335
		NEWSOUND.Volume = VOLUME
336
		NEWSOUND.Pitch = PITCH
337
		NEWSOUND.SoundId = "http://www.roblox.com/asset/?id="..ID
338
		NEWSOUND:play()
339
		if DOESLOOP == true then
340
			NEWSOUND.Looped = true
341
		else
342
			repeat wait(1) until NEWSOUND.Playing == false
343
			NEWSOUND:remove()
344
		end
345
	end))
346
	return NEWSOUND
347
end
348
349
function CFrameFromTopBack(at, top, back)
350
	local right = top:Cross(back)
351
	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)
352
end
353
354
--WACKYEFFECT({EffectType = "", Size = VT(1,1,1), Size2 = VT(0,0,0), Transparency = 0, Transparency2 = 1, CFrame = CF(), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = C3(1,1,1), SoundID = nil, SoundPitch = nil, SoundVolume = nil})
355
function WACKYEFFECT(Table)
356
	local TYPE = (Table.EffectType or "Sphere")
357
	local SIZE = (Table.Size or VT(1,1,1))
358
	local ENDSIZE = (Table.Size2 or VT(0,0,0))
359
	local TRANSPARENCY = (Table.Transparency or 0)
360
	local ENDTRANSPARENCY = (Table.Transparency2 or 1)
361
	local CFRAME = (Table.CFrame or Torso.CFrame)
362
	local MOVEDIRECTION = (Table.MoveToPos or nil)
363
	local ROTATION1 = (Table.RotationX or 0)
364
	local ROTATION2 = (Table.RotationY or 0)
365
	local ROTATION3 = (Table.RotationZ or 0)
366
	local MATERIAL = (Table.Material or "Neon")
367
	local COLOR = (Table.Color or C3(1,1,1))
368
	local TIME = (Table.Time or 45)
369
	local SOUNDID = (Table.SoundID or nil)
370
	local SOUNDPITCH = (Table.SoundPitch or nil)
371
	local SOUNDVOLUME = (Table.SoundVolume or nil)
372
	coroutine.resume(coroutine.create(function()
373
		local PLAYSSOUND = false
374
		local SOUND = nil
375
		local EFFECT = CreatePart(3, Effects, MATERIAL, 0, TRANSPARENCY, BRICKC("Pearl"), "Effect", VT(1,1,1), true)
376
		if SOUNDID ~= nil and SOUNDPITCH ~= nil and SOUNDVOLUME ~= nil then
377
			PLAYSSOUND = true
378
			SOUND = CreateSound(SOUNDID, EFFECT, SOUNDVOLUME, SOUNDPITCH, false)
379
		end
380
		EFFECT.Color = COLOR
381
		local MSH = nil
382
		if TYPE == "Sphere" then
383
			MSH = CreateMesh("SpecialMesh", EFFECT, "Sphere", "", "", SIZE, VT(0,0,0))
384
		elseif TYPE == "Block" then
385
			MSH = IT("BlockMesh",EFFECT)
386
			MSH.Scale = VT(SIZE.X,SIZE.X,SIZE.X)
387
		elseif TYPE == "Wave" then
388
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "20329976", "", SIZE, VT(0,0,-SIZE.X/8))
389
		elseif TYPE == "Ring" then
390
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "559831844", "", VT(SIZE.X,SIZE.X,0.1), VT(0,0,0))
391
		elseif TYPE == "Slash" then
392
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "662586858", "", VT(SIZE.X/10,0,SIZE.X/10), VT(0,0,0))
393
		elseif TYPE == "Round Slash" then
394
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "662585058", "", VT(SIZE.X/10,0,SIZE.X/10), VT(0,0,0))
395
		elseif TYPE == "Swirl" then
396
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "1051557", "", SIZE, VT(0,0,0))
397
		elseif TYPE == "Skull" then
398
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "4770583", "", SIZE, VT(0,0,0))
399
		elseif TYPE == "Crystal" then
400
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "9756362", "", SIZE, VT(0,0,0))
401
		end
402
		if MSH ~= nil then
403
			local MOVESPEED = nil
404
			if MOVEDIRECTION ~= nil then
405
				MOVESPEED = (CFRAME.p - MOVEDIRECTION).Magnitude/TIME
406
			end
407
			local GROWTH = SIZE - ENDSIZE
408
			local TRANS = TRANSPARENCY - ENDTRANSPARENCY
409
			if TYPE == "Block" then
410
				EFFECT.CFrame = CFRAME*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)))
411
			else
412
				EFFECT.CFrame = CFRAME
413
			end
414
			for LOOP = 1, TIME+1 do
415
				Swait()
416
				MSH.Scale = MSH.Scale - GROWTH/TIME
417
				if TYPE == "Wave" then
418
					MSH.Offset = VT(0,0,-MSH.Scale.X/8)
419
				end
420
				EFFECT.Transparency = EFFECT.Transparency - TRANS/TIME
421
				if TYPE == "Block" then
422
					EFFECT.CFrame = CFRAME*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)))
423
				else
424
					EFFECT.CFrame = EFFECT.CFrame*ANGLES(RAD(ROTATION1),RAD(ROTATION2),RAD(ROTATION3))
425
				end
426
				if MOVEDIRECTION ~= nil then
427
					local ORI = EFFECT.Orientation
428
					EFFECT.CFrame = CF(EFFECT.Position,MOVEDIRECTION)*CF(0,0,-MOVESPEED)
429
					EFFECT.Orientation = ORI
430
				end
431
			end
432
			if PLAYSSOUND == false then
433
				EFFECT:remove()
434
			else
435
				repeat Swait() until SOUND.Playing == false
436
				EFFECT:remove()
437
			end
438
		else
439
			if PLAYSSOUND == false then
440
				EFFECT:remove()
441
			else
442
				repeat Swait() until SOUND.Playing == false
443
				EFFECT:remove()
444
			end
445
		end
446
	end))
447
end
448
449
function MakeForm(PART,TYPE)
450
	if TYPE == "Cyl" then
451
		local MSH = IT("CylinderMesh",PART)
452
	elseif TYPE == "Ball" then
453
		local MSH = IT("SpecialMesh",PART)
454
		MSH.MeshType = "Sphere"
455
	elseif TYPE == "Wedge" then
456
		local MSH = IT("SpecialMesh",PART)
457
		MSH.MeshType = "Wedge"
458
	end
459
end
460
461
Debris = game:GetService("Debris")
462
463
function CastProperRay(StartPos, EndPos, Distance, Ignore)
464
	local DIRECTION = CF(StartPos,EndPos).lookVector
465
	return Raycast(StartPos, DIRECTION, Distance, Ignore)
466
end
467
468
function turnto(position)
469
	RootPart.CFrame=CFrame.new(RootPart.CFrame.p,VT(position.X,RootPart.Position.Y,position.Z)) * CFrame.new(0, 0, 0)
470
end
471
472
--//=================================\\
473
--||	     WEAPON CREATION
474
--\\=================================//
475
476
for i = 1, 35 do
477
	local FACE = CreatePart(3, Character, "Fabric", 0, 0+(i-1)/35.2, "Dark stone grey", "FaceGradient", VT(1.01,0.5,1.01),false)
478
	FACE.Color = C3(0,0,0)
479
	Head:FindFirstChildOfClass("SpecialMesh"):Clone().Parent = FACE
480
	CreateWeldOrSnapOrMotor("Weld", Head, Head, FACE, CF(0,0.35-(i-1)/75,0), CF(0, 0, 0))
481
end
482
local EYE = CreatePart(3, Character, "Neon", 0, 0, "CGA brown", "Eyeball", VT(0.15,0.15,0.15),false)
483
MakeForm(EYE,"Ball")
484
CreateWeldOrSnapOrMotor("Weld", Head, Head, EYE, CF(0.15,0.26,-0.55), CF(0, 0, 0))
485
local EYE2 = CreatePart(3, Character, "Neon", 0, 0, "CGA brown", "Eyeball", VT(0.15,0.15,0.15),false)
486
MakeForm(EYE2,"Ball")
487
CreateWeldOrSnapOrMotor("Weld", Head, Head, EYE2, CF(-0.15,0.26,-0.55), CF(0, 0, 0))
488
489
for _, c in pairs(Character:GetChildren()) do
490
	if script:FindFirstChild(c.Name) then
491
		local Part = script[c.Name]
492
		Part.Parent = Character
493
		Part.Base.Anchored = false
494
		Part:SetPrimaryPartCFrame(c.CFrame)
495
		weldBetween(c,Part.Base)
496
		for _, e in pairs(Part:GetChildren()) do
497
			if e:IsA("BasePart") and e.Name ~= "Base" then
498
				e.CustomPhysicalProperties = PhysicalProperties.new(0, 0, 0, 0, 0)
499
				e.Locked = true
500
				e.Anchored = false
501
				e.Parent = Character
502
				weldBetween(c,e)
503
			end
504
		end
505
		Part:remove()
506
	end
507
end
508
509
function Blink()
510
	coroutine.resume(coroutine.create(function()
511
		if EYE ~= nil then
512
			for i = 1, 5 do
513
				Swait()
514
				EYE.Mesh.Scale = EYE.Mesh.Scale - VT(0,0.2,0)
515
				EYE2.Mesh.Scale = EYE.Mesh.Scale
516
			end
517
			for i = 1, 7 do
518
				Swait()
519
				EYE.Mesh.Scale = EYE.Mesh.Scale + VT(0,0.2,0)
520
				EYE2.Mesh.Scale = EYE.Mesh.Scale
521
			end
522
			EYE.Mesh.Scale = VT(1,1,1)
523
			EYE2.Mesh.Scale = EYE.Mesh.Scale
524
		end
525
	end))
526
end
527
528-
local HORSE = LocalScript.Stic
528+
529-
HORSE.Parent = Character
529+
530-
local GRAB = CreateWeldOrSnapOrMotor("Weld", RightArm, RightArm, HORSE.Grab, CF(0, -1, 0), CF(0, 0, 0))
530+
531
local SKILLTEXTSIZE = 7
532
533
--//=================================\\
534
--||			DAMAGING
535
--\\=================================//
536
537
function ApplyDamage(Humanoid,Damage)
538
	Damage = Damage * DAMAGEMULTIPLIER
539
	if Humanoid.Health < 2000 then
540
		if Humanoid.Health - Damage > 0 then
541
			Humanoid.Health = Humanoid.Health - Damage
542
		else
543
			Humanoid.Parent:BreakJoints()
544
		end
545
	else
546
		Humanoid.Parent:BreakJoints()
547
	end
548
end
549
550
function ApplyAoE(POSITION,RANGE,MINDMG,MAXDMG,FLING,INSTAKILL)
551
	local CHILDREN = workspace:GetDescendants()
552
	for index, CHILD in pairs(CHILDREN) do
553
		if CHILD.ClassName == "Model" and CHILD ~= Character then
554
			local HUM = CHILD:FindFirstChildOfClass("Humanoid")
555
			if HUM then
556
				local TORSO = CHILD:FindFirstChild("Torso") or CHILD:FindFirstChild("UpperTorso")
557
				if TORSO then
558
					if (TORSO.Position - POSITION).Magnitude <= RANGE then
559
						if INSTAKILL == true then
560
							CHILD:BreakJoints()
561
						else
562
							local DMG = MRANDOM(MINDMG,MAXDMG)
563
							ApplyDamage(HUM,DMG)
564
						end
565
						if FLING > 0 then
566
							for _, c in pairs(CHILD:GetChildren()) do
567
								if c:IsA("BasePart") then
568
									local bv = Instance.new("BodyVelocity") 
569
									bv.maxForce = Vector3.new(1e9, 1e9, 1e9)
570
									bv.velocity = CF(POSITION,TORSO.Position).lookVector*FLING
571
									bv.Parent = c
572
									Debris:AddItem(bv,0.05)
573
								end
574
							end
575
						end
576
					end
577
				end
578
			end
579
		end
580
	end
581
end
582
583
function FireHit(PART,MINDMG,MAXDMG)
584
	local TOUCH = PART.Touched:Connect(function(hit)
585
		if hit.Parent:FindFirstChildOfClass("Humanoid") then
586
			local HUM = hit.Parent:FindFirstChildOfClass("Humanoid")
587
			local TORSO = hit.Parent:FindFirstChild("Torso") or hit.Parent:FindFirstChild("UpperTorso")
588
			if TORSO and HUM.Health > 0 then
589
				ApplyDamage(HUM,MRANDOM(MINDMG,MAXDMG))
590
				if PART.Parent == HORSE then
591
					HORSE.Forehead.Attachment.Boom:Emit(10)
592
				end
593
			end
594
		end
595
	end)
596
	return TOUCH
597
end
598
599
FireHit(HORSE.Forehead,2,5)
600
FireHit(HORSE.Muzzle,2,5)
601
602
--//=================================\\
603
--||	ATTACK FUNCTIONS AND STUFF
604
--\\=================================//
605
606
function Smack()
607
	ATTACK = true
608
	Rooted = true
609
	for i=0, 0.2, 0.1 / Animation_Speed do
610
		Swait()
611
		GRAB.C1 = Clerp(GRAB.C1, CF(0.1, 0.1, 0) * ANGLES(RAD(0), RAD(0), RAD(-15)), 1 / Animation_Speed)
612
		RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0 + 0.25 * SIN(SINE / 12), 0, 0 + 0.25 * COS(SINE / 24)) * ANGLES(RAD(-25), RAD(0), RAD(0)), 1 / Animation_Speed)
613
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(25+(i/15) - 2.5 * SIN(SINE / 24)), RAD(0), RAD(0)), 1 / Animation_Speed)
614
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.15, 0.15 - 0.03 * SIN(SINE / 12), 0) * ANGLES(RAD(135), RAD(0), RAD(25)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
615
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5 - 0.03 * SIN(SINE / 12), 0) * ANGLES(RAD(0), RAD(0), RAD(-25)) * LEFTSHOULDERC0, 1 / Animation_Speed)
616
		RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.1, -0.7) * ANGLES(RAD(15), RAD(80), RAD(0)) * ANGLES(RAD(-3), RAD(0), RAD(0)), 1 / Animation_Speed)
617
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, 0) * ANGLES(RAD(0), RAD(-80), RAD(0)) * ANGLES(RAD(-3), RAD(0), RAD(0)), 1 / Animation_Speed)
618
	end
619
	for i= 1, 100 do
620
		Swait()
621
		GRAB.C1 = Clerp(GRAB.C1, CF(0.1, 0.1, 0) * ANGLES(RAD(0), RAD(0), RAD(-15)), 1 / Animation_Speed)
622
		RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0 + 0.25 * SIN(SINE / 12), 0, 0 + 0.25 * COS(SINE / 24)) * ANGLES(RAD(-25-(i/15)), RAD(0), RAD(0)), 1 / Animation_Speed)
623
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(25+(i/15) - 2.5 * SIN(SINE / 24)), RAD(0), RAD(0)), 1 / Animation_Speed)
624
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.15, 0.15 - 0.03 * SIN(SINE / 12), 0) * ANGLES(RAD(135+(i/15)), RAD(0), RAD(25)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
625
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5 - 0.03 * SIN(SINE / 12), 0) * ANGLES(RAD(0), RAD(0), RAD(-25)) * LEFTSHOULDERC0, 1 / Animation_Speed)
626
		RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.1, -0.7) * ANGLES(RAD(15), RAD(80), RAD(0)) * ANGLES(RAD(-3), RAD(0), RAD(0)), 1 / Animation_Speed)
627
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, 0) * ANGLES(RAD(0), RAD(-80), RAD(0)) * ANGLES(RAD(-3), RAD(0), RAD(0)), 1 / Animation_Speed)
628
	end
629
	CreateSound(143501853,HORSE.Muzzle,7,MRANDOM(8,13)/10,false)
630
	for i=0, 0.15, 0.1 / Animation_Speed do
631
		Swait()
632
		GRAB.C1 = Clerp(GRAB.C1, CF(0.1, 0.1, 0) * ANGLES(RAD(0), RAD(0), RAD(-15)), 1 / Animation_Speed)
633
		RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0 + 0.25 * SIN(SINE / 12), 0, 0 + 0.25 * COS(SINE / 24)) * ANGLES(RAD(45), RAD(0), RAD(0)), 1 / Animation_Speed)
634
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(-15 - 2.5 * SIN(SINE / 24)), RAD(0), RAD(0)), 1.5 / Animation_Speed)
635
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.15, 0.15 - 0.03 * SIN(SINE / 12), -0.25) * ANGLES(RAD(25), RAD(0), RAD(-5)) * RIGHTSHOULDERC0, 1.5 / Animation_Speed)
636
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5 - 0.03 * SIN(SINE / 12), 0) * ANGLES(RAD(0), RAD(0), RAD(-25)) * LEFTSHOULDERC0, 1 / Animation_Speed)
637
		RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.1, -0.7) * ANGLES(RAD(15), RAD(80), RAD(0)) * ANGLES(RAD(-3), RAD(0), RAD(0)), 1 / Animation_Speed)
638
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, 0) * ANGLES(RAD(0), RAD(-80), RAD(0)) * ANGLES(RAD(-3), RAD(0), RAD(0)), 1 / Animation_Speed)
639
	end
640
	for i = 1, 3 do
641
		ApplyAoE(HORSE.Muzzle.Position,40*i,15,15,15,false)
642
	end
643
	for i = 1, 4 do
644
		WACKYEFFECT({Time = 25, EffectType = "Wave", Size = VT(1,1,1), Size2 = VT(36*i,15-(3*i),36*i), Transparency = 0, Transparency2 = 1, CFrame = CF(HORSE.Muzzle.Position), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Fabric", Color = BRICKC"CGA brown".Color, SoundID = nil, SoundPitch = nil, SoundVolume = nil})
645
	end
646
	for i = 1, 3 do
647
		WACKYEFFECT({Time = 25, EffectType = "Sphere", Size = VT(1,1,1), Size2 = VT(17,17,17)*i, Transparency = 0.5, Transparency2 = 1, CFrame = CF(HORSE.Muzzle.Position), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = BRICKC"CGA brown".Color, SoundID = 438666542, SoundPitch = MRANDOM(8,12)/10, SoundVolume = 1})
648
	end
649
	for i=0, 0.45, 0.1 / Animation_Speed do
650
		Swait()
651
		GRAB.C1 = Clerp(GRAB.C1, CF(0.1, 0.1, 0) * ANGLES(RAD(0), RAD(0), RAD(-15)), 1 / Animation_Speed)
652
		RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0 + 0.25 * SIN(SINE / 12), 0, 0 + 0.25 * COS(SINE / 24)) * ANGLES(RAD(45), RAD(0), RAD(0)), 1 / Animation_Speed)
653
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(-15 - 2.5 * SIN(SINE / 24)), RAD(0), RAD(0)), 1.5 / Animation_Speed)
654
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.15, 0.15 - 0.03 * SIN(SINE / 12), -0.25) * ANGLES(RAD(25), RAD(0), RAD(-5)) * RIGHTSHOULDERC0, 1.5 / Animation_Speed)
655
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5 - 0.03 * SIN(SINE / 12), 0) * ANGLES(RAD(0), RAD(0), RAD(-25)) * LEFTSHOULDERC0, 1 / Animation_Speed)
656
		RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.1, -0.7) * ANGLES(RAD(15), RAD(80), RAD(0)) * ANGLES(RAD(-3), RAD(0), RAD(0)), 1 / Animation_Speed)
657
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, 0) * ANGLES(RAD(0), RAD(-80), RAD(0)) * ANGLES(RAD(-3), RAD(0), RAD(0)), 1 / Animation_Speed)
658
	end
659
	ATTACK = false
660
	Rooted = false
661
end
662
663
function Rain()
664
	ATTACK = true
665
	Rooted = true
666
	GRAB.Part0 = Torso
667
	GRAB.C0 = CF(0,-1.1,-0.3) * ANGLES(RAD(15), RAD(0), RAD(-45)) * CF(0,0,-0.5)
668
	local HOLDING = true
669
	CreateSound(305685800,Torso,7,1,false)
670
	coroutine.resume(coroutine.create(function()
671
		repeat
672
			Swait()
673
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0 + 0.25 * SIN(SINE / 12), 0, 0 - 0.1 * SIN(SINE / 3) + 0.25 * COS(SINE / 24)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
674
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + 0.1 * SIN(SINE / 3) + ((1) - 1)) * ANGLES(RAD(0 - 2.5 * SIN(SINE / 24)), RAD(0), RAD(0)), 1 / Animation_Speed)
675
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.65 - 0.03 * SIN(SINE / 12), 0) * ANGLES(RAD(150), RAD(0), RAD(45)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
676
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.65 - 0.03 * SIN(SINE / 12), 0) * ANGLES(RAD(150), RAD(0), RAD(-45)) * LEFTSHOULDERC0, 1 / Animation_Speed)
677
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, 0) * ANGLES(RAD(0), RAD(60), RAD(0)) * ANGLES(RAD(-15), RAD(0), RAD(0)), 1 / Animation_Speed)
678
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, 0) * ANGLES(RAD(0), RAD(-60), RAD(0)) * ANGLES(RAD(-15), RAD(0), RAD(0)), 1 / Animation_Speed)
679
		until HOLDING == false
680
	end))
681
	repeat
682
		wait(0.12)
683
		local HITFLOOR,HITPOS = Raycast(RootPart.Position, (CF(RootPart.Position, RootPart.Position + VT(0, -1, 0))).lookVector, 15, Character)
684
		for i = 1, 4 do
685
			WACKYEFFECT({Time = 10, EffectType = "Wave", Size = VT(1,1,1), Size2 = VT(10*i,15-(3*i),10*i), Transparency = 0, Transparency2 = 1, CFrame = CF(HITPOS), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Fabric", Color = BRICKC"CGA brown".Color, SoundID = nil, SoundPitch = nil, SoundVolume = nil})
686
		end
687
		ApplyAoE(HITPOS,20,15,15,15,false)
688
		coroutine.resume(coroutine.create(function()
689
			local POSITION = CF(RootPart.CFrame*CF(0,25,0) * ANGLES(RAD(MRANDOM(0,360)), RAD(MRANDOM(0,360)), RAD(MRANDOM(0,360)))*CF(0,0,15).p,Mouse.Hit.p)
690
			local FIREBALL = CreatePart(3, Effects, "Neon", 0, 1, BRICKC("Pearl"), "Effect", VT(1,1,1), true)
691
			FIREBALL.CFrame = POSITION
692
			local FIRE = script.HellFire:Clone()
693
			FIRE.Parent = FIREBALL
694
			for i = 1, 100 do
695
				FIRE:Emit(25)
696
				Swait()
697
				FIREBALL.CFrame = FIREBALL.CFrame*CF(0,0,-4)
698
				local HIT = Raycast(FIREBALL.Position, FIREBALL.CFrame.lookVector, 6, Character)
699
				if HIT then
700
					for e = 1, 4 do
701
						CreateSound(438666542,FIREBALL,3,MRANDOM(7,13)/10,false)
702
						ApplyAoE(FIREBALL.Position,10*e,15,35,15,false)
703
						WACKYEFFECT({Time = 25, EffectType = "Sphere", Size = VT(5,5,5), Size2 = VT(0,85,0), Transparency = 0.5, Transparency2 = 1, CFrame = CF(FIREBALL.Position) * ANGLES(RAD(MRANDOM(0,360)), RAD(MRANDOM(0,360)), RAD(MRANDOM(0,360))), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = C3(1,170/255,127/255), SoundID = nil, SoundPitch = MRANDOM(8,12)/10, SoundVolume = 1})
704
						WACKYEFFECT({Time = 25, EffectType = "Sphere", Size = VT(1,1,1), Size2 = (VT(20,20,20)/1.2)*e, Transparency = 0.5, Transparency2 = 1, CFrame = CF(FIREBALL.Position), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = C3(1,170/255,127/255), SoundID = nil, SoundPitch = MRANDOM(8,12)/10, SoundVolume = 1})
705
						WACKYEFFECT({Time = 30, EffectType = "Sphere", Size = VT(1,1,1), Size2 = VT(20,20,20)*e, Transparency = 0.5, Transparency2 = 1, CFrame = CF(FIREBALL.Position), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = BRICKC"CGA brown".Color, SoundID = nil, SoundPitch = MRANDOM(8,12)/10, SoundVolume = 1})
706
					end
707
					break
708
				end
709
			end
710
			Debris:AddItem(FIREBALL,5)
711
		end))
712
	until KEYHOLD == false
713
	HOLDING = false
714
	for i=0, 0.5, 0.1 / Animation_Speed do
715
		Swait()
716
		GRAB.C1 = Clerp(GRAB.C1, CF(0.1, 0.1, 0) * ANGLES(RAD(0), RAD(0), RAD(-45)), 1 / Animation_Speed)
717
		RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0 + 0.25 * SIN(SINE / 12), 0, 0 + 0.25 * COS(SINE / 24)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
718
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0 - 2.5 * SIN(SINE / 24)), RAD(0), RAD(0)), 1 / Animation_Speed)
719
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.15, 0.15 - 0.03 * SIN(SINE / 12), -0.5) * ANGLES(RAD(15), RAD(0), RAD(-45)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
720
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.15, 0.15 - 0.03 * SIN(SINE / 12), -0.5) * ANGLES(RAD(15), RAD(0), RAD(45)) * LEFTSHOULDERC0, 1 / Animation_Speed)
721
		RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, 0) * ANGLES(RAD(0), RAD(60), RAD(0)) * ANGLES(RAD(-15), RAD(0), RAD(0)), 1 / Animation_Speed)
722
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, 0) * ANGLES(RAD(0), RAD(-60), RAD(0)) * ANGLES(RAD(-15), RAD(0), RAD(0)), 1 / Animation_Speed)
723
	end
724
	GRAB.Part0 = RightArm
725
	GRAB.C0 = CF(0,-1,0 )
726
	ATTACK = false
727
	Rooted = false
728
end
729
730
function Dash()
731
	ATTACK = true
732
	Rooted = false
733
	local CFRAME = RootPart.CFrame
734
	for i=0, 0.7, 0.1 / Animation_Speed do
735
		Swait()
736
		RootPart.CFrame = RootPart.CFrame * CF(0,0,0.1)
737
		GRAB.C1 = Clerp(GRAB.C1, CF(0.1, 0.1, 0) * ANGLES(RAD(0), RAD(0), RAD(-45)), 1 / Animation_Speed)
738
		RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0 + 0.25 * SIN(SINE / 12), 0, 0 + 0.25 * COS(SINE / 24)) * ANGLES(RAD(-15), RAD(0), RAD(0)), 1 / Animation_Speed)
739
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(15 - 2.5 * SIN(SINE / 24)), RAD(0), RAD(0)), 1 / Animation_Speed)
740
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.15, 0.15 - 0.03 * SIN(SINE / 12), -0.5) * ANGLES(RAD(15), RAD(0), RAD(-45)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
741
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.15, 0.15 - 0.03 * SIN(SINE / 12), -0.5) * ANGLES(RAD(15), RAD(0), RAD(45)) * LEFTSHOULDERC0, 1 / Animation_Speed)
742
		RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, 0) * ANGLES(RAD(25 * SIN(SINE / 3)), RAD(60), RAD(0)) * ANGLES(RAD(-15), RAD(0), RAD(0)), 1 / Animation_Speed)
743
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, 0) * ANGLES(RAD(-25 * SIN(SINE / 3)), RAD(-60), RAD(0)) * ANGLES(RAD(-15), RAD(0), RAD(0)), 1 / Animation_Speed)
744
	end
745
	local LOOP = 0
746
	repeat
747
		local CFRAME = CF(RootPart.Position,VT(Mouse.Hit.p.X,RootPart.Position.Y,Mouse.Hit.p.Z))*CF(0,0,-2)
748
		Swait()
749
		LOOP = LOOP + 1
750
		RootPart.CFrame = CFRAME
751
		ApplyAoE(HORSE.Muzzle.Position,15,15,15,75,false)
752
		WACKYEFFECT({Time = 10, EffectType = "Wave", Size = VT(5,0,5), Size2 = VT(25,1,25), Transparency = 0.9, Transparency2 = 1, CFrame = CF(HORSE.Forehead.Position,Torso.Position) * ANGLES(RAD(-90), RAD(0), RAD(0)), MoveToPos = CF(HORSE.Forehead.Position,Torso.Position) * CF(0,0,-15).p, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Fabric", Color = C3(1,1,1), SoundID = nil, SoundPitch = nil, SoundVolume = nil})
753
		GRAB.C1 = Clerp(GRAB.C1, CF(0.1, 0.1, 0) * ANGLES(RAD(5), RAD(0), RAD(-45)), 1 / Animation_Speed)
754
		RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0 + 0.25 * SIN(SINE / 12), 0, 0 + 0.25 * COS(SINE / 6)) * ANGLES(RAD(75), RAD(0), RAD(0)), 1 / Animation_Speed)
755
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(-50 - 2.5 * SIN(SINE / 24)), RAD(0), RAD(0)), 1 / Animation_Speed)
756
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.15, 0.15 - 0.03 * SIN(SINE / 12), -0.5) * ANGLES(RAD(85), RAD(0), RAD(-45)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
757
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.15, 0.15 - 0.03 * SIN(SINE / 12), -0.5) * ANGLES(RAD(85), RAD(0), RAD(45)) * LEFTSHOULDERC0, 1 / Animation_Speed)
758
		RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, 0) * ANGLES(RAD(65), RAD(60), RAD(0)) * ANGLES(RAD(-15), RAD(0), RAD(0)), 1 / Animation_Speed)
759
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, 0) * ANGLES(RAD(65), RAD(-60), RAD(0)) * ANGLES(RAD(-15), RAD(0), RAD(0)), 1 / Animation_Speed)
760
	until KEYHOLD == false and LOOP > 50
761
	local HITFLOOR,HITPOS = Raycast(RootPart.Position, (CF(RootPart.Position, RootPart.Position + VT(0, -1, 0))).lookVector, 15, Character)
762
	WACKYEFFECT({Time = 60, EffectType = "Sphere", Size = VT(25,25,25), Size2 = VT(0,0,0), Transparency = 1, Transparency2 = 0, CFrame = CF(RootPart.Position), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = C3(1,1,1), SoundID = 971125740, SoundPitch = MRANDOM(8,12)/10, SoundVolume = 3})
763
	for i = 1, 5 do
764
		ApplyAoE(RootPart.Position,13,15,25,15,false)
765
		WACKYEFFECT({Time = 30, EffectType = "Ring", Size = VT(0,0,0), Size2 = VT(1,1,0)*i, Transparency = 0, Transparency2 = 1, CFrame = CF(HITPOS) * ANGLES(RAD(90), RAD(0), RAD(0)), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = C3(0,0,0), SoundID = nil, SoundPitch = MRANDOM(8,12)/10, SoundVolume = 1})
766
		WACKYEFFECT({Time = 30, EffectType = "Sphere", Size = VT(1,1,1), Size2 = VT(5,5,5)*i, Transparency = 0, Transparency2 = 1, CFrame = CF(RootPart.Position), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = C3(0,0,0), SoundID = nil, SoundPitch = MRANDOM(8,12)/10, SoundVolume = 1})
767
	end
768
	RootPart.CFrame = CFRAME
769
	local HITFLOOR,HITPOS = Raycast(RootPart.Position, (CF(RootPart.Position, RootPart.Position + VT(0, -1, 0))).lookVector, 15, Character)
770
	WACKYEFFECT({Time = 60, EffectType = "Sphere", Size = VT(25,25,25), Size2 = VT(0,0,0), Transparency = 1, Transparency2 = 0, CFrame = CF(RootPart.Position), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = C3(1,1,1), SoundID = 971125740, SoundPitch = MRANDOM(8,12)/10, SoundVolume = 3})
771
	for i = 1, 5 do
772
		ApplyAoE(RootPart.Position,13,15,25,15,false)
773
		WACKYEFFECT({Time = 30, EffectType = "Ring", Size = VT(0,0,0), Size2 = VT(1,1,0)*i, Transparency = 0, Transparency2 = 1, CFrame = CF(HITPOS) * ANGLES(RAD(90), RAD(0), RAD(0)), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = C3(0,0,0), SoundID = nil, SoundPitch = MRANDOM(8,12)/10, SoundVolume = 1})
774
		WACKYEFFECT({Time = 30, EffectType = "Sphere", Size = VT(1,1,1), Size2 = VT(5,5,5)*i, Transparency = 0, Transparency2 = 1, CFrame = CF(RootPart.Position), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = C3(0,0,0), SoundID = nil, SoundPitch = MRANDOM(8,12)/10, SoundVolume = 1})
775
	end
776
	ATTACK = false
777
	Rooted = false
778
end
779
780
function AttackTemplate()
781
	ATTACK = true
782
	Rooted = false
783
	for i=0, 1, 0.1 / Animation_Speed do
784
		Swait()
785
		GRAB.C1 = Clerp(GRAB.C1, CF(0.1, 0.1, 0) * ANGLES(RAD(0), RAD(0), RAD(-45)), 1 / Animation_Speed)
786
		RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0 + 0.25 * SIN(SINE / 12), 0, 0 + 0.25 * COS(SINE / 24)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
787
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0 - 2.5 * SIN(SINE / 24)), RAD(0), RAD(0)), 1 / Animation_Speed)
788
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.15, 0.15 - 0.03 * SIN(SINE / 12), -0.5) * ANGLES(RAD(15), RAD(0), RAD(-45)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
789
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.15, 0.15 - 0.03 * SIN(SINE / 12), -0.5) * ANGLES(RAD(15), RAD(0), RAD(45)) * LEFTSHOULDERC0, 1 / Animation_Speed)
790
		RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, 0) * ANGLES(RAD(0), RAD(60), RAD(0)) * ANGLES(RAD(-15), RAD(0), RAD(0)), 1 / Animation_Speed)
791
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, 0) * ANGLES(RAD(0), RAD(-60), RAD(0)) * ANGLES(RAD(-15), RAD(0), RAD(0)), 1 / Animation_Speed)
792
	end
793
	ATTACK = false
794
	Rooted = false
795
end
796
797
--//=================================\\
798
--||	  ASSIGN THINGS TO KEYS
799
--\\=================================//
800
801
function MouseDown(Mouse)
802
	if ATTACK == false then
803
	end
804
end
805
806
function MouseUp(Mouse)
807
HOLD = false
808
end
809
810
function KeyDown(Key)
811
	KEYHOLD = true
812
	if Key == "z" and ATTACK == false then
813
		Smack()
814
	end
815
816
	if Key == "b" and ATTACK == false then
817
		Rain()
818
	end
819
820
	if Key == "c" and ATTACK == false then
821
		Dash()
822
	end
823
824
	if Key == "v" and ATTACK == false then
825
	end
826
827
	if Key == "x" and ATTACK == false then
828
	end
829
end
830
831
function KeyUp(Key)
832
	KEYHOLD = false
833
end
834
835
	Mouse.Button1Down:connect(function(NEWKEY)
836
		MouseDown(NEWKEY)
837
	end)
838
	Mouse.Button1Up:connect(function(NEWKEY)
839
		MouseUp(NEWKEY)
840
	end)
841
	Mouse.KeyDown:connect(function(NEWKEY)
842
		KeyDown(NEWKEY)
843
	end)
844
	Mouse.KeyUp:connect(function(NEWKEY)
845
		KeyUp(NEWKEY)
846
	end)
847
848
--//=================================\\
849
--\\=================================//
850
851
function unanchor()
852
	for _, c in pairs(Character:GetChildren()) do
853
		if c:IsA("BasePart") and c ~= RootPart then
854
			c.Anchored = false
855
		end
856
	end
857
	if UNANCHOR == true then
858
		RootPart.Anchored = false
859
	else
860
		RootPart.Anchored = true
861
	end
862
end
863
864
--//=================================\\
865
--||	WRAP THE WHOLE SCRIPT UP
866
--\\=================================//
867
868
Humanoid.Changed:connect(function(Jump)
869
	if Jump == "Jump" and (Disable_Jump == true) then
870
		Humanoid.Jump = false
871
	end
872
end)
873
874
local BLINKLOOP = 0
875
876
while true do
877
	Swait()
878
	script.Parent = WEAPONGUI
879
	ANIMATE.Parent = nil
880
	for _,v in next, Humanoid:GetPlayingAnimationTracks() do
881
	    v:Stop();
882
	end
883
	Humanoid.HipHeight = 1.3
884
	SINE = SINE + CHANGE
885
	local TORSOVELOCITY = (RootPart.Velocity * VT(1, 0, 1)).magnitude
886
	local TORSOVERTICALVELOCITY = RootPart.Velocity.y
887
	if TORSOVERTICALVELOCITY > 40 then
888
		TORSOVERTICALVELOCITY = 40
889
	elseif TORSOVERTICALVELOCITY < -20 then
890
		TORSOVERTICALVELOCITY = -20
891
	end
892
	if ATTACK == false then
893
		if TORSOVELOCITY < 1 then
894
			GRAB.C1 = Clerp(GRAB.C1, CF(0.1, 0.1, 0) * ANGLES(RAD(0), RAD(0), RAD(-45)), 1 / Animation_Speed)
895
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0 + 0.25 * SIN(SINE / 12), 0, 0 + 0.25 * COS(SINE / 24)) * ANGLES(RAD(-TORSOVERTICALVELOCITY), RAD(0), RAD(0)), 1 / Animation_Speed)
896
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0 - 2.5 * SIN(SINE / 24)), RAD(0), RAD(0)), 1 / Animation_Speed)
897
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.15, 0.15 - 0.03 * SIN(SINE / 12), -0.5) * ANGLES(RAD(15), RAD(0), RAD(-45)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
898
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.15, 0.15 - 0.03 * SIN(SINE / 12), -0.5) * ANGLES(RAD(15), RAD(0), RAD(45)) * LEFTSHOULDERC0, 1 / Animation_Speed)
899
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, 0) * ANGLES(RAD(0), RAD(60), RAD(0)) * ANGLES(RAD(-15), RAD(0), RAD(0)), 1 / Animation_Speed)
900
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, 0) * ANGLES(RAD(0), RAD(-60), RAD(0)) * ANGLES(RAD(-15), RAD(0), RAD(0)), 1 / Animation_Speed)
901
		elseif TORSOVELOCITY > 1 then
902
			GRAB.C1 = Clerp(GRAB.C1, CF(0.1, 0.1, 0) * ANGLES(RAD(0), RAD(0), RAD(-45)), 1 / Animation_Speed)
903
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0 + 0.25 * SIN(SINE / 12), 0, 0 + 0.25 * COS(SINE / 24)) * ANGLES(RAD(35-TORSOVERTICALVELOCITY), RAD(0), RAD(0)), 1 / Animation_Speed)
904
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(-25 - 2.5 * SIN(SINE / 24)), RAD(0), RAD(0)), 1 / Animation_Speed)
905
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.15, 0.15 - 0.03 * SIN(SINE / 12), -0.5) * ANGLES(RAD(50), RAD(0), RAD(-45)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
906
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.15, 0.15 - 0.03 * SIN(SINE / 12), -0.5) * ANGLES(RAD(50), RAD(0), RAD(45)) * LEFTSHOULDERC0, 1 / Animation_Speed)
907
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, 0) * ANGLES(RAD(0), RAD(60), RAD(0)) * ANGLES(RAD(-15), RAD(0), RAD(0)), 1 / Animation_Speed)
908
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, 0) * ANGLES(RAD(0), RAD(-60), RAD(0)) * ANGLES(RAD(-15), RAD(0), RAD(0)), 1 / Animation_Speed)
909
		end
910
	end
911
	unanchor()
912
	Humanoid.MaxHealth = 2e6
913
	Humanoid.Health = 2e6
914
	if Rooted == false then
915
		Disable_Jump = false
916
		Humanoid.WalkSpeed = Speed
917
	elseif Rooted == true then
918
		Disable_Jump = true
919
		Humanoid.WalkSpeed = 0
920
	end
921
	sick.SoundId = "rbxassetid://608009445"
922
	sick.Looped = true
923
	sick.Pitch = 1
924
	sick.Volume = 0.5
925
	sick.Parent = Character
926
	sick.Playing = true
927
	Humanoid.DisplayDistanceType = "None"
928
	if Head:FindFirstChildOfClass("Sound") then
929
		Head:FindFirstChildOfClass("Sound"):remove()
930
	end
931
	BLINKLOOP = BLINKLOOP + 1
932
	if BLINKLOOP >=650 then
933
		BLINKLOOP = 0
934
		Blink()
935
	end
936
	if Head:FindFirstChild("face") then
937
		Head.face.Texture = "rbxassetid://403870689"
938
	end
939
	for _, c in pairs(Character:GetDescendants()) do
940
		if c.ClassName == "Accessory" then
941
			if c.Handle:FindFirstChild("HairAttachment") == nil then
942
				c:remove()
943
			end
944
		end
945
	end
946
end
947
948
--//=================================\\
949
--\\=================================//
950
951
952
953
954
955
--//====================================================\\--
956
--||			  		 END OF SCRIPT
957
--\\====================================================//--