View difference between Paste ID: QVNZqzHP and TLWkKzPH
SHOW: | | - or go back to the newest paste.
1-
Player = game.Players.LocalPlayer
1+
Player = owner
2
	Character = Player.Character
3
	local txt = Instance.new("BillboardGui", Character)
4
	txt.Adornee = Character.Head
5
	txt.Name = "_status"
6
	txt.Size = UDim2.new(2, 0, 1.2, 0)
7
	txt.StudsOffset = Vector3.new(-9, 8, 0)
8
	local text = Instance.new("TextLabel", txt)
9
	text.Size = UDim2.new(10, 0, 7, 0)
10
	text.FontSize = "Size24"
11
	text.TextScaled = true
12
	text.TextTransparency = 0
13
	text.BackgroundTransparency = 1 
14
	text.TextTransparency = 0
15
	text.TextStrokeTransparency = 0
16
	text.Font = "Antique"
17
	text.TextStrokeColor3 = Color3.new(196, 40, 28)
18
        text.Text = "The Last God"
19
script.Name = "Banisher Gun V3 / 1"
20
--//====================================================\\--
21-
--||			   CREATED BY SHACKLUSTER
21+
--||			   CREATED BY NUTTANUN734
22
--\\====================================================//--
23
24
script:ClearAllChildren()
25
wait(0.2)
26
27
Player = owner,
28
PlayerGui = Player.PlayerGui
29
Cam = workspace.CurrentCamera
30
Backpack = Player.Backpack
31
Character = Player.Character
32
Humanoid = Character.Humanoid
33
Mouse = Player:GetMouse()
34
RootPart = Character["HumanoidRootPart"]
35
Torso = Character["Torso"]
36
Head = Character["Head"]
37
RightArm = Character["Right Arm"]
38
LeftArm = Character["Left Arm"]
39
RightLeg = Character["Right Leg"]
40
LeftLeg = Character["Left Leg"]
41
RootJoint = RootPart["RootJoint"]
42
Neck = Torso["Neck"]
43
RightShoulder = Torso["Right Shoulder"]
44
LeftShoulder = Torso["Left Shoulder"]
45
RightHip = Torso["Right Hip"]
46
LeftHip = Torso["Left Hip"]
47
local TIME = 0
48
local sick = Instance.new("Sound",Torso)
49
50
51
for i,v in pairs(Character:GetChildren()) do
52
	if v.ClassName == "Shirt" or v.ClassName == "Pants" or v.ClassName == "CharacterMesh" then
53
		v:Destroy()
54
	end
55
end
56
57
for i,v in pairs(Character:GetChildren()) do
58
	if v.ClassName == "Accessory" or v.ClassName == "Hat" then
59
		v:Destroy()
60
	end
61
end
62
63
local Shirt = Instance.new("Shirt",Character)
64
local Pants = Instance.new("Pants",Character)
65
Shirt.ShirtTemplate = "rbxassetid://1390096242"
66
Pants.PantsTemplate = "rbxassetid://1756876037"
67
68
IT = Instance.new
69
CF = CFrame.new
70
VT = Vector3.new
71
RAD = math.rad
72
C3 = Color3.new
73
UD2 = UDim2.new
74
BRICKC = BrickColor.new
75
ANGLES = CFrame.Angles
76
EULER = CFrame.fromEulerAnglesXYZ
77
COS = math.cos
78
ACOS = math.acos
79
SIN = math.sin
80
ASIN = math.asin
81
ABS = math.abs
82
MRANDOM = math.random
83
FLOOR = math.floor
84
85
Player = game:GetService("Players").LocalPlayer
86
PlayerGui = Player.PlayerGui
87
Cam = workspace.CurrentCamera
88
Backpack = Player.Backpack
89
Character = Player.Character
90
Humanoid = Character.Humanoid
91
RootPart = Character["HumanoidRootPart"]
92
Torso = Character["Torso"]
93
Head = Character["Head"]
94
RightArm = Character["Right Arm"]
95
LeftArm = Character["Left Arm"]
96
RightLeg = Character["Right Leg"]
97
LeftLeg = Character["Left Leg"]
98
RootJoint = RootPart["RootJoint"]
99
Neck = Torso["Neck"]
100
RightShoulder = Torso["Right Shoulder"]
101
LeftShoulder = Torso["Left Shoulder"]
102
RightHip = Torso["Right Hip"]
103
LeftHip = Torso["Left Hip"]
104
warn("Anti-Death Loaded (edited by promlg112)")
105
106
IT = Instance.new
107
CF = CFrame.new
108
VT = Vector3.new
109
RAD = math.rad
110
C3 = Color3.new
111
UD2 = UDim2.new
112
BRICKC = BrickColor.new
113
ANGLES = CFrame.Angles
114
EULER = CFrame.fromEulerAnglesXYZ
115
COS = math.cos
116
ACOS = math.acos
117
SIN = math.sin
118
ASIN = math.asin
119
ABS = math.abs
120
MRANDOM = math.random
121
FLOOR = math.floor
122
123
local Speed = 55
124
local Rooted = false
125
local Effects = IT("Folder", Character)
126
Effects.Name = "Effects"
127
local UNANCHOR = true
128
local HITPOS = nil
129
local HITFLOOR = nil
130
local LEFTWINGS = {}
131
local RIGHTWINGS = {}
132
local BODY = {}
133
134
for _, c in pairs(Character:GetChildren()) do
135
	if c.ClassName == "Part" then
136
		table.insert(BODY,{c,Character})
137
		for _, q in pairs(c:GetChildren()) do
138
			if q.ClassName == "Motor6D" or q.ClassName == "Weld" or q.ClassName == "ManualWeld" then
139
				table.insert(BODY,{q,c})
140
			end
141
		end
142
	end
143
end
144
145
function refit()
146
	Character.Parent = workspace
147
	for e = 1, #BODY do
148
		if BODY[e] ~= nil then
149
			local STUFF = BODY[e]
150
			local PART = STUFF[1]
151
			local PARENT = STUFF[2]
152
			PART.Parent = PARENT
153
		end
154
	end
155
end
156
157
Humanoid.HealthChanged:connect(function()
158
	Humanoid.Parent = nil
159
	Humanoid.MaxHealth = "inf"
160
	Humanoid.Health = "inf"
161
	refit()
162
	Humanoid.Parent = Character
163
end)
164
165
Humanoid.Died:connect(function()
166
	Humanoid.Parent = nil
167
	Humanoid.MaxHealth = "inf"
168
	Humanoid.Health = "inf"
169
	refit()
170
	Humanoid.Parent = Character
171
end)
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
--|| 	      PARTICLES N STUFF
198
--\\=================================//
199
200
local particleemitter = Instance.new('ParticleEmitter', LeftArm)
201
        particleemitter.VelocitySpread = 350
202
        particleemitter.Lifetime = NumberRange.new(1)
203
        particleemitter.Speed = NumberRange.new(0)
204
cringememe= {}
205
for i=0, 19 do
206
  cringememe[#cringememe + 1] = NumberSequenceKeypoint.new(i/19, math.random(1, 1))
207
end
208
particleemitter.Size = NumberSequence.new(cringememe)
209
        particleemitter.Rate = 20
210
        particleemitter.LockedToPart = true
211
        particleemitter.Transparency = NumberSequence.new({NumberSequenceKeypoint.new(0, 1), NumberSequenceKeypoint.new(0.8, 0), NumberSequenceKeypoint.new(1, 1)})
212
        particleemitter.LightEmission = 1
213
        particleemitter.Texture = "rbxassetid://38727848"
214
        particleemitter.Color = ColorSequence.new(BrickColor.new("Really red").Color)
215
216
        local particleemitter = Instance.new('ParticleEmitter', Torso)
217
        particleemitter.VelocitySpread = 250
218
        particleemitter.Lifetime = NumberRange.new(3)
219
        particleemitter.Speed = NumberRange.new(1.5)
220
youAreATHOT = {}
221
for i=0, 19 do
222
  youAreATHOT[#youAreATHOT + 1] = NumberSequenceKeypoint.new(i/19, math.random(1, 1))
223
end
224
particleemitter.Size = NumberSequence.new(youAreATHOT)
225
        particleemitter.Rate = 10
226
        particleemitter.LockedToPart = false
227
        particleemitter.Transparency = NumberSequence.new({NumberSequenceKeypoint.new(0, 1), NumberSequenceKeypoint.new(0.8, 0), NumberSequenceKeypoint.new(1, 1)})
228
        particleemitter.LightEmission = 1
229
        particleemitter.Texture = "rbxassetid://253188763"
230
        particleemitter.Color = ColorSequence.new(BrickColor.new("Really red").Color)
231
232
        local particleemitter = Instance.new('ParticleEmitter', RightArm)
233
        particleemitter.VelocitySpread = 350
234
        particleemitter.Lifetime = NumberRange.new(1)
235
        particleemitter.Speed = NumberRange.new(0)
236
cringememe2= {}
237
for i=0, 19 do
238
  cringememe2[#cringememe2 + 1] = NumberSequenceKeypoint.new(i/19, math.random(1, 1))
239
end
240
particleemitter.Size = NumberSequence.new(cringememe2)
241
        particleemitter.Rate = 20
242
        particleemitter.LockedToPart = true
243
        particleemitter.Transparency = NumberSequence.new({NumberSequenceKeypoint.new(0, 1), NumberSequenceKeypoint.new(0.8, 0), NumberSequenceKeypoint.new(1, 1)})
244
        particleemitter.LightEmission = 1
245
        particleemitter.Texture = "rbxassetid://38727848"
246
        particleemitter.Color = ColorSequence.new(BrickColor.new("Really red").Color)
247
248
        local particleemitter = Instance.new('ParticleEmitter', RightLeg)
249
        particleemitter.VelocitySpread = 350
250
        particleemitter.Lifetime = NumberRange.new(1)
251
        particleemitter.Speed = NumberRange.new(0)
252
cringememe3= {}
253
for i=0, 19 do
254
  cringememe3[#cringememe3 + 1] = NumberSequenceKeypoint.new(i/19, math.random(1, 1))
255
end
256
particleemitter.Size = NumberSequence.new(cringememe3)
257
        particleemitter.Rate = 30
258
        particleemitter.LockedToPart = true
259
        particleemitter.Transparency = NumberSequence.new({NumberSequenceKeypoint.new(0, 1), NumberSequenceKeypoint.new(0.8, 0), NumberSequenceKeypoint.new(1, 1)})
260
        particleemitter.LightEmission = 1
261
        particleemitter.Texture = "rbxassetid://38727848"
262
        particleemitter.Color = ColorSequence.new(BrickColor.new("Really red").Color)
263
264
        local particleemitter = Instance.new('ParticleEmitter', LeftLeg)
265
        particleemitter.VelocitySpread = 350
266
        particleemitter.Lifetime = NumberRange.new(1)
267
        particleemitter.Speed = NumberRange.new(0)
268
cringememe4= {}
269
for i=0, 19 do
270
  cringememe4[#cringememe4 + 1] = NumberSequenceKeypoint.new(i/19, math.random(1, 1))
271
end
272
particleemitter.Size = NumberSequence.new(cringememe4)
273
        particleemitter.Rate = 30
274
        particleemitter.LockedToPart = true
275
        particleemitter.Transparency = NumberSequence.new({NumberSequenceKeypoint.new(0, 1), NumberSequenceKeypoint.new(0.8, 0), NumberSequenceKeypoint.new(1, 1)})
276
        particleemitter.LightEmission = 1
277
        particleemitter.Texture = "rbxassetid://38727848"
278
        particleemitter.Color = ColorSequence.new(BrickColor.new("Really red").Color)
279
--//=================================\\
280
--|| 	      USEFUL VALUES
281
--\\=================================//
282
283
Animation_Speed = 3
284
Frame_Speed = 1 / 60 -- (1 / 30) OR (1 / 60)
285
local Speed = 35
286
local ROOTC0 = CF(0, 0, 0) * ANGLES(RAD(-90), RAD(0), RAD(180))
287
local NECKC0 = CF(0, 1, 0) * ANGLES(RAD(-90), RAD(0), RAD(180))
288
local RIGHTSHOULDERC0 = CF(-0.5, 0, 0) * ANGLES(RAD(0), RAD(90), RAD(0))
289
local LEFTSHOULDERC0 = CF(0.5, 0, 0) * ANGLES(RAD(0), RAD(-90), RAD(0))
290
local DAMAGEMULTIPLIER = 1
291
local ANIM = "Idle"
292
local ATTACK = false
293
local EQUIPPED = false
294
local HOLD = false
295
local COMBO = 1
296
local Rooted = false
297
local SINE = 0
298
local KEYHOLD = false
299
local CHANGE = 2 / Animation_Speed
300
local WALKINGANIM = false
301
local VALUE1 = false
302
local VALUE2 = false
303
local ROBLOXIDLEANIMATION = IT("Animation")
304
ROBLOXIDLEANIMATION.Name = "Roblox Idle Animation"
305
ROBLOXIDLEANIMATION.AnimationId = "http://www.roblox.com/asset/?id=180435571"
306
--ROBLOXIDLEANIMATION.Parent = Humanoid
307
local WEAPONGUI = IT("ScreenGui", PlayerGui)
308
WEAPONGUI.Name = "Weapon GUI"
309
local Effects = IT("Folder", Character)
310
Effects.Name = "Effects"
311
local ANIMATOR = Humanoid.Animator
312
local ANIMATE = Character.Animate
313
local UNANCHOR = true
314
local LAUGHS = {834001699,834001752,834001797,834001828}
315
316
Animation_Speed = 3
317
local FORCERESET = false
318
Frame_Speed = 1 / 60 -- (1 / 30) OR (1 / 60)
319
local Speed = 16
320
local ROOTC0 = CF(0, 0, 0) * ANGLES(RAD(-90), RAD(0), RAD(180))
321
local NECKC0 = CF(0, 1, 0) * ANGLES(RAD(-90), RAD(0), RAD(180))
322
local RIGHTSHOULDERC0 = CF(-0.5, 0, 0) * ANGLES(RAD(0), RAD(90), RAD(0))
323
local LEFTSHOULDERC0 = CF(0.5, 0, 0) * ANGLES(RAD(0), RAD(-90), RAD(0))
324
local DAMAGEMULTIPLIER = 1
325
local ANIM = "Idle"
326
local ATTACK = false
327
local EQUIPPED = false
328
local HOLD = true
329
local COMBO = 3
330
local Rooted = false
331
local SINE = 5
332
local KEYHOLD = false
333
local CHANGE = 2 / Animation_Speed
334
local WALKINGANIM = false
335
local VALUE1 = false
336
local VALUE2 = false
337
local ROBLOXIDLEANIMATION = IT("Animation")
338
ROBLOXIDLEANIMATION.Name = "Roblox Idle Animation"
339
ROBLOXIDLEANIMATION.AnimationId = "http://www.roblox.com/asset/?id=180435571"
340
--ROBLOXIDLEANIMATION.Parent = Humanoid
341
local WEAPONGUI = IT("ScreenGui", PlayerGui)
342
WEAPONGUI.Name = "BanishV4Gui"
343
local Weapon = IT("Model")
344
Weapon.Name = "Adds"
345
local Effects = IT("Folder", Weapon)
346
Effects.Name = "Effects"
347
local ANIMATOR = Humanoid.Animator
348
local ANIMATE = Character:FindFirstChild("Animate")
349
local UNANCHOR = true
350
local TOBANISH = {}
351
script.Parent = PlayerGui
352
353
--//=================================\\
354
--\\=================================//
355
356
357
--//=================================\\
358
--|| SAZERENOS' ARTIFICIAL HEARTBEAT
359
--\\=================================//
360
361
ArtificialHB = Instance.new("BindableEvent", script)
362
ArtificialHB.Name = "ArtificialHB"
363
364
script:WaitForChild("ArtificialHB")
365
366
frame = Frame_Speed
367
tf = 0
368
allowframeloss = false
369
tossremainder = false
370
lastframe = tick()
371
script.ArtificialHB:Fire()
372
373
game:GetService("RunService").Heartbeat:connect(function(s, p)
374
	tf = tf + s
375
	if tf >= frame then
376
		if allowframeloss then
377
			script.ArtificialHB:Fire()
378
			lastframe = tick()
379
		else
380
			for i = 1, math.floor(tf / frame) do
381
				script.ArtificialHB:Fire()
382
			end
383
		lastframe = tick()
384
		end
385
		if tossremainder then
386
			tf = 0
387
		else
388
			tf = tf - frame * math.floor(tf / frame)
389
		end
390
	end
391
end)
392
393
--//=================================\\
394
--\\=================================//
395
396
--//=================================\\
397
--|| 	      SOME FUNCTIONS
398
--\\=================================//
399
function Raycast(POSITION, DIRECTION, RANGE, IGNOREDECENDANTS)
400
	return workspace:FindPartOnRay(Ray.new(POSITION, DIRECTION.unit * RANGE), IGNOREDECENDANTS)
401
end
402
403
function PositiveAngle(NUMBER)
404
	if NUMBER >= 0 then
405
		NUMBER = 0
406
	end
407
	return NUMBER
408
end
409
410
function NegativeAngle(NUMBER)
411
	if NUMBER <= 0 then
412
		NUMBER = 0
413
	end
414
	return NUMBER
415
end
416
417
function Swait(NUMBER)
418
	if NUMBER == 0 or NUMBER == nil then
419
		ArtificialHB.Event:wait()
420
	else
421
		for i = 1, NUMBER do
422
			ArtificialHB.Event:wait()
423
		end
424
	end
425
end
426
427
function CreateMesh(MESH, PARENT, MESHTYPE, MESHID, TEXTUREID, SCALE, OFFSET)
428
	local NEWMESH = IT(MESH)
429
	if MESH == "SpecialMesh" then
430
		NEWMESH.MeshType = MESHTYPE
431
		if MESHID ~= "nil" and MESHID ~= "" then
432
			NEWMESH.MeshId = "http://www.roblox.com/asset/?id="..MESHID
433
		end
434
		if TEXTUREID ~= "nil" and TEXTUREID ~= "" then
435
			NEWMESH.TextureId = "http://www.roblox.com/asset/?id="..TEXTUREID
436
		end
437
	end
438
	NEWMESH.Offset = OFFSET or VT(0, 0, 0)
439
	NEWMESH.Scale = SCALE
440
	NEWMESH.Parent = PARENT
441
	return NEWMESH
442
end
443
444
function CreatePart(FORMFACTOR, PARENT, MATERIAL, REFLECTANCE, TRANSPARENCY, BRICKCOLOR, NAME, SIZE, ANCHOR)
445
	local NEWPART = IT("Part")
446
	NEWPART.formFactor = FORMFACTOR
447
	NEWPART.Reflectance = REFLECTANCE
448
	NEWPART.Transparency = TRANSPARENCY
449
	NEWPART.CanCollide = false
450
	NEWPART.Locked = true
451
	NEWPART.Anchored = true
452
	if ANCHOR == false then
453
		NEWPART.Anchored = false
454
	end
455
	NEWPART.BrickColor = BRICKC(tostring(BRICKCOLOR))
456
	NEWPART.Name = NAME
457
	NEWPART.Size = SIZE
458
	NEWPART.Position = Torso.Position
459
	NEWPART.Material = MATERIAL
460
	NEWPART:BreakJoints()
461
	NEWPART.Parent = PARENT
462
	return NEWPART
463
end
464
465
	local function weldBetween(a, b)
466
	    local weldd = Instance.new("ManualWeld")
467
	    weldd.Part0 = a
468
	    weldd.Part1 = b
469
	    weldd.C0 = CFrame.new()
470
	    weldd.C1 = b.CFrame:inverse() * a.CFrame
471
	    weldd.Parent = a
472
	    return weldd
473
	end
474
475
476
function QuaternionFromCFrame(cf)
477
	local mx, my, mz, m00, m01, m02, m10, m11, m12, m20, m21, m22 = cf:components()
478
	local trace = m00 + m11 + m22
479
	if trace > 0 then 
480
		local s = math.sqrt(1 + trace)
481
		local recip = 0.5 / s
482
		return (m21 - m12) * recip, (m02 - m20) * recip, (m10 - m01) * recip, s * 0.5
483
	else
484
		local i = 0
485
		if m11 > m00 then
486
			i = 1
487
		end
488
		if m22 > (i == 0 and m00 or m11) then
489
			i = 2
490
		end
491
		if i == 0 then
492
			local s = math.sqrt(m00 - m11 - m22 + 1)
493
			local recip = 0.5 / s
494
			return 0.5 * s, (m10 + m01) * recip, (m20 + m02) * recip, (m21 - m12) * recip
495
		elseif i == 1 then
496
			local s = math.sqrt(m11 - m22 - m00 + 1)
497
			local recip = 0.5 / s
498
			return (m01 + m10) * recip, 0.5 * s, (m21 + m12) * recip, (m02 - m20) * recip
499
		elseif i == 2 then
500
			local s = math.sqrt(m22 - m00 - m11 + 1)
501
			local recip = 0.5 / s return (m02 + m20) * recip, (m12 + m21) * recip, 0.5 * s, (m10 - m01) * recip
502
		end
503
	end
504
end
505
 
506
function QuaternionToCFrame(px, py, pz, x, y, z, w)
507
	local xs, ys, zs = x + x, y + y, z + z
508
	local wx, wy, wz = w * xs, w * ys, w * zs
509
	local xx = x * xs
510
	local xy = x * ys
511
	local xz = x * zs
512
	local yy = y * ys
513
	local yz = y * zs
514
	local zz = z * zs
515
	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))
516
end
517
 
518
function QuaternionSlerp(a, b, t)
519
	local cosTheta = a[1] * b[1] + a[2] * b[2] + a[3] * b[3] + a[4] * b[4]
520
	local startInterp, finishInterp;
521
	if cosTheta >= 0.0001 then
522
		if (1 - cosTheta) > 0.0001 then
523
			local theta = ACOS(cosTheta)
524
			local invSinTheta = 1 / SIN(theta)
525
			startInterp = SIN((1 - t) * theta) * invSinTheta
526
			finishInterp = SIN(t * theta) * invSinTheta
527
		else
528
			startInterp = 1 - t
529
			finishInterp = t
530
		end
531
	else
532
		if (1 + cosTheta) > 0.0001 then
533
			local theta = ACOS(-cosTheta)
534
			local invSinTheta = 1 / SIN(theta)
535
			startInterp = SIN((t - 1) * theta) * invSinTheta
536
			finishInterp = SIN(t * theta) * invSinTheta
537
		else
538
			startInterp = t - 1
539
			finishInterp = t
540
		end
541
	end
542
	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
543
end
544
545
function Clerp(a, b, t)
546
	local qa = {QuaternionFromCFrame(a)}
547
	local qb = {QuaternionFromCFrame(b)}
548
	local ax, ay, az = a.x, a.y, a.z
549
	local bx, by, bz = b.x, b.y, b.z
550
	local _t = 1 - t
551
	return QuaternionToCFrame(_t * ax + t * bx, _t * ay + t * by, _t * az + t * bz, QuaternionSlerp(qa, qb, t))
552
end
553
554
function CreateFrame(PARENT, TRANSPARENCY, BORDERSIZEPIXEL, POSITION, SIZE, COLOR, BORDERCOLOR, NAME)
555
	local frame = IT("Frame")
556
	frame.BackgroundTransparency = TRANSPARENCY
557
	frame.BorderSizePixel = BORDERSIZEPIXEL
558
	frame.Position = POSITION
559
	frame.Size = SIZE
560
	frame.BackgroundColor3 = COLOR
561
	frame.BorderColor3 = BORDERCOLOR
562
	frame.Name = NAME
563
	frame.Parent = PARENT
564
	return frame
565
end
566
567
function CreateLabel(PARENT, TEXT, TEXTCOLOR, TEXTFONTSIZE, TEXTFONT, TRANSPARENCY, BORDERSIZEPIXEL, STROKETRANSPARENCY, NAME)
568
	local label = IT("TextLabel")
569
	label.BackgroundTransparency = 1
570
	label.Size = UD2(1, 0, 1, 0)
571
	label.Position = UD2(0, 0, 0, 0)
572
	label.TextColor3 = TEXTCOLOR
573
	label.TextStrokeTransparency = STROKETRANSPARENCY
574
	label.TextTransparency = TRANSPARENCY
575
	label.FontSize = TEXTFONTSIZE
576
	label.Font = TEXTFONT
577
	label.BorderSizePixel = BORDERSIZEPIXEL
578
	label.TextScaled = false
579
	label.Text = TEXT
580
	label.Name = NAME
581
	label.Parent = PARENT
582
	return label
583
end
584
585
function NoOutlines(PART)
586
	PART.TopSurface, PART.BottomSurface, PART.LeftSurface, PART.RightSurface, PART.FrontSurface, PART.BackSurface = 10, 10, 10, 10, 10, 10
587
end
588
589
function CreateWeldOrSnapOrMotor(TYPE, PARENT, PART0, PART1, C0, C1)
590
	local NEWWELD = IT(TYPE)
591
	NEWWELD.Part0 = PART0
592
	NEWWELD.Part1 = PART1
593
	NEWWELD.C0 = C0
594
	NEWWELD.C1 = C1
595
	NEWWELD.Parent = PARENT
596
	return NEWWELD
597
end
598
599
local S = IT("Sound")
600
function CreateSound(ID, PARENT, VOLUME, PITCH, DOESLOOP)
601
	local NEWSOUND = nil
602
	coroutine.resume(coroutine.create(function()
603
		NEWSOUND = S:Clone()
604
		NEWSOUND.Parent = PARENT
605
		NEWSOUND.Volume = VOLUME
606
		NEWSOUND.Pitch = PITCH
607
		NEWSOUND.SoundId = "http://www.roblox.com/asset/?id="..ID
608
		NEWSOUND:play()
609
		if DOESLOOP == true then
610
			NEWSOUND.Looped = true
611
		else
612
			repeat wait(1) until NEWSOUND.Playing == false
613
			NEWSOUND:remove()
614
		end
615
	end))
616
	return NEWSOUND
617
end
618
619
620
local EyeSizes={
621
	NumberSequenceKeypoint.new(0,2,0),
622
	NumberSequenceKeypoint.new(1,0,0)
623
}
624
local EyeTrans={
625
	NumberSequenceKeypoint.new(0,0.5,0),
626
	NumberSequenceKeypoint.new(1,1,0)
627
}
628
local PE=Instance.new("ParticleEmitter",nil)
629
PE.LightEmission=.8
630
PE.Color = ColorSequence.new(BRICKC("Lime green").Color,BRICKC("Lime green").Color)
631
PE.Size=NumberSequence.new(EyeSizes)
632
PE.Transparency=NumberSequence.new(EyeTrans)
633
PE.Lifetime=NumberRange.new(0.35,1)
634
PE.Rotation=NumberRange.new(0,360)
635
PE.Rate=100
636
PE.VelocitySpread = 10000
637
PE.Acceleration = Vector3.new(0,85,0)
638
PE.Drag = 5
639
PE.Speed = NumberRange.new(0.1,5)
640
PE.Texture="http://www.roblox.com/asset/?id=1460745664"
641
PE.ZOffset = 0.5
642
PE.Name = "PE"
643
PE.Enabled = false
644
645
function Fire(art)
646
	local PARTICLES = PE:Clone()
647
	PARTICLES.Parent = art
648
	PARTICLES.Enabled = true
649
	return PARTICLES
650
end
651
652
function CFrameFromTopBack(at, top, back)
653
	local right = top:Cross(back)
654
	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)
655
end
656
657
--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})
658
function WACKYEFFECT(Table)
659
	local TYPE = (Table.EffectType or "Sphere")
660
	local SIZE = (Table.Size or VT(1,1,1))
661
	local ENDSIZE = (Table.Size2 or VT(0,0,0))
662
	local TRANSPARENCY = (Table.Transparency or 0)
663
	local ENDTRANSPARENCY = (Table.Transparency2 or 1)
664
	local CFRAME = (Table.CFrame or Torso.CFrame)
665
	local MOVEDIRECTION = (Table.MoveToPos or nil)
666
	local ROTATION1 = (Table.RotationX or 0)
667
	local ROTATION2 = (Table.RotationY or 0)
668
	local ROTATION3 = (Table.RotationZ or 0)
669
	local MATERIAL = (Table.Material or "Neon")
670
	local COLOR = (Table.Color or C3(1,1,1))
671
	local TIME = (Table.Time or 45)
672
	local SOUNDID = (Table.SoundID or nil)
673
	local SOUNDPITCH = (Table.SoundPitch or nil)
674
	local SOUNDVOLUME = (Table.SoundVolume or nil)
675
	coroutine.resume(coroutine.create(function()
676
		local PLAYSSOUND = false
677
		local SOUND = nil
678
		local EFFECT = CreatePart(3, Effects, MATERIAL, 0, TRANSPARENCY, BRICKC("Lime green"), "Effect", VT(1,1,1), true)
679
		if SOUNDID ~= nil and SOUNDPITCH ~= nil and SOUNDVOLUME ~= nil then
680
			PLAYSSOUND = true
681
			SOUND = CreateSound(SOUNDID, EFFECT, SOUNDVOLUME, SOUNDPITCH, false)
682
		end
683
		EFFECT.Color = COLOR
684
		local MSH = nil
685
		if TYPE == "Sphere" then
686
			MSH = CreateMesh("SpecialMesh", EFFECT, "Sphere", "", "", SIZE, VT(0,0,0))
687
		elseif TYPE == "Block" or TYPE == "Box" then
688
			MSH = IT("BlockMesh",EFFECT)
689
			MSH.Scale = SIZE
690
		elseif TYPE == "Wave" then
691
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "20329976", "", SIZE, VT(0,0,-SIZE.X/8))
692
		elseif TYPE == "Ring" then
693
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "559831844", "", VT(SIZE.X,SIZE.X,0.1), VT(0,0,0))
694
		elseif TYPE == "Slash" then
695
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "662586858", "", VT(SIZE.X/10,0,SIZE.X/10), VT(0,0,0))
696
		elseif TYPE == "Round Slash" then
697
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "662585058", "", VT(SIZE.X/10,0,SIZE.X/10), VT(0,0,0))
698
		elseif TYPE == "Swirl" then
699
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "1051557", "", SIZE, VT(0,0,0))
700
		elseif TYPE == "Skull" then
701
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "4770583", "", SIZE, VT(0,0,0))
702
		elseif TYPE == "Crystal" then
703
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "9756362", "", SIZE, VT(0,0,0))
704
		end
705
		if MSH ~= nil then
706
			local MOVESPEED = nil
707
			if MOVEDIRECTION ~= nil then
708
				MOVESPEED = (CFRAME.p - MOVEDIRECTION).Magnitude/TIME
709
			end
710
			local GROWTH = SIZE - ENDSIZE
711
			local TRANS = TRANSPARENCY - ENDTRANSPARENCY
712
			if TYPE == "Block" then
713
				EFFECT.CFrame = CFRAME*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)))
714
			else
715
				EFFECT.CFrame = CFRAME
716
			end
717
			for LOOP = 1, TIME+1 do
718
				Swait()
719
				MSH.Scale = MSH.Scale - GROWTH/TIME
720
				if TYPE == "Wave" then
721
					MSH.Offset = VT(0,0,-MSH.Scale.X/8)
722
				end
723
				EFFECT.Transparency = EFFECT.Transparency - TRANS/TIME
724
				if TYPE == "Block" then
725
					EFFECT.CFrame = CFRAME*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)))
726
				else
727
					EFFECT.CFrame = EFFECT.CFrame*ANGLES(RAD(ROTATION1),RAD(ROTATION2),RAD(ROTATION3))
728
				end
729
				if MOVEDIRECTION ~= nil then
730
					local ORI = EFFECT.Orientation
731
					EFFECT.CFrame = CF(EFFECT.Position,MOVEDIRECTION)*CF(0,0,-MOVESPEED)
732
					EFFECT.Orientation = ORI
733
				end
734
			end
735
			if PLAYSSOUND == false then
736
				EFFECT:remove()
737
			else
738
				repeat wait(1) until SOUND.Playing == false
739
				EFFECT:remove()
740
			end
741
		else
742
			if PLAYSSOUND == false then
743
				EFFECT:remove()
744
			else
745
				repeat Swait() until SOUND.Playing == false
746
				EFFECT:remove()
747
			end
748
		end
749
	end))
750
end
751
752
function MakeForm(PART,TYPE)
753
	if TYPE == "Cyl" then
754
		local MSH = IT("CylinderMesh",PART)
755
	elseif TYPE == "Ball" then
756
		local MSH = IT("SpecialMesh",PART)
757
		MSH.MeshType = "Sphere"
758
	elseif TYPE == "Wedge" then
759
		local MSH = IT("SpecialMesh",PART)
760
		MSH.MeshType = "Wedge"
761
	end
762
end
763
764
Debris = game:GetService("Debris")
765
766
function CastProperRay(StartPos, EndPos, Distance, Ignore)
767
	local DIRECTION = CF(StartPos,EndPos).lookVector
768
	return Raycast(StartPos, DIRECTION, Distance, Ignore)
769
end
770
771
local HATWELD = nil
772
function Pose(WhichPose,Speed,Time,Magic,Gyro,Tors)
773
	PLAYMAINANIM = false
774
	if WhichPose == "Cast1" then
775
		for i=0, Time, 0.1 / Animation_Speed do
776
			Swait()
777
			if Magic == true then
778
				WACKYEFFECT({Time = 15, EffectType = "Crystal", Size = VT(1,1,1)*1.5, Size2 = VT(0,4,0), Transparency = 0, Transparency2 = 1, CFrame = RightArm.CFrame*CF(0,-1,0)*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360))), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Glass", Color = BRICKC"Lime green".Color, SoundID = nil, SoundPitch = nil, SoundVolume = nil})
779
			end
780
			if Gyro ~= nil and Gyro ~= false then
781
				Gyro.cframe = CF(RootPart.Position,Mouse.Hit.p)
782
			end
783
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(35)), Speed / Animation_Speed)
784
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(5 - 6.5 * SIN(SINE / 12)), RAD(0), RAD(-35)), Speed / Animation_Speed)
785
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.65 + 0.15 * COS(SINE / 12) - 0.05 * COS(SINE / 12), -0.5) * ANGLES(RAD(125), RAD(0), RAD(45)) * RIGHTSHOULDERC0, Speed / Animation_Speed)
786
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.25, 0.5 + 0.15 * COS(SINE / 12) - 0.05 * COS(SINE / 12), 0.5) * ANGLES(RAD(-45), RAD(0), RAD(45)) * LEFTSHOULDERC0, Speed / Animation_Speed)
787
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.5, -0.5) * ANGLES(RAD(0), RAD(65), RAD(0)) * ANGLES(RAD(-3), RAD(0), RAD(-15)), Speed / Animation_Speed)
788
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, -0.01) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), Speed / Animation_Speed)
789
		end
790
	elseif WhichPose == "Cast2" then
791
		for i=0, Time, 0.1 / Animation_Speed do
792
			Swait()
793
			if Magic == true then
794
				WACKYEFFECT({Time = 15, EffectType = "Crystal", Size = VT(1,1,1)*1.5, Size2 = VT(0,4,0), Transparency = 0, Transparency2 = 1, CFrame = RightArm.CFrame*CF(0,-1,0)*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360))), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Glass", Color = BRICKC"Lime green".Color, SoundID = nil, SoundPitch = nil, SoundVolume = nil})
795
				WACKYEFFECT({Time = 15, EffectType = "Crystal", Size = VT(1,1,1)*1.5, Size2 = VT(0,4,0), Transparency = 0, Transparency2 = 1, CFrame = LeftArm.CFrame*CF(0,-1,0)*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360))), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Glass", Color = BRICKC"Lime green".Color, SoundID = nil, SoundPitch = nil, SoundVolume = nil})
796
			end
797
			if Gyro ~= nil and Gyro ~= false then
798
				Gyro.cframe = CF(RootPart.Position,Mouse.Hit.p)
799
			end
800
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(0)), Speed / Animation_Speed)
801
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(-15 - 6.5 * SIN(SINE / 12)), RAD(0), RAD(0)), Speed / Animation_Speed)
802
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.65 + 0.15 * COS(SINE / 12) - 0.05 * COS(SINE / 12), -0.5) * ANGLES(RAD(120), RAD(0), RAD(15)) * RIGHTSHOULDERC0, Speed / Animation_Speed)
803
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.65 + 0.15 * COS(SINE / 12) - 0.05 * COS(SINE / 12), -0.5) * ANGLES(RAD(120), RAD(0), RAD(-15)) * LEFTSHOULDERC0, Speed / Animation_Speed)
804
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.5, -0.5) * ANGLES(RAD(0), RAD(65), RAD(0)) * ANGLES(RAD(-3), RAD(0), RAD(-15)), Speed / Animation_Speed)
805
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, -0.01) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), Speed / Animation_Speed)
806
		end
807
	elseif WhichPose == "RightArmUp" then
808
		for i=0, Time, 0.1 / Animation_Speed do
809
			Swait()
810
			if Magic == true then
811
				WACKYEFFECT({Time = 15, EffectType = "Crystal", Size = VT(1,1,1)*1.5, Size2 = VT(0,4,0), Transparency = 0, Transparency2 = 1, CFrame = RightArm.CFrame*CF(0,-1,0)*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360))), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Glass", Color = BRICKC"Lime green".Color, SoundID = nil, SoundPitch = nil, SoundVolume = nil})
812
			end
813
			if Gyro ~= nil and Gyro ~= false then
814
				Gyro.cframe = CF(RootPart.Position,Mouse.Hit.p)
815
			end
816
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(15)), Speed / Animation_Speed)
817
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(-5 - 6.5 * SIN(SINE / 12)), RAD(0), RAD(-15)), Speed / Animation_Speed)
818
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.65 + 0.15 * COS(SINE / 12) - 0.05 * COS(SINE / 12), -0.2) * ANGLES(RAD(125), RAD(0), RAD(25)) * RIGHTSHOULDERC0, Speed / Animation_Speed)
819
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.25, 0.5 + 0.15 * COS(SINE / 12) - 0.05 * COS(SINE / 12), 0.5) * ANGLES(RAD(-45), RAD(0), RAD(45)) * LEFTSHOULDERC0, Speed / Animation_Speed)
820
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.5, -0.5) * ANGLES(RAD(0), RAD(65), RAD(0)) * ANGLES(RAD(-3), RAD(0), RAD(-15)), Speed / Animation_Speed)
821
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, -0.01) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), Speed / Animation_Speed)
822
		end
823
	elseif WhichPose == "Taunt" then
824
		for i=0, Time, 0.1 / Animation_Speed do
825
			Swait()
826
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(0)), Speed / Animation_Speed)
827
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(-5 - 6.5 * SIN(SINE / 12)), RAD(0), RAD(0)), Speed / Animation_Speed)
828
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.25, 0.5 + 0.15 * COS(SINE / 12) - 0.05 * COS(SINE / 12), -0.5) * ANGLES(RAD(175), RAD(0), RAD(-35)) * RIGHTSHOULDERC0, Speed / Animation_Speed)
829
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.25, 0.5 + 0.15 * COS(SINE / 12) - 0.05 * COS(SINE / 12), 0.5) * ANGLES(RAD(-45), RAD(0), RAD(45)) * LEFTSHOULDERC0, Speed / Animation_Speed)
830
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.5, -0.5) * ANGLES(RAD(0), RAD(65), RAD(0)) * ANGLES(RAD(-3), RAD(0), RAD(-15)), Speed / Animation_Speed)
831
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, -0.01) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), Speed / Animation_Speed)
832
		end
833
		HATWELD.Part0 = RightArm
834
		HATWELD.C0 = CF(0,-1.1,-0.4) * ANGLES(RAD(0), RAD(0), RAD(180)) * ANGLES(RAD(-20), RAD(0), RAD(0))
835
		CreateSound(137473066,Torso,10,1,false)
836
		for i=0, Time*2, 0.1 / Animation_Speed do
837
			Swait()
838
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(0)), Speed / Animation_Speed)
839
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(35 - 6.5 * SIN(SINE / 12)), RAD(0), RAD(0)), Speed / Animation_Speed)
840
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.25, 0.5 + 0.15 * COS(SINE / 12) - 0.05 * COS(SINE / 12), 0.5) * ANGLES(RAD(145), RAD(0), RAD(45)) * RIGHTSHOULDERC0, Speed / Animation_Speed)
841
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.25, 0.5 + 0.15 * COS(SINE / 12) - 0.05 * COS(SINE / 12), 0.5) * ANGLES(RAD(5), RAD(25), RAD(-15)) * LEFTSHOULDERC0, Speed / Animation_Speed)
842
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.5, -0.5) * ANGLES(RAD(0), RAD(65), RAD(0)) * ANGLES(RAD(-3), RAD(0), RAD(-15)), Speed / Animation_Speed)
843
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, -0.01) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), Speed / Animation_Speed)
844
		end
845
		for i=0, Time, 0.1 / Animation_Speed do
846
			Swait()
847
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(0)), Speed / Animation_Speed)
848
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(5), RAD(0), RAD(0)), Speed / Animation_Speed)
849
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.35, 0.65, -0.5) * ANGLES(RAD(175), RAD(0), RAD(-35)) * RIGHTSHOULDERC0, Speed / Animation_Speed)
850
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.25, 0.5 + 0.15 * COS(SINE / 12) - 0.05 * COS(SINE / 12), 0.5) * ANGLES(RAD(-45), RAD(0), RAD(45)) * LEFTSHOULDERC0, Speed / Animation_Speed)
851
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.5, -0.5) * ANGLES(RAD(0), RAD(65), RAD(0)) * ANGLES(RAD(-3), RAD(0), RAD(-15)), Speed / Animation_Speed)
852
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, -0.01) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), Speed / Animation_Speed)
853
			HATWELD.C0 = Clerp(HATWELD.C0, CF(-0.5,-1.2,-0.3) * ANGLES(RAD(0), RAD(0), RAD(180)) * ANGLES(RAD(35), RAD(0), RAD(35)), Speed / Animation_Speed)
854
		end
855
		HATWELD.Part0 = Head
856
		HATWELD.C0 = CF(0,0.35,0)
857
	elseif WhichPose == "Prepare key" then
858
		for i=0, Time, 0.1 / Animation_Speed do
859
			Swait()
860
			if Gyro ~= nil and Gyro ~= false then
861
				Gyro.cframe = CF(RootPart.Position,Tors.Position)
862
			end
863
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(65)), Speed / Animation_Speed)
864
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(5 - 6.5 * SIN(SINE / 12)), RAD(0), RAD(-65)), Speed / Animation_Speed)
865
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5 + 0.15 * COS(SINE / 12) - 0.05 * COS(SINE / 12), -0.25) * ANGLES(RAD(90), RAD(0), RAD(65)) * RIGHTSHOULDERC0, Speed / Animation_Speed)
866
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.25, 0.5 + 0.15 * COS(SINE / 12) - 0.05 * COS(SINE / 12), 0.5) * ANGLES(RAD(-45), RAD(0), RAD(45)) * LEFTSHOULDERC0, Speed / Animation_Speed)
867
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.5, -0.5) * ANGLES(RAD(0), RAD(65), RAD(0)) * ANGLES(RAD(-3), RAD(0), RAD(-15)), Speed / Animation_Speed)
868
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, -0.01) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), Speed / Animation_Speed)
869
		end
870
	elseif WhichPose == "Turn key" then
871
		for i=0, Time, 0.1 / Animation_Speed do
872
			Swait()
873
			if Gyro ~= nil and Gyro ~= false then
874
				Gyro.cframe = CF(RootPart.Position,Tors.Position)
875
			end
876
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(75)), Speed / Animation_Speed)
877
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(5 - 6.5 * SIN(SINE / 12)), RAD(0), RAD(-75)), Speed / Animation_Speed)
878
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5 + 0.15 * COS(SINE / 12) - 0.05 * COS(SINE / 12), -0.25) * ANGLES(RAD(90), RAD(0), RAD(75)) * ANGLES(RAD(0), RAD(-90), RAD(0)) * RIGHTSHOULDERC0, Speed / Animation_Speed)
879
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.25, 0.5 + 0.15 * COS(SINE / 12) - 0.05 * COS(SINE / 12), 0.5) * ANGLES(RAD(-45), RAD(0), RAD(45)) * LEFTSHOULDERC0, Speed / Animation_Speed)
880
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.5, -0.5) * ANGLES(RAD(0), RAD(65), RAD(0)) * ANGLES(RAD(-3), RAD(0), RAD(-15)), Speed / Animation_Speed)
881
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, -0.01) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), Speed / Animation_Speed)
882
		end
883
	end
884
	PLAYMAINANIM = true
885
end
886
887
--Lightning({Color = C3(1,1,1), Start = Torso.Position, End = Mouse.Hit.p, SegmentL = 2, Thickness = 0.1, DoesFade = false, Ignore = Character, MaxDist = 400, Branches = false})
888
function Lightning(Table)
889
	local Color = Table.Color or C3(1,1,1)
890
	local StartPos = Table.Start or Torso.Position
891
	local EndPos = Table.End or Mouse.Hit.p
892
	local SegmentLength = Table.SegmentL or 2
893
	local Thickness = Table.Thickness or 0.1
894
	local Dissapear = Table.DoesFade or false
895
	local Parent = Table.Ignore or Character
896
	local MaxDist = Table.MaxDist or 400
897
	local Branches = Table.Branches or false
898
	local HIT,HITPOS = CastProperRay(StartPos, EndPos, MaxDist, Parent)
899
	local DISTANCE = math.ceil((StartPos - HITPOS).Magnitude/SegmentLength)
900
	local LIGHTNINGMODEL = IT("Model",Effects)
901
	LIGHTNINGMODEL.Name = "Lightning"
902
	local LastBolt = nil
903
	for E = 1, DISTANCE do
904
		local ExtraSize = (DISTANCE-E)/15
905
		local PART = CreatePart(3, LIGHTNINGMODEL, "Neon", 0, 0, BRICKC("Lime green"), "LightningPart"..E, VT(Thickness+ExtraSize,SegmentLength,Thickness+ExtraSize))
906
		PART.Color = Color
907
		MakeForm(PART,"Cyl")
908
		if LastBolt == nil then
909
			PART.CFrame = CF(StartPos,HITPOS)*ANGLES(RAD(90),RAD(0),RAD(0))*CF(0,-PART.Size.Y/2,0)
910
		else
911
			PART.CFrame = CF(LastBolt.CFrame*CF(0,-LastBolt.Size.Y/2,0).p,CF(HITPOS)*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)))*CF(0,0,SegmentLength/3+(DISTANCE-E)).p)*ANGLES(RAD(90),RAD(0),RAD(0))*CF(0,-PART.Size.Y/2,0)
912
		end
913
		LastBolt = PART
914
		if Branches == true then
915
			local CHOICE = MRANDOM(1,7+((DISTANCE-E)*2))
916
			if CHOICE == 1 then
917
				local LASTBRANCH = nil
918
				for i = 1, MRANDOM(2,5) do
919
					local ExtraSize2 = ((DISTANCE-E)/25)/i
920
					local PART = CreatePart(3, LIGHTNINGMODEL, "Neon", 0, 0, BRICKC("Crimson"), "Branch"..E.."-"..i, VT(Thickness+ExtraSize2,SegmentLength,Thickness+ExtraSize2))
921
					PART.Color = Color
922
					MakeForm(PART,"Cyl")
923
					if LASTBRANCH == nil then
924
						PART.CFrame = CF(LastBolt.CFrame*CF(0,-LastBolt.Size.Y/2,0).p,LastBolt.CFrame*CF(0,-LastBolt.Size.Y/2,0)*ANGLES(RAD(0),RAD(0),RAD(MRANDOM(0,360)))*CF(0,Thickness*7,0)*CF(0,0,-1).p)*ANGLES(RAD(90),RAD(0),RAD(0))*CF(0,-PART.Size.Y/2,0)
925
					else
926
						PART.CFrame = CF(LASTBRANCH.CFrame*CF(0,-LASTBRANCH.Size.Y/2,0).p,LASTBRANCH.CFrame*CF(0,-LASTBRANCH.Size.Y/2,0)*ANGLES(RAD(0),RAD(0),RAD(MRANDOM(0,360)))*CF(0,Thickness*3,0)*CF(0,0,-1).p)*ANGLES(RAD(90),RAD(0),RAD(0))*CF(0,-PART.Size.Y/2,0)
927
					end
928
					LASTBRANCH = PART
929
				end
930
			end
931
		end
932
	end
933
	if Dissapear == true then
934
		coroutine.resume(coroutine.create(function()
935
			for i = 1, 10 do
936
				Swait()
937
				for _, c in pairs(LIGHTNINGMODEL:GetChildren()) do
938
					if c.ClassName == "Part" then
939
						c.Transparency = i/10
940
					end
941
				end
942
			end
943
			LIGHTNINGMODEL:remove()
944
		end))
945
	elseif Dissapear == false then
946
		Debris:AddItem(LIGHTNINGMODEL,0.1)
947
	end
948
	return {End = LastBolt.CFrame*CF(0,0,-LastBolt.Size.Z/2).p,LastBolt = LastBolt,Model = LIGHTNINGMODEL}
949
end
950
951
function PositiveAngle(NUMBER)
952
	if NUMBER >= 0 then
953
		NUMBER = 0
954
	end
955
	return NUMBER
956
end
957
958
function NegativeAngle(NUMBER)
959
	if NUMBER <= 0 then
960
		NUMBER = 0
961
	end
962
	return NUMBER
963
end
964
965
function Swait(NUMBER)
966
	if NUMBER == 0 or NUMBER == nil then
967
		ArtificialHB.Event:wait()
968
	else
969
		for i = 1, NUMBER do
970
			ArtificialHB.Event:wait()
971
		end
972
	end
973
end
974
975
function QuaternionFromCFrame(cf)
976
	local mx, my, mz, m00, m01, m02, m10, m11, m12, m20, m21, m22 = cf:components()
977
	local trace = m00 + m11 + m22
978
	if trace > 0 then 
979
		local s = math.sqrt(1 + trace)
980
		local recip = 0.5 / s
981
		return (m21 - m12) * recip, (m02 - m20) * recip, (m10 - m01) * recip, s * 0.5
982
	else
983
		local i = 0
984
		if m11 > m00 then
985
			i = 1
986
		end
987
		if m22 > (i == 0 and m00 or m11) then
988
			i = 2
989
		end
990
		if i == 0 then
991
			local s = math.sqrt(m00 - m11 - m22 + 1)
992
			local recip = 0.5 / s
993
			return 0.5 * s, (m10 + m01) * recip, (m20 + m02) * recip, (m21 - m12) * recip
994
		elseif i == 1 then
995
			local s = math.sqrt(m11 - m22 - m00 + 1)
996
			local recip = 0.5 / s
997
			return (m01 + m10) * recip, 0.5 * s, (m21 + m12) * recip, (m02 - m20) * recip
998
		elseif i == 2 then
999
			local s = math.sqrt(m22 - m00 - m11 + 1)
1000
			local recip = 0.5 / s return (m02 + m20) * recip, (m12 + m21) * recip, 0.5 * s, (m10 - m01) * recip
1001
		end
1002
	end
1003
end
1004
 
1005
function QuaternionToCFrame(px, py, pz, x, y, z, w)
1006
	local xs, ys, zs = x + x, y + y, z + z
1007
	local wx, wy, wz = w * xs, w * ys, w * zs
1008
	local xx = x * xs
1009
	local xy = x * ys
1010
	local xz = x * zs
1011
	local yy = y * ys
1012
	local yz = y * zs
1013
	local zz = z * zs
1014
	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))
1015
end
1016
 
1017
function QuaternionSlerp(a, b, t)
1018
	local cosTheta = a[1] * b[1] + a[2] * b[2] + a[3] * b[3] + a[4] * b[4]
1019
	local startInterp, finishInterp;
1020
	if cosTheta >= 0.0001 then
1021
		if (1 - cosTheta) > 0.0001 then
1022
			local theta = ACOS(cosTheta)
1023
			local invSinTheta = 1 / SIN(theta)
1024
			startInterp = SIN((1 - t) * theta) * invSinTheta
1025
			finishInterp = SIN(t * theta) * invSinTheta
1026
		else
1027
			startInterp = 1 - t
1028
			finishInterp = t
1029
		end
1030
	else
1031
		if (1 + cosTheta) > 0.0001 then
1032
			local theta = ACOS(-cosTheta)
1033
			local invSinTheta = 1 / SIN(theta)
1034
			startInterp = SIN((t - 1) * theta) * invSinTheta
1035
			finishInterp = SIN(t * theta) * invSinTheta
1036
		else
1037
			startInterp = t - 1
1038
			finishInterp = t
1039
		end
1040
	end
1041
	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
1042
end
1043
1044
function Clerp(a, b, t)
1045
	local qa = {QuaternionFromCFrame(a)}
1046
	local qb = {QuaternionFromCFrame(b)}
1047
	local ax, ay, az = a.x, a.y, a.z
1048
	local bx, by, bz = b.x, b.y, b.z
1049
	local _t = 1 - t
1050
	return QuaternionToCFrame(_t * ax + t * bx, _t * ay + t * by, _t * az + t * bz, QuaternionSlerp(qa, qb, t))
1051
end
1052
1053
function CreateFrame(PARENT, TRANSPARENCY, BORDERSIZEPIXEL, POSITION, SIZE, COLOR, BORDERCOLOR, NAME)
1054
	local frame = IT("Frame")
1055
	frame.BackgroundTransparency = TRANSPARENCY
1056
	frame.BorderSizePixel = BORDERSIZEPIXEL
1057
	frame.Position = POSITION
1058
	frame.Size = SIZE
1059
	frame.BackgroundColor3 = COLOR
1060
	frame.BorderColor3 = BORDERCOLOR
1061
	frame.Name = NAME
1062
	frame.Parent = PARENT
1063
	return frame
1064
end
1065
1066
function CreateLabel(PARENT, TEXT, TEXTCOLOR, TEXTFONTSIZE, TEXTFONT, TRANSPARENCY, BORDERSIZEPIXEL, STROKETRANSPARENCY, NAME)
1067
	local label = IT("TextLabel")
1068
	label.BackgroundTransparency = 1
1069
	label.Size = UD2(1, 0, 1, 0)
1070
	label.Position = UD2(0, 0, 0, 0)
1071
	label.TextColor3 = TEXTCOLOR
1072
	label.TextStrokeTransparency = STROKETRANSPARENCY
1073
	label.TextTransparency = TRANSPARENCY
1074
	label.FontSize = TEXTFONTSIZE
1075
	label.Font = TEXTFONT
1076
	label.BorderSizePixel = BORDERSIZEPIXEL
1077
	label.TextScaled = false
1078
	label.Text = TEXT
1079
	label.Name = NAME
1080
	label.Parent = PARENT
1081
	return label
1082
end
1083
1084
function NoOutlines(PART)
1085
	PART.TopSurface, PART.BottomSurface, PART.LeftSurface, PART.RightSurface, PART.FrontSurface, PART.BackSurface = 10, 10, 10, 10, 10, 10
1086
end
1087
1088
1089
function CreateWeldOrSnapOrMotor(TYPE, PARENT, PART0, PART1, C0, C1)
1090
	local NEWWELD = IT(TYPE)
1091
	NEWWELD.Part0 = PART0
1092
	NEWWELD.Part1 = PART1
1093
	NEWWELD.C0 = C0
1094
	NEWWELD.C1 = C1
1095
	NEWWELD.Parent = PARENT
1096
	return NEWWELD
1097
end
1098
1099
function CreateSound(ID, PARENT, VOLUME, PITCH)
1100
	local NEWSOUND = nil
1101
	coroutine.resume(coroutine.create(function()
1102
		NEWSOUND = IT("Sound", PARENT)
1103
		NEWSOUND.Volume = VOLUME
1104
		NEWSOUND.Pitch = PITCH
1105
		NEWSOUND.SoundId = "http://www.roblox.com/asset/?id="..ID
1106
		Swait()
1107
		NEWSOUND:play()
1108
		game:GetService("Debris"):AddItem(NEWSOUND, 10)
1109
	end))
1110
	return NEWSOUND
1111
end
1112
1113
function CFrameFromTopBack(at, top, back)
1114
	local right = top:Cross(back)
1115
	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)
1116
end
1117
1118
function CreateWave(SIZE,WAIT,CFRAME,DOESROT,ROT,COLOR,GROW)
1119
	local wave = CreatePart(3, Effects, "Neon", 0, 0.5, BRICKC("Really red"), "Effect", VT(1,1,1), true)
1120
	local mesh = IT("SpecialMesh",wave)
1121
	mesh.MeshType = "FileMesh"
1122
	mesh.MeshId = "http://www.roblox.com/asset/?id=20329976"
1123
	mesh.Scale = SIZE
1124
	mesh.Offset = VT(0,0,-SIZE.X/8)
1125
	wave.CFrame = CFRAME
1126
	coroutine.resume(coroutine.create(function(PART)
1127
		for i = 1, WAIT do
1128
			Swait()
1129
			mesh.Scale = mesh.Scale + GROW
1130
			mesh.Offset = VT(0,0,-(mesh.Scale.X/8))
1131
			if DOESROT == true then
1132
				wave.CFrame = wave.CFrame * CFrame.fromEulerAnglesXYZ(0,ROT,0)
1133
			end
1134
			wave.Transparency = wave.Transparency + (0.5/WAIT)
1135
			if wave.Transparency > 0.99 then
1136
				wave:remove()
1137
			end
1138
		end
1139
	end))
1140
end
1141
1142
function CreateWave2(SIZE,WAIT,CFRAME,DOESROT,ROT,COLOR,GROW)
1143
	local wave = CreatePart(3, Effects, "Neon", 0, 0.5, BRICKC("Really red"), "Effect", VT(1,1,1), true)
1144
	local mesh = IT("SpecialMesh",wave)
1145
	mesh.MeshType = "FileMesh"
1146
	mesh.MeshId = "http://www.roblox.com/asset/?id=20329976"
1147
	mesh.Scale = SIZE
1148
	--mesh.Offset = VT(0,0,-SIZE.X/8)
1149
	wave.CFrame = CFRAME
1150
	coroutine.resume(coroutine.create(function(PART)
1151
		for i = 1, WAIT do
1152
			Swait()
1153
			mesh.Scale = mesh.Scale + GROW
1154
			--mesh.Offset = VT(0,0,-(mesh.Scale.X/8))
1155
			if DOESROT == true then
1156
				wave.CFrame = wave.CFrame * CFrame.fromEulerAnglesXYZ(0,ROT,0)
1157
			end
1158
			wave.Transparency = wave.Transparency + (0.5/WAIT)
1159
			if wave.Transparency > 0.99 then
1160
				wave:remove()
1161
			end
1162
		end
1163
	end))
1164
end
1165
1166
function CreateSwirl(SIZE,WAIT,CFRAME,DOESROT,ROT,COLOR,GROW)
1167
	local wave = CreatePart(3, Effects, "Neon", 0, 0.5, BRICKC("Really red"), "Effect", VT(1,1,1), true)
1168
	local mesh = IT("SpecialMesh",wave)
1169
	mesh.MeshType = "FileMesh"
1170
	mesh.MeshId = "http://www.roblox.com/asset/?id=1051557"
1171
	mesh.Scale = SIZE
1172
	wave.CFrame = CFRAME
1173
	coroutine.resume(coroutine.create(function(PART)
1174
		for i = 1, WAIT do
1175
			Swait()
1176
			mesh.Scale = mesh.Scale + GROW
1177
			mesh.Offset = VT(0,0,-(mesh.Scale.X/8))
1178
			if DOESROT == true then
1179
				wave.CFrame = wave.CFrame * CFrame.fromEulerAnglesXYZ(0,ROT,0)
1180
			end
1181
			wave.Transparency = wave.Transparency + (0.5/WAIT)
1182
			if wave.Transparency > 0.99 then
1183
				wave:remove()
1184
			end
1185
		end
1186
	end))
1187
end
1188
1189
1190
function Slice(SIZE,WAIT,CFRAME,COLOR,GROW)
1191
	local wave = CreatePart(3, Effects, "Neon", 0, 0.5, BRICKC("Really red"), "Effect", VT(1,1,1), true)
1192
	local mesh = CreateMesh("SpecialMesh", wave, "FileMesh", "448386996", "", VT(0,SIZE/10,SIZE/10), VT(0,0,0))
1193
	wave.CFrame = CFRAME
1194
	coroutine.resume(coroutine.create(function(PART)
1195
		for i = 1, WAIT do
1196
			Swait()
1197
			mesh.Scale = mesh.Scale * GROW
1198
			wave.Transparency = wave.Transparency + (0.5/WAIT)
1199
			if wave.Transparency > 0.99 then
1200
				wave:remove()
1201
			end
1202
		end
1203
	end))
1204
end
1205
1206
function MagicSphere(SIZE,WAIT,CFRAME,COLOR,GROW)
1207
	local wave = CreatePart(3, Effects, "Neon", 0, 0, BRICKC("Really red"), "Effect", VT(1,1,1), true)
1208
	local mesh = IT("SpecialMesh",wave)
1209
	mesh.MeshType = "Sphere"
1210
	mesh.Scale = SIZE
1211
	mesh.Offset = VT(0,0,0)
1212
	wave.CFrame = CFRAME
1213
	coroutine.resume(coroutine.create(function(PART)
1214
		for i = 1, WAIT do
1215
			Swait()
1216
			mesh.Scale = mesh.Scale + GROW
1217
			wave.Transparency = wave.Transparency + (1/WAIT)
1218
			if wave.Transparency > 0.99 then
1219
				wave:remove()
1220
			end
1221
		end
1222
	end))
1223
end
1224
1225
function MakeForm(PART,TYPE)
1226
	if TYPE == "Cyl" then
1227
		local MSH = IT("CylinderMesh",PART)
1228
	elseif TYPE == "Ball" then
1229
		local MSH = IT("SpecialMesh",PART)
1230
		MSH.MeshType = "Sphere"
1231
	elseif TYPE == "Wedge" then
1232
		local MSH = IT("SpecialMesh",PART)
1233
		MSH.MeshType = "Wedge"
1234
	end
1235
end
1236
1237
function CreateDebreeRing(FLOOR,POSITION,SIZE,BLOCKSIZE,SWAIT)
1238
	if FLOOR ~= nil then
1239
		coroutine.resume(coroutine.create(function()
1240
			local PART = CreatePart(3, Effects, "Neon", 0, 1, "Pearl", "DebreeCenter", VT(0,0,0))
1241
			PART.CFrame = CF(POSITION)
1242
			for i = 1, 45 do
1243
				local RingPiece = CreatePart(3, Effects, "Plastic", 0, 0, "Pearl", "DebreePart", BLOCKSIZE)
1244
				RingPiece.Material = FLOOR.Material
1245
				RingPiece.Color = FLOOR.Color
1246
				RingPiece.CFrame = PART.CFrame * ANGLES(RAD(0), RAD(i*8), RAD(0)) * CF(SIZE*4, 0, 0) * ANGLES(RAD(MRANDOM(-360,360)),RAD(MRANDOM(-360,360)),RAD(MRANDOM(-360,360)))
1247
				Debris:AddItem(RingPiece,SWAIT/100)
1248
			end
1249
			PART:remove()
1250
		end))
1251
	end
1252
end
1253
1254
function CheckTableForString(Table, String)
1255
	for i, v in pairs(Table) do
1256
		if string.find(string.lower(String), string.lower(v)) then
1257
			return true
1258
		end
1259
	end
1260
	return false
1261
end
1262
1263
function CheckIntangible(Hit)
1264
	local ProjectileNames = {"Water", "Arrow", "Projectile", "Effect", "Rail", "Lightning", "Bullet"}
1265
	if Hit and Hit.Parent then
1266
		if ((not Hit.CanCollide or CheckTableForString(ProjectileNames, Hit.Name)) and not Hit.Parent:FindFirstChild("Humanoid")) then
1267
			return true
1268
		end
1269
	end
1270
	return false
1271
end
1272
1273
Debris = game:GetService("Debris")
1274
1275
function CastZapRay(StartPos, Vec, Length, Ignore, DelayIfHit)
1276
	local Direction = CFrame.new(StartPos, Vec).lookVector
1277
	local Ignore = ((type(Ignore) == "table" and Ignore) or {Ignore})
1278
	local RayHit, RayPos, RayNormal = game:GetService("Workspace"):FindPartOnRayWithIgnoreList(Ray.new(StartPos, Direction * Length), Ignore)
1279
	if RayHit and CheckIntangible(RayHit) then
1280
		if DelayIfHit then
1281
			wait()
1282
		end
1283
		RayHit, RayPos, RayNormal = CastZapRay((RayPos + (Vec * 0.01)), Vec, (Length - ((StartPos - RayPos).magnitude)), Ignore, DelayIfHit)
1284
	end
1285
	return RayHit, RayPos, RayNormal
1286
end
1287
1288
function turnto(position)
1289
	RootPart.CFrame=CFrame.new(RootPart.CFrame.p,VT(position.X,RootPart.Position.Y,position.Z)) * CFrame.new(0, 0, 0)
1290
end
1291
1292
function Raycast(POSITION, DIRECTION, RANGE, IGNOREDECENDANTS)
1293
	return workspace:FindPartOnRay(Ray.new(POSITION, DIRECTION.unit * RANGE), IGNOREDECENDANTS)
1294
end
1295
1296
function PositiveAngle(NUMBER)
1297
	if NUMBER >= 0 then
1298
		NUMBER = 0
1299
	end
1300
	return NUMBER
1301
end
1302
1303
function NegativeAngle(NUMBER)
1304
	if NUMBER <= 0 then
1305
		NUMBER = 0
1306
	end
1307
	return NUMBER
1308
end
1309
1310
function Swait(NUMBER)
1311
	if NUMBER == 0 or NUMBER == nil then
1312
		ArtificialHB.Event:wait()
1313
	else
1314
		for i = 1, NUMBER do
1315
			ArtificialHB.Event:wait()
1316
		end
1317
	end
1318
end
1319
1320
function CreateMesh(MESH, PARENT, MESHTYPE, MESHID, TEXTUREID, SCALE, OFFSET)
1321
	local NEWMESH = IT(MESH)
1322
	if MESH == "SpecialMesh" then
1323
		NEWMESH.MeshType = MESHTYPE
1324
		if MESHID ~= "nil" and MESHID ~= "" then
1325
			NEWMESH.MeshId = "http://www.roblox.com/asset/?id="..MESHID
1326
		end
1327
		if TEXTUREID ~= "nil" and TEXTUREID ~= "" then
1328
			NEWMESH.TextureId = "http://www.roblox.com/asset/?id="..TEXTUREID
1329
		end
1330
	end
1331
	NEWMESH.Offset = OFFSET or VT(0, 0, 0)
1332
	NEWMESH.Scale = SCALE
1333
	NEWMESH.Parent = PARENT
1334
	return NEWMESH
1335
end
1336
1337
function CreatePart(FORMFACTOR, PARENT, MATERIAL, REFLECTANCE, TRANSPARENCY, BRICKCOLOR, NAME, SIZE, ANCHOR)
1338
	local NEWPART = IT("Part")
1339
	NEWPART.formFactor = FORMFACTOR
1340
	NEWPART.Reflectance = REFLECTANCE
1341
	NEWPART.Transparency = TRANSPARENCY
1342
	NEWPART.CanCollide = false
1343
	NEWPART.Locked = true
1344
	NEWPART.Anchored = true
1345
	if ANCHOR == false then
1346
		NEWPART.Anchored = false
1347
	end
1348
	NEWPART.BrickColor = BRICKC(tostring(BRICKCOLOR))
1349
	NEWPART.Name = NAME
1350
	NEWPART.Size = SIZE
1351
	NEWPART.Position = Torso.Position
1352
	NEWPART.Material = MATERIAL
1353
	NEWPART:BreakJoints()
1354
	NEWPART.Parent = PARENT
1355
	return NEWPART
1356
end
1357
1358
	local function weldBetween(a, b)
1359
	    local weldd = IT("Weld")
1360
	    weldd.Part0 = a
1361
	    weldd.Part1 = b
1362
	    weldd.C0 = CF()
1363
	    weldd.C1 = b.CFrame:inverse() * a.CFrame
1364
	    weldd.Parent = a
1365
	    return weldd
1366
	end
1367
1368
1369
function QuaternionFromCFrame(cf)
1370
	local mx, my, mz, m00, m01, m02, m10, m11, m12, m20, m21, m22 = cf:components()
1371
	local trace = m00 + m11 + m22
1372
	if trace > 0 then 
1373
		local s = math.sqrt(1 + trace)
1374
		local recip = 0.5 / s
1375
		return (m21 - m12) * recip, (m02 - m20) * recip, (m10 - m01) * recip, s * 0.5
1376
	else
1377
		local i = 0
1378
		if m11 > m00 then
1379
			i = 1
1380
		end
1381
		if m22 > (i == 0 and m00 or m11) then
1382
			i = 2
1383
		end
1384
		if i == 0 then
1385
			local s = math.sqrt(m00 - m11 - m22 + 1)
1386
			local recip = 0.5 / s
1387
			return 0.5 * s, (m10 + m01) * recip, (m20 + m02) * recip, (m21 - m12) * recip
1388
		elseif i == 1 then
1389
			local s = math.sqrt(m11 - m22 - m00 + 1)
1390
			local recip = 0.5 / s
1391
			return (m01 + m10) * recip, 0.5 * s, (m21 + m12) * recip, (m02 - m20) * recip
1392
		elseif i == 2 then
1393
			local s = math.sqrt(m22 - m00 - m11 + 1)
1394
			local recip = 0.5 / s return (m02 + m20) * recip, (m12 + m21) * recip, 0.5 * s, (m10 - m01) * recip
1395
		end
1396
	end
1397
end
1398
 
1399
function QuaternionToCFrame(px, py, pz, x, y, z, w)
1400
	local xs, ys, zs = x + x, y + y, z + z
1401
	local wx, wy, wz = w * xs, w * ys, w * zs
1402
	local xx = x * xs
1403
	local xy = x * ys
1404
	local xz = x * zs
1405
	local yy = y * ys
1406
	local yz = y * zs
1407
	local zz = z * zs
1408
	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))
1409
end
1410
 
1411
function QuaternionSlerp(a, b, t)
1412
	local cosTheta = a[1] * b[1] + a[2] * b[2] + a[3] * b[3] + a[4] * b[4]
1413
	local startInterp, finishInterp;
1414
	if cosTheta >= 0.0001 then
1415
		if (1 - cosTheta) > 0.0001 then
1416
			local theta = ACOS(cosTheta)
1417
			local invSinTheta = 1 / SIN(theta)
1418
			startInterp = SIN((1 - t) * theta) * invSinTheta
1419
			finishInterp = SIN(t * theta) * invSinTheta
1420
		else
1421
			startInterp = 1 - t
1422
			finishInterp = t
1423
		end
1424
	else
1425
		if (1 + cosTheta) > 0.0001 then
1426
			local theta = ACOS(-cosTheta)
1427
			local invSinTheta = 1 / SIN(theta)
1428
			startInterp = SIN((t - 1) * theta) * invSinTheta
1429
			finishInterp = SIN(t * theta) * invSinTheta
1430
		else
1431
			startInterp = t - 1
1432
			finishInterp = t
1433
		end
1434
	end
1435
	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
1436
end
1437
1438
function Clerp(a, b, t)
1439
	local qa = {QuaternionFromCFrame(a)}
1440
	local qb = {QuaternionFromCFrame(b)}
1441
	local ax, ay, az = a.x, a.y, a.z
1442
	local bx, by, bz = b.x, b.y, b.z
1443
	local _t = 1 - t
1444
	return QuaternionToCFrame(_t * ax + t * bx, _t * ay + t * by, _t * az + t * bz, QuaternionSlerp(qa, qb, t))
1445
end
1446
1447
function CreateFrame(PARENT, TRANSPARENCY, BORDERSIZEPIXEL, POSITION, SIZE, COLOR, BORDERCOLOR, NAME)
1448
	local frame = IT("Frame")
1449
	frame.BackgroundTransparency = TRANSPARENCY
1450
	frame.BorderSizePixel = BORDERSIZEPIXEL
1451
	frame.Position = POSITION
1452
	frame.Size = SIZE
1453
	frame.BackgroundColor3 = COLOR
1454
	frame.BorderColor3 = BORDERCOLOR
1455
	frame.Name = NAME
1456
	frame.Parent = PARENT
1457
	return frame
1458
end
1459
1460
function CreateLabel(PARENT, TEXT, TEXTCOLOR, TEXTFONTSIZE, TEXTFONT, TRANSPARENCY, BORDERSIZEPIXEL, STROKETRANSPARENCY, NAME)
1461
	local label = IT("TextLabel")
1462
	label.BackgroundTransparency = 1
1463
	label.Size = UD2(1, 0, 1, 0)
1464
	label.Position = UD2(0, 0, 0, 0)
1465
	label.TextColor3 = TEXTCOLOR
1466
	label.TextStrokeTransparency = STROKETRANSPARENCY
1467
	label.TextTransparency = TRANSPARENCY
1468
	label.FontSize = TEXTFONTSIZE
1469
	label.Font = TEXTFONT
1470
	label.BorderSizePixel = BORDERSIZEPIXEL
1471
	label.TextScaled = false
1472
	label.Text = TEXT
1473
	label.Name = NAME
1474
	label.Parent = PARENT
1475
	return label
1476
end
1477
1478
function NoOutlines(PART)
1479
	PART.TopSurface, PART.BottomSurface, PART.LeftSurface, PART.RightSurface, PART.FrontSurface, PART.BackSurface = 10, 10, 10, 10, 10, 10
1480
end
1481
1482
function CreateWeldOrSnapOrMotor(TYPE, PARENT, PART0, PART1, C0, C1)
1483
	local NEWWELD = IT(TYPE)
1484
	NEWWELD.Part0 = PART0
1485
	NEWWELD.Part1 = PART1
1486
	NEWWELD.C0 = C0
1487
	NEWWELD.C1 = C1
1488
	NEWWELD.Parent = PARENT
1489
	return NEWWELD
1490
end
1491
1492
local S = IT("Sound")
1493
function CreateSound(ID, PARENT, VOLUME, PITCH, DOESLOOP)
1494
	local NEWSOUND = nil
1495
	coroutine.resume(coroutine.create(function()
1496
		NEWSOUND = S:Clone()
1497
		NEWSOUND.Parent = PARENT
1498
		NEWSOUND.Volume = VOLUME
1499
		NEWSOUND.Pitch = PITCH
1500
		NEWSOUND.SoundId = "http://www.roblox.com/asset/?id="..ID
1501
		NEWSOUND:play()
1502
		if DOESLOOP == true then
1503
			NEWSOUND.Looped = true
1504
		else
1505
			repeat wait(1) until NEWSOUND.Playing == false
1506
			NEWSOUND:remove()
1507
		end
1508
	end))
1509
	return NEWSOUND
1510
end
1511
1512
function CFrameFromTopBack(at, top, back)
1513
	local right = top:Cross(back)
1514
	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)
1515
end
1516
1517
--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})
1518
function WACKYEFFECT(Table)
1519
	local TYPE = (Table.EffectType or "Sphere")
1520
	local SIZE = (Table.Size or VT(1,1,1))
1521
	local ENDSIZE = (Table.Size2 or VT(0,0,0))
1522
	local TRANSPARENCY = (Table.Transparency or 0)
1523
	local ENDTRANSPARENCY = (Table.Transparency2 or 1)
1524
	local CFRAME = (Table.CFrame or Torso.CFrame)
1525
	local MOVEDIRECTION = (Table.MoveToPos or nil)
1526
	local ROTATION1 = (Table.RotationX or 0)
1527
	local ROTATION2 = (Table.RotationY or 0)
1528
	local ROTATION3 = (Table.RotationZ or 0)
1529
	local MATERIAL = (Table.Material or "Neon")
1530
	local COLOR = (Table.Color or C3(1,1,1))
1531
	local TIME = (Table.Time or 45)
1532
	local SOUNDID = (Table.SoundID or nil)
1533
	local SOUNDPITCH = (Table.SoundPitch or nil)
1534
	local SOUNDVOLUME = (Table.SoundVolume or nil)
1535
	coroutine.resume(coroutine.create(function()
1536
		local PLAYSSOUND = false
1537
		local SOUND = nil
1538
		local EFFECT = CreatePart(3, Effects, MATERIAL, 0, TRANSPARENCY, BRICKC("Pearl"), "Effect", VT(1,1,1), true)
1539
		if SOUNDID ~= nil and SOUNDPITCH ~= nil and SOUNDVOLUME ~= nil then
1540
			PLAYSSOUND = true
1541
			SOUND = CreateSound(SOUNDID, EFFECT, SOUNDVOLUME, SOUNDPITCH, false)
1542
		end
1543
		EFFECT.Color = COLOR
1544
		local MSH = nil
1545
		if TYPE == "Sphere" then
1546
			MSH = CreateMesh("SpecialMesh", EFFECT, "Sphere", "", "", SIZE, VT(0,0,0))
1547
		elseif TYPE == "Block" then
1548
			MSH = IT("BlockMesh",EFFECT)
1549
			MSH.Scale = VT(SIZE.X,SIZE.X,SIZE.X)
1550
		elseif TYPE == "Wave" then
1551
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "20329976", "", SIZE, VT(0,0,-SIZE.X/8))
1552
		elseif TYPE == "Ring" then
1553
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "559831844", "", VT(SIZE.X,SIZE.X,0.1), VT(0,0,0))
1554
		elseif TYPE == "Slash" then
1555
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "662586858", "", VT(SIZE.X/10,0,SIZE.X/10), VT(0,0,0))
1556
		elseif TYPE == "Round Slash" then
1557
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "662585058", "", VT(SIZE.X/10,0,SIZE.X/10), VT(0,0,0))
1558
		elseif TYPE == "Swirl" then
1559
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "1051557", "", SIZE, VT(0,0,0))
1560
		elseif TYPE == "Skull" then
1561
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "4770583", "", SIZE, VT(0,0,0))
1562
		elseif TYPE == "Crystal" then
1563
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "9756362", "", SIZE, VT(0,0,0))
1564
		end
1565
		if MSH ~= nil then
1566
			local MOVESPEED = nil
1567
			if MOVEDIRECTION ~= nil then
1568
				MOVESPEED = (CFRAME.p - MOVEDIRECTION).Magnitude/TIME
1569
			end
1570
			local GROWTH = SIZE - ENDSIZE
1571
			local TRANS = TRANSPARENCY - ENDTRANSPARENCY
1572
			if TYPE == "Block" then
1573
				EFFECT.CFrame = CFRAME*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)))
1574
			else
1575
				EFFECT.CFrame = CFRAME
1576
			end
1577
			for LOOP = 1, TIME+1 do
1578
				Swait()
1579
				MSH.Scale = MSH.Scale - GROWTH/TIME
1580
				if TYPE == "Wave" then
1581
					MSH.Offset = VT(0,0,-MSH.Scale.X/8)
1582
				end
1583
				EFFECT.Transparency = EFFECT.Transparency - TRANS/TIME
1584
				if TYPE == "Block" then
1585
					EFFECT.CFrame = CFRAME*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)))
1586
				else
1587
					EFFECT.CFrame = EFFECT.CFrame*ANGLES(RAD(ROTATION1),RAD(ROTATION2),RAD(ROTATION3))
1588
				end
1589
				if MOVEDIRECTION ~= nil then
1590
					local ORI = EFFECT.Orientation
1591
					EFFECT.CFrame = CF(EFFECT.Position,MOVEDIRECTION)*CF(0,0,-MOVESPEED)
1592
					EFFECT.Orientation = ORI
1593
				end
1594
			end
1595
			if PLAYSSOUND == false then
1596
				EFFECT:remove()
1597
			else
1598
				SOUND.Stopped:Connect(function()
1599
					EFFECT:remove()
1600
				end)
1601
			end
1602
		else
1603
			if PLAYSSOUND == false then
1604
				EFFECT:remove()
1605
			else
1606
				repeat Swait() until SOUND.Playing == false
1607
				EFFECT:remove()
1608
			end
1609
		end
1610
	end))
1611
end
1612
1613
function MakeForm(PART,TYPE)
1614
	if TYPE == "Cyl" then
1615
		local MSH = IT("CylinderMesh",PART)
1616
	elseif TYPE == "Ball" then
1617
		local MSH = IT("SpecialMesh",PART)
1618
		MSH.MeshType = "Sphere"
1619
	elseif TYPE == "Wedge" then
1620
		local MSH = IT("SpecialMesh",PART)
1621
		MSH.MeshType = "Wedge"
1622
	end
1623
end
1624
1625
Debris = game:GetService("Debris")
1626
1627
function CastProperRay(StartPos, EndPos, Distance, Ignore)
1628
	local DIRECTION = CF(StartPos,EndPos).lookVector
1629
	return Raycast(StartPos, DIRECTION, Distance, Ignore)
1630
end
1631
1632
function turnto(position)
1633
	RootPart.CFrame=CFrame.new(RootPart.CFrame.p,VT(position.X,RootPart.Position.Y,position.Z)) * CFrame.new(0, 0, 0)
1634
end
1635
1636
function SpawnTrail(FROM,TO,BIG)
1637
	local TRAIL = CreatePart(3, Effects, "Neon", 0, 0.5, "Really red", "Trail", VT(0,0,0))
1638
	MakeForm(TRAIL,"Cyl")
1639
	local DIST = (FROM - TO).Magnitude
1640
	if BIG == true then
1641
		TRAIL.Size = VT(0.5,DIST,0.5)
1642
	else
1643
		TRAIL.Size = VT(0.25,DIST,0.25)
1644
	end
1645
	TRAIL.CFrame = CF(FROM, TO) * CF(0, 0, -DIST/2) * ANGLES(RAD(90),RAD(0),RAD(0))
1646
	coroutine.resume(coroutine.create(function()
1647
		for i = 1, 5 do
1648
			Swait()
1649
			TRAIL.Transparency = TRAIL.Transparency + 0.1
1650
		end
1651
		TRAIL:remove()
1652
	end))
1653
end
1654
1655
local asd = Instance.new("ParticleEmitter")
1656
asd.Color = ColorSequence.new(Color3.new(0.5, 0, 0), Color3.new(.3, 0, 0))
1657
asd.LightEmission = .1
1658
asd.Texture = "http://www.roblox.com/asset/?ID=291880914"
1659
aaa = NumberSequence.new({NumberSequenceKeypoint.new(0, 0.6),NumberSequenceKeypoint.new(1, 2)})
1660
bbb = NumberSequence.new({NumberSequenceKeypoint.new(0, 1),NumberSequenceKeypoint.new(0.0636, 0), NumberSequenceKeypoint.new(1, 1)})
1661
asd.Transparency = bbb
1662
asd.Size = aaa
1663
asd.ZOffset = .9
1664
asd.Acceleration = Vector3.new(0, -15, 0)
1665
asd.LockedToPart = false
1666
asd.EmissionDirection = "Back"
1667
asd.Lifetime = NumberRange.new(1, 2)
1668
asd.Rotation = NumberRange.new(-100, 100)
1669
asd.RotSpeed = NumberRange.new(-100, 100)
1670
asd.Speed = NumberRange.new(10)
1671
asd.Enabled = false
1672
asd.VelocitySpread = 999
1673
1674
function getbloody(victim,amount)
1675
	local PART = CreatePart(3, Effects, "Metal", 0, 1, "Mid gray", "Blood", victim.Size)
1676
	PART.CFrame = victim.CFrame
1677
	local HITPLAYERSOUNDS = {"356551938","264486467"}
1678
	Debris:AddItem(PART,5)
1679
	CreateSound(HITPLAYERSOUNDS[MRANDOM(1, #HITPLAYERSOUNDS)], PART, 1, (math.random(8,12)/10))
1680
	CreateSound(HITPLAYERSOUNDS[MRANDOM(1, #HITPLAYERSOUNDS)], PART, 1, (math.random(8,12)/10))
1681
	CreateSound(HITPLAYERSOUNDS[MRANDOM(1, #HITPLAYERSOUNDS)], PART, 1, (math.random(8,12)/10))
1682
	local prtcl = asd:Clone()
1683
	prtcl.Parent = PART
1684
	prtcl:Emit(amount*10)
1685
end
1686
1687
local Particle = IT("ParticleEmitter",nil)
1688
Particle.Enabled = false
1689
Particle.Transparency = NumberSequence.new({NumberSequenceKeypoint.new(0,1),NumberSequenceKeypoint.new(0.3,0.95),NumberSequenceKeypoint.new(1,1)})
1690
Particle.LightEmission = 0.5
1691
Particle.Rate = 150
1692
Particle.ZOffset = 1
1693
Particle.Rotation = NumberRange.new(-180, 180)
1694
Particle.RotSpeed = NumberRange.new(-180, 180)
1695
Particle.Texture = "http://www.roblox.com/asset/?id=304437537"
1696
Particle.Color = ColorSequence.new(C3(1,0,0),C3(0.4,0,0))
1697
1698
--ParticleEmitter({Speed = 5, Drag = 0, Size1 = 1, Size2 = 5, Lifetime1 = 1, Lifetime2 = 1.5, Parent = Torso, Emit = 100, Offset = 360, Enabled = false})
1699
function ParticleEmitter(Table)
1700
	local PRTCL = Particle:Clone()
1701
	local Speed = Table.Speed or 5
1702
	local Drag = Table.Drag or 0
1703
	local Size1 = Table.Size1 or 1
1704
	local Size2 = Table.Size2 or 5
1705
	local Lifetime1 = Table.Lifetime1 or 1
1706
	local Lifetime2 = Table.Lifetime2 or 1.5
1707
	local Parent = Table.Parent or Torso
1708
	local Emit = Table.Emit or 100
1709
	local Offset = Table.Offset or 360
1710
	local Acel = Table.Acel or VT(0,0,0)
1711
	local Enabled = Table.Enabled or false
1712
	PRTCL.Parent = Parent
1713
	PRTCL.Size = NumberSequence.new(Size1,Size2)
1714
	PRTCL.Lifetime = NumberRange.new(Lifetime1,Lifetime2)
1715
	PRTCL.Speed = NumberRange.new(Speed)
1716
	PRTCL.VelocitySpread = Offset
1717
	PRTCL.Drag = Drag
1718
	PRTCL.Acceleration = Acel
1719
	if Enabled == false then
1720
		PRTCL:Emit(Emit)
1721
		Debris:AddItem(PRTCL,Lifetime2)
1722
	else
1723
		PRTCL.Enabled = true
1724
	end
1725
	return PRTCL
1726
end
1727
1728
function Raycast(POSITION, DIRECTION, RANGE, IGNOREDECENDANTS)
1729
	return workspace:FindPartOnRay(Ray.new(POSITION, DIRECTION.unit * RANGE), IGNOREDECENDANTS)
1730
end
1731
1732
function PositiveAngle(NUMBER)
1733
	if NUMBER >= 0 then
1734
		NUMBER = 0
1735
	end
1736
	return NUMBER
1737
end
1738
1739
function NegativeAngle(NUMBER)
1740
	if NUMBER <= 0 then
1741
		NUMBER = 0
1742
	end
1743
	return NUMBER
1744
end
1745
1746
function Swait(NUMBER)
1747
	if NUMBER == 0 or NUMBER == nil then
1748
		ArtificialHB.Event:wait()
1749
	else
1750
		for i = 1, NUMBER do
1751
			ArtificialHB.Event:wait()
1752
		end
1753
	end
1754
end
1755
1756
function CreateMesh(MESH, PARENT, MESHTYPE, MESHID, TEXTUREID, SCALE, OFFSET)
1757
	local NEWMESH = IT(MESH)
1758
	if MESH == "SpecialMesh" then
1759
		NEWMESH.MeshType = MESHTYPE
1760
		if MESHID ~= "nil" and MESHID ~= "" then
1761
			NEWMESH.MeshId = "http://www.roblox.com/asset/?id="..MESHID
1762
		end
1763
		if TEXTUREID ~= "nil" and TEXTUREID ~= "" then
1764
			NEWMESH.TextureId = "http://www.roblox.com/asset/?id="..TEXTUREID
1765
		end
1766
	end
1767
	NEWMESH.Offset = OFFSET or VT(0, 0, 0)
1768
	NEWMESH.Scale = SCALE
1769
	NEWMESH.Parent = PARENT
1770
	return NEWMESH
1771
end
1772
1773
function CreatePart(FORMFACTOR, PARENT, MATERIAL, REFLECTANCE, TRANSPARENCY, BRICKCOLOR, NAME, SIZE, ANCHOR)
1774
	local NEWPART = IT("Part")
1775
	NEWPART.formFactor = FORMFACTOR
1776
	NEWPART.Reflectance = REFLECTANCE
1777
	NEWPART.Transparency = TRANSPARENCY
1778
	NEWPART.CanCollide = false
1779
	NEWPART.Locked = true
1780
	NEWPART.Anchored = true
1781
	if ANCHOR == false then
1782
		NEWPART.Anchored = false
1783
	end
1784
	NEWPART.BrickColor = BRICKC(tostring(BRICKCOLOR))
1785
	NEWPART.Name = NAME
1786
	NEWPART.Size = SIZE
1787
	NEWPART.Position = Torso.Position
1788
	NEWPART.Material = MATERIAL
1789
	NEWPART:BreakJoints()
1790
	NEWPART.Parent = PARENT
1791
	return NEWPART
1792
end
1793
1794
	local function weldBetween(a, b)
1795
	    local weldd = Instance.new("ManualWeld")
1796
	    weldd.Part0 = a
1797
	    weldd.Part1 = b
1798
	    weldd.C0 = CFrame.new()
1799
	    weldd.C1 = b.CFrame:inverse() * a.CFrame
1800
	    weldd.Parent = a
1801
	    return weldd
1802
	end
1803
1804
1805
function QuaternionFromCFrame(cf)
1806
	local mx, my, mz, m00, m01, m02, m10, m11, m12, m20, m21, m22 = cf:components()
1807
	local trace = m00 + m11 + m22
1808
	if trace > 0 then 
1809
		local s = math.sqrt(1 + trace)
1810
		local recip = 0.5 / s
1811
		return (m21 - m12) * recip, (m02 - m20) * recip, (m10 - m01) * recip, s * 0.5
1812
	else
1813
		local i = 0
1814
		if m11 > m00 then
1815
			i = 1
1816
		end
1817
		if m22 > (i == 0 and m00 or m11) then
1818
			i = 2
1819
		end
1820
		if i == 0 then
1821
			local s = math.sqrt(m00 - m11 - m22 + 1)
1822
			local recip = 0.5 / s
1823
			return 0.5 * s, (m10 + m01) * recip, (m20 + m02) * recip, (m21 - m12) * recip
1824
		elseif i == 1 then
1825
			local s = math.sqrt(m11 - m22 - m00 + 1)
1826
			local recip = 0.5 / s
1827
			return (m01 + m10) * recip, 0.5 * s, (m21 + m12) * recip, (m02 - m20) * recip
1828
		elseif i == 2 then
1829
			local s = math.sqrt(m22 - m00 - m11 + 1)
1830
			local recip = 0.5 / s return (m02 + m20) * recip, (m12 + m21) * recip, 0.5 * s, (m10 - m01) * recip
1831
		end
1832
	end
1833
end
1834
 
1835
function QuaternionToCFrame(px, py, pz, x, y, z, w)
1836
	local xs, ys, zs = x + x, y + y, z + z
1837
	local wx, wy, wz = w * xs, w * ys, w * zs
1838
	local xx = x * xs
1839
	local xy = x * ys
1840
	local xz = x * zs
1841
	local yy = y * ys
1842
	local yz = y * zs
1843
	local zz = z * zs
1844
	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))
1845
end
1846
 
1847
function QuaternionSlerp(a, b, t)
1848
	local cosTheta = a[1] * b[1] + a[2] * b[2] + a[3] * b[3] + a[4] * b[4]
1849
	local startInterp, finishInterp;
1850
	if cosTheta >= 0.0001 then
1851
		if (1 - cosTheta) > 0.0001 then
1852
			local theta = ACOS(cosTheta)
1853
			local invSinTheta = 1 / SIN(theta)
1854
			startInterp = SIN((1 - t) * theta) * invSinTheta
1855
			finishInterp = SIN(t * theta) * invSinTheta
1856
		else
1857
			startInterp = 1 - t
1858
			finishInterp = t
1859
		end
1860
	else
1861
		if (1 + cosTheta) > 0.0001 then
1862
			local theta = ACOS(-cosTheta)
1863
			local invSinTheta = 1 / SIN(theta)
1864
			startInterp = SIN((t - 1) * theta) * invSinTheta
1865
			finishInterp = SIN(t * theta) * invSinTheta
1866
		else
1867
			startInterp = t - 1
1868
			finishInterp = t
1869
		end
1870
	end
1871
	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
1872
end
1873
1874
function Clerp(a, b, t)
1875
	local qa = {QuaternionFromCFrame(a)}
1876
	local qb = {QuaternionFromCFrame(b)}
1877
	local ax, ay, az = a.x, a.y, a.z
1878
	local bx, by, bz = b.x, b.y, b.z
1879
	local _t = 1 - t
1880
	return QuaternionToCFrame(_t * ax + t * bx, _t * ay + t * by, _t * az + t * bz, QuaternionSlerp(qa, qb, t))
1881
end
1882
1883
function CreateFrame(PARENT, TRANSPARENCY, BORDERSIZEPIXEL, POSITION, SIZE, COLOR, BORDERCOLOR, NAME)
1884
	local frame = IT("Frame")
1885
	frame.BackgroundTransparency = TRANSPARENCY
1886
	frame.BorderSizePixel = BORDERSIZEPIXEL
1887
	frame.Position = POSITION
1888
	frame.Size = SIZE
1889
	frame.BackgroundColor3 = COLOR
1890
	frame.BorderColor3 = BORDERCOLOR
1891
	frame.Name = NAME
1892
	frame.Parent = PARENT
1893
	return frame
1894
end
1895
1896
function CreateLabel(PARENT, TEXT, TEXTCOLOR, TEXTFONTSIZE, TEXTFONT, TRANSPARENCY, BORDERSIZEPIXEL, STROKETRANSPARENCY, NAME)
1897
	local label = IT("TextLabel")
1898
	label.BackgroundTransparency = 1
1899
	label.Size = UD2(1, 0, 1, 0)
1900
	label.Position = UD2(0, 0, 0, 0)
1901
	label.TextColor3 = TEXTCOLOR
1902
	label.TextStrokeTransparency = STROKETRANSPARENCY
1903
	label.TextTransparency = TRANSPARENCY
1904
	label.FontSize = TEXTFONTSIZE
1905
	label.Font = TEXTFONT
1906
	label.BorderSizePixel = BORDERSIZEPIXEL
1907
	label.TextScaled = false
1908
	label.Text = TEXT
1909
	label.Name = NAME
1910
	label.Parent = PARENT
1911
	return label
1912
end
1913
1914
function NoOutlines(PART)
1915
	PART.TopSurface, PART.BottomSurface, PART.LeftSurface, PART.RightSurface, PART.FrontSurface, PART.BackSurface = 10, 10, 10, 10, 10, 10
1916
end
1917
1918
function CreateWeldOrSnapOrMotor(TYPE, PARENT, PART0, PART1, C0, C1)
1919
	local NEWWELD = IT(TYPE)
1920
	NEWWELD.Part0 = PART0
1921
	NEWWELD.Part1 = PART1
1922
	NEWWELD.C0 = C0
1923
	NEWWELD.C1 = C1
1924
	NEWWELD.Parent = PARENT
1925
	return NEWWELD
1926
end
1927
1928
local S = IT("Sound")
1929
function CreateSound(ID, PARENT, VOLUME, PITCH, DOESLOOP)
1930
	local NEWSOUND = nil
1931
	coroutine.resume(coroutine.create(function()
1932
		NEWSOUND = S:Clone()
1933
		NEWSOUND.Parent = PARENT
1934
		NEWSOUND.Volume = VOLUME
1935
		NEWSOUND.Pitch = PITCH
1936
		NEWSOUND.SoundId = "http://www.roblox.com/asset/?id="..ID
1937
		NEWSOUND:play()
1938
		if DOESLOOP == true then
1939
			NEWSOUND.Looped = true
1940
		else
1941
			repeat wait(1) until NEWSOUND.Playing == false or NEWSOUND.Parent ~= PARENT
1942
			NEWSOUND:remove()
1943
		end
1944
	end))
1945
	return NEWSOUND
1946
end
1947
1948
function CFrameFromTopBack(at, top, back)
1949
	local right = top:Cross(back)
1950
	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)
1951
end
1952
1953
--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})
1954
function WACKYEFFECT(Table)
1955
	local TYPE = (Table.EffectType or "Sphere")
1956
	local SIZE = (Table.Size or VT(1,1,1))
1957
	local ENDSIZE = (Table.Size2 or VT(0,0,0))
1958
	local TRANSPARENCY = (Table.Transparency or 0)
1959
	local ENDTRANSPARENCY = (Table.Transparency2 or 1)
1960
	local CFRAME = (Table.CFrame or Torso.CFrame)
1961
	local MOVEDIRECTION = (Table.MoveToPos or nil)
1962
	local ROTATION1 = (Table.RotationX or 0)
1963
	local ROTATION2 = (Table.RotationY or 0)
1964
	local ROTATION3 = (Table.RotationZ or 0)
1965
	local MATERIAL = (Table.Material or "Neon")
1966
	local COLOR = (Table.Color or C3(1,1,1))
1967
	local TIME = (Table.Time or 45)
1968
	local SOUNDID = (Table.SoundID or nil)
1969
	local SOUNDPITCH = (Table.SoundPitch or nil)
1970
	local SOUNDVOLUME = (Table.SoundVolume or nil)
1971
	coroutine.resume(coroutine.create(function()
1972
		local PLAYSSOUND = false
1973
		local SOUND = nil
1974
		local EFFECT = CreatePart(3, Effects, MATERIAL, 0, TRANSPARENCY, BRICKC("Pearl"), "Effect", VT(1,1,1), true)
1975
		if SOUNDID ~= nil and SOUNDPITCH ~= nil and SOUNDVOLUME ~= nil then
1976
			PLAYSSOUND = true
1977
			SOUND = CreateSound(SOUNDID, EFFECT, SOUNDVOLUME, SOUNDPITCH, false)
1978
		end
1979
		EFFECT.Color = COLOR
1980
		local MSH = nil
1981
		if TYPE == "Sphere" then
1982
			MSH = CreateMesh("SpecialMesh", EFFECT, "Sphere", "", "", SIZE, VT(0,0,0))
1983
		elseif TYPE == "Block" then
1984
			MSH = IT("BlockMesh",EFFECT)
1985
			MSH.Scale = VT(SIZE.X,SIZE.X,SIZE.X)
1986
		elseif TYPE == "Wave" then
1987
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "20329976", "", SIZE, VT(0,0,-SIZE.X/8))
1988
		elseif TYPE == "Ring" then
1989
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "559831844", "", VT(SIZE.X,SIZE.X,0.1), VT(0,0,0))
1990
		elseif TYPE == "Slash" then
1991
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "662586858", "", VT(SIZE.X/10,0,SIZE.X/10), VT(0,0,0))
1992
		elseif TYPE == "Round Slash" then
1993
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "662585058", "", VT(SIZE.X/10,0,SIZE.X/10), VT(0,0,0))
1994
		elseif TYPE == "Swirl" then
1995
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "1051557", "", SIZE, VT(0,0,0))
1996
		elseif TYPE == "Skull" then
1997
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "4770583", "", SIZE, VT(0,0,0))
1998
		elseif TYPE == "Crystal" then
1999
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "9756362", "", SIZE, VT(0,0,0))
2000
		end
2001
		if MSH ~= nil then
2002
			local MOVESPEED = nil
2003
			if MOVEDIRECTION ~= nil then
2004
				MOVESPEED = (CFRAME.p - MOVEDIRECTION).Magnitude/TIME
2005
			end
2006
			local GROWTH = SIZE - ENDSIZE
2007
			local TRANS = TRANSPARENCY - ENDTRANSPARENCY
2008
			if TYPE == "Block" then
2009
				EFFECT.CFrame = CFRAME*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)))
2010
			else
2011
				EFFECT.CFrame = CFRAME
2012
			end
2013
			for LOOP = 1, TIME+1 do
2014
				Swait()
2015
				MSH.Scale = MSH.Scale - GROWTH/TIME
2016
				if TYPE == "Wave" then
2017
					MSH.Offset = VT(0,0,-MSH.Scale.X/8)
2018
				end
2019
				EFFECT.Transparency = EFFECT.Transparency - TRANS/TIME
2020
				if TYPE == "Block" then
2021
					EFFECT.CFrame = CFRAME*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)))
2022
				else
2023
					EFFECT.CFrame = EFFECT.CFrame*ANGLES(RAD(ROTATION1),RAD(ROTATION2),RAD(ROTATION3))
2024
				end
2025
				if MOVEDIRECTION ~= nil then
2026
					local ORI = EFFECT.Orientation
2027
					EFFECT.CFrame = CF(EFFECT.Position,MOVEDIRECTION)*CF(0,0,-MOVESPEED)
2028
					EFFECT.Orientation = ORI
2029
				end
2030
			end
2031
			if PLAYSSOUND == false then
2032
				EFFECT:remove()
2033
			else
2034
				SOUND.Stopped:Connect(function()
2035
					EFFECT:remove()
2036
				end)
2037
			end
2038
		else
2039
			if PLAYSSOUND == false then
2040
				EFFECT:remove()
2041
			else
2042
				repeat Swait() until SOUND.Playing == false
2043
				EFFECT:remove()
2044
			end
2045
		end
2046
	end))
2047
end
2048
2049
function MakeForm(PART,TYPE)
2050
	if TYPE == "Cyl" then
2051
		local MSH = IT("CylinderMesh",PART)
2052
	elseif TYPE == "Ball" then
2053
		local MSH = IT("SpecialMesh",PART)
2054
		MSH.MeshType = "Sphere"
2055
	elseif TYPE == "Wedge" then
2056
		local MSH = IT("SpecialMesh",PART)
2057
		MSH.MeshType = "Wedge"
2058
	end
2059
end
2060
2061
function SpawnTrail(FROM,TO,BIG)
2062
	local TRAIL = CreatePart(3, Effects, "Neon", 0, 0.5, "Really red", "Trail", VT(0,0,0))
2063
	MakeForm(TRAIL,"Cyl")
2064
	local DIST = (FROM - TO).Magnitude
2065
	if BIG == true then
2066
		TRAIL.Size = VT(0.5,DIST,0.5)
2067
	else
2068
		TRAIL.Size = VT(0.25,DIST,0.25)
2069
	end
2070
	TRAIL.CFrame = CF(FROM, TO) * CF(0, 0, -DIST/2) * ANGLES(RAD(90),RAD(0),RAD(0))
2071
	coroutine.resume(coroutine.create(function()
2072
		for i = 1, 5 do
2073
			Swait()
2074
			TRAIL.Transparency = TRAIL.Transparency + 0.1
2075
		end
2076
		TRAIL:remove()
2077
	end))
2078
end
2079
2080
Debris = game:GetService("Debris")
2081
2082
function CastProperRay(StartPos, EndPos, Distance, Ignore)
2083
	local DIRECTION = CF(StartPos,EndPos).lookVector
2084
	return Raycast(StartPos, DIRECTION, Distance, Ignore)
2085
end
2086
2087
function turnto(position)
2088
	RootPart.CFrame=CFrame.new(RootPart.CFrame.p,VT(position.X,RootPart.Position.Y,position.Z)) * CFrame.new(0, 0, 0)
2089
end
2090
2091
--//=================================\\
2092
--||	     WEAPON CREATION
2093
--\\=================================//
2094
2095
2096
local FIST = CreatePart(3, Weapon, "Neon", 0, 0, "Really red", "Neon Gauntlet Part", VT(1.01*Player_Size,1.4*Player_Size,1.01*Player_Size),false)
2097
local weld = CreateWeldOrSnapOrMotor("Weld", FIST, RightArm, FIST, CF(0 * Player_Size, -0.25 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(0)), CF(0, 0, 0))
2098
local part = CreatePart(3, Weapon, "Granite", 0, 0, "Really red", "Gauntlet Part", VT(1.2*Player_Size,0.3*Player_Size,1.2*Player_Size),false)
2099
local weld = CreateWeldOrSnapOrMotor("Weld", part, FIST, part, CF(0 * Player_Size, 0.6 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(0)), CF(0, 0, 0))
2100
2101
local part = CreatePart(3, Weapon, "Granite", 0, 0, "Really red", "Gauntlet Part", VT(1.05*Player_Size,0.05*Player_Size,1.05*Player_Size),false)
2102
local weld = CreateWeldOrSnapOrMotor("Weld", part, FIST, part, CF(0 * Player_Size, 0.1 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(0)), CF(0, 0, 0))
2103
local part = CreatePart(3, Weapon, "Granite", 0, 0, "Really red", "Gauntlet Part", VT(1.05*Player_Size,0.05*Player_Size,1.05*Player_Size),false)
2104
local weld = CreateWeldOrSnapOrMotor("Weld", part, FIST, part, CF(0 * Player_Size, 0.2 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(0)), CF(0, 0, 0))
2105
local part = CreatePart(3, Weapon, "Granite", 0, 0, "Really red", "Gauntlet Part", VT(1.05*Player_Size,0.05*Player_Size,1.05*Player_Size),false)
2106
local weld = CreateWeldOrSnapOrMotor("Weld", part, FIST, part, CF(0 * Player_Size, 0.3 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(0)), CF(0, 0, 0))
2107
local part = CreatePart(3, Weapon, "Granite", 0, 0, "Really red", "Gauntlet Part", VT(1.05*Player_Size,0.05*Player_Size,1.05*Player_Size),false)
2108
local weld = CreateWeldOrSnapOrMotor("Weld", part, FIST, part, CF(0 * Player_Size, 0.4 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(0)), CF(0, 0, 0))
2109
2110
local part = CreatePart(3, Weapon, "Granite", 0, 0, "Really red", "Gauntlet Part", VT(1.1*Player_Size,0.8*Player_Size,1.1*Player_Size),false)
2111
local weld = CreateWeldOrSnapOrMotor("Weld", part, FIST, part, CF(0 * Player_Size, -0.35 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(0)), CF(0, 0, 0))
2112
local part = CreatePart(3, Weapon, "Neon", 0, 0, "Really red", "Neon Gauntlet Part", VT(1.1*Player_Size,0.8*Player_Size,1*Player_Size),false)
2113
local weld = CreateWeldOrSnapOrMotor("Weld", part, FIST, part, CF(0.05 * Player_Size, -0.375 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(0)), CF(0, 0, 0))
2114
local part = CreatePart(3, Weapon, "Granite", 0, 0, "Really red", "Gauntlet Part", VT(1.1*Player_Size,0.8*Player_Size,0.3*Player_Size),false)
2115
local weld = CreateWeldOrSnapOrMotor("Weld", part, FIST, part, CF(0.1 * Player_Size, -0.4 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(0)), CF(0, 0, 0))
2116
local part = CreatePart(3, Weapon, "Granite", 0, 0, "Really red", "Gauntlet Part", VT(1.1*Player_Size,0.8*Player_Size,0.3*Player_Size),false)
2117
local weld = CreateWeldOrSnapOrMotor("Weld", part, FIST, part, CF(0.1 * Player_Size, -0.4 * Player_Size, 0.33 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(0)), CF(0, 0, 0))
2118
local part = CreatePart(3, Weapon, "Granite", 0, 0, "Really red", "Gauntlet Part", VT(1.1*Player_Size,0.8*Player_Size,0.3*Player_Size),false)
2119
local weld = CreateWeldOrSnapOrMotor("Weld", part, FIST, part, CF(0.1 * Player_Size, -0.4 * Player_Size, -0.33 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(0)), CF(0, 0, 0))
2120
2121
ParticleEmitter({Speed = 0.2, Drag = 0, Size1 = 0.1, Size2 = 0, Lifetime1 = 0.3, Lifetime2 = 0.5, Parent = Hole, Emit = 100, Offset = 360, Enabled = true, Acel = VT(0,5,0)})
2122
--ParticleEmitter({Speed = 0.5, Drag = 0, Size1 = 0.2, Size2 = 0, Lifetime1 = 0.3, Lifetime2 = 0.7, Parent = Dangle, Emit = 100, Offset = 360, Enabled = true, Acel = VT(0,5,0)})
2123
 
2124
for _, c in pairs(Weapon:GetDescendants()) do
2125
    if c.ClassName == "Part" and c.Name ~= "Eye" and c.Parent ~= Effects and c.Parent.Parent ~= Effects then
2126
        c.Material = "Glass"
2127
        c.Color = C3(0,0,0)
2128
    elseif c.ClassName == "Part" and c.Name == "Eye" then
2129
        c.Color = C3(1,0,0)
2130
        c.Material = "Neon"
2131
    end
2132
end
2133
 
2134
Weapon.Parent = Character
2135
for _, c in pairs(Weapon:GetChildren()) do
2136
    if c.ClassName == "Part" then
2137
        c.CustomPhysicalProperties = PhysicalProperties.new(0, 0, 0, 0, 0)
2138
    end
2139
end
2140
2141
New = function(Object, Parent, Name, Data)
2142
	local Object = Instance.new(Object)
2143
	for Index, Value in pairs(Data or {}) do
2144
		Object[Index] = Value
2145
	end
2146
	Object.Parent = Parent
2147
	Object.Name = Name
2148
	return Object
2149
end
2150
2151
2152
Corruption = New("Part",Character,"Corruption",{BrickColor = BrickColor.new("Really red"),Material = Enum.Material.Neon,FormFactor = Enum.FormFactor.Symmetric,Size = Vector3.new(0.330000252, 0.660000384, 0.0500000007),CFrame = CFrame.new(-67.6787415, 1.33912802, 93.9772263, 0, 0, -1, 0, 1, 0, 1, 0, 0),})
2153
mot = New("Motor",Corruption,"mot",{Part0 = Corruption,Part1 = LeftLeg,C0 = CFrame.new(0, 0, 0, 0, 0, 1, 0, 1, 0, -1, 0, 0),C1 = CFrame.new(0.0127105713, 0.339127064, 0.487541199, 0, 0, 1, 0, 1, 0, -1, 0, 0),})
2154
Corruption = New("Part",Character,"Corruption",{BrickColor = BrickColor.new("Really red"),Material = Enum.Material.Neon,FormFactor = Enum.FormFactor.Symmetric,Size = Vector3.new(0.330000252, 0.660000384, 0.0500000007),CFrame = CFrame.new(-66.6787415, 1.33912802, 93.9772263, 0, 0, -1, 0, 1, 0, 1, 0, 0),})
2155
mot = New("Motor",Corruption,"mot",{Part0 = Corruption,Part1 = LeftLeg,C0 = CFrame.new(0, 0, 0, 0, 0, 1, 0, 1, 0, -1, 0, 0),C1 = CFrame.new(0.0127105713, 0.339127064, -0.512458801, 0, 0, 1, 0, 1, 0, -1, 0, 0),})
2156
2157
Corruption = New("Part",Character,"Corruption",{BrickColor = BrickColor.new("Really red"),Material = Enum.Material.Neon,FormFactor = Enum.FormFactor.Symmetric,Size = Vector3.new(0.740000069, 0.140000015, 0.0500000007),CFrame = CFrame.new(-67.6787415, 3.12643075, 92.6921463, -9.31322575e-10, -1.86264515e-09, -0.999999285, 0.777135551, 0.629333496, 9.31322575e-10, 0.6293329, -0.777134895, 0),})
2158
mot = New("Motor",Corruption,"mot",{Part0 = Corruption,Part1 = Torso,C0 = CFrame.new(0, 0, 0, 0, 0.777135491, 0.629333377, 0, 0.629333377, -0.777135491, -1, 0, 0),C1 = CFrame.new(-0.766067505, 0.138611317, 0.515716553, -0.0156119959, -4.38656264e-11, 0.999877751, -0.0062854127, 0.999980271, -9.81397825e-05, -0.999858022, -0.00628618058, -0.0156116877),})
2159
Corruption = New("Part",Character,"Corruption",{BrickColor = BrickColor.new("Really red"),Material = Enum.Material.Neon,FormFactor = Enum.FormFactor.Symmetric,Size = Vector3.new(1.12999988, 1.12000012, 0.0500000007),CFrame = CFrame.new(-67.6951752, 3.43133378, 93.991272, 0, -9.31322575e-10, -0.999999285, 0, 1, 9.31322575e-10, 0.999999225, 0, 0),})
2160
mot = New("Motor",Corruption,"mot",{Part0 = Corruption,Part1 = Torso,C0 = CFrame.new(0, 0, 0, 0, 0, 1, 0, 1, 0, -1, 0, 0),C1 = CFrame.new(0.533157349, 0.443484068, 0.50994873, -0.0156119959, -4.38656264e-11, 0.999877751, -0.0062854127, 0.999980271, -9.81397825e-05, -0.999858022, -0.00628618058, -0.0156116877),})
2161
Corruption = New("Part",Character,"Corruption",{BrickColor = BrickColor.new("Really red"),Material = Enum.Material.Neon,FormFactor = Enum.FormFactor.Symmetric,Size = Vector3.new(0.450000018, 0.590000272, 0.0500000007),CFrame = CFrame.new(-67.6951752, 2.60608268, 94.3512573, 0, -9.31322575e-10, -0.999999285, 0, 1, 9.31322575e-10, 0.999999225, 0, 0),})
2162
mot = New("Motor",Corruption,"mot",{Part0 = Corruption,Part1 = Torso,C0 = CFrame.new(0, 0, 0, 0, 0, 1, 0, 1, 0, -1, 0, 0),C1 = CFrame.new(0.893096924, -0.381786108, 0.509513855, -0.0156119959, -4.38656264e-11, 0.999877751, -0.0062854127, 0.999980271, -9.81397825e-05, -0.999858022, -0.00628618058, -0.0156116877),})
2163
Corruption = New("Part",Character,"Corruption",{BrickColor = BrickColor.new("Really red"),Material = Enum.Material.Neon,FormFactor = Enum.FormFactor.Symmetric,Size = Vector3.new(0.330000013, 0.590000272, 0.0500000007),CFrame = CFrame.new(-66.6951752, 2.60608268, 94.2912598, 0, -9.31322575e-10, -0.999999285, 0, 1, 9.31322575e-10, 0.999999225, 0, 0),})
2164
mot = New("Motor",Corruption,"mot",{Part0 = Corruption,Part1 = Torso,C0 = CFrame.new(0, 0, 0, 0, 0, 1, 0, 1, 0, -1, 0, 0),C1 = CFrame.new(0.817497253, -0.388065577, -0.489402771, -0.0156119959, -4.38656264e-11, 0.999877751, -0.0062854127, 0.999980271, -9.81397825e-05, -0.999858022, -0.00628618058, -0.0156116877),})
2165
Corruption = New("Part",Character,"Corruption",{BrickColor = BrickColor.new("Really red"),Material = Enum.Material.Neon,FormFactor = Enum.FormFactor.Symmetric,Size = Vector3.new(0.220000237, 0.660000384, 0.0500000007),CFrame = CFrame.new(-66.6787338, 2.57395577, 93.9222183, 0, -9.31322575e-10, -0.999999285, 0, 1, 9.31322575e-10, 0.999999225, 0, 0),})
2166
mot = New("Motor",Corruption,"mot",{Part0 = Corruption,Part1 = Torso,C0 = CFrame.new(0, 0, 0, 0, 0, 1, 0, 1, 0, -1, 0, 0),C1 = CFrame.new(0.448242188, -0.420258999, -0.49987793, -0.0156119959, -4.38656264e-11, 0.999877751, -0.0062854127, 0.999980271, -9.81397825e-05, -0.999858022, -0.00628618058, -0.0156116877),})
2167
Corruption = New("Part",Character,"Corruption",{BrickColor = BrickColor.new("Really red"),Material = Enum.Material.Neon,FormFactor = Enum.FormFactor.Symmetric,Size = Vector3.new(1.07999992, 1.12000012, 0.0500000007),CFrame = CFrame.new(-66.6951752, 3.43133354, 93.9662704, 0, -9.31322575e-10, -0.999999285, 0, 1, 9.31322575e-10, 0.999999225, 0, 0),})
2168
mot = New("Motor",Corruption,"mot",{Part0 = Corruption,Part1 = Torso,C0 = CFrame.new(0, 0, 0, 0, 0, 1, 0, 1, 0, -1, 0, 0),C1 = CFrame.new(0.492546082, 0.437201023, -0.489517212, -0.0156119959, -4.38656264e-11, 0.999877751, -0.0062854127, 0.999980271, -9.81397825e-05, -0.999858022, -0.00628618058, -0.0156116877),})
2169
Corruption = New("Part",Character,"Corruption",{BrickColor = BrickColor.new("Really red"),Material = Enum.Material.Neon,FormFactor = Enum.FormFactor.Symmetric,Size = Vector3.new(0.740000069, 0.340000302, 0.0500000007),CFrame = CFrame.new(-66.6787415, 3.2281816, 93.1287689, 0, -9.31322575e-10, -0.999999285, 0, 1, 9.31322575e-10, 0.999999225, 0, 0),})
2170
mot = New("Motor",Corruption,"mot",{Part0 = Corruption,Part1 = Torso,C0 = CFrame.new(0, 0, 0, 0, 0, 1, 0, 1, 0, -1, 0, 0),C1 = CFrame.new(-0.345108032, 0.234031916, -0.491600037, -0.0156119959, -4.38656264e-11, 0.999877751, -0.0062854127, 0.999980271, -9.81397825e-05, -0.999858022, -0.00628618058, -0.0156116877),})
2171
Corruption = New("Part",Character,"Corruption",{BrickColor = BrickColor.new("Really red"),Material = Enum.Material.Neon,FormFactor = Enum.FormFactor.Symmetric,Size = Vector3.new(1.0999999, 0.0500000007, 1.00999975),CFrame = CFrame.new(-67.1759109, 3.99574399, 93.9762726, 0, -0.0260759834, -0.999659359, 0, 0.999660075, -0.0260760002, 0.999999225, -2.91038305e-11, -9.31322575e-10),})
2172
mot = New("Motor",Corruption,"mot",{Part0 = Corruption,Part1 = Torso,C0 = CFrame.new(0, 0, 0, 0, 0, 1, -0.0260760002, 0.999660015, 0, -0.999660015, -0.0260760002, 0),C1 = CFrame.new(0.510047913, 1.00462079, -0.0125579834, -0.0156119959, -4.38656264e-11, 0.999877751, -0.0062854127, 0.999980271, -9.81397825e-05, -0.999858022, -0.00628618058, -0.0156116877),})
2173
2174
Corruption = New("Part",Character,"Corruption",{BrickColor = BrickColor.new("Really red"),Material = Enum.Material.Neon,FormFactor = Enum.FormFactor.Symmetric,Size = Vector3.new(0.740000069, 0.419999987, 0.870000064),CFrame = CFrame.new(-67.0815201, 2.81366396, 91.9528885, 0, 0, -1, 0.777135491, 0.629333377, 0, 0.629333377, -0.777135491, 0),})
2175
mot = New("Motor",Corruption,"mot",{Part0 = Corruption,Part1 = LeftArm,C0 = CFrame.new(0, 0, 0, 0, 0.777135491, 0.629333377, 0, 0.629333377, -0.777135491, -1, 0, 0),C1 = CFrame.new(-0.00936126709, -0.184385061, -0.0693511963, 0, 0, 1, 0, 1, 0, -1, 0, 0),})
2176
2177
local Trail = IT("Trail",Leftbarrel)
2178
Trail.Attachment0 = A
2179
Trail.Attachment1 = B
2180
Trail.Lifetime = 0.2
2181
Trail.Color = ColorSequence.new(BRICKC"Really red".Color)
2182
Trail.Transparency = NumberSequence.new(0, 1)
2183
Trail.Enabled = true
2184
2185
local PRT = ParticleEmitter({Speed = 3, Drag = 3, Size1 = 1, Size2 = 3, Lifetime1 = 0.2, Lifetime2 = 1, Parent = RightLeg, Emit = 100, Offset = 360, Enabled = true})
2186
PRT.LockedToPart = true
2187
local PRT = ParticleEmitter({Speed = 3, Drag = 3, Size1 = 1, Size2 = 3, Lifetime1 = 0.2, Lifetime2 = 1, Parent = LeftLeg, Emit = 100, Offset = 360, Enabled = true})
2188
PRT.LockedToPart = true
2189
local PRT = ParticleEmitter({Speed = 3, Drag = 3, Size1 = 1, Size2 = 3, Lifetime1 = 0.3, Lifetime2 = 1.5, Parent = Torso, Emit = 100, Offset = 360, Enabled = true})
2190
PRT.LockedToPart = true
2191
local PRT = ParticleEmitter({Speed = 3, Drag = 3, Size1 = 1, Size2 = 3, Lifetime1 = 0.2, Lifetime2 = 1, Parent = RightArm, Emit = 100, Offset = 360, Enabled = true})
2192
PRT.LockedToPart = true
2193
local PRT = ParticleEmitter({Speed = 3, Drag = 3, Size1 = 1, Size2 = 3, Lifetime1 = 0.2, Lifetime2 = 1, Parent = LeftArm, Emit = 100, Offset = 360, Enabled = true})
2194
PRT.LockedToPart = true
2195
2196
local HAT = CreatePart(3, Character, "SmoothPlastic", 0, 0, "Really black", "Tophat", VT(1,1,1),false)
2197
local Hatweld = CreateWeldOrSnapOrMotor("Weld", Head, Head, HAT, CF(0,1,0), CF(0, 0, 0))
2198
CreateMesh("SpecialMesh", HAT, "FileMesh", "97094619", "97094572", VT(1,1,1), VT(0,0,0))
2199
for i = 1, 16 do
2200
	local FACE = CreatePart(3, Character, "Neon", 0, 0+(i-1)/16.2, "White", "FaceGradient", VT(1.01,0.65,1.01),false)
2201
	FACE.Color = C3(0,0,0)
2202
	Head:FindFirstChildOfClass("SpecialMesh"):Clone().Parent = FACE
2203
	CreateWeldOrSnapOrMotor("Weld", Head, Head, FACE, CF(0,0.45-(i-1)/25,0), CF(0, 0, 0))
2204
end
2205
local EYE = CreatePart(3, Character, "Neon", 0, 0, "Really red", "Eyeball", VT(0.15,0.15,0.15),false)
2206
MakeForm(EYE,"Ball")
2207
CreateWeldOrSnapOrMotor("Weld", Head, Head, EYE, CF(0.15,0.26,-0.55), CF(0, 0, 0))
2208
local EYE2 = CreatePart(3, Character, "Neon", 0, 0, "Really red", "Eyeball", VT(0.15,0.15,0.15),false)
2209
MakeForm(EYE2,"Ball")
2210
CreateWeldOrSnapOrMotor("Weld", Head, Head, EYE2, CF(-0.15,0.26,-0.55), CF(0, 0, 0))
2211
2212
local Particle = IT("ParticleEmitter",nil)
2213
Particle.Enabled = false
2214
Particle.Transparency = NumberSequence.new({NumberSequenceKeypoint.new(0,0.3),NumberSequenceKeypoint.new(0.3,0),NumberSequenceKeypoint.new(1,1)})
2215
Particle.LightEmission = 5
2216
Particle.Rate = 300
2217
Particle.ZOffset = 0.2
2218
Particle.Rotation = NumberRange.new(-180, 180)
2219
Particle.RotSpeed = NumberRange.new(-180, 180)
2220
Particle.Texture = "http://www.roblox.com/asset/?id=304437537"
2221
Particle.Color = ColorSequence.new(C3(1,0,0),C3(0.4,0,0),C3(1,0,0),C3(0,4,0),C3(1,0,0),C3(1,0,0),C3(1,0,0),C3(1,0,0))
2222
2223
--ParticleEmitter({Speed = 5, Drag = 0, Size1 = 1, Size2 = 5, Lifetime1 = 1, Lifetime2 = 1.5, Parent = Torso, Emit = 100, Offset = 360, Enabled = false})
2224
function ParticleEmitter(Table)
2225
	local PRTCL = Particle:Clone()
2226
	local Speed = Table.Speed or 5
2227
	local Drag = Table.Drag or 0
2228
	local Size1 = Table.Size1 or 1
2229
	local Size2 = Table.Size2 or 5
2230
	local Lifetime1 = Table.Lifetime1 or 1
2231
	local Lifetime2 = Table.Lifetime2 or 1.5
2232
	local Parent = Table.Parent or Torso
2233
	local Emit = Table.Emit or 100
2234
	local Offset = Table.Offset or 360
2235
	local Acel = Table.Acel or VT(0,0,0)
2236
	local Enabled = Table.Enabled or false
2237
	PRTCL.Parent = Parent
2238
	PRTCL.Size = NumberSequence.new(Size1,Size2)
2239
	PRTCL.Lifetime = NumberRange.new(Lifetime1,Lifetime2)
2240
	PRTCL.Speed = NumberRange.new(Speed)
2241
	PRTCL.VelocitySpread = Offset
2242
	PRTCL.Drag = Drag
2243
	PRTCL.Acceleration = Acel
2244
	if Enabled == false then
2245
		PRTCL:Emit(Emit)
2246
		Debris:AddItem(PRTCL,Lifetime2)
2247
	else
2248
		PRTCL.Enabled = true
2249
	end
2250
	return PRTCL
2251
end
2252
2253
local Handle = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Part", VT(0.2,0.6,0.2),false)
2254
local RightArmGrasp = CreateWeldOrSnapOrMotor("Weld", Handle, RightArm, Handle, CF(0,-1, 0) * ANGLES(RAD(90), RAD(0), RAD(0)), CF(0, 0.21, 0))
2255
local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Part", VT(0.2,0.5,0.2),false)
2256
MakeForm(Part,"Wedge")
2257
CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.3, 0.2) * ANGLES(RAD(0), RAD(180), RAD(0)), CF(0, 0, 0))
2258
local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Part", VT(0.2,0.3,0.2),false)
2259
MakeForm(Part,"Wedge")
2260
CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.4, 0) * ANGLES(RAD(0), RAD(0), RAD(180)), CF(0, 0, 0))
2261
local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Part", VT(0.3,0.3,0.3),false)
2262
CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.5, 0.2) * ANGLES(RAD(0), RAD(0), RAD(0)), CF(0, 0, 0))
2263
local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Part", VT(0.3,0.5,0.5),false)
2264
CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.6, 0.5) * ANGLES(RAD(0), RAD(0), RAD(0)), CF(0, 0, 0))
2265
local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Part", VT(0.4,0.4,0.4),false)
2266
MakeForm(Part,"Cyl")
2267
CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.6, 0.5) * ANGLES(RAD(90), RAD(0), RAD(0)), CF(0, 0, 0))
2268
for i = 1, 8 do
2269
	local Piece = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Eye", VT(0,0.35,0.41),false)
2270
	CreateWeldOrSnapOrMotor("Weld", Handle, Part, Piece, CF(0, 0, 0) * ANGLES(RAD(0), RAD((360/8)*i), RAD(0)), CF(0, 0, 0))
2271
end
2272
local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Eye", VT(0.38,0.41,0.38),false)
2273
MakeForm(Part,"Cyl")
2274
CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.6, 0.5) * ANGLES(RAD(90), RAD(0), RAD(0)), CF(0, 0, 0))
2275
local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Part", VT(0.37,0.5,0.37),false)
2276
MakeForm(Part,"Ball")
2277
CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.6, 0.3) * ANGLES(RAD(90), RAD(0), RAD(0)), CF(0, 0, 0))
2278
local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Part", VT(0.2,0.7,0.4),false)
2279
MakeForm(Part,"Wedge")
2280
CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.7, 0.5) * ANGLES(RAD(90), RAD(180), RAD(180)), CF(0, 0, 0))
2281
local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Part", VT(0.3,0.4,0.2),false)
2282
CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.6, 0.7) * ANGLES(RAD(0), RAD(0), RAD(0)), CF(0, 0, 0))
2283
local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Part", VT(0.35,0.35,0.35),false)
2284
MakeForm(Part,"Cyl")
2285
CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.6, 0.7) * ANGLES(RAD(90), RAD(0), RAD(0)), CF(0, 0, 0))
2286
local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Part", VT(0.5,0.1,0.5),false)
2287
MakeForm(Part,"Cyl")
2288
CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.6, 1) * ANGLES(RAD(90), RAD(0), RAD(0)), CF(0, 0, 0))
2289
local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Part", VT(0.5,0.1,0.45),false)
2290
MakeForm(Part,"Cyl")
2291
CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.6, 1.1) * ANGLES(RAD(90), RAD(0), RAD(0)), CF(0, 0, 0))
2292
local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Part", VT(0.2,0.5,0.2),false)
2293
MakeForm(Part,"Wedge")
2294
CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.55, 0.2) * ANGLES(RAD(-135), RAD(0), RAD(0)), CF(0, -0.3, 0))
2295
local LASTPART = Handle
2296
for i = 1, 10 do
2297
	if LASTPART == Handle then
2298
		local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Part", VT(0.1,0.2,0),false)
2299
		LASTPART = Part
2300
		CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.1, 0.2) * ANGLES(RAD(90), RAD(0), RAD(0)), CF(0, 0, 0))
2301
	else
2302
		local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Part", VT(0.1,0.05,0),false)
2303
		CreateWeldOrSnapOrMotor("Weld", Handle, LASTPART, Part, CF(0, 0.025, 0) * ANGLES(RAD(8), RAD(0), RAD(0)), CF(0, -0.025, 0))
2304
		LASTPART = Part
2305
	end
2306
end
2307
2308
local Barrel = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Part", VT(0.15,2,0.15),false)
2309
MakeForm(Barrel,"Cyl")
2310
CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Barrel, CF(0, -0.6, 1.8) * ANGLES(RAD(90), RAD(0), RAD(0)), CF(0, 0, 0))
2311
local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Part", VT(0.25,1,0.25),false)
2312
MakeForm(Part,"Cyl")
2313
CreateWeldOrSnapOrMotor("Weld", Handle, Barrel, Part, CF(0, -0.6, 0), CF(0, 0, 0))
2314
local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Part", VT(0,0.1,0.2),false)
2315
MakeForm(Part,"Wedge")
2316
CreateWeldOrSnapOrMotor("Weld", Handle, Barrel, Part, CF(0, 0.945, 0.1) * ANGLES(RAD(180), RAD(0), RAD(0)), CF(0, 0, 0))
2317
local Hole = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Eye", VT(0.125,0,0.125),false)
2318
MakeForm(Hole,"Cyl")
2319
CreateWeldOrSnapOrMotor("Weld", Handle, Barrel, Hole, CF(0, 0.98, 0), CF(0, 0, 0))
2320
local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Part", VT(0,0,0),false)
2321
local GEARWELD = CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.6, 0.7), CF(0, 0, 0))
2322
CreateMesh("SpecialMesh", Part, "FileMesh", 156292343, "", VT(0.8,0.8,1.5), VT(0,0,0.2))
2323
local Part = CreatePart(3, Weapon, "Metal", 0, 0.5, "Mid gray", "Eye", VT(0,0,0),false)
2324
local GEARWELD2 = CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.6, 0.7), CF(0, 0, 0))
2325
CreateMesh("SpecialMesh", Part, "FileMesh", 156292343, "", VT(0.9,0.9,0.3), VT(0,0,0.2))
2326
coroutine.resume(coroutine.create(function()
2327
	while wait() do
2328
		GEARWELD.C0 = GEARWELD.C0 * ANGLES(RAD(0), RAD(0), RAD(5))
2329
		GEARWELD2.C0 = GEARWELD2.C0 * ANGLES(RAD(0), RAD(0), RAD(-5))
2330
	end
2331
end))
2332
2333
ParticleEmitter({Speed = 0.2, Drag = 0, Size1 = 0.7, Size2 = 0, Lifetime1 = 0.7, Lifetime2 = 0.7, Parent = Hole, Emit = 100, Offset = 360, Enabled = true, Acel = VT(0,5,0)})
2334
--ParticleEmitter({Speed = 0.5, Drag = 0, Size1 = 10, Size2 = 0, Lifetime1 = 0.8, Lifetime2 = 0.9, Parent = Dangle, Emit = 100, Offset = 360, Enabled = true, Acel = VT(0,5,0)})
2335
2336
for _, c in pairs(Weapon:GetDescendants()) do
2337
	if c.ClassName == "Part" and c.Name ~= "Eye" and c.Parent ~= Effects and c.Parent.Parent ~= Effects then
2338
		c.Material = "Glass"
2339
		c.Color = C3(0,0,0)
2340
	elseif c.ClassName == "Part" and c.Name == "Eye" then
2341
		c.Color = C3(1,0,0)
2342
		c.Material = "Neon"
2343
	end
2344
end
2345
2346
Weapon.Parent = Character
2347
for _, c in pairs(Weapon:GetChildren()) do
2348
	if c.ClassName == "Part" then
2349
		c.CustomPhysicalProperties = PhysicalProperties.new(0, 0, 0, 0, 0)
2350
	end
2351
end
2352
2353
local SKILLTEXTCOLOR = C3(1,0,0)
2354
local SKILLFONT = "Antique"
2355
local SKILLTEXTSIZE = 7
2356
2357
Humanoid.Died:connect(function()
2358
	ATTACK = true
2359
end)
2360
2361
local SKILL1FRAME = CreateFrame(WEAPONGUI, 1, 2, UD2(0.1, 0, 0.90, 0), UD2(0.26, 0, 0.07, 0), C3(0,0,0), C3(0, 0, 0), "Skill 1 Frame")
2362
--[[local SKILL2FRAME = CreateFrame(WEAPONGUI, 1, 2, UD2(0.63, 0, 0.90, 0), UD2(0.26, 0, 0.07, 0), C3(0,0,0), C3(0, 0, 0), "Skill 2 Frame")
2363
local SKILL3FRAME = CreateFrame(WEAPONGUI, 1, 2, UD2(0.215, 0, 0.90, 0), UD2(0.26, 0, 0.07, 0), C3(0,0,0), C3(0, 0, 0), "Skill 3 Frame")
2364
local SKILL4FRAME = CreateFrame(WEAPONGUI, 1, 2, UD2(0.525, 0, 0.90, 0), UD2(0.26, 0, 0.07, 0), C3(0,0,0), C3(0, 0, 0), "Skill 4 Frame")
2365
local SKILL5FRAME = CreateFrame(WEAPONGUI, 1, 2, UD2(0.365, 0, 0.90, 0), UD2(0.26, 0, 0.07, 0), C3(0,0,0), C3(0, 0, 0), "Skill 5 Frame")
2366
]]
2367
local SKILL1TEXT = CreateLabel(SKILL1FRAME, "[Z] Banisher Bullet", SKILLTEXTCOLOR, SKILLTEXTSIZE, SKILLFONT, 0, 2, 0.7, "Text 1")
2368
--[[local SKILL2TEXT = CreateLabel(SKILL2FRAME, "[B] Ability 2", SKILLTEXTCOLOR, SKILLTEXTSIZE, SKILLFONT, 0, 2, 0.7, "Text 2")
2369
local SKILL3TEXT = CreateLabel(SKILL3FRAME, "[C] Ability 3", SKILLTEXTCOLOR, SKILLTEXTSIZE, SKILLFONT, 0, 2, 0.7, "Text 3")
2370
local SKILL4TEXT = CreateLabel(SKILL4FRAME, "[V] Ability 4", SKILLTEXTCOLOR, SKILLTEXTSIZE, SKILLFONT, 0, 2, 0.7, "Text 4")
2371
local SKILL5TEXT = CreateLabel(SKILL5FRAME, "[X] Mercy", SKILLTEXTCOLOR, SKILLTEXTSIZE, SKILLFONT, 0, 2, 0.7, "Text 5")
2372
]]
2373
function printbye(Name)
2374
	local MESSAGES = {"You cannot struggle, ","Your existance is an insult, ","Fade, ","Your existance is not desired, ","You are not permitted here, ","You are not to decide your fate, ","Be gone, ","You are already dead, ","Your live is an anomaly, ","Don't dare to return, ","Why are you resisting, ","You cannot exist here, ","Why are you struggling, ","Your fate was already decided, ","Goodbye, ","You cannot ignore my command, ","You cannot resist my command, ","You already died, "}
2375
	warn(MESSAGES[MRANDOM(1,#MESSAGES)]..Name..".")	
2376
end
2377
2378
workspace.ChildAdded:connect(function(instance)
2379
    for BANISH = 1, #TOBANISH do
2380
		if TOBANISH[BANISH] ~= nil then
2381
			if instance.Name == TOBANISH[BANISH] then
2382
				coroutine.resume(coroutine.create(function()
2383
					printbye(instance.Name)
2384
					instance:ClearAllChildren()
2385
					Debris:AddItem(instance,0.0005)
2386
				end))
2387
			end
2388
		end
2389
	end
2390
end)
2391
2392
function refit()
2393
	Character.Parent = workspace
2394
	for e = 1, #BODY do
2395
		if BODY[e] ~= nil then
2396
			local STUFF = BODY[e]
2397
			local PART = STUFF[1]
2398
			local PARENT = STUFF[2]
2399
			local MATERIAL = STUFF[3]
2400
			local COLOR = STUFF[4]
2401
			local TRANSPARENCY = STUFF[5]
2402
			if PART.ClassName == "Part" and PART ~= RootPart then
2403
				PART.Material = MATERIAL
2404
				PART.Color = COLOR
2405
				PART.Transparency = TRANSPARENCY
2406
			end
2407
			if PART.Parent ~= PARENT then
2408
				Humanoid:remove()
2409
				PART.Parent = PARENT
2410
				Humanoid = IT("Humanoid",Character)
2411
			end
2412
		end
2413
	end
2414
end
2415
--//=================================\\
2416
--||	     DAMAGE FUNCTIONS
2417
--\\=================================//
2418
function StatLabel(LABELTYPE, CFRAME, TEXT, COLOR)
2419
	local STATPART = CreatePart(3, Effects, "SmoothPlastic", 0, 1, "Really black", "Effect", VT())
2420
	STATPART.CFrame = CF(CFRAME.p + VT(0, 1.5, 0))
2421
	local BODYGYRO = IT("BodyGyro", STATPART)
2422
	local BODYPOSITION = IT("BodyPosition", STATPART)
2423
	BODYPOSITION.P = 2000
2424
	BODYPOSITION.D = 100
2425
	BODYPOSITION.maxForce = VT(math.huge, math.huge, math.huge)
2426
	BODYPOSITION.position = STATPART.Position + VT(MRANDOM(-2, 2), 6, MRANDOM(-2, 2))
2427
	game:GetService("Debris"):AddItem(STATPART ,5)
2428
	local BILLBOARDGUI = Instance.new("BillboardGui", STATPART)
2429
	BILLBOARDGUI.Adornee = STATPART
2430
	BILLBOARDGUI.Size = UD2(2.5, 0, 2.5 ,0)
2431
	BILLBOARDGUI.StudsOffset = VT(-2, 2, 0)
2432
	BILLBOARDGUI.AlwaysOnTop = false
2433
	local TEXTLABEL = Instance.new("TextLabel", BILLBOARDGUI)
2434
	TEXTLABEL.BackgroundTransparency = 1
2435
	TEXTLABEL.Size = UD2(2.5, 0, 2.5, 0)
2436
	TEXTLABEL.Text = TEXT
2437
	TEXTLABEL.Font = "SciFi"
2438
	TEXTLABEL.FontSize="Size42"
2439
	TEXTLABEL.TextColor3 = ("255,215,0")
2440
	TEXTLABEL.TextStrokeTransparency = 1
2441
	TEXTLABEL.TextScaled = true
2442
	TEXTLABEL.TextWrapped = true
2443
	coroutine.resume(coroutine.create(function(THEPART, THEBODYPOSITION, THETEXTLABEL)
2444
		if LABELTYPE == "Normal" then
2445
			for i = 1, 30 do
2446
				Swait()
2447
				STATPART.Position = STATPART.Position + VT(0, (15-i)/10 ,0)
2448
				TEXTLABEL.TextTransparency = TEXTLABEL.TextTransparency + (1/30)
2449
			end
2450
		elseif LABELTYPE == "Debuff" then
2451
			for i = 1, 30 do
2452
				Swait()
2453
				STATPART.Position = STATPART.Position - VT(0, i/10 ,0)
2454
				TEXTLABEL.TextTransparency = TEXTLABEL.TextTransparency + (1/30)
2455
			end
2456
		elseif LABELTYPE == "Shock" then
2457
			local ORIGIN = STATPART.Position
2458
			for i = 1, 30 do
2459
				Swait()
2460
				STATPART.Position = ORIGIN + VT(MRANDOM(-2,2),MRANDOM(-2,2),MRANDOM(-2,2))
2461
				TEXTLABEL.TextTransparency = TEXTLABEL.TextTransparency + (1/30)
2462
			end
2463
		end
2464
		THEPART.Parent = nil
2465
	end),STATPART, BODYPOSITION, TEXTLABEL)
2466
end
2467
2468
function StatLabel(CFRAME, TEXT, COLOR)
2469
	local STATPART = CreatePart(3, Effects, "SmoothPlastic", 0, 1, "Really black", "Effect", VT())
2470
	STATPART.CFrame = CF(CFRAME.p,CFRAME.p+VT(MRANDOM(-5,5),MRANDOM(0,5),MRANDOM(-5,5)))
2471
	local BODYGYRO = IT("BodyGyro", STATPART)
2472
	game:GetService("Debris"):AddItem(STATPART ,5)
2473
	local BILLBOARDGUI = Instance.new("BillboardGui", STATPART)
2474
	BILLBOARDGUI.Adornee = STATPART
2475
	BILLBOARDGUI.Size = UD2(2.5, 0, 2.5 ,0)
2476
	BILLBOARDGUI.StudsOffset = VT(-2, 2, 0)
2477
	BILLBOARDGUI.AlwaysOnTop = false
2478
	local TEXTLABEL = Instance.new("TextLabel", BILLBOARDGUI)
2479
	TEXTLABEL.BackgroundTransparency = 1
2480
	TEXTLABEL.Size = UD2(2.5, 0, 2.5, 0)
2481
	TEXTLABEL.Text = TEXT
2482
	TEXTLABEL.Font = SKILLFONT
2483
	TEXTLABEL.FontSize="Size42"
2484
	TEXTLABEL.TextColor3 = COLOR
2485
	TEXTLABEL.TextStrokeTransparency = 0
2486
	TEXTLABEL.TextScaled = true
2487
	TEXTLABEL.TextWrapped = true
2488
	coroutine.resume(coroutine.create(function(THEPART, THEBODYPOSITION, THETEXTLABEL)
2489
		for i = 1, 50 do
2490
			Swait()
2491
			STATPART.CFrame = STATPART.CFrame * CF(0,0,-0.2)
2492
			TEXTLABEL.TextTransparency = TEXTLABEL.TextTransparency + (1/50)
2493
			TEXTLABEL.TextStrokeTransparency = TEXTLABEL.TextTransparency
2494
		end
2495
		THEPART.Parent = nil
2496
	end),STATPART, TEXTLABEL)
2497
end
2498
2499
function StatLabel(CFRAME, TEXT, COLOR)
2500
	local STATPART = CreatePart(3, Effects, "SmoothPlastic", 0, 1, "Really black", "Effect", VT())
2501
	STATPART.CFrame = CF(CFRAME.p,CFRAME.p+VT(MRANDOM(-5,5),MRANDOM(0,5),MRANDOM(-5,5)))
2502
	local BODYGYRO = IT("BodyGyro", STATPART)
2503
	game:GetService("Debris"):AddItem(STATPART ,5)
2504
	local BILLBOARDGUI = Instance.new("BillboardGui", STATPART)
2505
	BILLBOARDGUI.Adornee = STATPART
2506
	BILLBOARDGUI.Size = UD2(2.5, 0, 2.5 ,0)
2507
	BILLBOARDGUI.StudsOffset = VT(-2, 2, 0)
2508
	BILLBOARDGUI.AlwaysOnTop = false
2509
	local TEXTLABEL = Instance.new("TextLabel", BILLBOARDGUI)
2510
	TEXTLABEL.BackgroundTransparency = 1
2511
	TEXTLABEL.Size = UD2(2.5, 0, 2.5, 0)
2512
	TEXTLABEL.Text = TEXT
2513
	TEXTLABEL.Font = SKILLFONT
2514
	TEXTLABEL.FontSize="Size42"
2515
	TEXTLABEL.TextColor3 = COLOR
2516
	TEXTLABEL.TextStrokeTransparency = 0
2517
	TEXTLABEL.TextScaled = true
2518
	TEXTLABEL.TextWrapped = true
2519
	coroutine.resume(coroutine.create(function(THEPART, THEBODYPOSITION, THETEXTLABEL)
2520
		for i = 1, 50 do
2521
			Swait()
2522
			STATPART.CFrame = STATPART.CFrame * CF(0,0,-0.2)
2523
			TEXTLABEL.TextTransparency = TEXTLABEL.TextTransparency + (1/50)
2524
			TEXTLABEL.TextStrokeTransparency = TEXTLABEL.TextTransparency
2525
		end
2526
		THEPART.Parent = nil
2527
	end),STATPART, TEXTLABEL)
2528
end
2529
2530
function StatLabel(CFRAME, TEXT, COLOR)
2531
	local STATPART = CreatePart(3, Effects, "SmoothPlastic", 0, 1, "Really black", "Effect", VT())
2532
	STATPART.CFrame = CF(CFRAME.p,CFRAME.p+VT(MRANDOM(-5,5),MRANDOM(0,5),MRANDOM(-5,5)))
2533
	local BODYGYRO = IT("BodyGyro", STATPART)
2534
	game:GetService("Debris"):AddItem(STATPART ,5)
2535
	local BILLBOARDGUI = Instance.new("BillboardGui", STATPART)
2536
	BILLBOARDGUI.Adornee = STATPART
2537
	BILLBOARDGUI.Size = UD2(2.5, 0, 2.5 ,0)
2538
	BILLBOARDGUI.StudsOffset = VT(-2, 2, 0)
2539
	BILLBOARDGUI.AlwaysOnTop = false
2540
	local TEXTLABEL = Instance.new("TextLabel", BILLBOARDGUI)
2541
	TEXTLABEL.BackgroundTransparency = 1
2542
	TEXTLABEL.Size = UD2(2.5, 0, 2.5, 0)
2543
	TEXTLABEL.Text = TEXT
2544
	TEXTLABEL.Font = SKILLFONT
2545
	TEXTLABEL.FontSize="Size42"
2546
	TEXTLABEL.TextColor3 = COLOR
2547
	TEXTLABEL.TextStrokeTransparency = 1
2548
	TEXTLABEL.TextScaled = true
2549
	TEXTLABEL.TextWrapped = true
2550
	coroutine.resume(coroutine.create(function(THEPART, THEBODYPOSITION, THETEXTLABEL)
2551
		for i = 1, 50 do
2552
			Swait()
2553
			STATPART.CFrame = STATPART.CFrame * CF(0,0,-0.2)
2554
			TEXTLABEL.TextTransparency = TEXTLABEL.TextTransparency + (1/50)
2555
		end
2556
		THEPART.Parent = nil
2557
	end),STATPART, TEXTLABEL)
2558
end
2559
--//=================================\\
2560
--||			DAMAGING
2561
--\\=================================//
2562
function killnearest(position,range,maxstrength,direction)
2563
	for i,v in ipairs(workspace:GetChildren()) do
2564
	local body = v:GetChildren()
2565
		for part = 1, #body do
2566
			if((body[part].ClassName == "Part" or body[part].ClassName == "MeshPart") and v ~= Character) then
2567
				if(body[part].Position - position).Magnitude < range then
2568
					if v.ClassName == "Model" then
2569
						--v:BreakJoints()
2570
					end
2571
					local POS = position
2572
					coroutine.resume(coroutine.create(function()
2573
						body[part].Anchored = true
2574
						body[part].Parent = Effects
2575
						body[part].CanCollide = true
2576
						local SIZE = body[part].Size
2577
						body[part].Material = "Neon"
2578
						CreateSound("952306739", body[part], 2, MRANDOM(7, 12) / 10)
2579
						for i = 1, 75 do
2580
							Swait()
2581
							body[part].Color = C3(MRANDOM(0,100)/100,MRANDOM(0,100)/100,MRANDOM(0,100)/100)
2582
							body[part].Size = VT(SIZE.X+MRANDOM(-2,2),SIZE.Y+MRANDOM(-2,2),SIZE.Z+MRANDOM(-2,2))
2583
						end
2584
						coroutine.resume(coroutine.create(function()
2585
							while true do
2586
								Swait()
2587
								body[part].Color = C3(MRANDOM(0,100)/100,MRANDOM(0,100)/100,MRANDOM(0,100)/100)
2588
								body[part].Size = VT(SIZE.X+MRANDOM(-2,2),SIZE.Y+MRANDOM(-2,2),SIZE.Z+MRANDOM(-2,2))
2589
							end
2590
						end))
2591
						body[part].Anchored = false
2592
						body[part].Velocity = direction.lookVector*maxstrength
2593
					end))
2594
				end
2595
			end
2596
		end
2597
		if v.ClassName == "Part" then
2598
			if v.Anchored == false and (v.Position - position).Magnitude < range then
2599
				local POS = position
2600
				coroutine.resume(coroutine.create(function()
2601
					v.Anchored = true
2602
					v.Parent = Effects
2603
					local SIZE = v.Size
2604
					v.Material = "Neon"
2605
					CreateSound("952306739", v, 2, MRANDOM(7, 12) / 10)
2606
					for i = 1, 75 do
2607
						Swait()
2608
						v.Color = C3(MRANDOM(0,100)/100,MRANDOM(0,100)/100,MRANDOM(0,100)/100)
2609
						v.Size = VT(SIZE.X+MRANDOM(-2,2),SIZE.Y+MRANDOM(-2,2),SIZE.Z+MRANDOM(-2,2))
2610
					end
2611
					coroutine.resume(coroutine.create(function()
2612
						while true do
2613
							Swait()
2614
							v.Color = C3(MRANDOM(0,100)/100,MRANDOM(0,100)/100,MRANDOM(0,100)/100)
2615
							v.Size = VT(SIZE.X+MRANDOM(-2,2),SIZE.Y+MRANDOM(-2,2),SIZE.Z+MRANDOM(-2,2))
2616
						end
2617
					end))
2618
					v.Anchored = false
2619
					v.Velocity = direction.lookVector*maxstrength
2620
				end))
2621
			end
2622
		end
2623
	end
2624
end
2625
2626
function Kill(Char)
2627
	local NewCharacter = IT("Model",Effects)
2628
	NewCharacter.Name = "Ow im ded ;-;"
2629
	for _, c in pairs(Char:GetDescendants()) do
2630
		if c:IsA("BasePart") and c.Transparency == 0 then
2631
			if c.Parent == Char then
2632
				getbloody(c,5)
2633
			end
2634
			c:BreakJoints()
2635
			c.Material = "Glass"
2636
			c.Color = C3(0.5,0,0)
2637
			c.CanCollide = true
2638
			c.Transparency = 0.3
2639
			if c:FindFirstChildOfClass("SpecialMesh") then
2640
				c:FindFirstChildOfClass("SpecialMesh").TextureId = ""
2641
			end
2642
			if c.Name == "Head" then
2643
				c:ClearAllChildren()
2644
				c.Size = VT(c.Size.Y,c.Size.Y,c.Size.Y)
2645
			end
2646
			if c.ClassName == "MeshPart" then
2647
				c.TextureID = ""
2648
			end
2649
			if c:FindFirstChildOfClass("BodyPosition") then
2650
				c:FindFirstChildOfClass("BodyPosition"):remove()
2651
			end
2652
			if c:FindFirstChildOfClass("ParticleEmitter") then
2653
				c:FindFirstChildOfClass("ParticleEmitter"):remove()
2654
			end
2655
			c.Parent = NewCharacter
2656
			c.Name = "DeadPart"
2657
			c.Velocity = VT(MRANDOM(-45,45),MRANDOM(-45,45),MRANDOM(-45,45))/15
2658
			c.RotVelocity = VT(MRANDOM(-45,45),MRANDOM(-15,85),MRANDOM(-45,45))
2659
		end
2660
	end
2661
	Char:remove()
2662
	Debris:AddItem(NewCharacter,5)
2663
end
2664
2665
function ApplyAoE(POSITION,RANGE,BRUTAL)
2666
	local CHILDREN = workspace:GetDescendants()
2667
	for index, CHILD in pairs(CHILDREN) do
2668
		if CHILD.ClassName == "Model" and CHILD ~= Character then
2669
			local HUM = CHILD:FindFirstChildOfClass("Humanoid")
2670
			if HUM then
2671
				local TORSO = CHILD:FindFirstChild("Torso") or CHILD:FindFirstChild("UpperTorso")
2672
				if TORSO then
2673
					if (TORSO.Position - POSITION).Magnitude <= RANGE then
2674
						if BRUTAL == true then
2675
							Kill(CHILD)
2676
						else
2677
							CHILD:BreakJoints()
2678
						end
2679
					end
2680
				end
2681
			end
2682
		end
2683
	end
2684
end
2685
2686
function Kill(Char)
2687
	local NewCharacter = IT("Model",Effects)
2688
	NewCharacter.Name = "Ow im ded ;-;"
2689
	for _, c in pairs(Char:GetDescendants()) do
2690
		if c:IsA("BasePart") and c.Transparency == 0 then
2691
			if c.Parent == Char then
2692
				getbloody(c,5)
2693
			end
2694
			c:BreakJoints()
2695
			c.Material = "Glass"
2696
			c.Color = C3(0.5,0,0)
2697
			c.CanCollide = true
2698
			c.Transparency = 0.3
2699
			if c:FindFirstChildOfClass("SpecialMesh") then
2700
				c:FindFirstChildOfClass("SpecialMesh").TextureId = ""
2701
			end
2702
			if c.Name == "Head" then
2703
				c:ClearAllChildren()
2704
				c.Size = VT(c.Size.Y,c.Size.Y,c.Size.Y)
2705
			end
2706
			if c.ClassName == "MeshPart" then
2707
				c.TextureID = ""
2708
			end
2709
			if c:FindFirstChildOfClass("BodyPosition") then
2710
				c:FindFirstChildOfClass("BodyPosition"):remove()
2711
			end
2712
			if c:FindFirstChildOfClass("ParticleEmitter") then
2713
				c:FindFirstChildOfClass("ParticleEmitter"):remove()
2714
			end
2715
			c.Parent = NewCharacter
2716
			c.Name = "DeadPart"
2717
			c.Velocity = VT(MRANDOM(-45,45),MRANDOM(-45,45),MRANDOM(-45,45))/15
2718
			c.RotVelocity = VT(MRANDOM(-45,45),MRANDOM(-15,85),MRANDOM(-45,45))
2719
		end
2720
	end
2721
	Char:remove()
2722
	Debris:AddItem(NewCharacter,5)
2723
end
2724
2725
function ApplyAoE(POSITION,RANGE,BRUTAL)
2726
	local CHILDREN = workspace:GetDescendants()
2727
	for index, CHILD in pairs(CHILDREN) do
2728
		if CHILD.ClassName == "Model" and CHILD ~= Character then
2729
			local HUM = CHILD:FindFirstChildOfClass("Humanoid")
2730
			if HUM then
2731
				local TORSO = CHILD:FindFirstChild("Torso") or CHILD:FindFirstChild("UpperTorso")
2732
				if TORSO then
2733
					if (TORSO.Position - POSITION).Magnitude <= RANGE then
2734
						if BRUTAL == true then
2735
							Kill(CHILD)
2736
						else
2737
							CHILD:BreakJoints()
2738
						end
2739
					end
2740
				end
2741
			end
2742
		end
2743
	end
2744
end
2745
2746
function Kill(Char)
2747
	local NewCharacter = IT("Model",Effects)
2748
	NewCharacter.Name = "Ow im ded ;-;"
2749
	for _, c in pairs(Char:GetDescendants()) do
2750
		if c:IsA("BasePart") and c.Transparency == 0 then
2751
			if c.Parent == Char then
2752
				getbloody(c,5)
2753
			end
2754
			c:BreakJoints()
2755
			c.Material = "Glass"
2756
			c.Color = C3(0.5,0,0)
2757
			c.CanCollide = true
2758
			c.Transparency = 0.3
2759
			if c:FindFirstChildOfClass("SpecialMesh") then
2760
				c:FindFirstChildOfClass("SpecialMesh").TextureId = ""
2761
			end
2762
			if c.Name == "Head" then
2763
				c:ClearAllChildren()
2764
				c.Size = VT(c.Size.Y,c.Size.Y,c.Size.Y)
2765
			end
2766
			if c.ClassName == "MeshPart" then
2767
				c.TextureID = ""
2768
			end
2769
			if c:FindFirstChildOfClass("BodyPosition") then
2770
				c:FindFirstChildOfClass("BodyPosition"):remove()
2771
			end
2772
			if c:FindFirstChildOfClass("ParticleEmitter") then
2773
				c:FindFirstChildOfClass("ParticleEmitter"):remove()
2774
			end
2775
			c.Parent = NewCharacter
2776
			c.Name = "DeadPart"
2777
			c.Velocity = VT(MRANDOM(-45,45),MRANDOM(-45,45),MRANDOM(-45,45))/15
2778
			c.RotVelocity = VT(MRANDOM(-45,45),MRANDOM(-15,85),MRANDOM(-45,45))
2779
		end
2780
	end
2781
	Char:remove()
2782
	Debris:AddItem(NewCharacter,5)
2783
end
2784
2785
function ApplyAoE(POSITION,RANGE,BRUTAL)
2786
	local CHILDREN = workspace:GetDescendants()
2787
	for index, CHILD in pairs(CHILDREN) do
2788
		if CHILD.ClassName == "Model" and CHILD ~= Character then
2789
			local HUM = CHILD:FindFirstChildOfClass("Humanoid")
2790
			if HUM then
2791
				local TORSO = CHILD:FindFirstChild("Torso") or CHILD:FindFirstChild("UpperTorso")
2792
				if TORSO then
2793
					if (TORSO.Position - POSITION).Magnitude <= RANGE then
2794
						if BRUTAL == true then
2795
							Kill(CHILD)
2796
						else
2797
							CHILD:BreakJoints()
2798
						end
2799
					end
2800
				end
2801
			end
2802
		end
2803
	end
2804
end
2805
2806
function BulletDetection(FROM,TO,BRUTAL)
2807
	local AIMHIT,AIMPOS,NORMAL = CastProperRay(FROM,TO,2000,Character)
2808
	coroutine.resume(coroutine.create(function()
2809
		if AIMHIT ~= nil then
2810
			if AIMHIT.Parent ~= Character then
2811
				if AIMHIT.Parent:FindFirstChildOfClass("Humanoid") or AIMHIT.Parent.Parent:FindFirstChildOfClass("Humanoid") then
2812
					if AIMHIT.Parent:FindFirstChildOfClass("Humanoid") then
2813
						if BRUTAL == true then
2814
							Kill(AIMHIT.Parent)
2815
						else
2816
							getbloody(AIMHIT,15)
2817
							AIMHIT.Parent:BreakJoints()
2818
							if AIMHIT.Name == "Head" then
2819
								AIMHIT.Name = "HEADSHOT"
2820
								AIMHIT:remove()
2821
							end
2822
						end
2823
					else
2824
						if BRUTAL == true then
2825
							Kill(AIMHIT.Parent.Parent)
2826
						else
2827
							AIMHIT.Parent.Parent:BreakJoints()
2828
						end
2829
					end
2830
				end
2831
			end
2832
		end
2833
	end))
2834
	SpawnTrail(FROM,AIMPOS)
2835
	return AIMHIT,AIMPOS,NORMAL
2836
end
2837
2838
function ApplyDamage(Humanoid,Damage,CritRate,CritMultiplier,DoesOneShot)
2839
	coroutine.resume(coroutine.create(function()
2840
		local defence = Instance.new("BoolValue",Humanoid.Parent)
2841
		defence.Name = ("HitBy"..Player.Name)
2842
		game:GetService("Debris"):AddItem(defence, 0.001)
2843
		Damage = Damage * DAMAGEMULTIPLIER
2844
		if Humanoid.Health ~= 0 then
2845
			local CritChance = MRANDOM(1,100)
2846
			if CritChance < CritRate + 1 then
2847
				Damage = Damage*CritMultiplier
2848
			end
2849
			if Damage > Humanoid.Health then
2850
				Damage = math.ceil(Humanoid.Health)
2851
				if Damage == 0 then
2852
					Damage = 0.1
2853
				end
2854
			end
2855
			if DoesOneShot == false then
2856
				for _, c in pairs(Humanoid.Parent:GetChildren()) do
2857
					if c.Name ~= "HumanoidRootPart" and c.Name ~= "Torso" and c.Name ~= "Head" and c.Name ~= "UpperTorso" and c.Name ~= "LowerTorso" then
2858
						if c.ClassName == "Part" or c.ClassName == "MeshPart" then
2859
							if MRANDOM(1,20) == 1 then
2860
								Shatter(c)
2861
							end
2862
						end
2863
					end
2864
				end
2865
				Humanoid.Health = Humanoid.Health - Damage
2866
				if Humanoid.Parent:FindFirstChild("Head") then
2867
					CreateSound(HITPLAYERSOUNDS[MRANDOM(1,#HITPLAYERSOUNDS)], Humanoid.Parent.Head, 5, 1)
2868
					if CritChance < CritRate + 1 then
2869
						StatLabel(Humanoid.Parent.Head.CFrame * CF(0, 0 + (Humanoid.Parent.Head.Size.z - 1), 0), "CRIT//"..Damage, C3(1, 0, 0))
2870
					else
2871
						StatLabel(Humanoid.Parent.Head.CFrame * CF(0, 0 + (Humanoid.Parent.Head.Size.z - 1), 0), Damage, C3(0, 0, 0))
2872
					end
2873
				end
2874
			elseif DoesOneShot == true then
2875
				--print("["..Humanoid.Parent.Name.."]: One shot!? Really!?!?")
2876
				Humanoid.Parent:BreakJoints()
2877
				if Humanoid.Parent:FindFirstChild("Head") then
2878
					StatLabel(Humanoid.Parent.Head.CFrame * CF(0, 0 + (Humanoid.Parent.Head.Size.z - 1), 0), "INF", C3(1, 0, 0))
2879
				end
2880
				for _, c in pairs(Humanoid.Parent:GetChildren()) do
2881
					if c.ClassName == "Part" or c.ClassName == "MeshPart" then
2882
						Shatter(c)
2883
					end
2884
				end
2885
			end
2886
			if Humanoid.Health == 0 then
2887
				--print("["..Humanoid.Parent.Name.."]: It's like stepping on glass, but worse!")
2888
				SpawnSoul(Humanoid)
2889
				for _, c in pairs(Humanoid.Parent:GetChildren()) do
2890
					if c.ClassName == "Part" or c.ClassName == "MeshPart" then
2891
						Shatter(c)
2892
					end
2893
				end
2894
			end
2895
		end
2896
	end))
2897
end
2898
2899
function AoEDamage(position,radius,min,max,maxstrength,critrate,critmultiplier,BESERK)
2900
	local dmg = math.random(10000,100000)
2901
	for i,v in ipairs(workspace:GetChildren()) do
2902
	if v:FindFirstChild("HitBy"..Player.Name) == nil then
2903
		local body = v:GetChildren()
2904
			for part = 1, #body do
2905
				if(v:FindFirstChild("HitBy"..Player.Name) == nil and (body[part].ClassName == "Part" or body[part].ClassName == "MeshPart") and v ~= Character) then
2906
					if(body[part].Position - position).Magnitude < radius then
2907
						if v.ClassName == "Model" then
2908
							if v:FindFirstChildOfClass("Humanoid") then
2909
								ApplyDamage(v:FindFirstChildOfClass("Humanoid"),dmg,critrate,critmultiplier,BESERK)
2910
								local bv = Instance.new("BodyVelocity") 
2911
								bv.maxForce = Vector3.new(1e9, 1e9, 1e9)
2912
								bv.velocity = CF(position,body[part].Position).lookVector*maxstrength
2913
								bv.Parent = body[part]
2914
								Debris:AddItem(bv,0.2)
2915
							end
2916
						end
2917
					end
2918
				end
2919
			end
2920
		end
2921
		if v:FindFirstChild("HitBy"..Player.Name) then
2922
			v:FindFirstChild("HitBy"..Player.Name):remove()
2923
		end
2924
	end
2925
end
2926
2927
function Banish(Foe)
2928
	if Foe then
2929
		coroutine.resume(coroutine.create(function()
2930
			--if game.Players:FindFirstChild(Foe.Name) then
2931
				table.insert(TOBANISH,Foe.Name)
2932
				printbye(Foe.Name)
2933
			--end
2934
			Foe.Archivable = true
2935
			local CLONE = Foe:Clone()
2936
			Foe:Destroy()
2937
			CLONE.Parent = Effects
2938
			CLONE:BreakJoints()
2939
			local MATERIALS = {"Glass","Neon"}
2940
			for _, c in pairs(CLONE:GetDescendants()) do
2941
				if c:IsA("BasePart") then
2942
					if c.Name == "Torso" or c.Name == "UpperTorso" or c == CLONE.PrimaryPart then
2943
 						CreateSound(340722848, c, 10, 1, false)
2944
					end
2945
					c.Anchored = true
2946
					c.Transparency = c.Transparency + 0.2
2947
					c.Material = MATERIALS[MRANDOM(1,2)]
2948
					c.Color = C3(1,0,0)
2949
					if c.ClassName == "MeshPart" then
2950
						c.TextureID = ""
2951
					end
2952
					if c:FindFirstChildOfClass("SpecialMesh") then
2953
						c:FindFirstChildOfClass("SpecialMesh").TextureId = ""
2954
					end
2955
					if c:FindFirstChildOfClass("Decal") then
2956
						c:FindFirstChildOfClass("Decal"):remove()
2957
					end
2958
					c.Name = "Banished"
2959
					c.CanCollide = false
2960
				else
2961
					c:remove()
2962
				end
2963
			end
2964
			local A = false
2965
			for i = 1, 35 do
2966
				if A == false then
2967
					A = true
2968
				elseif A == true then
2969
					A = false
2970
				end
2971
				for _, c in pairs(CLONE:GetDescendants()) do
2972
					if c:IsA("BasePart") then
2973
						c.Anchored = true
2974
						c.Material = MATERIALS[MRANDOM(1,2)]
2975
						c.Transparency = c.Transparency + 0.8/35
2976
						if A == false then
2977
							c.CFrame = c.CFrame*CF(MRANDOM(-45,45)/45,MRANDOM(-45,45)/45,MRANDOM(-45,45)/45)
2978
						elseif A == true then
2979
							c.CFrame = c.CFrame*CF(MRANDOM(-45,45)/45,MRANDOM(-45,45)/45,MRANDOM(-45,45)/45)						
2980
						end
2981
					end
2982
				end
2983
				Swait()
2984
			end
2985
			CLONE:remove()
2986
		end))
2987
	end
2988
end
2989
2990
function ApplyAoE(POSITION,RANGE,ISBANISH)
2991
	local CHILDREN = workspace:GetDescendants()
2992
	for index, CHILD in pairs(CHILDREN) do
2993
		if CHILD.ClassName == "Model" and CHILD ~= Character then
2994
			local HUM = CHILD:FindFirstChildOfClass("Humanoid")
2995
			if HUM then
2996
				local TORSO = CHILD:FindFirstChild("Torso") or CHILD:FindFirstChild("UpperTorso")
2997
				if TORSO then
2998
					if (TORSO.Position - POSITION).Magnitude <= RANGE then
2999
						if ISBANISH == true then
3000
							Banish(CHILD)
3001
						else
3002
							if ISBANISH == "Gravity" then
3003
								HUM.PlatformStand = true
3004
								if TORSO:FindFirstChild("V3BanishForce"..Player.Name) then
3005
									local grav = Instance.new("BodyPosition",TORSO)
3006
									grav.D = 15
3007
									grav.P = 20000
3008
									grav.maxForce = Vector3.new(math.huge,math.huge,math.huge)
3009
									grav.position = TORSO.Position
3010
									grav.Name = "V3BanishForce"..Player.Name
3011
								else
3012
									TORSO:FindFirstChild("V3BanishForce"..Player.Name).position = TORSO.Position+VT(0,0.3,0)
3013
									TORSO.RotVelocity = VT(MRANDOM(-25,25),MRANDOM(-25,25),MRANDOM(-25,25))
3014
								end
3015
							else
3016
								HUM.PlatformStand = false
3017
							end
3018
						end
3019
					elseif ISBANISH == "Gravity" then
3020
						if TORSO:FindFirstChild("V3BanishForce"..Player.Name) then
3021
							TORSO:FindFirstChild("V3BanishForce"..Player.Name):remove()
3022
							HUM.PlatformStand = false
3023
						end
3024
					end
3025
				end
3026
			end
3027
		end
3028
	end
3029
end
3030
3031
--//=================================\\
3032
--||	ATTACK FUNCTIONS AND STUFF
3033
--\\=================================//
3034
function FireArc(Part,ToLocation,AmountOfTime,Height,DoesCourontine)
3035
    if DoesCourontine == false then
3036
        local Direction = CF(Part.Position,ToLocation)
3037
        local Distance = (Part.Position - ToLocation).magnitude
3038
        for i = 1, AmountOfTime do
3039
            Swait()
3040
            Part.CFrame = Direction*CF(0,(AmountOfTime/200)+((AmountOfTime/Height)-((i*2)/Height)),-Distance/AmountOfTime)
3041
            Direction = Part.CFrame
3042
        end
3043
        Part:remove()
3044
    elseif DoesCourontine == true then
3045
        coroutine.resume(coroutine.create(function()
3046
            local Direction = CF(Part.Position,ToLocation)
3047
            local Distance = (Part.Position - ToLocation).magnitude
3048
            for i = 1, AmountOfTime do
3049
                Swait()
3050
                Part.CFrame = Direction*CF(0,(AmountOfTime/200)+((AmountOfTime/Height)-((i*2)/Height)),-Distance/AmountOfTime)
3051
                Direction = Part.CFrame
3052
            end
3053
            Part:remove()
3054
        end))
3055
    end
3056
end
3057
3058
function Slice(KIND,SIZE,WAIT,CFRAME,COLOR,GROW)
3059
    local wave = CreatePart(3, Effects, "Neon", 0, 0.5, BRICKC(COLOR), "Effect", VT(1,1,1), true)
3060
    local mesh = nil
3061
    if KIND == "Base" then
3062
        mesh = CreateMesh("SpecialMesh", wave, "FileMesh", "448386996", "", VT(0,SIZE/10,SIZE/10), VT(0,0,0))
3063
    elseif KIND == "Thin" then
3064
        mesh = CreateMesh("SpecialMesh", wave, "FileMesh", "662586858", "", VT(SIZE/10,0,SIZE/10), VT(0,0,0))
3065
    elseif KIND == "Round" then
3066
        mesh = CreateMesh("SpecialMesh", wave, "FileMesh", "662585058", "", VT(SIZE/10,0,SIZE/10), VT(0,0,0))
3067
    end
3068
    wave.CFrame = CFRAME
3069
    coroutine.resume(coroutine.create(function(PART)
3070
        for i = 1, WAIT do
3071
            Swait()
3072
            mesh.Scale = mesh.Scale + GROW/10
3073
            wave.Transparency = wave.Transparency + (0.5/WAIT)
3074
            if wave.Transparency > 0.99 then
3075
                wave:remove()
3076
            end
3077
        end
3078
    end))
3079
end
3080
3081
function killnearest(position,range,maxstrength)
3082
    for i,v in ipairs(workspace:GetChildren()) do
3083
    local body = v:GetChildren()
3084
        for part = 1, #body do
3085
            if((body[part].ClassName == "Part" or body[part].ClassName == "MeshPart") and v ~= Character) then
3086
                if(body[part].Position - position).Magnitude < range then
3087
                    if v.ClassName == "Model" then
3088
                        v:BreakJoints()
3089
                    end
3090
                    --table.insert(Effects2,{body[part],"Disappear",0.02,2,2,2,2})
3091
                    local bv = Instance.new("BodyVelocity")
3092
                    bv.maxForce = Vector3.new(1e9, 1e9, 1e9)
3093
                    bv.velocity = CF(position,body[part].Position).lookVector*maxstrength
3094
                    bv.Parent = body[part]
3095
                    Debris:AddItem(bv,0.2)
3096
                end
3097
            end
3098
        end
3099
        if v.ClassName == "Part" then
3100
            if v.Anchored == false and (v.Position - position).Magnitude < range then
3101
                --table.insert(Effects2,{v,"Disappear",0.02,2,2,2,2})
3102
                v.Velocity = CFrame.new(position,v.Position).lookVector*5*maxstrength
3103
            end
3104
        end
3105
    end
3106
end
3107
3108
function Supernova()
3109
    local HITFLOOR,HITPOS,NORMAL = Raycast(RootPart.Position, (CF(RootPart.Position, RootPart.Position + VT(0, -1, 0))).lookVector, 7 * Player_Size, Character)
3110
    if HITFLOOR ~= nil then
3111
        local HITBODIES = {}
3112
        ATTACK = true
3113
        Rooted = true
3114
        local ABSOLUTE = CreatePart(3, Effects, "Neon", 0, 1, "Relly red", "Star", VT(0,0,0))
3115
        MakeForm(ABSOLUTE,"Ball")
3116
        CreateSound("429459101", ABSOLUTE, 10, 1)
3117
        for i=0, 4, 0.1 / Animation_Speed do
3118
            Swait()
3119
            ABSOLUTE.Size = ABSOLUTE.Size + VT(0.2,0.2,0.2)
3120
            ABSOLUTE.CFrame = RootPart.CFrame*CF(0,5+(ABSOLUTE.Size.Y/2),0)
3121
            ABSOLUTE.Transparency = ABSOLUTE.Transparency - 0.01
3122
            local CHARGE = CreatePart(3, Effects, "Neon", 0, 0, "Really red", "Star", VT(1,1,1))
3123
            MakeForm(CHARGE,"Ball")
3124
            CHARGE.Color = C3(1,0,0)
3125
            CHARGE.CFrame = CF(RootPart.Position) * CF(MRANDOM(-15,15),-6,MRANDOM(-15,15))
3126
            FireArc(CHARGE,ABSOLUTE.Position,45,45,true)
3127
            RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.25 * COS(SINE / 12)) * ANGLES(RAD(4 + 2.5 * SIN(SINE / 12)), RAD(0), RAD(15 + 2.5 * SIN(SINE / 12))), 1 / Animation_Speed)
3128
            Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(-25 + 4.5 * SIN(SINE / 12)), RAD(25), RAD(-15 - 2.5 * SIN(SINE / 12))), 1 / Animation_Speed)
3129
            RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.25, 1.5 + 0.25 * COS(SINE / 12), 0) * ANGLES(RAD(170), RAD(0 - 7.5 * SIN(SINE / 12)), RAD(-12 + 7.5 * SIN(SINE / 12))) * RIGHTSHOULDERC0, 1 / Animation_Speed)
3130
            LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5 + 0.25 * COS(SINE / 12), 0) * ANGLES(RAD(0), RAD(0 + 7.5 * SIN(SINE / 12)), RAD(-12 - 7.5 * SIN(SINE / 12))) * LEFTSHOULDERC0, 1 / Animation_Speed)
3131
            RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, -0.01) * ANGLES(RAD(-7.5 * SIN(SINE / 12)), RAD(75), RAD(0)) * ANGLES(RAD(-8 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
3132
            LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -0.5, -0.5) * ANGLES(RAD(-7.5 * SIN(SINE / 12)), RAD(-90), RAD(0)) * ANGLES(RAD(-8 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
3133
        end
3134
        CreateSound("907330103", Head, 10, 1.2)
3135
        for i = 1, 75 do
3136
            Swait()
3137
            RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.25 * COS(SINE / 12)) * ANGLES(RAD(4 + 2.5 * SIN(SINE / 12)), RAD(0), RAD(15 + 2.5 * SIN(SINE / 12))), 1 / Animation_Speed)
3138
            Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(-25 + 4.5 * SIN(SINE / 12)), RAD(25), RAD(-15 - 2.5 * SIN(SINE / 12))), 1 / Animation_Speed)
3139
            RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.25, 1.5 + 0.25 * COS(SINE / 12), 0) * ANGLES(RAD(170), RAD(0 - 7.5 * SIN(SINE / 12)), RAD(-12 + 7.5 * SIN(SINE / 12))) * RIGHTSHOULDERC0, 1 / Animation_Speed)
3140
            LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5 + 0.25 * COS(SINE / 12), 0) * ANGLES(RAD(0), RAD(0 + 7.5 * SIN(SINE / 12)), RAD(-12 - 7.5 * SIN(SINE / 12))) * LEFTSHOULDERC0, 1 / Animation_Speed)
3141
            RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, -0.01) * ANGLES(RAD(-7.5 * SIN(SINE / 12)), RAD(75), RAD(0)) * ANGLES(RAD(-8 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
3142
            LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -0.5, -0.5) * ANGLES(RAD(-7.5 * SIN(SINE / 12)), RAD(-90), RAD(0)) * ANGLES(RAD(-8 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
3143
        end
3144
        coroutine.resume(coroutine.create(function()
3145
            for i = 1, 13 do
3146
                for e = 1, 8 do
3147
                    Swait()
3148
                    MagicSphere(VT(1,1,1),15,CF(ABSOLUTE.Position)*CF(MRANDOM(-45,45),MRANDOM(-45,45),MRANDOM(-45,45)),C3(255,0,0),VT(0,0,0))
3149
                    CreateSwirl(ABSOLUTE.Size/2,15,CF(HITPOS),true,15,BRICKC"Reakky red".Color,VT(i,0.3,i)*2)
3150
                end
3151
                for i = 1, 5 do
3152
                    Slice("Round",0,35,CF(ABSOLUTE.Position)*ANGLES(RAD(MRANDOM(-18,18)),RAD(MRANDOM(-180,180)),RAD(MRANDOM(-18,18))),C3(1,1,1),VT(i,0,i)/3)
3153
                    Slice("Thin",i,55,ABSOLUTE.CFrame * CF(0,-1.1,0) * ANGLES(RAD(MRANDOM(-180,180)),RAD(MRANDOM(-180,180)),RAD(MRANDOM(-180,180))),C3(255,0,0),VT(0,0,0))
3154
                end
3155
                CreateSwirl(ABSOLUTE.Size/2,25,CF(ABSOLUTE.Position),true,-25,BRICKC"Relly red".Color,VT(i,i*2,i))
3156
                CreateSwirl(ABSOLUTE.Size/2,55,CF(ABSOLUTE.Position),true,25,C3(255,0,0),VT(i,i*2,i))
3157
                CreateSound("168586621", ABSOLUTE, 4, 0.8)
3158
                CreateSound("201858144", ABSOLUTE, 10, 0.8)
3159
                killnearest(ABSOLUTE.Position,i*18,i)
3160
                ABSOLUTE.Size = ABSOLUTE.Size*0.9
3161
                MagicSphere(ABSOLUTE.Size,25,CF(ABSOLUTE.Position),BRICKC"Relly red".Color,VT(i,i,i)/1.1)
3162
                MagicSphere(ABSOLUTE.Size,45,CF(ABSOLUTE.Position),C3(255,0,0),VT(i,i,i))
3163
            end
3164
            ABSOLUTE.Transparency = 1
3165
            Debris:AddItem(ABSOLUTE,10)
3166
        end))
3167
        ATTACK = false
3168
        Rooted = false
3169
    end
3170
end
3171
3172
function DeathAgreement()
3173
	ATTACK = true
3174
	Rooted = false
3175
	local SPEED = Speed
3176
	Speed = 8
3177
	CreateSound("357202141", RightArm, 10, 1.1)
3178
	for i=0, 0, 0.01 / Animation_Speed do
3179
		Swait()
3180
		turnto(Mouse.Hit.p)
3181
		MagicSphere(VT(1,1,1),15,RightArm.CFrame * CF(MRANDOM(-3,3),MRANDOM(-3,3),MRANDOM(-3,3)),"Deep orange",VT(-1/15,-1/15,-1/15))
3182
		MagicSphere(VT(2,2,2),15,RightArm.CFrame * CF(MRANDOM(-3,3),MRANDOM(-3,3),MRANDOM(-3,3)),"Deep orange",VT(-2/15,-2/15,-2/15))
3183
		RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, -0.2 * Player_Size + 0.05 * COS(SINE / 12) * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(-85)), 0.15 / Animation_Speed)
3184
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(0 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(85)), 0.2 / Animation_Speed)
3185
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(90+(MRANDOM(-45,45)/10)), RAD(0), RAD(12)) * RIGHTSHOULDERC0, 3 / Animation_Speed)
3186
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(90), RAD(0), RAD(-85)) * LEFTSHOULDERC0, 0.15 / Animation_Speed)
3187
		RightHip.C0 = Clerp(RightHip.C0, CF(1 * Player_Size, -1 * Player_Size, -0 * Player_Size) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.15 / Animation_Speed)
3188
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1 * Player_Size, -1 * Player_Size, -0 * Player_Size) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.15 / Animation_Speed)
3189
	end
3190
	for i=0, 0, 0.01 / Animation_Speed do
3191
		Swait()
3192
		turnto(Mouse.Hit.p)
3193
		RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, -0.2 * Player_Size + 0.05 * COS(SINE / 12) * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(65)), 1 / Animation_Speed)
3194
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(25), RAD(0), RAD(35)), 1 / Animation_Speed)
3195
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(90), RAD(0), RAD(65)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
3196
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(-20), RAD(0), RAD(-25)) * LEFTSHOULDERC0, 1 / Animation_Speed)
3197
		RightHip.C0 = Clerp(RightHip.C0, CF(1 * Player_Size, -1 * Player_Size, -0 * Player_Size) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
3198
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1 * Player_Size, -1 * Player_Size, -0 * Player_Size) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
3199
	end
3200
	local PART = CreatePart(3, Effects, "Neon", 0, 0.8, "Deep orange", "Punch", VT(50,50,50),false)
3201
	PART.CFrame = RootPart.CFrame * CF(0,0,-25)
3202
	PART.Shape = "Ball"
3203
	local bv = Instance.new("BodyVelocity") 
3204
	bv.maxForce = Vector3.new(1e9, 1e9, 1e9)
3205
	bv.velocity = RootPart.CFrame.lookVector*600
3206
	bv.Parent = PART
3207
	bv.Name = "PROJECTILEVELOCITY"
3208
	CreateWave(VT(1,5,1),55,RootPart.CFrame * CF(0,0,-6)*ANGLES(RAD(-90),RAD(0),RAD(0)),true,1,"Lime green",VT(3,0.2,3))
3209
	CreateSwirl(VT(3,5,3),75,RootPart.CFrame * CF(0,0,-15)*ANGLES(RAD(-90),RAD(0),RAD(0)),true,1,"Lime green",VT(2.2,0.6,2.2))
3210
	CreateSound("414517163", Effects, 10, MRANDOM(7, 12) / 10)
3211
	coroutine.resume(coroutine.create(function()
3212
		for i = 1, 3 do
3213
			Swait()
3214
			PART.Transparency = PART.Transparency + 0.2/10
3215
			PART.Size = PART.Size + VT(5,5,5)
3216
			killnearest(PART.Position,PART.Size.Y/2+15,100,RootPart.CFrame)
3217
		end
3218
		PART:Destroy()
3219
	end))
3220
	for i=0, 0, 0.01 / Animation_Speed do
3221
		Swait()
3222
		RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, -0.2 * Player_Size + 0.05 * COS(SINE / 12) * Player_Size) * ANGLES(RAD(15), RAD(0), RAD(95)), 2 / Animation_Speed)
3223
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(25), RAD(0), RAD(35)), 3 / Animation_Speed)
3224
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(90), RAD(0), RAD(0)) * RIGHTSHOULDERC0, 3 / Animation_Speed)
3225
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(-70), RAD(0), RAD(-25)) * LEFTSHOULDERC0, 3 / Animation_Speed)
3226
		RightHip.C0 = Clerp(RightHip.C0, CF(1 * Player_Size, -0.8 * Player_Size, -0 * Player_Size) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(-15), RAD(0), RAD(0)), 3 / Animation_Speed)
3227
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1 * Player_Size, -1 * Player_Size, -0 * Player_Size) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-5), RAD(0), RAD(0)), 3 / Animation_Speed)
3228
	end
3229
	Speed = SPEED
3230
	ATTACK = false
3231
	Rooted = false
3232
end
3233
3234
function Morning_Star()
3235
	ATTACK = true
3236
	Rooted = true
3237
	CreateSound(LAUGHS[MRANDOM(1,#LAUGHS)], Torso, 7, 1, false)
3238
	for i=0, 1, 0.1 / Animation_Speed do
3239
		Swait()
3240
		RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0  + 0.25 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
3241
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(15 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
3242
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, -0.5) * ANGLES(RAD(0), RAD(0), RAD(-85)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
3243
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.15, -0.5) * ANGLES(RAD(-15), RAD(0), RAD(85)) * LEFTSHOULDERC0, 1 / Animation_Speed)
3244
		RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, -0.01) * ANGLES(RAD(-2.5 * SIN(SINE / 12)), RAD(75), RAD(0)) * ANGLES(RAD(-8 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
3245
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -0.5, -0.5) * ANGLES(RAD(-2.5 * SIN(SINE / 12)), RAD(-90), RAD(0)) * ANGLES(RAD(-8 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
3246
	end	
3247
	coroutine.resume(coroutine.create(function()
3248
		local POS = Mouse.Hit.p
3249
		local RAY = CreatePart(3, Effects, "Neon", 0, 0, "Really red", "Strike", VT(0,2000,0))
3250
		MakeForm(RAY,"Cyl")
3251
		local SPHERE = CreatePart(3, Effects, "Neon", 0, 0, "Really red", "Strike", VT(0,0,0))
3252
		MakeForm(SPHERE,"Ball")
3253
		local SHIELD = CreatePart(3, Effects, "Neon", 0, 0.5, "Really black", "Strike", VT(0,0,0))
3254
		MakeForm(SHIELD,"Ball")
3255
		SHIELD.CFrame = CF(POS)
3256
		RAY.CFrame = CF(POS)
3257
		SPHERE.CFrame = CF(POS)
3258
		CreateSound(440145570, SPHERE, 10, 0.8, false)
3259
		CreateSound(415700134, SPHERE, 10, 0.8, false)
3260
		for i = 1, 200 do
3261
			Swait()
3262
			WACKYEFFECT({Time = 15, EffectType = "Wave", Size = VT(0,0,0), Size2 = VT(SPHERE.Size.X*1.2,5+(i),SPHERE.Size.X*1.2), Transparency = 0, Transparency2 = 1, CFrame = SPHERE.CFrame*ANGLES(RAD(0), RAD(i), RAD(0)), MoveToPos = nil, RotationX = 0, RotationY = i, RotationZ = 0, Material = "Neon", Color = C3(1,0,0), SoundID = nil, SoundPitch = nil, SoundVolume = nil})
3263
			RAY.Size = RAY.Size + VT(0.05,0,0.05)
3264
			SPHERE.Size = SPHERE.Size + VT(2,2,2)
3265
			SHIELD.Size = SPHERE.Size + VT(3,3,3)
3266
			ApplyAoE(SPHERE.Position,SPHERE.Size.X/2,true)
3267
		end	
3268
		for i = 1, 45 do
3269
			Swait()
3270
			RAY.Transparency = RAY.Transparency + 1/45
3271
			SPHERE.Transparency = RAY.Transparency 
3272
			SHIELD.Transparency = SPHERE.Transparency + 1/45
3273
		end
3274
		RAY:remove()
3275
		SHIELD:remove()
3276
		SPHERE:remove()
3277
	end))
3278
	for i=0, 1, 0.1 / Animation_Speed do
3279
		Swait()
3280
		RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0  + 0.25 * COS(SINE / 12)) * ANGLES(RAD(-35), RAD(0), RAD(0)), 1 / Animation_Speed)
3281
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(-15 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
3282
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, -0.15) * ANGLES(RAD(65), RAD(-45), RAD(85)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
3283
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, -0.15) * ANGLES(RAD(65), RAD(45), RAD(-85)) * LEFTSHOULDERC0, 1 / Animation_Speed)
3284
		RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, -0.01) * ANGLES(RAD(-35-2.5 * SIN(SINE / 12)), RAD(75), RAD(0)) * ANGLES(RAD(-8 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
3285
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -0.5, -0.5) * ANGLES(RAD(-35-2.5 * SIN(SINE / 12)), RAD(-90), RAD(0)) * ANGLES(RAD(-8 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
3286
	end
3287
	ATTACK = false
3288
	Rooted = false
3289
end
3290
3291
function Shot()
3292
	ATTACK = true
3293
	Rooted = false
3294
	for i=0, 0.05, 0.1 / Animation_Speed do
3295
		Swait()
3296
		turnto(Mouse.Hit.p)
3297
		RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(90)), 0.5 / Animation_Speed)
3298
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(-90)), 0.5 / Animation_Speed)
3299
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(90), RAD(0), RAD(90)) * RIGHTSHOULDERC0, 0.5 / Animation_Speed)
3300
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.6, 0) * ANGLES(RAD(-45), RAD(0), RAD(45)) * LEFTSHOULDERC0, 0.5 / Animation_Speed)
3301
		RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, 0) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 0.5 / Animation_Speed)
3302
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, 0) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 0.5 / Animation_Speed)
3303
	end
3304
	repeat
3305
		for i=0, 0.05, 0.1 / Animation_Speed do
3306
			Swait()
3307
			turnto(Mouse.Hit.p)
3308
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(90)), 0.5 / Animation_Speed)
3309
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(-90)), 0.5 / Animation_Speed)
3310
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(90), RAD(0), RAD(90)) * RIGHTSHOULDERC0, 0.5 / Animation_Speed)
3311
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.6, 0) * ANGLES(RAD(-45), RAD(0), RAD(45)) * LEFTSHOULDERC0, 0.5 / Animation_Speed)
3312
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, 0) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 0.5 / Animation_Speed)
3313
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, 0) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 0.5 / Animation_Speed)
3314
		end
3315
		local HIT,POS = CastProperRay(Hole.Position, Mouse.Hit.p, 1000, Character)
3316
		SpawnTrail(Hole.Position,POS)
3317
		if HIT ~= nil then
3318
			if HIT.Parent ~= workspace and HIT.Parent.ClassName ~= "Folder" then
3319
				Banish(HIT.Parent)
3320
			end
3321
		end
3322
		WACKYEFFECT({Time = 25, EffectType = "Wave", Size = VT(1,0,1), Size2 = VT(6,7.5,6), Transparency = 0, Transparency2 = 1, CFrame = Hole.CFrame, MoveToPos = Hole.CFrame*CF(0,0.5,0).p, RotationX = 0, RotationY = -15, RotationZ = 0, Material = "Neon", Color = C3(1,0,0), SoundID = nil, SoundPitch = nil, SoundVolume = nil})
3323
		WACKYEFFECT({Time = 25, EffectType = "Wave", Size = VT(1,0,1), Size2 = VT(6,6.5,6), Transparency = 0, Transparency2 = 1, CFrame = Hole.CFrame, MoveToPos = nil, RotationX = 0, RotationY = 5, RotationZ = 0, Material = "Neon", Color = C3(1,0,0), SoundID = 904440937, SoundPitch = MRANDOM(8,11)/10, SoundVolume = 8})
3324
		WACKYEFFECT({Time = 25, EffectType = "Wave", Size = VT(1,0,1), Size2 = VT(6,6.5,6), Transparency = 0, Transparency2 = 1, CFrame = CF(POS,Hole.Position) * ANGLES(RAD(-90), RAD(0), RAD(0)), MoveToPos = nil, RotationX = 0, RotationY = -5, RotationZ = 0, Material = "Neon", Color = C3(1,0,0), SoundID = nil, SoundPitch = MRANDOM(8,11)/10, SoundVolume = 8})
3325
		WACKYEFFECT({Time = 25, EffectType = "Wave", Size = VT(1,0,1), Size2 = VT(6,6.5,6), Transparency = 0, Transparency2 = 1, CFrame = CF(POS,Hole.Position) * ANGLES(RAD(-90), RAD(0), RAD(0)), MoveToPos = nil, RotationX = 0, RotationY = 5, RotationZ = 0, Material = "Neon", Color = C3(1,0,0), SoundID = nil, SoundPitch = MRANDOM(8,11)/10, SoundVolume = 8})
3326
		for i=0, 0.05, 0.1 / Animation_Speed do
3327
			Swait()
3328
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(90)), 0.5 / Animation_Speed)
3329
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(-90)), 0.25 / Animation_Speed)
3330
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(90), RAD(15), RAD(90)) * RIGHTSHOULDERC0, 0.5 / Animation_Speed)
3331
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.6, 0) * ANGLES(RAD(-45), RAD(0), RAD(45)) * LEFTSHOULDERC0, 0.5 / Animation_Speed)
3332
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, 0) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 0.5 / Animation_Speed)
3333
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, 0) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 0.5 / Animation_Speed)
3334
		end
3335
	until KEYHOLD == false
3336
	ATTACK = false
3337
	Rooted = false
3338
end
3339
3340
function AttackTemplate()
3341
	ATTACK = true
3342
	Rooted = false
3343
	for i=0, 1, 0.1 / Animation_Speed do
3344
		Swait()
3345
		RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.15 / Animation_Speed)
3346
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 0.15 / Animation_Speed)
3347
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(12)) * RIGHTSHOULDERC0, 0.15 / Animation_Speed)
3348
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(-12)) * LEFTSHOULDERC0, 0.15 / Animation_Speed)
3349
		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.15 / Animation_Speed)
3350
		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.15 / Animation_Speed)
3351
	end
3352
	ATTACK = false
3353
	Rooted = false
3354
end
3355
3356
--//=================================\\
3357
--||	  ASSIGN THINGS TO KEYS
3358
--\\=================================//
3359
3360
function MouseDown(Mouse)
3361
	if ATTACK == false then
3362
	end
3363
end
3364
3365
function MouseUp(Mouse)
3366
HOLD = false
3367
end
3368
3369
function KeyDown(Key)
3370
	KEYHOLD = true
3371
	if Key == "z" and ATTACK == false then
3372
		Shot()
3373
	end
3374
3375
	if Key == "q" and ATTACK == false then
3376
		Morning_Star()
3377
	end
3378
3379
	if Key == "f" and ATTACK == false then
3380
		Supernova()
3381
	end
3382
3383
	if Key == "e" and ATTACK == false then
3384
		DeathAgreement()
3385
	end
3386
3387
	if Key == "b" and ATTACK == false then
3388
	end
3389
3390
	if Key == "c" and ATTACK == false then
3391
	end
3392
3393
	if Key == "q" and ATTACK == false then
3394
	end
3395
3396
	if Key == "x" and ATTACK == false then
3397
	end
3398
end
3399
3400
function KeyUp(Key)
3401
	KEYHOLD = false
3402
end
3403
3404
	Mouse.Button1Down:connect(function(NEWKEY)
3405
		MouseDown(NEWKEY)
3406
	end)
3407
	Mouse.Button1Up:connect(function(NEWKEY)
3408
		MouseUp(NEWKEY)
3409
	end)
3410
	Mouse.KeyDown:connect(function(NEWKEY)
3411
		KeyDown(NEWKEY)
3412
	end)
3413
	Mouse.KeyUp:connect(function(NEWKEY)
3414
		KeyUp(NEWKEY)
3415
	end)
3416
3417
--//=================================\\
3418
--\\=================================//
3419
3420
3421
function unanchor()
3422
	if UNANCHOR == true then
3423
		g = Character:GetChildren()
3424
		for i = 1, #g do
3425
			if g[i].ClassName == "Part" then
3426
				g[i].Anchored = false
3427
			end
3428
		end
3429
	end
3430
end
3431
3432
3433
--//=================================\\
3434
--||	WRAP THE WHOLE SCRIPT UP
3435
--\\=================================//
3436
3437
Humanoid.Changed:connect(function(Jump)
3438
	if Jump == "Jump" and (Disable_Jump == true) then
3439
		Humanoid.Jump = false
3440
	end
3441
end)
3442
3443
local CONNECT = nil
3444
3445
while true do
3446
	Swait()
3447
	ANIMATE.Parent = nil
3448
	if Character:FindFirstChildOfClass("Humanoid") == nil then
3449
		Humanoid = IT("Humanoid",Character)
3450
	end
3451
	for _,v in next, Humanoid:GetPlayingAnimationTracks() do
3452
	    v:Stop();
3453
	end
3454
	SINE = SINE + CHANGE
3455
	local TORSOVELOCITY = (RootPart.Velocity * VT(1, 0, 1)).magnitude
3456
	local TORSOVERTICALVELOCITY = RootPart.Velocity.y
3457
	local HITFLOOR = Raycast(RootPart.Position, (CF(RootPart.Position, RootPart.Position + VT(0, -1, 0))).lookVector, 4, Character)
3458
	local WALKSPEEDVALUE = 6 / (Humanoid.WalkSpeed / 16)
3459
	if ANIM == "Walk" and TORSOVELOCITY > 1 then
3460
		RootJoint.C1 = Clerp(RootJoint.C1, ROOTC0 * CF(0, 0, -0.15 * COS(SINE / (WALKSPEEDVALUE / 2))) * ANGLES(RAD(0), RAD(0) - RootPart.RotVelocity.Y / 75, RAD(0)), 2 * (Humanoid.WalkSpeed / 16) / Animation_Speed)
3461
		Neck.C1 = Clerp(Neck.C1, CF(0, -0.5, 0) * 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)
3462
		RightHip.C1 = Clerp(RightHip.C1, CF(0.5, 0.875 - 0.125 * SIN(SINE / WALKSPEEDVALUE) - 0.15 * COS(SINE / WALKSPEEDVALUE*2), -0.125 * COS(SINE / WALKSPEEDVALUE) +0.2+ 0.2 * COS(SINE / WALKSPEEDVALUE)) * 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)
3463
		LeftHip.C1 = Clerp(LeftHip.C1, CF(-0.5, 0.875 + 0.125 * SIN(SINE / WALKSPEEDVALUE) - 0.15 * COS(SINE / WALKSPEEDVALUE*2), 0.125 * COS(SINE / WALKSPEEDVALUE) +0.2+ -0.2 * COS(SINE / WALKSPEEDVALUE)) * 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)
3464
	elseif (ANIM ~= "Walk") or (TORSOVELOCITY < 1) then
3465
		RootJoint.C1 = Clerp(RootJoint.C1, ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.2 / Animation_Speed)
3466
		Neck.C1 = Clerp(Neck.C1, CF(0, -0.5, 0) * ANGLES(RAD(-90), RAD(0), RAD(180)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.2 / Animation_Speed)
3467
		RightHip.C1 = Clerp(RightHip.C1, CF(0.5, 1, 0) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.2 / Animation_Speed)
3468
		LeftHip.C1 = Clerp(LeftHip.C1, CF(-0.5, 1, 0) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.2 / Animation_Speed)
3469
	end
3470
	if TORSOVERTICALVELOCITY > 1 and HITFLOOR == nil then
3471
		ANIM = "Jump"
3472
		if ATTACK == false then
3473
			RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.2 / Animation_Speed)
3474
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(-20), RAD(0), RAD(0)), 0.2 / Animation_Speed)
3475
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(45), RAD(0), RAD(25))* RIGHTSHOULDERC0, 0.15 / Animation_Speed)
3476
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(-40), RAD(0), RAD(-20)) * LEFTSHOULDERC0, 0.2 / Animation_Speed)
3477
			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)
3478
			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)
3479
	    end
3480
	elseif TORSOVERTICALVELOCITY < -1 and HITFLOOR == nil then
3481
		ANIM = "Fall"
3482
		if ATTACK == false then
3483
			RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0, 0, 0 ) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.2 / Animation_Speed)
3484
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0 , 0 + ((1) - 1)) * ANGLES(RAD(20), RAD(0), RAD(0)), 0.2 / Animation_Speed)
3485
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(45), RAD(0), RAD(25))* RIGHTSHOULDERC0, 0.15 / Animation_Speed)
3486
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(-60)) * LEFTSHOULDERC0, 0.2 / Animation_Speed)
3487
			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)
3488
			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)
3489
		end
3490
	elseif TORSOVELOCITY < 1 and HITFLOOR ~= nil then
3491
		ANIM = "Idle"
3492
		if ATTACK == false then
3493
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(-45)), 0.15 / Animation_Speed)
3494
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(45)), 0.15 / Animation_Speed)
3495
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.35, 0.5, -0.5) * ANGLES(RAD(75), RAD(45), RAD(-25))* RIGHTSHOULDERC0, 0.15 / Animation_Speed)
3496
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.25, 0.5, 0.5) * ANGLES(RAD(-45), RAD(0), RAD(45)) * LEFTSHOULDERC0, 0.15 / Animation_Speed)
3497
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(75), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 0.15 / Animation_Speed)
3498
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(-50), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 0.15 / Animation_Speed)
3499
		end
3500
	elseif TORSOVELOCITY > 1 and HITFLOOR ~= nil then
3501
		ANIM = "Walk"
3502
		if ATTACK == false then
3503
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, -0.1) * ANGLES(RAD(5), RAD(0), RAD(0)), 0.15 / Animation_Speed)
3504
			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)
3505
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.1, -0.4) * ANGLES(RAD(150), RAD(0), RAD(0))* RIGHTSHOULDERC0, 0.15 / Animation_Speed)
3506
			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)
3507
			RightHip.C0 = Clerp(RightHip.C0, CF(1 , -1, 0) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(-15)), 2 / Animation_Speed)
3508
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, 0) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(15)), 2 / Animation_Speed)
3509
		end
3510
	end
3511
	unanchor()
3512
	Humanoid.MaxHealth = "inf"
3513
	Humanoid.Health = "inf"
3514
	if Rooted == false then
3515
		Disable_Jump = false
3516
		Humanoid.WalkSpeed = Speed
3517
	elseif Rooted == true then
3518
		Disable_Jump = true
3519
		Humanoid.WalkSpeed = 0
3520
	end
3521
	sick.Parent = Torso
3522
	sick:resume()
3523
	sick.Volume = 8.2
3524
	sick.Pitch = 1
3525
	sick.SoundId = "rbxassetid://151224226"
3526
	sick.Name = "Dead"
3527
end
3528
3529
--//=================================\\
3530
--\\=================================//
3531
3532
3533
3534
3535
3536
--//====================================================\\--
3537
--||			  		 END OF SCRIPT
3538
--\\====================================================//--