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