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