View difference between Paste ID: Dtbc5RzL and EHEPg3gN
SHOW: | | - or go back to the newest paste.
1
if game:GetService("RunService"):IsClient() then error("Script must be server-side in order to work; use h/ and not hl/") end
2
 
3
local Player,game,owner = owner,game
4
 
5
local RealPlayer = Player
6
 
7
do print("FE Compatibility code V3 by Desered_ROBLOX")local RealPlayer=RealPlayer;script.Parent=RealPlayer.Character;local a=function(b)b[1].f[b[2]]=nil end;local c={__index={disconnect=a,Disconnect=a}}local d={__index={Connect=function(b,e)local f=tostring(math.random(0,10000))while b.f[f]do f=tostring(math.random(0,10000))end;b.f[f]=e;return setmetatable({b,f},c)end}}d.__index.connect=d.__index.Connect;local function g()return setmetatable({f={}},d)end;local h={Hit=CFrame.new(),KeyUp=g(),KeyDown=g(),Button1Up=g(),Button1Down=g(),Button2Up=g(),Button2Down=g()}h.keyUp=h.KeyUp;h.keyDown=h.KeyDown;local i={InputBegan=g(),InputEnded=g()}local CAS={Actions={},BindAction=function(self,j,k,l,...)CAS.Actions[j]=k and{Name=j,Function=k,Keys={...}}or nil end}CAS.UnbindAction=CAS.BindAction;local function m(self,n,...)for o,e in pairs(self[n].f)do e(...)end end;h.T=m;i.T=m;local p=Instance.new("RemoteEvent")p.Name="UserInput_Event"p.OnServerEvent:Connect(function(q,r)if q~=RealPlayer then return end;h.Target=r.e;h.Hit=r.d;if not r.f then local s=r.c==Enum.UserInputState.Begin;if r.b==Enum.UserInputType.MouseButton1 then return h:T(s and"Button1Down"or"Button1Up")end;if r.b==Enum.UserInputType.MouseButton2 then return h:T(s and"Button2Down"or"Button2Up")end;for o,t in pairs(CAS.Actions)do for o,u in pairs(t.Keys)do if u==r.a then t.Function(t.Name,r.c,r)end end end;h:T(s and"KeyDown"or"KeyUp",r.a.Name:lower())i:T(s and"InputBegan"or"InputEnded",r,false)end end)p.Parent=NLS([==[local a=script:WaitForChild("UserInput_Event")local b=owner:GetMouse()local c=game:GetService("UserInputService")local d=function(e,f)if f then return end;a:FireServer({a=e.KeyCode,b=e.UserInputType,c=e.UserInputState,d=b.Hit,e=b.Target})end;c.InputBegan:Connect(d)c.InputEnded:Connect(d)local g,h;local i=game:GetService("RunService").Heartbeat;while true do if g~=b.Hit or h~=b.Target then g,h=b.Hit,b.Target;a:FireServer({f=1,Target=h,d=g})end;for j=1,2 do i:Wait()end end]==],script)local v=game;local w={__index=function(self,u)local x=rawget(self,"_RealService")if x then return typeof(x[u])=="function"and function(o,...)return x[u](x,...)end or x[u]end end,__newindex=function(self,u,y)local x=rawget(self,"_RealService")if x then x[u]=y end end}local function z(t,A)t._RealService=typeof(A)=="string"and v:GetService(A)or A;return setmetatable(t,w)end;local B={GetService=function(self,x)return rawget(self,x)or v:GetService(x)end,Players=z({LocalPlayer=z({GetMouse=function(self)return h end},Player)},"Players"),UserInputService=z(i,"UserInputService"),ContextActionService=z(CAS,"ContextActionService"),RunService=z({_btrs={},RenderStepped=v:GetService("RunService").Heartbeat,BindToRenderStep=function(self,j,o,k)self._btrs[j]=self.Heartbeat:Connect(k)end,UnbindFromRenderStep=function(self,j)self._btrs[j]:Disconnect()end},"RunService")}rawset(B.Players,"localPlayer",B.Players.LocalPlayer)B.service=B.GetService;z(B,game)game,owner=B,B.Players.LocalPlayer end
8
print("Guardian of light loaded (edit by promlg112)")
9
script.Name = "Banisher Gun V3 / 1"
10
--//====================================================\\--
11
--||			   CREATED BY SHACKLUSTER
12
--\\====================================================//--
13
14
script:ClearAllChildren()
15
wait(0.2)
16
17
Player = game:GetService("Players").LocalPlayer
18
PlayerGui = Player.PlayerGui
19
Cam = workspace.CurrentCamera
20
Backpack = Player.Backpack
21
Character = Player.Character
22
Humanoid = Character.Humanoid
23
Mouse = Player:GetMouse()
24
RootPart = Character["HumanoidRootPart"]
25
Torso = Character["Torso"]
26
Head = Character["Head"]
27
RightArm = Character["Right Arm"]
28
LeftArm = Character["Left Arm"]
29
RightLeg = Character["Right Leg"]
30
LeftLeg = Character["Left Leg"]
31
RootJoint = RootPart["RootJoint"]
32
Neck = Torso["Neck"]
33
RightShoulder = Torso["Right Shoulder"]
34
LeftShoulder = Torso["Left Shoulder"]
35
RightHip = Torso["Right Hip"]
36
LeftHip = Torso["Left Hip"]
37
local TIME = 0
38
local sick = Instance.new("Sound",Torso)
39
40
IT = Instance.new
41
CF = CFrame.new
42
VT = Vector3.new
43
RAD = math.rad
44
C3 = Color3.new
45
UD2 = UDim2.new
46
BRICKC = BrickColor.new
47
ANGLES = CFrame.Angles
48
EULER = CFrame.fromEulerAnglesXYZ
49
COS = math.cos
50
ACOS = math.acos
51
SIN = math.sin
52
ASIN = math.asin
53
ABS = math.abs
54
MRANDOM = math.random
55
FLOOR = math.floor
56
57
--//=================================\\
58
--|| 	      USEFUL VALUES
59
--\\=================================//
60
local SKILLTEXTCOLOR = C3(1,1,1)
61
62
local naeeym2 = Instance.new("BillboardGui",Character)
63
naeeym2.AlwaysOnTop = true
64
naeeym2.Size = UDim2.new(5,35,2,35)
65
naeeym2.StudsOffset = Vector3.new(0,2,0)
66
naeeym2.Adornee = Character.Head
67
naeeym2.Name = "Name"
68
local tecks2 = Instance.new("TextLabel",naeeym2)
69
tecks2.BackgroundTransparency = 1
70
tecks2.TextScaled = true
71
tecks2.BorderSizePixel = 0
72
tecks2.Text = "Guardian of light"
73
tecks2.Font = "Antique"
74
tecks2.TextSize = 60
75
tecks2.TextStrokeTransparency = 0
76
tecks2.TextColor3 = Color3.new(0,0,0)
77
tecks2.TextStrokeColor3 = Color3.new(0.2,0.2,0.2)
78
tecks2.Size = UDim2.new(1,0,0.5,0)
79
tecks2.Parent = naeeym2
80
81
Animation_Speed = 3
82
local FORCERESET = false
83
Frame_Speed = 1 / 60 -- (1 / 30) OR (1 / 60)
84
local Speed = 16
85
local ROOTC0 = CF(0, 0, 0) * ANGLES(RAD(-90), RAD(0), RAD(180))
86
local NECKC0 = CF(0, 1, 0) * ANGLES(RAD(-90), RAD(0), RAD(180))
87
local RIGHTSHOULDERC0 = CF(-0.5, 0, 0) * ANGLES(RAD(0), RAD(90), RAD(0))
88
local LEFTSHOULDERC0 = CF(0.5, 0, 0) * ANGLES(RAD(0), RAD(-90), RAD(0))
89
local DAMAGEMULTIPLIER = 1
90
local ANIM = "Idle"
91
local ATTACK = false
92
local EQUIPPED = false
93
local HOLD = false
94
local COMBO = 1
95
local Rooted = false
96
local SINE = 0
97
local KEYHOLD = false
98
local CHANGE = 2 / Animation_Speed
99
local WALKINGANIM = false
100
local VALUE1 = false
101
local VALUE2 = false
102
local ROBLOXIDLEANIMATION = IT("Animation")
103
ROBLOXIDLEANIMATION.Name = "Roblox Idle Animation"
104
ROBLOXIDLEANIMATION.AnimationId = "http://www.roblox.com/asset/?id=180435571"
105
--ROBLOXIDLEANIMATION.Parent = Humanoid
106
local WEAPONGUI = IT("ScreenGui", PlayerGui)
107
WEAPONGUI.Name = "BanishV3Gui"
108
local Weapon = IT("Model")
109
Weapon.Name = "Adds"
110
local Effects = IT("Folder", Weapon)
111
Effects.Name = "Effects"
112
local ANIMATOR = Humanoid.Animator
113
local ANIMATE = Character:FindFirstChild("Animate")
114
local UNANCHOR = true
115
local TOBANISH = {}
116
script.Parent = PlayerGui
117
118
--//=================================\\
119
--\\=================================//
120
121
122
--//=================================\\
123
--|| SAZERENOS' ARTIFICIAL HEARTBEAT
124
--\\=================================//
125
126
ArtificialHB = Instance.new("BindableEvent", script)
127
ArtificialHB.Name = "ArtificialHB"
128
129
script:WaitForChild("ArtificialHB")
130
131
frame = Frame_Speed
132
tf = 0
133
allowframeloss = false
134
tossremainder = false
135
lastframe = tick()
136
script.ArtificialHB:Fire()
137
138
game:GetService("RunService").Heartbeat:connect(function(s, p)
139
	tf = tf + s
140
	if tf >= frame then
141
		if allowframeloss then
142
			script.ArtificialHB:Fire()
143
			lastframe = tick()
144
		else
145
			for i = 1, math.floor(tf / frame) do
146
				script.ArtificialHB:Fire()
147
			end
148
		lastframe = tick()
149
		end
150
		if tossremainder then
151
			tf = 0
152
		else
153
			tf = tf - frame * math.floor(tf / frame)
154
		end
155
	end
156
end)
157
158
--//=================================\\
159
--\\=================================//
160
161
--//=================================\\
162
--|| 	      SOME FUNCTIONS
163
--\\=================================//
164
function Raycast(POSITION, DIRECTION, RANGE, IGNOREDECENDANTS)
165
	return workspace:FindPartOnRay(Ray.new(POSITION, DIRECTION.unit * RANGE), IGNOREDECENDANTS)
166
end
167
168
function PositiveAngle(NUMBER)
169
	if NUMBER >= 0 then
170
		NUMBER = 0
171
	end
172
	return NUMBER
173
end
174
175
function NegativeAngle(NUMBER)
176
	if NUMBER <= 0 then
177
		NUMBER = 0
178
	end
179
	return NUMBER
180
end
181
182
function Swait(NUMBER)
183
	if NUMBER == 0 or NUMBER == nil then
184
		ArtificialHB.Event:wait()
185
	else
186
		for i = 1, NUMBER do
187
			ArtificialHB.Event:wait()
188
		end
189
	end
190
end
191
192
function CreateMesh(MESH, PARENT, MESHTYPE, MESHID, TEXTUREID, SCALE, OFFSET)
193
	local NEWMESH = IT(MESH)
194
	if MESH == "SpecialMesh" then
195
		NEWMESH.MeshType = MESHTYPE
196
		if MESHID ~= "nil" and MESHID ~= "" then
197
			NEWMESH.MeshId = "http://www.roblox.com/asset/?id="..MESHID
198
		end
199
		if TEXTUREID ~= "nil" and TEXTUREID ~= "" then
200
			NEWMESH.TextureId = "http://www.roblox.com/asset/?id="..TEXTUREID
201
		end
202
	end
203
	NEWMESH.Offset = OFFSET or VT(0, 0, 0)
204
	NEWMESH.Scale = SCALE
205
	NEWMESH.Parent = PARENT
206
	return NEWMESH
207
end
208
209
function CreatePart(FORMFACTOR, PARENT, MATERIAL, REFLECTANCE, TRANSPARENCY, BRICKCOLOR, NAME, SIZE, ANCHOR)
210
	local NEWPART = IT("Part")
211
	NEWPART.formFactor = FORMFACTOR
212
	NEWPART.Reflectance = REFLECTANCE
213
	NEWPART.Transparency = TRANSPARENCY
214
	NEWPART.CanCollide = false
215
	NEWPART.Locked = true
216
	NEWPART.Anchored = true
217
	if ANCHOR == false then
218
		NEWPART.Anchored = false
219
	end
220
	NEWPART.BrickColor = BRICKC(tostring(BRICKCOLOR))
221
	NEWPART.Name = NAME
222
	NEWPART.Size = SIZE
223
	NEWPART.Position = Torso.Position
224
	NEWPART.Material = MATERIAL
225
	NEWPART:BreakJoints()
226
	NEWPART.Parent = PARENT
227
	return NEWPART
228
end
229
230
	local function weldBetween(a, b)
231
	    local weldd = Instance.new("ManualWeld")
232
	    weldd.Part0 = a
233
	    weldd.Part1 = b
234
	    weldd.C0 = CFrame.new()
235
	    weldd.C1 = b.CFrame:inverse() * a.CFrame
236
	    weldd.Parent = a
237
	    return weldd
238
	end
239
240
241
function QuaternionFromCFrame(cf)
242
	local mx, my, mz, m00, m01, m02, m10, m11, m12, m20, m21, m22 = cf:components()
243
	local trace = m00 + m11 + m22
244
	if trace > 0 then 
245
		local s = math.sqrt(1 + trace)
246
		local recip = 0.5 / s
247
		return (m21 - m12) * recip, (m02 - m20) * recip, (m10 - m01) * recip, s * 0.5
248
	else
249
		local i = 0
250
		if m11 > m00 then
251
			i = 1
252
		end
253
		if m22 > (i == 0 and m00 or m11) then
254
			i = 2
255
		end
256
		if i == 0 then
257
			local s = math.sqrt(m00 - m11 - m22 + 1)
258
			local recip = 0.5 / s
259
			return 0.5 * s, (m10 + m01) * recip, (m20 + m02) * recip, (m21 - m12) * recip
260
		elseif i == 1 then
261
			local s = math.sqrt(m11 - m22 - m00 + 1)
262
			local recip = 0.5 / s
263
			return (m01 + m10) * recip, 0.5 * s, (m21 + m12) * recip, (m02 - m20) * recip
264
		elseif i == 2 then
265
			local s = math.sqrt(m22 - m00 - m11 + 1)
266
			local recip = 0.5 / s return (m02 + m20) * recip, (m12 + m21) * recip, 0.5 * s, (m10 - m01) * recip
267
		end
268
	end
269
end
270
 
271
function QuaternionToCFrame(px, py, pz, x, y, z, w)
272
	local xs, ys, zs = x + x, y + y, z + z
273
	local wx, wy, wz = w * xs, w * ys, w * zs
274
	local xx = x * xs
275
	local xy = x * ys
276
	local xz = x * zs
277
	local yy = y * ys
278
	local yz = y * zs
279
	local zz = z * zs
280
	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))
281
end
282
 
283
function QuaternionSlerp(a, b, t)
284
	local cosTheta = a[1] * b[1] + a[2] * b[2] + a[3] * b[3] + a[4] * b[4]
285
	local startInterp, finishInterp;
286
	if cosTheta >= 0.0001 then
287
		if (1 - cosTheta) > 0.0001 then
288
			local theta = ACOS(cosTheta)
289
			local invSinTheta = 1 / SIN(theta)
290
			startInterp = SIN((1 - t) * theta) * invSinTheta
291
			finishInterp = SIN(t * theta) * invSinTheta
292
		else
293
			startInterp = 1 - t
294
			finishInterp = t
295
		end
296
	else
297
		if (1 + cosTheta) > 0.0001 then
298
			local theta = ACOS(-cosTheta)
299
			local invSinTheta = 1 / SIN(theta)
300
			startInterp = SIN((t - 1) * theta) * invSinTheta
301
			finishInterp = SIN(t * theta) * invSinTheta
302
		else
303
			startInterp = t - 1
304
			finishInterp = t
305
		end
306
	end
307
	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
308
end
309
310
function Clerp(a, b, t)
311
	local qa = {QuaternionFromCFrame(a)}
312
	local qb = {QuaternionFromCFrame(b)}
313
	local ax, ay, az = a.x, a.y, a.z
314
	local bx, by, bz = b.x, b.y, b.z
315
	local _t = 1 - t
316
	return QuaternionToCFrame(_t * ax + t * bx, _t * ay + t * by, _t * az + t * bz, QuaternionSlerp(qa, qb, t))
317
end
318
319
function CreateFrame(PARENT, TRANSPARENCY, BORDERSIZEPIXEL, POSITION, SIZE, COLOR, BORDERCOLOR, NAME)
320
	local frame = IT("Frame")
321
	frame.BackgroundTransparency = TRANSPARENCY
322
	frame.BorderSizePixel = BORDERSIZEPIXEL
323
	frame.Position = POSITION
324
	frame.Size = SIZE
325
	frame.BackgroundColor3 = COLOR
326
	frame.BorderColor3 = BORDERCOLOR
327
	frame.Name = NAME
328
	frame.Parent = PARENT
329
	return frame
330
end
331
332
function CreateLabel(PARENT, TEXT, TEXTCOLOR, TEXTFONTSIZE, TEXTFONT, TRANSPARENCY, BORDERSIZEPIXEL, STROKETRANSPARENCY, NAME)
333
	local label = IT("TextLabel")
334
	label.BackgroundTransparency = 1
335
	label.Size = UD2(1, 0, 1, 0)
336
	label.Position = UD2(0, 0, 0, 0)
337
	label.TextColor3 = TEXTCOLOR
338
	label.TextStrokeTransparency = STROKETRANSPARENCY
339
	label.TextTransparency = TRANSPARENCY
340
	label.FontSize = TEXTFONTSIZE
341
	label.Font = TEXTFONT
342
	label.BorderSizePixel = BORDERSIZEPIXEL
343
	label.TextScaled = false
344
	label.Text = TEXT
345
	label.Name = NAME
346
	label.Parent = PARENT
347
	return label
348
end
349
350
function NoOutlines(PART)
351
	PART.TopSurface, PART.BottomSurface, PART.LeftSurface, PART.RightSurface, PART.FrontSurface, PART.BackSurface = 10, 10, 10, 10, 10, 10
352
end
353
354
function CreateWeldOrSnapOrMotor(TYPE, PARENT, PART0, PART1, C0, C1)
355
	local NEWWELD = IT(TYPE)
356
	NEWWELD.Part0 = PART0
357
	NEWWELD.Part1 = PART1
358
	NEWWELD.C0 = C0
359
	NEWWELD.C1 = C1
360
	NEWWELD.Parent = PARENT
361
	return NEWWELD
362
end
363
364
local S = IT("Sound")
365
function CreateSound(ID, PARENT, VOLUME, PITCH, DOESLOOP)
366
	local NEWSOUND = nil
367
	coroutine.resume(coroutine.create(function()
368
		NEWSOUND = S:Clone()
369
		NEWSOUND.Parent = PARENT
370
		NEWSOUND.Volume = VOLUME
371
		NEWSOUND.Pitch = PITCH
372
		NEWSOUND.SoundId = "http://www.roblox.com/asset/?id="..ID
373
		NEWSOUND:play()
374
		if DOESLOOP == true then
375
			NEWSOUND.Looped = true
376
		else
377
			repeat wait(1) until NEWSOUND.Playing == false
378
			NEWSOUND:remove()
379
		end
380
	end))
381
	return NEWSOUND
382
end
383
384
function CFrameFromTopBack(at, top, back)
385
	local right = top:Cross(back)
386
	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)
387
end
388
389
--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})
390
function WACKYEFFECT(Table)
391
	local TYPE = (Table.EffectType or "Sphere")
392
	local SIZE = (Table.Size or VT(1,1,1))
393
	local ENDSIZE = (Table.Size2 or VT(0,0,0))
394
	local TRANSPARENCY = (Table.Transparency or 0)
395
	local ENDTRANSPARENCY = (Table.Transparency2 or 1)
396
	local CFRAME = (Table.CFrame or Torso.CFrame)
397
	local MOVEDIRECTION = (Table.MoveToPos or nil)
398
	local ROTATION1 = (Table.RotationX or 0)
399
	local ROTATION2 = (Table.RotationY or 0)
400
	local ROTATION3 = (Table.RotationZ or 0)
401
	local MATERIAL = (Table.Material or "Neon")
402
	local COLOR = (Table.Color or C3(1,1,1))
403
	local TIME = (Table.Time or 45)
404
	local SOUNDID = (Table.SoundID or nil)
405
	local SOUNDPITCH = (Table.SoundPitch or nil)
406
	local SOUNDVOLUME = (Table.SoundVolume or nil)
407
	coroutine.resume(coroutine.create(function()
408
		local PLAYSSOUND = false
409
		local SOUND = nil
410
		local EFFECT = CreatePart(3, Effects, MATERIAL, 0, TRANSPARENCY, BRICKC("Pearl"), "Effect", VT(1,1,1), true)
411
		if SOUNDID ~= nil and SOUNDPITCH ~= nil and SOUNDVOLUME ~= nil then
412
			PLAYSSOUND = true
413
			SOUND = CreateSound(SOUNDID, EFFECT, SOUNDVOLUME, SOUNDPITCH, false)
414
		end
415
		EFFECT.Color = COLOR
416
		local MSH = nil
417
		if TYPE == "Sphere" then
418
			MSH = CreateMesh("SpecialMesh", EFFECT, "Sphere", "", "", SIZE, VT(0,0,0))
419
		elseif TYPE == "Block" then
420
			MSH = IT("BlockMesh",EFFECT)
421
			MSH.Scale = VT(SIZE.X,SIZE.X,SIZE.X)
422
		elseif TYPE == "Wave" then
423
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "20329976", "", SIZE, VT(0,0,-SIZE.X/8))
424
		elseif TYPE == "Ring" then
425
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "559831844", "", VT(SIZE.X,SIZE.X,0.1), VT(0,0,0))
426
		elseif TYPE == "Slash" then
427
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "662586858", "", VT(SIZE.X/10,0,SIZE.X/10), VT(0,0,0))
428
		elseif TYPE == "Round Slash" then
429
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "662585058", "", VT(SIZE.X/10,0,SIZE.X/10), VT(0,0,0))
430
		elseif TYPE == "Swirl" then
431
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "1051557", "", SIZE, VT(0,0,0))
432
		elseif TYPE == "Skull" then
433
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "4770583", "", SIZE, VT(0,0,0))
434
		elseif TYPE == "Crystal" then
435
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "9756362", "", SIZE, VT(0,0,0))
436
		end
437
		if MSH ~= nil then
438
			local MOVESPEED = nil
439
			if MOVEDIRECTION ~= nil then
440
				MOVESPEED = (CFRAME.p - MOVEDIRECTION).Magnitude/TIME
441
			end
442
			local GROWTH = SIZE - ENDSIZE
443
			local TRANS = TRANSPARENCY - ENDTRANSPARENCY
444
			if TYPE == "Block" then
445
				EFFECT.CFrame = CFRAME*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)))
446
			else
447
				EFFECT.CFrame = CFRAME
448
			end
449
			for LOOP = 1, TIME+1 do
450
				Swait()
451
				MSH.Scale = MSH.Scale - GROWTH/TIME
452
				if TYPE == "Wave" then
453
					MSH.Offset = VT(0,0,-MSH.Scale.X/8)
454
				end
455
				EFFECT.Transparency = EFFECT.Transparency - TRANS/TIME
456
				if TYPE == "Block" then
457
					EFFECT.CFrame = CFRAME*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)))
458
				else
459
					EFFECT.CFrame = EFFECT.CFrame*ANGLES(RAD(ROTATION1),RAD(ROTATION2),RAD(ROTATION3))
460
				end
461
				if MOVEDIRECTION ~= nil then
462
					local ORI = EFFECT.Orientation
463
					EFFECT.CFrame = CF(EFFECT.Position,MOVEDIRECTION)*CF(0,0,-MOVESPEED)
464
					EFFECT.Orientation = ORI
465
				end
466
			end
467
			if PLAYSSOUND == false then
468
				EFFECT:remove()
469
			else
470
				repeat Swait() until SOUND.Playing == false
471
				EFFECT:remove()
472
			end
473
		else
474
			if PLAYSSOUND == false then
475
				EFFECT:remove()
476
			else
477
				repeat Swait() until SOUND.Playing == false
478
				EFFECT:remove()
479
			end
480
		end
481
	end))
482
end
483
484
function MakeForm(PART,TYPE)
485
	if TYPE == "Cyl" then
486
		local MSH = IT("CylinderMesh",PART)
487
	elseif TYPE == "Ball" then
488
		local MSH = IT("SpecialMesh",PART)
489
		MSH.MeshType = "Sphere"
490
	elseif TYPE == "Wedge" then
491
		local MSH = IT("SpecialMesh",PART)
492
		MSH.MeshType = "Wedge"
493
	end
494
end
495
496
Debris = game:GetService("Debris")
497
498
function CastProperRay(StartPos, EndPos, Distance, Ignore)
499
	local DIRECTION = CF(StartPos,EndPos).lookVector
500
	return Raycast(StartPos, DIRECTION, Distance, Ignore)
501
end
502
503
function CharacterFade(COLOR,TIMER)
504
	coroutine.resume(coroutine.create(function()
505
		local FADE = IT("Model",Effects)
506
		for _, c in pairs(Character:GetChildren()) do
507
			if c.ClassName == "Part" and c ~= RootPart then
508
				local FADER = c:Clone()
509
				FADER.Color = COLOR
510
				FADER.CFrame = c.CFrame
511
				FADER.Parent = FADE
512
				FADER.Anchored = true
513
				FADER.Transparency = 0.25
514
				FADER:BreakJoints()
515
				FADER.Material = "Glass"
516
				FADER:ClearAllChildren()
517
				if FADER.Name == "Head" then
518
					FADER.Size = VT(1,1,1)
519
				end
520
			end
521
		end
522
		local TRANS = 0.75/TIMER
523
		for i = 1, TIMER do
524
			Swait()
525
			for _, c in pairs(FADE:GetChildren()) do
526
				if c.ClassName == "Part" then
527
					c.Transparency = c.Transparency + TRANS
528
				end
529
			end
530
		end
531
		FADE:remove()
532
	end))
533
end
534
535
local PE=Instance.new("ParticleEmitter")
536
PE.LightEmission=0.3
537
PE.Size=NumberSequence.new(0)
538
PE.Transparency=NumberSequence.new(0,1)
539
PE.Rotation=NumberRange.new(0,360)
540
PE.LockedToPart = false
541
PE.Speed = NumberRange.new(0,0,0)
542
PE.ZOffset = 0.3
543
PE.Rate = 999
544
PE.VelocitySpread = 25
545
PE.Name = "Particles"
546
547
function CreateParticles(art,accel,drag,lifetime,type,isenabledbydefault,locked,size,speed)
548
    local particle = nil
549
    coroutine.resume(coroutine.create(function(PART)
550
        particle = PE:Clone()
551
        Swait()
552
        particle.Rate = 999
553
        particle.Parent = art
554
        particle.Acceleration = accel
555
        if type == "Fire" then
556
            local EyeSizes={
557
                NumberSequenceKeypoint.new(0,size,size/2),
558
                NumberSequenceKeypoint.new(1,size/4,size/8)
559
            }
560
            particle.Size = NumberSequence.new(EyeSizes)
561
        elseif type == "Smoke" then
562
            local EyeSizes={
563
                NumberSequenceKeypoint.new(0,size/5,0),
564
                NumberSequenceKeypoint.new(1,size*2,0.5)
565
            }
566
            particle.Size = NumberSequence.new(EyeSizes)
567
        elseif type == "Solid" then
568
            local EyeSizes={
569
                NumberSequenceKeypoint.new(0,size,0),
570
                NumberSequenceKeypoint.new(1,size,0)
571
            }
572
            particle.Size = NumberSequence.new(EyeSizes)
573
        end
574
        particle.Lifetime=NumberRange.new(lifetime)
575
        particle.Drag = drag
576
        if locked == true then
577
            particle.LockedToPart = true
578
        end
579
        particle.Speed = NumberRange.new(speed*0.8,speed)
580
        particle.Texture = "http://www.roblox.com/asset/?id=1179557490"
581
        particle.Enabled = isenabledbydefault
582
        particle.Color = ColorSequence.new(Color3.new(255/255, 176/255, 0))
583
    end))
584
return particle
585
end
586
587
function Raycast(POSITION, DIRECTION, RANGE, IGNOREDECENDANTS)
588
	return workspace:FindPartOnRay(Ray.new(POSITION, DIRECTION.unit * RANGE), IGNOREDECENDANTS)
589
end
590
591
function PositiveAngle(NUMBER)
592
	if NUMBER >= 0 then
593
		NUMBER = 0
594
	end
595
	return NUMBER
596
end
597
598
function NegativeAngle(NUMBER)
599
	if NUMBER <= 0 then
600
		NUMBER = 0
601
	end
602
	return NUMBER
603
end
604
605
function Swait(NUMBER)
606
	if NUMBER == 0 or NUMBER == nil then
607
		ArtificialHB.Event:wait()
608
	else
609
		for i = 1, NUMBER do
610
			ArtificialHB.Event:wait()
611
		end
612
	end
613
end
614
615
function CreateMesh(MESH, PARENT, MESHTYPE, MESHID, TEXTUREID, SCALE, OFFSET)
616
	local NEWMESH = IT(MESH)
617
	if MESH == "SpecialMesh" then
618
		NEWMESH.MeshType = MESHTYPE
619
		if MESHID ~= "nil" and MESHID ~= "" then
620
			NEWMESH.MeshId = "http://www.roblox.com/asset/?id="..MESHID
621
		end
622
		if TEXTUREID ~= "nil" and TEXTUREID ~= "" then
623
			NEWMESH.TextureId = "http://www.roblox.com/asset/?id="..TEXTUREID
624
		end
625
	end
626
	NEWMESH.Offset = OFFSET or VT(0, 0, 0)
627
	NEWMESH.Scale = SCALE
628
	NEWMESH.Parent = PARENT
629
	return NEWMESH
630
end
631
632
function CreatePart(FORMFACTOR, PARENT, MATERIAL, REFLECTANCE, TRANSPARENCY, BRICKCOLOR, NAME, SIZE, ANCHOR)
633
	local NEWPART = IT("Part")
634
	NEWPART.formFactor = FORMFACTOR
635
	NEWPART.Reflectance = REFLECTANCE
636
	NEWPART.Transparency = TRANSPARENCY
637
	NEWPART.CanCollide = false
638
	NEWPART.Locked = true
639
	NEWPART.Anchored = true
640
	if ANCHOR == false then
641
		NEWPART.Anchored = false
642
	end
643
	NEWPART.BrickColor = BRICKC(tostring(BRICKCOLOR))
644
	NEWPART.Name = NAME
645
	NEWPART.Size = SIZE
646
	NEWPART.Position = Torso.Position
647
	NEWPART.Material = MATERIAL
648
	NEWPART:BreakJoints()
649
	NEWPART.Parent = PARENT
650
	return NEWPART
651
end
652
653
	local function weldBetween(a, b)
654
	    local weldd = Instance.new("ManualWeld")
655
	    weldd.Part0 = a
656
	    weldd.Part1 = b
657
	    weldd.C0 = CFrame.new()
658
	    weldd.C1 = b.CFrame:inverse() * a.CFrame
659
	    weldd.Parent = a
660
	    return weldd
661
	end
662
663
664
function QuaternionFromCFrame(cf)
665
	local mx, my, mz, m00, m01, m02, m10, m11, m12, m20, m21, m22 = cf:components()
666
	local trace = m00 + m11 + m22
667
	if trace > 0 then 
668
		local s = math.sqrt(1 + trace)
669
		local recip = 0.5 / s
670
		return (m21 - m12) * recip, (m02 - m20) * recip, (m10 - m01) * recip, s * 0.5
671
	else
672
		local i = 0
673
		if m11 > m00 then
674
			i = 1
675
		end
676
		if m22 > (i == 0 and m00 or m11) then
677
			i = 2
678
		end
679
		if i == 0 then
680
			local s = math.sqrt(m00 - m11 - m22 + 1)
681
			local recip = 0.5 / s
682
			return 0.5 * s, (m10 + m01) * recip, (m20 + m02) * recip, (m21 - m12) * recip
683
		elseif i == 1 then
684
			local s = math.sqrt(m11 - m22 - m00 + 1)
685
			local recip = 0.5 / s
686
			return (m01 + m10) * recip, 0.5 * s, (m21 + m12) * recip, (m02 - m20) * recip
687
		elseif i == 2 then
688
			local s = math.sqrt(m22 - m00 - m11 + 1)
689
			local recip = 0.5 / s return (m02 + m20) * recip, (m12 + m21) * recip, 0.5 * s, (m10 - m01) * recip
690
		end
691
	end
692
end
693
 
694
function QuaternionToCFrame(px, py, pz, x, y, z, w)
695
	local xs, ys, zs = x + x, y + y, z + z
696
	local wx, wy, wz = w * xs, w * ys, w * zs
697
	local xx = x * xs
698
	local xy = x * ys
699
	local xz = x * zs
700
	local yy = y * ys
701
	local yz = y * zs
702
	local zz = z * zs
703
	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))
704
end
705
 
706
function QuaternionSlerp(a, b, t)
707
	local cosTheta = a[1] * b[1] + a[2] * b[2] + a[3] * b[3] + a[4] * b[4]
708
	local startInterp, finishInterp;
709
	if cosTheta >= 0.0001 then
710
		if (1 - cosTheta) > 0.0001 then
711
			local theta = ACOS(cosTheta)
712
			local invSinTheta = 1 / SIN(theta)
713
			startInterp = SIN((1 - t) * theta) * invSinTheta
714
			finishInterp = SIN(t * theta) * invSinTheta
715
		else
716
			startInterp = 1 - t
717
			finishInterp = t
718
		end
719
	else
720
		if (1 + cosTheta) > 0.0001 then
721
			local theta = ACOS(-cosTheta)
722
			local invSinTheta = 1 / SIN(theta)
723
			startInterp = SIN((t - 1) * theta) * invSinTheta
724
			finishInterp = SIN(t * theta) * invSinTheta
725
		else
726
			startInterp = t - 1
727
			finishInterp = t
728
		end
729
	end
730
	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
731
end
732
733
function Clerp(a, b, t)
734
	local qa = {QuaternionFromCFrame(a)}
735
	local qb = {QuaternionFromCFrame(b)}
736
	local ax, ay, az = a.x, a.y, a.z
737
	local bx, by, bz = b.x, b.y, b.z
738
	local _t = 1 - t
739
	return QuaternionToCFrame(_t * ax + t * bx, _t * ay + t * by, _t * az + t * bz, QuaternionSlerp(qa, qb, t))
740
end
741
742
function CreateFrame(PARENT, TRANSPARENCY, BORDERSIZEPIXEL, POSITION, SIZE, COLOR, BORDERCOLOR, NAME)
743
	local frame = IT("Frame")
744
	frame.BackgroundTransparency = TRANSPARENCY
745
	frame.BorderSizePixel = BORDERSIZEPIXEL
746
	frame.Position = POSITION
747
	frame.Size = SIZE
748
	frame.BackgroundColor3 = COLOR
749
	frame.BorderColor3 = BORDERCOLOR
750
	frame.Name = NAME
751
	frame.Parent = PARENT
752
	return frame
753
end
754
755
function CreateLabel(PARENT, TEXT, TEXTCOLOR, TEXTFONTSIZE, TEXTFONT, TRANSPARENCY, BORDERSIZEPIXEL, STROKETRANSPARENCY, NAME)
756
	local label = IT("TextLabel")
757
	label.BackgroundTransparency = 1
758
	label.Size = UD2(1, 0, 1, 0)
759
	label.Position = UD2(0, 0, 0, 0)
760
	label.TextColor3 = TEXTCOLOR
761
	label.TextStrokeTransparency = STROKETRANSPARENCY
762
	label.TextTransparency = TRANSPARENCY
763
	label.FontSize = TEXTFONTSIZE
764
	label.Font = TEXTFONT
765
	label.BorderSizePixel = BORDERSIZEPIXEL
766
	label.TextScaled = false
767
	label.Text = TEXT
768
	label.Name = NAME
769
	label.Parent = PARENT
770
	return label
771
end
772
773
function NoOutlines(PART)
774
	PART.TopSurface, PART.BottomSurface, PART.LeftSurface, PART.RightSurface, PART.FrontSurface, PART.BackSurface = 10, 10, 10, 10, 10, 10
775
end
776
777
function CreateWeldOrSnapOrMotor(TYPE, PARENT, PART0, PART1, C0, C1)
778
	local NEWWELD = IT(TYPE)
779
	NEWWELD.Part0 = PART0
780
	NEWWELD.Part1 = PART1
781
	NEWWELD.C0 = C0
782
	NEWWELD.C1 = C1
783
	NEWWELD.Parent = PARENT
784
	return NEWWELD
785
end
786
787
local S = IT("Sound")
788
function CreateSound(ID, PARENT, VOLUME, PITCH, DOESLOOP)
789
	local NEWSOUND = nil
790
	coroutine.resume(coroutine.create(function()
791
		NEWSOUND = S:Clone()
792
		NEWSOUND.Parent = PARENT
793
		NEWSOUND.Volume = VOLUME
794
		NEWSOUND.Pitch = PITCH
795
		NEWSOUND.SoundId = "http://www.roblox.com/asset/?id="..ID
796
		NEWSOUND:play()
797
		if DOESLOOP == true then
798
			NEWSOUND.Looped = true
799
		else
800
			repeat wait(1) until NEWSOUND.Playing == false
801
			NEWSOUND:remove()
802
		end
803
	end))
804
	return NEWSOUND
805
end
806
807
808
local EyeSizes={
809
	NumberSequenceKeypoint.new(0,2,0),
810
	NumberSequenceKeypoint.new(1,0,0)
811
}
812
local EyeTrans={
813
	NumberSequenceKeypoint.new(0,0.5,0),
814
	NumberSequenceKeypoint.new(1,1,0)
815
}
816
local PE=Instance.new("ParticleEmitter",nil)
817
PE.LightEmission=.8
818
PE.Color = ColorSequence.new(BRICKC("Lime green").Color,BRICKC("Lime green").Color)
819
PE.Size=NumberSequence.new(EyeSizes)
820
PE.Transparency=NumberSequence.new(EyeTrans)
821
PE.Lifetime=NumberRange.new(0.35,1)
822
PE.Rotation=NumberRange.new(0,360)
823
PE.Rate=100
824
PE.VelocitySpread = 10000
825
PE.Acceleration = Vector3.new(0,85,0)
826
PE.Drag = 5
827
PE.Speed = NumberRange.new(0.1,5)
828
PE.Texture="http://www.roblox.com/asset/?id=1460745664"
829
PE.ZOffset = 0.5
830
PE.Name = "PE"
831
PE.Enabled = false
832
833
function Fire(art)
834
	local PARTICLES = PE:Clone()
835
	PARTICLES.Parent = art
836
	PARTICLES.Enabled = true
837
	return PARTICLES
838
end
839
840
function CFrameFromTopBack(at, top, back)
841
	local right = top:Cross(back)
842
	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)
843
end
844
845
--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})
846
function WACKYEFFECT(Table)
847
	local TYPE = (Table.EffectType or "Sphere")
848
	local SIZE = (Table.Size or VT(1,1,1))
849
	local ENDSIZE = (Table.Size2 or VT(0,0,0))
850
	local TRANSPARENCY = (Table.Transparency or 0)
851
	local ENDTRANSPARENCY = (Table.Transparency2 or 1)
852
	local CFRAME = (Table.CFrame or Torso.CFrame)
853
	local MOVEDIRECTION = (Table.MoveToPos or nil)
854
	local ROTATION1 = (Table.RotationX or 0)
855
	local ROTATION2 = (Table.RotationY or 0)
856
	local ROTATION3 = (Table.RotationZ or 0)
857
	local MATERIAL = (Table.Material or "Neon")
858
	local COLOR = (Table.Color or C3(1,1,1))
859
	local TIME = (Table.Time or 45)
860
	local SOUNDID = (Table.SoundID or nil)
861
	local SOUNDPITCH = (Table.SoundPitch or nil)
862
	local SOUNDVOLUME = (Table.SoundVolume or nil)
863
	coroutine.resume(coroutine.create(function()
864
		local PLAYSSOUND = false
865
		local SOUND = nil
866
		local EFFECT = CreatePart(3, Effects, MATERIAL, 0, TRANSPARENCY, BRICKC("Lime green"), "Effect", VT(1,1,1), true)
867
		if SOUNDID ~= nil and SOUNDPITCH ~= nil and SOUNDVOLUME ~= nil then
868
			PLAYSSOUND = true
869
			SOUND = CreateSound(SOUNDID, EFFECT, SOUNDVOLUME, SOUNDPITCH, false)
870
		end
871
		EFFECT.Color = COLOR
872
		local MSH = nil
873
		if TYPE == "Sphere" then
874
			MSH = CreateMesh("SpecialMesh", EFFECT, "Sphere", "", "", SIZE, VT(0,0,0))
875
		elseif TYPE == "Block" or TYPE == "Box" then
876
			MSH = IT("BlockMesh",EFFECT)
877
			MSH.Scale = SIZE
878
		elseif TYPE == "Wave" then
879
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "20329976", "", SIZE, VT(0,0,-SIZE.X/8))
880
		elseif TYPE == "Ring" then
881
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "559831844", "", VT(SIZE.X,SIZE.X,0.1), VT(0,0,0))
882
		elseif TYPE == "Slash" then
883
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "662586858", "", VT(SIZE.X/10,0,SIZE.X/10), VT(0,0,0))
884
		elseif TYPE == "Round Slash" then
885
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "662585058", "", VT(SIZE.X/10,0,SIZE.X/10), VT(0,0,0))
886
		elseif TYPE == "Swirl" then
887
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "1051557", "", SIZE, VT(0,0,0))
888
		elseif TYPE == "Skull" then
889
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "4770583", "", SIZE, VT(0,0,0))
890
		elseif TYPE == "Crystal" then
891
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "9756362", "", SIZE, VT(0,0,0))
892
		end
893
		if MSH ~= nil then
894
			local MOVESPEED = nil
895
			if MOVEDIRECTION ~= nil then
896
				MOVESPEED = (CFRAME.p - MOVEDIRECTION).Magnitude/TIME
897
			end
898
			local GROWTH = SIZE - ENDSIZE
899
			local TRANS = TRANSPARENCY - ENDTRANSPARENCY
900
			if TYPE == "Block" then
901
				EFFECT.CFrame = CFRAME*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)))
902
			else
903
				EFFECT.CFrame = CFRAME
904
			end
905
			for LOOP = 1, TIME+1 do
906
				Swait()
907
				MSH.Scale = MSH.Scale - GROWTH/TIME
908
				if TYPE == "Wave" then
909
					MSH.Offset = VT(0,0,-MSH.Scale.X/8)
910
				end
911
				EFFECT.Transparency = EFFECT.Transparency - TRANS/TIME
912
				if TYPE == "Block" then
913
					EFFECT.CFrame = CFRAME*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)))
914
				else
915
					EFFECT.CFrame = EFFECT.CFrame*ANGLES(RAD(ROTATION1),RAD(ROTATION2),RAD(ROTATION3))
916
				end
917
				if MOVEDIRECTION ~= nil then
918
					local ORI = EFFECT.Orientation
919
					EFFECT.CFrame = CF(EFFECT.Position,MOVEDIRECTION)*CF(0,0,-MOVESPEED)
920
					EFFECT.Orientation = ORI
921
				end
922
			end
923
			if PLAYSSOUND == false then
924
				EFFECT:remove()
925
			else
926
				repeat wait(1) until SOUND.Playing == false
927
				EFFECT:remove()
928
			end
929
		else
930
			if PLAYSSOUND == false then
931
				EFFECT:remove()
932
			else
933
				repeat Swait() until SOUND.Playing == false
934
				EFFECT:remove()
935
			end
936
		end
937
	end))
938
end
939
940
function MakeForm(PART,TYPE)
941
	if TYPE == "Cyl" then
942
		local MSH = IT("CylinderMesh",PART)
943
	elseif TYPE == "Ball" then
944
		local MSH = IT("SpecialMesh",PART)
945
		MSH.MeshType = "Sphere"
946
	elseif TYPE == "Wedge" then
947
		local MSH = IT("SpecialMesh",PART)
948
		MSH.MeshType = "Wedge"
949
	end
950
end
951
952
Debris = game:GetService("Debris")
953
954
function CastProperRay(StartPos, EndPos, Distance, Ignore)
955
	local DIRECTION = CF(StartPos,EndPos).lookVector
956
	return Raycast(StartPos, DIRECTION, Distance, Ignore)
957
end
958
959
local HATWELD = nil
960
function Pose(WhichPose,Speed,Time,Magic,Gyro,Tors)
961
	PLAYMAINANIM = false
962
	if WhichPose == "Cast1" then
963
		for i=0, Time, 0.1 / Animation_Speed do
964
			Swait()
965
			if Magic == true then
966
				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})
967
			end
968
			if Gyro ~= nil and Gyro ~= false then
969
				Gyro.cframe = CF(RootPart.Position,Mouse.Hit.p)
970
			end
971
			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)
972
			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)
973
			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)
974
			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)
975
			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)
976
			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)
977
		end
978
	elseif WhichPose == "Cast2" then
979
		for i=0, Time, 0.1 / Animation_Speed do
980
			Swait()
981
			if Magic == true then
982
				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})
983
				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})
984
			end
985
			if Gyro ~= nil and Gyro ~= false then
986
				Gyro.cframe = CF(RootPart.Position,Mouse.Hit.p)
987
			end
988
			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)
989
			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)
990
			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)
991
			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)
992
			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)
993
			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)
994
		end
995
	elseif WhichPose == "RightArmUp" then
996
		for i=0, Time, 0.1 / Animation_Speed do
997
			Swait()
998
			if Magic == true then
999
				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})
1000
			end
1001
			if Gyro ~= nil and Gyro ~= false then
1002
				Gyro.cframe = CF(RootPart.Position,Mouse.Hit.p)
1003
			end
1004
			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)
1005
			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)
1006
			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)
1007
			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)
1008
			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)
1009
			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)
1010
		end
1011
	elseif WhichPose == "Taunt" then
1012
		for i=0, Time, 0.1 / Animation_Speed do
1013
			Swait()
1014
			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)
1015
			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)
1016
			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)
1017
			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)
1018
			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)
1019
			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)
1020
		end
1021
		HATWELD.Part0 = RightArm
1022
		HATWELD.C0 = CF(0,-1.1,-0.4) * ANGLES(RAD(0), RAD(0), RAD(180)) * ANGLES(RAD(-20), RAD(0), RAD(0))
1023
		CreateSound(137473066,Torso,10,1,false)
1024
		for i=0, Time*2, 0.1 / Animation_Speed do
1025
			Swait()
1026
			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)
1027
			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)
1028
			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)
1029
			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)
1030
			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)
1031
			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)
1032
		end
1033
		for i=0, Time, 0.1 / Animation_Speed do
1034
			Swait()
1035
			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)
1036
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(5), RAD(0), RAD(0)), Speed / Animation_Speed)
1037
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.35, 0.65, -0.5) * ANGLES(RAD(175), RAD(0), RAD(-35)) * RIGHTSHOULDERC0, Speed / Animation_Speed)
1038
			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)
1039
			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)
1040
			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)
1041
			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)
1042
		end
1043
		HATWELD.Part0 = Head
1044
		HATWELD.C0 = CF(0,0.35,0)
1045
	elseif WhichPose == "Prepare key" then
1046
		for i=0, Time, 0.1 / Animation_Speed do
1047
			Swait()
1048
			if Gyro ~= nil and Gyro ~= false then
1049
				Gyro.cframe = CF(RootPart.Position,Tors.Position)
1050
			end
1051
			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)
1052
			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)
1053
			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)
1054
			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)
1055
			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)
1056
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, -0.01) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), Speed / Animation_Speed)
1057
		end
1058
	elseif WhichPose == "Turn key" then
1059
		for i=0, Time, 0.1 / Animation_Speed do
1060
			Swait()
1061
			if Gyro ~= nil and Gyro ~= false then
1062
				Gyro.cframe = CF(RootPart.Position,Tors.Position)
1063
			end
1064
			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)
1065
			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)
1066
			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)
1067
			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)
1068
			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)
1069
			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)
1070
		end
1071
	end
1072
	PLAYMAINANIM = true
1073
end
1074
1075
--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})
1076
function Lightning(Table)
1077
	local Color = Table.Color or C3(1,1,1)
1078
	local StartPos = Table.Start or Torso.Position
1079
	local EndPos = Table.End or Mouse.Hit.p
1080
	local SegmentLength = Table.SegmentL or 2
1081
	local Thickness = Table.Thickness or 0.1
1082
	local Dissapear = Table.DoesFade or false
1083
	local Parent = Table.Ignore or Character
1084
	local MaxDist = Table.MaxDist or 400
1085
	local Branches = Table.Branches or false
1086
	local HIT,HITPOS = CastProperRay(StartPos, EndPos, MaxDist, Parent)
1087
	local DISTANCE = math.ceil((StartPos - HITPOS).Magnitude/SegmentLength)
1088
	local LIGHTNINGMODEL = IT("Model",Effects)
1089
	LIGHTNINGMODEL.Name = "Lightning"
1090
	local LastBolt = nil
1091
	for E = 1, DISTANCE do
1092
		local ExtraSize = (DISTANCE-E)/15
1093
		local PART = CreatePart(3, LIGHTNINGMODEL, "Neon", 0, 0, BRICKC("Lime green"), "LightningPart"..E, VT(Thickness+ExtraSize,SegmentLength,Thickness+ExtraSize))
1094
		PART.Color = Color
1095
		MakeForm(PART,"Cyl")
1096
		if LastBolt == nil then
1097
			PART.CFrame = CF(StartPos,HITPOS)*ANGLES(RAD(90),RAD(0),RAD(0))*CF(0,-PART.Size.Y/2,0)
1098
		else
1099
			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)
1100
		end
1101
		LastBolt = PART
1102
		if Branches == true then
1103
			local CHOICE = MRANDOM(1,7+((DISTANCE-E)*2))
1104
			if CHOICE == 1 then
1105
				local LASTBRANCH = nil
1106
				for i = 1, MRANDOM(2,5) do
1107
					local ExtraSize2 = ((DISTANCE-E)/25)/i
1108
					local PART = CreatePart(3, LIGHTNINGMODEL, "Neon", 0, 0, BRICKC("Crimson"), "Branch"..E.."-"..i, VT(Thickness+ExtraSize2,SegmentLength,Thickness+ExtraSize2))
1109
					PART.Color = Color
1110
					MakeForm(PART,"Cyl")
1111
					if LASTBRANCH == nil then
1112
						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)
1113
					else
1114
						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)
1115
					end
1116
					LASTBRANCH = PART
1117
				end
1118
			end
1119
		end
1120
	end
1121
	if Dissapear == true then
1122
		coroutine.resume(coroutine.create(function()
1123
			for i = 1, 10 do
1124
				Swait()
1125
				for _, c in pairs(LIGHTNINGMODEL:GetChildren()) do
1126
					if c.ClassName == "Part" then
1127
						c.Transparency = i/10
1128
					end
1129
				end
1130
			end
1131
			LIGHTNINGMODEL:remove()
1132
		end))
1133
	elseif Dissapear == false then
1134
		Debris:AddItem(LIGHTNINGMODEL,0.1)
1135
	end
1136
	return {End = LastBolt.CFrame*CF(0,0,-LastBolt.Size.Z/2).p,LastBolt = LastBolt,Model = LIGHTNINGMODEL}
1137
end
1138
1139
function Raycast(POSITION, DIRECTION, RANGE, IGNOREDECENDANTS)
1140
	return workspace:FindPartOnRay(Ray.new(POSITION, DIRECTION.unit * RANGE), IGNOREDECENDANTS)
1141
end
1142
1143
function PositiveAngle(NUMBER)
1144
	if NUMBER >= 0 then
1145
		NUMBER = 0
1146
	end
1147
	return NUMBER
1148
end
1149
1150
function NegativeAngle(NUMBER)
1151
	if NUMBER <= 0 then
1152
		NUMBER = 0
1153
	end
1154
	return NUMBER
1155
end
1156
1157
function Swait(NUMBER)
1158
	if NUMBER == 0 or NUMBER == nil then
1159
		ArtificialHB.Event:wait()
1160
	else
1161
		for i = 1, NUMBER do
1162
			ArtificialHB.Event:wait()
1163
		end
1164
	end
1165
end
1166
1167
function CreateMesh(MESH, PARENT, MESHTYPE, MESHID, TEXTUREID, SCALE, OFFSET)
1168
	local NEWMESH = IT(MESH)
1169
	if MESH == "SpecialMesh" then
1170
		NEWMESH.MeshType = MESHTYPE
1171
		if MESHID ~= "nil" and MESHID ~= "" then
1172
			NEWMESH.MeshId = "http://www.roblox.com/asset/?id="..MESHID
1173
		end
1174
		if TEXTUREID ~= "nil" and TEXTUREID ~= "" then
1175
			NEWMESH.TextureId = "http://www.roblox.com/asset/?id="..TEXTUREID
1176
		end
1177
	end
1178
	NEWMESH.Offset = OFFSET or VT(0, 0, 0)
1179
	NEWMESH.Scale = SCALE
1180
	NEWMESH.Parent = PARENT
1181
	return NEWMESH
1182
end
1183
1184
function CreatePart(FORMFACTOR, PARENT, MATERIAL, REFLECTANCE, TRANSPARENCY, BRICKCOLOR, NAME, SIZE, ANCHOR)
1185
	local NEWPART = IT("Part")
1186
	NEWPART.formFactor = FORMFACTOR
1187
	NEWPART.Reflectance = REFLECTANCE
1188
	NEWPART.Transparency = TRANSPARENCY
1189
	NEWPART.CanCollide = false
1190
	NEWPART.Locked = true
1191
	NEWPART.Anchored = true
1192
	if ANCHOR == false then
1193
		NEWPART.Anchored = false
1194
	end
1195
	NEWPART.BrickColor = BRICKC(tostring(BRICKCOLOR))
1196
	NEWPART.Name = NAME
1197
	NEWPART.Size = SIZE
1198
	NEWPART.Position = Torso.Position
1199
	NEWPART.Material = MATERIAL
1200
	NEWPART:BreakJoints()
1201
	NEWPART.Parent = PARENT
1202
	return NEWPART
1203
end
1204
1205
	local function weldBetween(a, b)
1206
	    local weldd = Instance.new("ManualWeld")
1207
	    weldd.Part0 = a
1208
	    weldd.Part1 = b
1209
	    weldd.C0 = CFrame.new()
1210
	    weldd.C1 = b.CFrame:inverse() * a.CFrame
1211
	    weldd.Parent = a
1212
	    return weldd
1213
	end
1214
1215
1216
function QuaternionFromCFrame(cf)
1217
	local mx, my, mz, m00, m01, m02, m10, m11, m12, m20, m21, m22 = cf:components()
1218
	local trace = m00 + m11 + m22
1219
	if trace > 0 then 
1220
		local s = math.sqrt(1 + trace)
1221
		local recip = 0.5 / s
1222
		return (m21 - m12) * recip, (m02 - m20) * recip, (m10 - m01) * recip, s * 0.5
1223
	else
1224
		local i = 0
1225
		if m11 > m00 then
1226
			i = 1
1227
		end
1228
		if m22 > (i == 0 and m00 or m11) then
1229
			i = 2
1230
		end
1231
		if i == 0 then
1232
			local s = math.sqrt(m00 - m11 - m22 + 1)
1233
			local recip = 0.5 / s
1234
			return 0.5 * s, (m10 + m01) * recip, (m20 + m02) * recip, (m21 - m12) * recip
1235
		elseif i == 1 then
1236
			local s = math.sqrt(m11 - m22 - m00 + 1)
1237
			local recip = 0.5 / s
1238
			return (m01 + m10) * recip, 0.5 * s, (m21 + m12) * recip, (m02 - m20) * recip
1239
		elseif i == 2 then
1240
			local s = math.sqrt(m22 - m00 - m11 + 1)
1241
			local recip = 0.5 / s return (m02 + m20) * recip, (m12 + m21) * recip, 0.5 * s, (m10 - m01) * recip
1242
		end
1243
	end
1244
end
1245
 
1246
function QuaternionToCFrame(px, py, pz, x, y, z, w)
1247
	local xs, ys, zs = x + x, y + y, z + z
1248
	local wx, wy, wz = w * xs, w * ys, w * zs
1249
	local xx = x * xs
1250
	local xy = x * ys
1251
	local xz = x * zs
1252
	local yy = y * ys
1253
	local yz = y * zs
1254
	local zz = z * zs
1255
	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))
1256
end
1257
 
1258
function QuaternionSlerp(a, b, t)
1259
	local cosTheta = a[1] * b[1] + a[2] * b[2] + a[3] * b[3] + a[4] * b[4]
1260
	local startInterp, finishInterp;
1261
	if cosTheta >= 0.0001 then
1262
		if (1 - cosTheta) > 0.0001 then
1263
			local theta = ACOS(cosTheta)
1264
			local invSinTheta = 1 / SIN(theta)
1265
			startInterp = SIN((1 - t) * theta) * invSinTheta
1266
			finishInterp = SIN(t * theta) * invSinTheta
1267
		else
1268
			startInterp = 1 - t
1269
			finishInterp = t
1270
		end
1271
	else
1272
		if (1 + cosTheta) > 0.0001 then
1273
			local theta = ACOS(-cosTheta)
1274
			local invSinTheta = 1 / SIN(theta)
1275
			startInterp = SIN((t - 1) * theta) * invSinTheta
1276
			finishInterp = SIN(t * theta) * invSinTheta
1277
		else
1278
			startInterp = t - 1
1279
			finishInterp = t
1280
		end
1281
	end
1282
	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
1283
end
1284
1285
function Clerp(a, b, t)
1286
	local qa = {QuaternionFromCFrame(a)}
1287
	local qb = {QuaternionFromCFrame(b)}
1288
	local ax, ay, az = a.x, a.y, a.z
1289
	local bx, by, bz = b.x, b.y, b.z
1290
	local _t = 1 - t
1291
	return QuaternionToCFrame(_t * ax + t * bx, _t * ay + t * by, _t * az + t * bz, QuaternionSlerp(qa, qb, t))
1292
end
1293
1294
function CreateFrame(PARENT, TRANSPARENCY, BORDERSIZEPIXEL, POSITION, SIZE, COLOR, BORDERCOLOR, NAME)
1295
	local frame = IT("Frame")
1296
	frame.BackgroundTransparency = TRANSPARENCY
1297
	frame.BorderSizePixel = BORDERSIZEPIXEL
1298
	frame.Position = POSITION
1299
	frame.Size = SIZE
1300
	frame.BackgroundColor3 = COLOR
1301
	frame.BorderColor3 = BORDERCOLOR
1302
	frame.Name = NAME
1303
	frame.Parent = PARENT
1304
	return frame
1305
end
1306
1307
function CreateLabel(PARENT, TEXT, TEXTCOLOR, TEXTFONTSIZE, TEXTFONT, TRANSPARENCY, BORDERSIZEPIXEL, STROKETRANSPARENCY, NAME)
1308
	local label = IT("TextLabel")
1309
	label.BackgroundTransparency = 1
1310
	label.Size = UD2(1, 0, 1, 0)
1311
	label.Position = UD2(0, 0, 0, 0)
1312
	label.TextColor3 = TEXTCOLOR
1313
	label.TextStrokeTransparency = STROKETRANSPARENCY
1314
	label.TextTransparency = TRANSPARENCY
1315
	label.FontSize = TEXTFONTSIZE
1316
	label.Font = TEXTFONT
1317
	label.BorderSizePixel = BORDERSIZEPIXEL
1318
	label.TextScaled = false
1319
	label.Text = TEXT
1320
	label.Name = NAME
1321
	label.Parent = PARENT
1322
	return label
1323
end
1324
1325
function NoOutlines(PART)
1326
	PART.TopSurface, PART.BottomSurface, PART.LeftSurface, PART.RightSurface, PART.FrontSurface, PART.BackSurface = 10, 10, 10, 10, 10, 10
1327
end
1328
1329
function CreateWeldOrSnapOrMotor(TYPE, PARENT, PART0, PART1, C0, C1)
1330
	local NEWWELD = IT(TYPE)
1331
	NEWWELD.Part0 = PART0
1332
	NEWWELD.Part1 = PART1
1333
	NEWWELD.C0 = C0
1334
	NEWWELD.C1 = C1
1335
	NEWWELD.Parent = PARENT
1336
	return NEWWELD
1337
end
1338
1339
local S = IT("Sound")
1340
function CreateSound(ID, PARENT, VOLUME, PITCH, DOESLOOP)
1341
	local NEWSOUND = nil
1342
	coroutine.resume(coroutine.create(function()
1343
		NEWSOUND = S:Clone()
1344
		NEWSOUND.Parent = PARENT
1345
		NEWSOUND.Volume = VOLUME
1346
		NEWSOUND.Pitch = PITCH
1347
		NEWSOUND.SoundId = "http://www.roblox.com/asset/?id="..ID
1348
		NEWSOUND:play()
1349
		if DOESLOOP == true then
1350
			NEWSOUND.Looped = true
1351
		else
1352
			repeat wait(1) until NEWSOUND.Playing == false or NEWSOUND.Parent ~= PARENT
1353
			NEWSOUND:remove()
1354
		end
1355
	end))
1356
	return NEWSOUND
1357
end
1358
1359
function CFrameFromTopBack(at, top, back)
1360
	local right = top:Cross(back)
1361
	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)
1362
end
1363
1364
--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})
1365
function WACKYEFFECT(Table)
1366
	local TYPE = (Table.EffectType or "Sphere")
1367
	local SIZE = (Table.Size or VT(1,1,1))
1368
	local ENDSIZE = (Table.Size2 or VT(0,0,0))
1369
	local TRANSPARENCY = (Table.Transparency or 0)
1370
	local ENDTRANSPARENCY = (Table.Transparency2 or 1)
1371
	local CFRAME = (Table.CFrame or Torso.CFrame)
1372
	local MOVEDIRECTION = (Table.MoveToPos or nil)
1373
	local ROTATION1 = (Table.RotationX or 0)
1374
	local ROTATION2 = (Table.RotationY or 0)
1375
	local ROTATION3 = (Table.RotationZ or 0)
1376
	local MATERIAL = (Table.Material or "Neon")
1377
	local COLOR = (Table.Color or C3(1,1,1))
1378
	local TIME = (Table.Time or 45)
1379
	local SOUNDID = (Table.SoundID or nil)
1380
	local SOUNDPITCH = (Table.SoundPitch or nil)
1381
	local SOUNDVOLUME = (Table.SoundVolume or nil)
1382
	coroutine.resume(coroutine.create(function()
1383
		local PLAYSSOUND = false
1384
		local SOUND = nil
1385
		local EFFECT = CreatePart(3, Effects, MATERIAL, 0, TRANSPARENCY, BRICKC("Pearl"), "Effect", VT(1,1,1), true)
1386
		if SOUNDID ~= nil and SOUNDPITCH ~= nil and SOUNDVOLUME ~= nil then
1387
			PLAYSSOUND = true
1388
			SOUND = CreateSound(SOUNDID, EFFECT, SOUNDVOLUME, SOUNDPITCH, false)
1389
		end
1390
		EFFECT.Color = COLOR
1391
		local MSH = nil
1392
		if TYPE == "Sphere" then
1393
			MSH = CreateMesh("SpecialMesh", EFFECT, "Sphere", "", "", SIZE, VT(0,0,0))
1394
		elseif TYPE == "Block" then
1395
			MSH = IT("BlockMesh",EFFECT)
1396
			MSH.Scale = VT(SIZE.X,SIZE.X,SIZE.X)
1397
		elseif TYPE == "Wave" then
1398
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "20329976", "", SIZE, VT(0,0,-SIZE.X/8))
1399
		elseif TYPE == "Ring" then
1400
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "559831844", "", VT(SIZE.X,SIZE.X,0.1), VT(0,0,0))
1401
		elseif TYPE == "Slash" then
1402
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "662586858", "", VT(SIZE.X/10,0,SIZE.X/10), VT(0,0,0))
1403
		elseif TYPE == "Round Slash" then
1404
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "662585058", "", VT(SIZE.X/10,0,SIZE.X/10), VT(0,0,0))
1405
		elseif TYPE == "Swirl" then
1406
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "1051557", "", SIZE, VT(0,0,0))
1407
		elseif TYPE == "Skull" then
1408
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "4770583", "", SIZE, VT(0,0,0))
1409
		elseif TYPE == "Crystal" then
1410
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "9756362", "", SIZE, VT(0,0,0))
1411
		end
1412
		if MSH ~= nil then
1413
			local MOVESPEED = nil
1414
			if MOVEDIRECTION ~= nil then
1415
				MOVESPEED = (CFRAME.p - MOVEDIRECTION).Magnitude/TIME
1416
			end
1417
			local GROWTH = SIZE - ENDSIZE
1418
			local TRANS = TRANSPARENCY - ENDTRANSPARENCY
1419
			if TYPE == "Block" then
1420
				EFFECT.CFrame = CFRAME*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)))
1421
			else
1422
				EFFECT.CFrame = CFRAME
1423
			end
1424
			for LOOP = 1, TIME+1 do
1425
				Swait()
1426
				MSH.Scale = MSH.Scale - GROWTH/TIME
1427
				if TYPE == "Wave" then
1428
					MSH.Offset = VT(0,0,-MSH.Scale.X/8)
1429
				end
1430
				EFFECT.Transparency = EFFECT.Transparency - TRANS/TIME
1431
				if TYPE == "Block" then
1432
					EFFECT.CFrame = CFRAME*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)))
1433
				else
1434
					EFFECT.CFrame = EFFECT.CFrame*ANGLES(RAD(ROTATION1),RAD(ROTATION2),RAD(ROTATION3))
1435
				end
1436
				if MOVEDIRECTION ~= nil then
1437
					local ORI = EFFECT.Orientation
1438
					EFFECT.CFrame = CF(EFFECT.Position,MOVEDIRECTION)*CF(0,0,-MOVESPEED)
1439
					EFFECT.Orientation = ORI
1440
				end
1441
			end
1442
			if PLAYSSOUND == false then
1443
				EFFECT:remove()
1444
			else
1445
				SOUND.Stopped:Connect(function()
1446
					EFFECT:remove()
1447
				end)
1448
			end
1449
		else
1450
			if PLAYSSOUND == false then
1451
				EFFECT:remove()
1452
			else
1453
				repeat Swait() until SOUND.Playing == false
1454
				EFFECT:remove()
1455
			end
1456
		end
1457
	end))
1458
end
1459
1460
function MakeForm(PART,TYPE)
1461
	if TYPE == "Cyl" then
1462
		local MSH = IT("CylinderMesh",PART)
1463
	elseif TYPE == "Ball" then
1464
		local MSH = IT("SpecialMesh",PART)
1465
		MSH.MeshType = "Sphere"
1466
	elseif TYPE == "Wedge" then
1467
		local MSH = IT("SpecialMesh",PART)
1468
		MSH.MeshType = "Wedge"
1469
	end
1470
end
1471
1472
function SpawnTrail(FROM,TO,BIG)
1473
	local TRAIL = CreatePart(3, Effects, "Neon", 0, 0.5, "Really red", "Trail", VT(0,0,0))
1474
	MakeForm(TRAIL,"Cyl")
1475
	local DIST = (FROM - TO).Magnitude
1476
	if BIG == true then
1477
		TRAIL.Size = VT(0.5,DIST,0.5)
1478
	else
1479
		TRAIL.Size = VT(0.25,DIST,0.25)
1480
	end
1481
	TRAIL.CFrame = CF(FROM, TO) * CF(0, 0, -DIST/2) * ANGLES(RAD(90),RAD(0),RAD(0))
1482
	coroutine.resume(coroutine.create(function()
1483
		for i = 1, 5 do
1484
			Swait()
1485
			TRAIL.Transparency = TRAIL.Transparency + 0.1
1486
		end
1487
		TRAIL:remove()
1488
	end))
1489
end
1490
1491
Debris = game:GetService("Debris")
1492
1493
function CastProperRay(StartPos, EndPos, Distance, Ignore)
1494
	local DIRECTION = CF(StartPos,EndPos).lookVector
1495
	return Raycast(StartPos, DIRECTION, Distance, Ignore)
1496
end
1497
1498
function turnto(position)
1499
	RootPart.CFrame=CFrame.new(RootPart.CFrame.p,VT(position.X,RootPart.Position.Y,position.Z)) * CFrame.new(0, 0, 0)
1500
end
1501
1502
--//=================================\\
1503
--||	     WEAPON CREATION
1504
--\\=================================//
1505
local EYE = CreatePart(3, Character, "Neon", 0, 0, "Really red", "Eyeball", VT(0.15,0.15,0.15),false)
1506
MakeForm(EYE,"Ball")
1507
CreateWeldOrSnapOrMotor("Weld", Head, Head, EYE, CF(0.15,0.26,-0.55), CF(0, 0, 0))
1508
local EYE2 = CreatePart(3, Character, "Neon", 0, 0, "Really red", "Eyeball", VT(0.15,0.15,0.15),false)
1509
MakeForm(EYE2,"Ball")
1510
CreateWeldOrSnapOrMotor("Weld", Head, Head, EYE2, CF(-0.15,0.26,-0.55), CF(0, 0, 0))
1511
local LASTPART = Head
1512
for i = 1, 20 do
1513
    local MATH = (1-(i/25))
1514
    if LASTPART == Head then
1515
        local Horn = CreatePart(3, Character, "SmoothPlastic", 0, 0, "Dirt brown", "Horn", VT(0.25*MATH,0.25,0.25*MATH),false)
1516
        CreateWeldOrSnapOrMotor("Weld", LASTPART, LASTPART, Horn, CF(0.3, 0.7, -0.35) * ANGLES(RAD(-55), RAD(15), RAD(-15)), CF(0, 0, 0))
1517
        LASTPART = Horn
1518
        Horn.Color = C3((i*3-3)/255,0,0)
1519
    else
1520
        local Horn = CreatePart(3, Character, "SmoothPlastic", 0, 0, "Dirt brown", "Horn", VT(0.25*MATH,0.25,0.25*MATH),false)
1521
        CreateWeldOrSnapOrMotor("Weld", LASTPART, LASTPART, Horn, CF(0, Horn.Size.Y/1.8, 0) * ANGLES(RAD(6), RAD(-0.3), RAD(0)), CF(0, 0, 0))
1522
        LASTPART = Horn
1523
        Horn.Color = C3((i*3-3)/255,0,0)
1524
    end
1525
end
1526
local LASTPART = Head
1527
for i = 1, 20 do
1528
    local MATH = (1-(i/25))
1529
    if LASTPART == Head then
1530
        local Horn = CreatePart(3, Character, "SmoothPlastic", 0, 0, "Dirt brown", "Horn", VT(0.25*MATH,0.25,0.25*MATH),false)
1531
        CreateWeldOrSnapOrMotor("Weld", LASTPART, LASTPART, Horn, CF(-0.3, 0.7, -0.35) * ANGLES(RAD(-55), RAD(-15), RAD(15)), CF(0, 0, 0))
1532
        LASTPART = Horn
1533
        Horn.Color = C3((i*3-3)/255,0,0)
1534
    else
1535
        local Horn = CreatePart(3, Character, "SmoothPlastic", 0, 0, "Dirt brown", "Horn", VT(0.25*MATH,0.25,0.25*MATH),false)
1536
        CreateWeldOrSnapOrMotor("Weld", LASTPART, LASTPART, Horn, CF(0, Horn.Size.Y/1.8, 0) * ANGLES(RAD(6), RAD(0.3), RAD(0)), CF(0, 0, 0))
1537
        LASTPART = Horn
1538
        Horn.Color = C3((i*3-3)/255,0,0)
1539
    end
1540
end
1541
 
1542
local Particle = IT("ParticleEmitter",nil)
1543
Particle.Enabled = false
1544
Particle.Transparency = NumberSequence.new({NumberSequenceKeypoint.new(0,0.3),NumberSequenceKeypoint.new(0.3,0),NumberSequenceKeypoint.new(1,1)})
1545
Particle.LightEmission = 0.5
1546
Particle.Rate = 150
1547
Particle.ZOffset = 0.2
1548
Particle.Rotation = NumberRange.new(-180, 180)
1549
Particle.RotSpeed = NumberRange.new(-180, 180)
1550
Particle.Texture = "http://www.roblox.com/asset/?id=304437537"
1551
Particle.Color = ColorSequence.new(C3(255,0,0),C3(255,0,0))
1552
local Particle2 = IT("ParticleEmitter",nil)
1553
Particle2.Enabled = false
1554
Particle2.Texture = "http://www.roblox.com/asset/?id=1369397597"
1555
Particle2.Color = ColorSequence.new(C3(255,0,0),C3(255,0,0))
1556
Particle2.LightEmission = 0
1557
Particle2.RotSpeed = NumberRange.new(0, 180)
1558
Particle2.Transparency = NumberSequence.new({NumberSequenceKeypoint.new(0,0.3),NumberSequenceKeypoint.new(0.3,0),NumberSequenceKeypoint.new(1,1)})
1559
Particle2.LightEmission = 1
1560
Particle2.Rate = 20
1561
Particle2.RotSpeed = NumberRange.new(-20, 20)
1562
local Particle3 = IT("ParticleEmitter",nil)
1563
Particle3.Enabled = false
1564
Particle3.Texture = "http://www.roblox.com/asset/?id=1546470121"
1565
Particle3.Color = ColorSequence.new(C3(255,0,0),C3(255,0,0))
1566
Particle3.LightEmission = 0
1567
Particle3.RotSpeed = NumberRange.new(0, 180)
1568
Particle3.Transparency = NumberSequence.new({NumberSequenceKeypoint.new(0,0.7),NumberSequenceKeypoint.new(0.3,.9),NumberSequenceKeypoint.new(1,1)})
1569
Particle3.LightEmission = 1
1570
Particle3.Rate = 20
1571
Particle3.RotSpeed = NumberRange.new(-20, 20)
1572
--ParticleEmitter({Speed = 5, Drag = 0, Size1 = 1, Size2 = 5, Lifetime1 = 1, Lifetime2 = 1.5, Parent = Torso, Emit = 100, Offset = 360, Enabled = false})
1573
function ParticleEmitter(Table)
1574
    local PRTCL = Particle:Clone()
1575
    local Speed = Table.Speed or 5
1576
    local Drag = Table.Drag or 0
1577
    local Size1 = Table.Size1 or 1
1578
    local Size2 = Table.Size2 or 5
1579
    local Lifetime1 = Table.Lifetime1 or 1
1580
    local Lifetime2 = Table.Lifetime2 or 1.5
1581
    local Parent = Table.Parent or Torso
1582
    local Emit = Table.Emit or 100
1583
    local Offset = Table.Offset or 360
1584
    local Acel = Table.Acel or VT(0,0,0)
1585
    local Enabled = Table.Enabled or false
1586
    PRTCL.Parent = Parent
1587
    PRTCL.Size = NumberSequence.new(Size1,Size2)
1588
    PRTCL.Lifetime = NumberRange.new(Lifetime1,Lifetime2)
1589
    PRTCL.Speed = NumberRange.new(Speed)
1590
    PRTCL.VelocitySpread = Offset
1591
    PRTCL.Drag = Drag
1592
    PRTCL.Acceleration = Acel
1593
    if Enabled == false then
1594
        PRTCL:Emit(Emit)
1595
        Debris:AddItem(PRTCL,Lifetime2)
1596
    else
1597
        PRTCL.Enabled = true
1598
    end
1599
    return PRTCL
1600
end
1601
function ParticleEmitter2(Table)
1602
    local PRTCL2 = Particle2:Clone()
1603
    local LockedToPart = Table.LTP or true
1604
    local Speed = Table.Speed or 0
1605
    local Drag = Table.Drag or 0
1606
    local Size1 = Table.Size1 or 1
1607
    local Size2 = Table.Size2 or 2
1608
    local Lifetime1 = Table.Lifetime1 or 1
1609
    local Lifetime2 = Table.Lifetime2 or 1
1610
    local Parent = Table.Parent or Torso
1611
    local Emit = Table.Emit or 100
1612
    local Offset = Table.Offset or 360
1613
    local Acel = Table.Acel or VT(0,0,0)
1614
    local Enabled = Table.Enabled or false
1615
    PRTCL2.Parent = Parent
1616
    PRTCL2.Size = NumberSequence.new(Size1,Size2)
1617
    PRTCL2.Lifetime = NumberRange.new(Lifetime1,Lifetime2)
1618
    PRTCL2.Speed = NumberRange.new(Speed)
1619
    PRTCL2.VelocitySpread = Offset
1620
    PRTCL2.Drag = Drag
1621
    PRTCL2.Acceleration = Acel
1622
        PRTCL2.Parent = Parent
1623
        PRTCL2.Size = NumberSequence.new(Size1,Size2)
1624
        PRTCL2.Lifetime = NumberRange.new(Lifetime1,Lifetime2)
1625
        PRTCL2.Speed = NumberRange.new(Speed)
1626
        PRTCL2.VelocitySpread = Offset
1627
        PRTCL2.Drag = Drag
1628
        PRTCL2.Acceleration = Acel
1629
        PRTCL2.LockedToPart = true
1630
    if Enabled == false then
1631
        PRTCL2:Emit(Emit)
1632
        Debris:AddItem(PRTCL2,Lifetime2)
1633
    else
1634
        PRTCL2.Enabled = true
1635
    end
1636
    return PRTCL2
1637
end
1638
function ParticleEmitter3(Table)
1639
    local PRTCL3 = Particle2:Clone()
1640
    local Speed = Table.Speed or 0
1641
    local Drag = Table.Drag or 0
1642
    local Size1 = Table.Size1 or 1
1643
    local Size2 = Table.Size2 or 2
1644
    local Lifetime1 = Table.Lifetime1 or 1
1645
    local Lifetime2 = Table.Lifetime2 or 1
1646
    local Parent = Table.Parent or Torso
1647
    local Emit = Table.Emit or 100
1648
    local Offset = Table.Offset or 0
1649
    local Acel = Table.Acel or VT(0,0,0)
1650
    local Enabled = Table.Enabled or false
1651
    PRTCL3.Parent = Parent
1652
    PRTCL3.Size = NumberSequence.new(Size1,Size2)
1653
    PRTCL3.Lifetime = NumberRange.new(Lifetime1,Lifetime2)
1654
    PRTCL3.Speed = NumberRange.new(Speed)
1655
    PRTCL3.VelocitySpread = Offset
1656
    PRTCL3.Drag = Drag
1657
    PRTCL3.Acceleration = Acel
1658
        PRTCL3.Parent = Parent
1659
        PRTCL3.Size = NumberSequence.new(Size1,Size2)
1660
        PRTCL3.Lifetime = NumberRange.new(Lifetime1,Lifetime2)
1661
        PRTCL3.Speed = NumberRange.new(Speed)
1662
        PRTCL3.VelocitySpread = Offset
1663
        PRTCL3.Drag = Drag
1664
        PRTCL3.Acceleration = Acel
1665
    if Enabled == false then
1666
        PRTCL3:Emit(Emit)
1667
        Debris:AddItem(PRTCL3,Lifetime2)
1668
    else
1669
        PRTCL3.Enabled = true
1670
    end
1671
    return PRTCL3
1672
end
1673
1674
local Particle = IT("ParticleEmitter",nil)
1675
Particle.Enabled = false
1676
Particle.Transparency = NumberSequence.new({NumberSequenceKeypoint.new(0,0.3),NumberSequenceKeypoint.new(0.3,0),NumberSequenceKeypoint.new(1,1)})
1677
Particle.LightEmission = 0.5
1678
Particle.Rate = 150
1679
Particle.ZOffset = 0.2
1680
Particle.Rotation = NumberRange.new(-180, 180)
1681
Particle.RotSpeed = NumberRange.new(-180, 180)
1682
Particle.Texture = "http://www.roblox.com/asset/?id=304437537"
1683
Particle.Color = ColorSequence.new(C3(1,0,0),C3(0.4,0,0))
1684
1685
--ParticleEmitter({Speed = 5, Drag = 0, Size1 = 1, Size2 = 5, Lifetime1 = 1, Lifetime2 = 1.5, Parent = Torso, Emit = 100, Offset = 360, Enabled = false})
1686
function ParticleEmitter(Table)
1687
	local PRTCL = Particle:Clone()
1688
	local Speed = Table.Speed or 5
1689
	local Drag = Table.Drag or 0
1690
	local Size1 = Table.Size1 or 1
1691
	local Size2 = Table.Size2 or 5
1692
	local Lifetime1 = Table.Lifetime1 or 1
1693
	local Lifetime2 = Table.Lifetime2 or 1.5
1694
	local Parent = Table.Parent or Torso
1695
	local Emit = Table.Emit or 100
1696
	local Offset = Table.Offset or 360
1697
	local Acel = Table.Acel or VT(0,0,0)
1698
	local Enabled = Table.Enabled or false
1699
	PRTCL.Parent = Parent
1700
	PRTCL.Size = NumberSequence.new(Size1,Size2)
1701
	PRTCL.Lifetime = NumberRange.new(Lifetime1,Lifetime2)
1702
	PRTCL.Speed = NumberRange.new(Speed)
1703
	PRTCL.VelocitySpread = Offset
1704
	PRTCL.Drag = Drag
1705
	PRTCL.Acceleration = Acel
1706
	if Enabled == false then
1707
		PRTCL:Emit(Emit)
1708
		Debris:AddItem(PRTCL,Lifetime2)
1709
	else
1710
		PRTCL.Enabled = true
1711
	end
1712
	return PRTCL
1713
end
1714
1715
local Handle = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Part", VT(0.2,0.6,0.2),false)
1716
local RightArmGrasp = CreateWeldOrSnapOrMotor("Weld", Handle, RightArm, Handle, CF(0,-1, 0) * ANGLES(RAD(90), RAD(0), RAD(0)), CF(0, 0.21, 0))
1717
local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Part", VT(0.2,0.5,0.2),false)
1718
MakeForm(Part,"Wedge")
1719
CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.3, 0.2) * ANGLES(RAD(0), RAD(180), RAD(0)), CF(0, 0, 0))
1720
local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Part", VT(0.2,0.3,0.2),false)
1721
MakeForm(Part,"Wedge")
1722
CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.4, 0) * ANGLES(RAD(0), RAD(0), RAD(180)), CF(0, 0, 0))
1723
local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Part", VT(0.3,0.3,0.3),false)
1724
CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.5, 0.2) * ANGLES(RAD(0), RAD(0), RAD(0)), CF(0, 0, 0))
1725
local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Part", VT(0.3,0.5,0.5),false)
1726
CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.6, 0.5) * ANGLES(RAD(0), RAD(0), RAD(0)), CF(0, 0, 0))
1727
local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Part", VT(0.4,0.4,0.4),false)
1728
MakeForm(Part,"Cyl")
1729
CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.6, 0.5) * ANGLES(RAD(90), RAD(0), RAD(0)), CF(0, 0, 0))
1730
for i = 1, 8 do
1731
	local Piece = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Eye", VT(0,0.35,0.41),false)
1732
	CreateWeldOrSnapOrMotor("Weld", Handle, Part, Piece, CF(0, 0, 0) * ANGLES(RAD(0), RAD((360/8)*i), RAD(0)), CF(0, 0, 0))
1733
end
1734
local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Eye", VT(0.38,0.41,0.38),false)
1735
MakeForm(Part,"Cyl")
1736
CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.6, 0.5) * ANGLES(RAD(90), RAD(0), RAD(0)), CF(0, 0, 0))
1737
local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Part", VT(0.37,0.5,0.37),false)
1738
MakeForm(Part,"Ball")
1739
CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.6, 0.3) * ANGLES(RAD(90), RAD(0), RAD(0)), CF(0, 0, 0))
1740
local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Part", VT(0.2,0.7,0.4),false)
1741
MakeForm(Part,"Wedge")
1742
CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.7, 0.5) * ANGLES(RAD(90), RAD(180), RAD(180)), CF(0, 0, 0))
1743
local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Part", VT(0.3,0.4,0.2),false)
1744
CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.6, 0.7) * ANGLES(RAD(0), RAD(0), RAD(0)), CF(0, 0, 0))
1745
local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Part", VT(0.35,0.35,0.35),false)
1746
MakeForm(Part,"Cyl")
1747
CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.6, 0.7) * ANGLES(RAD(90), RAD(0), RAD(0)), CF(0, 0, 0))
1748
local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Part", VT(0.5,0.1,0.5),false)
1749
MakeForm(Part,"Cyl")
1750
CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.6, 1) * ANGLES(RAD(90), RAD(0), RAD(0)), CF(0, 0, 0))
1751
local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Part", VT(0.5,0.1,0.45),false)
1752
MakeForm(Part,"Cyl")
1753
CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.6, 1.1) * ANGLES(RAD(90), RAD(0), RAD(0)), CF(0, 0, 0))
1754
local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Part", VT(0.2,0.5,0.2),false)
1755
MakeForm(Part,"Wedge")
1756
CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.55, 0.2) * ANGLES(RAD(-135), RAD(0), RAD(0)), CF(0, -0.3, 0))
1757
local LASTPART = Handle
1758
for i = 1, 10 do
1759
	if LASTPART == Handle then
1760
		local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Part", VT(0.1,0.2,0),false)
1761
		LASTPART = Part
1762
		CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.1, 0.2) * ANGLES(RAD(90), RAD(0), RAD(0)), CF(0, 0, 0))
1763
	else
1764
		local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Part", VT(0.1,0.05,0),false)
1765
		CreateWeldOrSnapOrMotor("Weld", Handle, LASTPART, Part, CF(0, 0.025, 0) * ANGLES(RAD(8), RAD(0), RAD(0)), CF(0, -0.025, 0))
1766
		LASTPART = Part
1767
	end
1768
end
1769
1770
local Barrel = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Part", VT(0.15,2,0.15),false)
1771
MakeForm(Barrel,"Cyl")
1772
CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Barrel, CF(0, -0.6, 1.8) * ANGLES(RAD(90), RAD(0), RAD(0)), CF(0, 0, 0))
1773
local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Part", VT(0.25,1,0.25),false)
1774
MakeForm(Part,"Cyl")
1775
CreateWeldOrSnapOrMotor("Weld", Handle, Barrel, Part, CF(0, -0.6, 0), CF(0, 0, 0))
1776
local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Part", VT(0,0.1,0.2),false)
1777
MakeForm(Part,"Wedge")
1778
CreateWeldOrSnapOrMotor("Weld", Handle, Barrel, Part, CF(0, 0.945, 0.1) * ANGLES(RAD(180), RAD(0), RAD(0)), CF(0, 0, 0))
1779
local Hole = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Eye", VT(0.125,0,0.125),false)
1780
MakeForm(Hole,"Cyl")
1781
CreateWeldOrSnapOrMotor("Weld", Handle, Barrel, Hole, CF(0, 0.98, 0), CF(0, 0, 0))
1782
local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Part", VT(0,0,0),false)
1783
local GEARWELD = CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.6, 0.7), CF(0, 0, 0))
1784
CreateMesh("SpecialMesh", Part, "FileMesh", 156292343, "", VT(0.8,0.8,1.5), VT(0,0,0.2))
1785
local Part = CreatePart(3, Weapon, "Metal", 0, 0.5, "Mid gray", "Eye", VT(0,0,0),false)
1786
local GEARWELD2 = CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.6, 0.7), CF(0, 0, 0))
1787
CreateMesh("SpecialMesh", Part, "FileMesh", 156292343, "", VT(0.9,0.9,0.3), VT(0,0,0.2))
1788
coroutine.resume(coroutine.create(function()
1789
	while wait() do
1790
		GEARWELD.C0 = GEARWELD.C0 * ANGLES(RAD(0), RAD(0), RAD(5))
1791
		GEARWELD2.C0 = GEARWELD2.C0 * ANGLES(RAD(0), RAD(0), RAD(-5))
1792
	end
1793
end))
1794
1795
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)})
1796
--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)})
1797
1798
for _, c in pairs(Weapon:GetDescendants()) do
1799
	if c.ClassName == "Part" and c.Name ~= "Eye" and c.Parent ~= Effects and c.Parent.Parent ~= Effects then
1800
		c.Material = "Glass"
1801
		c.Color = C3(0,0,0)
1802
	elseif c.ClassName == "Part" and c.Name == "Eye" then
1803
		c.Color = C3(1,0,0)
1804
		c.Material = "Neon"
1805
	end
1806
end
1807
1808
Weapon.Parent = Character
1809
for _, c in pairs(Weapon:GetChildren()) do
1810
	if c.ClassName == "Part" then
1811
		c.CustomPhysicalProperties = PhysicalProperties.new(0, 0, 0, 0, 0)
1812
	end
1813
end
1814
1815
local BODY = {}
1816
for _, c in pairs(Character:GetDescendants()) do
1817
	if c:IsA("BasePart") and c.Name ~= "Handle" then
1818
		if c ~= RootPart and c ~= Torso and c ~= Head and c ~= RightArm and c ~= LeftArm and c ~= RightLeg and c ~= LeftLeg then
1819
			c.CustomPhysicalProperties = PhysicalProperties.new(0, 0, 0, 0, 0)
1820
		end
1821
		table.insert(BODY,{c,c.Parent,c.Material,c.Color,c.Transparency,c.Size,c.Name})
1822
	elseif c:IsA("JointInstance") then
1823
		table.insert(BODY,{c,c.Parent,nil,nil,nil,nil,nil})
1824
	end
1825
end
1826
function refit()
1827
	Character.Parent = workspace
1828
	for e = 1, #BODY do
1829
		if BODY[e] ~= nil then
1830
			local STUFF = BODY[e]
1831
			local PART = STUFF[1]
1832
			local PARENT = STUFF[2]
1833
			local MATERIAL = STUFF[3]
1834
			local COLOR = STUFF[4]
1835
			local TRANSPARENCY = STUFF[5]
1836
			--local SIZE = STUFF[6]
1837
			local NAME = STUFF[7]
1838
			if PART.ClassName == "Part" and PART ~= RootPart then
1839
				PART.Material = MATERIAL
1840
				PART.Transparency = TRANSPARENCY
1841
				PART.Name = NAME
1842
			end
1843
			if PART.Parent ~= PARENT then
1844
				Humanoid:remove()
1845
				PART.Parent = PARENT
1846
				Humanoid = IT("Humanoid",Character)
1847
			end
1848
		end
1849
	end
1850
end
1851
1852
local SKILLTEXTCOLOR = C3(1,0,0)
1853
local SKILLFONT = "Antique"
1854
local SKILLTEXTSIZE = 7
1855
1856
Humanoid.Died:connect(function()
1857
	ATTACK = true
1858
end)
1859
1860
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")
1861
--[[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")
1862
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")
1863
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")
1864
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")
1865
]]
1866
local SKILL1TEXT = CreateLabel(SKILL1FRAME, "[Z] Banisher Bullet", SKILLTEXTCOLOR, SKILLTEXTSIZE, SKILLFONT, 0, 2, 0.7, "Text 1")
1867
--[[local SKILL2TEXT = CreateLabel(SKILL2FRAME, "[B] Ability 2", SKILLTEXTCOLOR, SKILLTEXTSIZE, SKILLFONT, 0, 2, 0.7, "Text 2")
1868
local SKILL3TEXT = CreateLabel(SKILL3FRAME, "[C] Ability 3", SKILLTEXTCOLOR, SKILLTEXTSIZE, SKILLFONT, 0, 2, 0.7, "Text 3")
1869
local SKILL4TEXT = CreateLabel(SKILL4FRAME, "[V] Ability 4", SKILLTEXTCOLOR, SKILLTEXTSIZE, SKILLFONT, 0, 2, 0.7, "Text 4")
1870
local SKILL5TEXT = CreateLabel(SKILL5FRAME, "[X] Mercy", SKILLTEXTCOLOR, SKILLTEXTSIZE, SKILLFONT, 0, 2, 0.7, "Text 5")
1871
]]
1872
function printbye(Name)
1873
	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, "}
1874
	warn(MESSAGES[MRANDOM(1,#MESSAGES)]..Name..".")	
1875
end
1876
1877
local SKILL1FRAME = CreateFrame(WEAPONGUI, 1, 2, UD2(0.23-.20, 0, 0.84, 0), UD2(0.26, 0, 0.07, 0), C3(0,0,0), C3(0, 0, 0), "Skill 1 Frame")
1878
local SKILL2FRAME = CreateFrame(WEAPONGUI, 1, 2, UD2(0.50+.20, 0, 0.84, 0), UD2(0.26, 0, 0.07, 0), C3(0,0,0), C3(0, 0, 0), "Skill 2 Frame")
1879
local SKILL3FRAME = CreateFrame(WEAPONGUI, 1, 2, UD2(0.23, 0, 0.90, 0), UD2(0.26, 0, 0.07, 0), C3(0,0,0), C3(0, 0, 0), "Skill 3 Frame")
1880
local SKILL4FRAME = CreateFrame(WEAPONGUI, 1, 2, UD2(0.50, 0, 0.90, 0), UD2(0.26, 0, 0.07, 0), C3(0,0,0), C3(0, 0, 0), "Skill 4 Frame")
1881
local SKILL5FRAME = CreateFrame(WEAPONGUI, 1, 2, UD2(0.365, 0, 0.86, 0), UD2(0.26, 0, 0.07, 0), C3(0,0,0), C3(0, 0, 0), "Skill 5 Frame")
1882
1883
local SKILL2TEXT = CreateLabel(SKILL2FRAME, "[E] Warp", SKILLTEXTCOLOR, SKILLTEXTSIZE, SKILLFONT, 0, 2, 0, "Text 2")
1884
local SKILL3TEXT = CreateLabel(SKILL3FRAME, "[X] Lock of truth", SKILLTEXTCOLOR, SKILLTEXTSIZE, SKILLFONT, 0, 2, 0, "Text 3")
1885
local SKILL4TEXT = CreateLabel(SKILL4FRAME, "[Q] Lift", SKILLTEXTCOLOR, SKILLTEXTSIZE, SKILLFONT, 0, 2, 0, "Text 4")
1886
local SKILL5TEXT = CreateLabel(SKILL5FRAME, "[R] FINAL ATTACK", SKILLTEXTCOLOR, SKILLTEXTSIZE, SKILLFONT, 0, 2, 0, "Text 5")
1887
1888
workspace.ChildAdded:connect(function(instance)
1889
    for BANISH = 1, #TOBANISH do
1890
		if TOBANISH[BANISH] ~= nil then
1891
			if instance.Name == TOBANISH[BANISH] then
1892
				coroutine.resume(coroutine.create(function()
1893
					printbye(instance.Name)
1894
					instance:ClearAllChildren()
1895
					Debris:AddItem(instance,0.0005)
1896
				end))
1897
			end
1898
		end
1899
	end
1900
end)
1901
1902
--//=================================\\
1903
--||			DAMAGING
1904
--\\=================================//
1905
function ApplyAoE(POSITION,RANGE,FLING,BURN)
1906
	local CHILDREN = workspace:GetDescendants()
1907
	for index, CHILD in pairs(CHILDREN) do
1908
		if CHILD.ClassName == "Model" and CHILD ~= Character then
1909
			local HUM = CHILD:FindFirstChildOfClass("Humanoid")
1910
			if HUM then
1911
				local TORSO = CHILD:FindFirstChild("Torso") or CHILD:FindFirstChild("UpperTorso")
1912
				if TORSO then
1913
					if HUM.Health > 0 and (TORSO.Position - POSITION).Magnitude <= RANGE then
1914
						CHILD:BreakJoints()
1915
						if FLING ~= 0 then
1916
							for _, c in pairs(CHILD:GetChildren()) do
1917
								if c:IsA("BasePart") and c.Transparency == 0 then
1918
									if BURN == true then
1919
										Fire(c)
1920
									end
1921
									local bv = Instance.new("BodyVelocity") 
1922
									bv.maxForce = Vector3.new(1e9, 1e9, 1e9)
1923
									bv.velocity = CF(POSITION,TORSO.Position).lookVector*FLING
1924
									bv.Parent = c
1925
									Debris:AddItem(bv,0.05)
1926
								end
1927
							end
1928
						end
1929
					end
1930
				end
1931
			end
1932
		end
1933
	end
1934
end
1935
1936
function Banish(Foe)
1937
	if Foe then
1938
		coroutine.resume(coroutine.create(function()
1939
			--if game.Players:FindFirstChild(Foe.Name) then
1940
				table.insert(TOBANISH,Foe.Name)
1941
				printbye(Foe.Name)
1942
			--end
1943
			Foe.Archivable = true
1944
			local CLONE = Foe:Clone()
1945
			Foe:Destroy()
1946
			CLONE.Parent = Effects
1947
			CLONE:BreakJoints()
1948
			local MATERIALS = {"Glass","Neon"}
1949
			for _, c in pairs(CLONE:GetDescendants()) do
1950
				if c:IsA("BasePart") then
1951
					if c.Name == "Torso" or c.Name == "UpperTorso" or c == CLONE.PrimaryPart then
1952
 						CreateSound(340722848, c, 10, 1, false)
1953
					end
1954
					c.Anchored = true
1955
					c.Transparency = c.Transparency + 0.2
1956
					c.Material = MATERIALS[MRANDOM(1,2)]
1957
					c.Color = C3(1,0,0)
1958
					if c.ClassName == "MeshPart" then
1959
						c.TextureID = ""
1960
					end
1961
					if c:FindFirstChildOfClass("SpecialMesh") then
1962
						c:FindFirstChildOfClass("SpecialMesh").TextureId = ""
1963
					end
1964
					if c:FindFirstChildOfClass("Decal") then
1965
						c:FindFirstChildOfClass("Decal"):remove()
1966
					end
1967
					c.Name = "Banished"
1968
					c.CanCollide = false
1969
				else
1970
					c:remove()
1971
				end
1972
			end
1973
			local A = false
1974
			for i = 1, 35 do
1975
				if A == false then
1976
					A = true
1977
				elseif A == true then
1978
					A = false
1979
				end
1980
				for _, c in pairs(CLONE:GetDescendants()) do
1981
					if c:IsA("BasePart") then
1982
						c.Anchored = true
1983
						c.Material = MATERIALS[MRANDOM(1,2)]
1984
						c.Transparency = c.Transparency + 0.8/35
1985
						if A == false then
1986
							c.CFrame = c.CFrame*CF(MRANDOM(-45,45)/45,MRANDOM(-45,45)/45,MRANDOM(-45,45)/45)
1987
						elseif A == true then
1988
							c.CFrame = c.CFrame*CF(MRANDOM(-45,45)/45,MRANDOM(-45,45)/45,MRANDOM(-45,45)/45)						
1989
						end
1990
					end
1991
				end
1992
				Swait()
1993
			end
1994
			CLONE:remove()
1995
		end))
1996
	end
1997
end
1998
1999
function ApplyAoE(POSITION,RANGE,ISBANISH)
2000
	local CHILDREN = workspace:GetDescendants()
2001
	for index, CHILD in pairs(CHILDREN) do
2002
		if CHILD.ClassName == "Model" and CHILD ~= Character then
2003
			local HUM = CHILD:FindFirstChildOfClass("Humanoid")
2004
			if HUM then
2005
				local TORSO = CHILD:FindFirstChild("Torso") or CHILD:FindFirstChild("UpperTorso")
2006
				if TORSO then
2007
					if (TORSO.Position - POSITION).Magnitude <= RANGE then
2008
						if ISBANISH == true then
2009
							Banish(CHILD)
2010
						else
2011
							if ISBANISH == "Gravity" then
2012
								HUM.PlatformStand = true
2013
								if TORSO:FindFirstChild("V3BanishForce"..Player.Name) then
2014
									local grav = Instance.new("BodyPosition",TORSO)
2015
									grav.D = 15
2016
									grav.P = 20000
2017
									grav.maxForce = Vector3.new(math.huge,math.huge,math.huge)
2018
									grav.position = TORSO.Position
2019
									grav.Name = "V3BanishForce"..Player.Name
2020
								else
2021
									TORSO:FindFirstChild("V3BanishForce"..Player.Name).position = TORSO.Position+VT(0,0.3,0)
2022
									TORSO.RotVelocity = VT(MRANDOM(-25,25),MRANDOM(-25,25),MRANDOM(-25,25))
2023
								end
2024
							else
2025
								HUM.PlatformStand = false
2026
							end
2027
						end
2028
					elseif ISBANISH == "Gravity" then
2029
						if TORSO:FindFirstChild("V3BanishForce"..Player.Name) then
2030
							TORSO:FindFirstChild("V3BanishForce"..Player.Name):remove()
2031
							HUM.PlatformStand = false
2032
						end
2033
					end
2034
				end
2035
			end
2036
		end
2037
	end
2038
end
2039
2040
--//=================================\\
2041
--||	ATTACK FUNCTIONS AND STUFF
2042
--\\=================================//
2043
Player_Size = 1
2044
2045
function FireArc(Part,ToLocation,AmountOfTime,Height,DoesCourontine)
2046
    if DoesCourontine == false then
2047
        local Direction = CF(Part.Position,ToLocation)
2048
        local Distance = (Part.Position - ToLocation).magnitude
2049
        for i = 1, AmountOfTime do
2050
            Swait()
2051
            Part.CFrame = Direction*CF(0,(AmountOfTime/200)+((AmountOfTime/Height)-((i*2)/Height)),-Distance/AmountOfTime)
2052
            Direction = Part.CFrame
2053
        end
2054
        Part:remove()
2055
    elseif DoesCourontine == true then
2056
        coroutine.resume(coroutine.create(function()
2057
            local Direction = CF(Part.Position,ToLocation)
2058
            local Distance = (Part.Position - ToLocation).magnitude
2059
            for i = 1, AmountOfTime do
2060
                Swait()
2061
                Part.CFrame = Direction*CF(0,(AmountOfTime/200)+((AmountOfTime/Height)-((i*2)/Height)),-Distance/AmountOfTime)
2062
                Direction = Part.CFrame
2063
            end
2064
            Part:remove()
2065
        end))
2066
    end
2067
end
2068
2069
function MagicSphere(SIZE,WAIT,CFRAME,COLOR,GROW)
2070
    local wave = CreatePart(3, Effects, "Neon", 0, 0, BRICKC(COLOR), "Effect", VT(1,1,1), true)
2071
    wave.Color = COLOR
2072
    local mesh = CreateMesh("SpecialMesh", wave, "Sphere", "", "", SIZE, VT(0,0,0))
2073
    wave.CFrame = CFRAME
2074
    coroutine.resume(coroutine.create(function(PART)
2075
        for i = 1, WAIT do
2076
            Swait()
2077
            mesh.Scale = mesh.Scale + GROW
2078
            wave.Transparency = wave.Transparency + (1/WAIT)
2079
            if wave.Transparency > 0.99 then
2080
                wave:remove()
2081
            end
2082
        end
2083
    end))
2084
end
2085
2086
function CreateSwirl(SIZE,WAIT,CFRAME,DOESROT,ROT,COLOR,GROW)
2087
    local wave = CreatePart(3, Effects, "Neon", 0, 0.5, BRICKC(COLOR), "Effect", VT(0,0,0))
2088
    wave.Color = COLOR
2089
    local mesh = CreateMesh("SpecialMesh", wave, "FileMesh", "1051557", "", SIZE, VT(0,0,0))
2090
    wave.CFrame = CFRAME
2091
    coroutine.resume(coroutine.create(function(PART)
2092
        for i = 1, WAIT do
2093
            Swait()
2094
            mesh.Scale = mesh.Scale + GROW
2095
            mesh.Offset = VT(0,0,-(mesh.Scale.X/8))
2096
            if DOESROT == true then
2097
                wave.CFrame = wave.CFrame * CFrame.fromEulerAnglesXYZ(0,ROT,0)
2098
            end
2099
            wave.Transparency = wave.Transparency + (0.5/WAIT)
2100
            if wave.Transparency > 0.99 then
2101
                wave:remove()
2102
            end
2103
        end
2104
    end))
2105
end
2106
2107
function Slice(KIND,SIZE,WAIT,CFRAME,COLOR,GROW)
2108
    local wave = CreatePart(3, Effects, "Neon", 0, 0.5, BRICKC(COLOR), "Effect", VT(1,1,1), true)
2109
    local mesh = nil
2110
    if KIND == "Base" then
2111
        mesh = CreateMesh("SpecialMesh", wave, "FileMesh", "448386996", "", VT(0,SIZE/10,SIZE/10), VT(0,0,0))
2112
    elseif KIND == "Thin" then
2113
        mesh = CreateMesh("SpecialMesh", wave, "FileMesh", "662586858", "", VT(SIZE/10,0,SIZE/10), VT(0,0,0))
2114
    elseif KIND == "Round" then
2115
        mesh = CreateMesh("SpecialMesh", wave, "FileMesh", "662585058", "", VT(SIZE/10,0,SIZE/10), VT(0,0,0))
2116
    end
2117
    wave.CFrame = CFRAME
2118
    coroutine.resume(coroutine.create(function(PART)
2119
        for i = 1, WAIT do
2120
            Swait()
2121
            mesh.Scale = mesh.Scale + GROW/10
2122
            wave.Transparency = wave.Transparency + (0.5/WAIT)
2123
            if wave.Transparency > 0.99 then
2124
                wave:remove()
2125
            end
2126
        end
2127
    end))
2128
end
2129
2130
function killnearest(position,range,maxstrength)
2131
    for i,v in ipairs(workspace:GetChildren()) do
2132
    local body = v:GetChildren()
2133
        for part = 1, #body do
2134
            if((body[part].ClassName == "Part" or body[part].ClassName == "MeshPart") and v ~= Character) then
2135
                if(body[part].Position - position).Magnitude < range then
2136
                    if v.ClassName == "Model" then
2137
                        v:BreakJoints()
2138
                    end
2139
                    --table.insert(Effects2,{body[part],"Disappear",0.02,2,2,2,2})
2140
                    local bv = Instance.new("BodyVelocity")
2141
                    bv.maxForce = Vector3.new(1e9, 1e9, 1e9)
2142
                    bv.velocity = CF(position,body[part].Position).lookVector*maxstrength
2143
                    bv.Parent = body[part]
2144
                    Debris:AddItem(bv,0.2)
2145
                end
2146
            end
2147
        end
2148
        if v.ClassName == "Part" then
2149
            if v.Anchored == false and (v.Position - position).Magnitude < range then
2150
                --table.insert(Effects2,{v,"Disappear",0.02,2,2,2,2})
2151
                v.Velocity = CFrame.new(position,v.Position).lookVector*5*maxstrength
2152
            end
2153
        end
2154
    end
2155
end
2156
2157
function Supernova()
2158
    local HITFLOOR,HITPOS,NORMAL = Raycast(RootPart.Position, (CF(RootPart.Position, RootPart.Position + VT(0, -1, 0))).lookVector, 7 * Player_Size, Character)
2159
    if HITFLOOR ~= nil then
2160
        local HITBODIES = {}
2161
        ATTACK = true
2162
        Rooted = true
2163
        local ABSOLUTE = CreatePart(3, Effects, "Neon", 0, 1, "Relly red", "Star", VT(0,0,0))
2164
        MakeForm(ABSOLUTE,"Ball")
2165
        CreateSound("429459101", ABSOLUTE, 10, 1)
2166
        for i=0, 4, 0.1 / Animation_Speed do
2167
            Swait()
2168
            ABSOLUTE.Size = ABSOLUTE.Size + VT(0.2,0.2,0.2)
2169
            ABSOLUTE.CFrame = RootPart.CFrame*CF(0,5+(ABSOLUTE.Size.Y/2),0)
2170
            ABSOLUTE.Transparency = ABSOLUTE.Transparency - 0.01
2171
            local CHARGE = CreatePart(3, Effects, "Neon", 0, 0, "Lime green", "Star", VT(1,1,1))
2172
            MakeForm(CHARGE,"Ball")
2173
            CHARGE.Color = C3(255,0,0)
2174
            CHARGE.CFrame = CF(RootPart.Position) * CF(MRANDOM(-15,15),-6,MRANDOM(-15,15))
2175
            FireArc(CHARGE,ABSOLUTE.Position,45,45,true)
2176
            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)
2177
            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)
2178
            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)
2179
            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)
2180
            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)
2181
            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)
2182
        end
2183
        CreateSound("907330103", Head, 10, 1.2)
2184
        for i = 1, 75 do
2185
            Swait()
2186
            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)
2187
            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)
2188
            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)
2189
            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)
2190
            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)
2191
            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)
2192
        end
2193
        coroutine.resume(coroutine.create(function()
2194
            for i = 1, 13 do
2195
                for e = 1, 8 do
2196
                    Swait()
2197
                    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))
2198
                    CreateSwirl(ABSOLUTE.Size/2,15,CF(HITPOS),true,15,BRICKC"Reakky red".Color,VT(i,0.3,i)*2)
2199
                end
2200
                for i = 1, 5 do
2201
                    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)
2202
                    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))
2203
                end
2204
                CreateSwirl(ABSOLUTE.Size/2,25,CF(ABSOLUTE.Position),true,-25,BRICKC"Relly red".Color,VT(i,i*2,i))
2205
                CreateSwirl(ABSOLUTE.Size/2,55,CF(ABSOLUTE.Position),true,25,C3(255,0,0),VT(i,i*2,i))
2206
                CreateSound("168586621", ABSOLUTE, 4, 0.8)
2207
                CreateSound("201858144", ABSOLUTE, 10, 0.8)
2208
                killnearest(ABSOLUTE.Position,i*18,i)
2209
                ABSOLUTE.Size = ABSOLUTE.Size*0.9
2210
                MagicSphere(ABSOLUTE.Size,25,CF(ABSOLUTE.Position),BRICKC"Relly red".Color,VT(i,i,i)/1.1)
2211
                MagicSphere(ABSOLUTE.Size,45,CF(ABSOLUTE.Position),C3(255,0,0),VT(i,i,i))
2212
            end
2213
            ABSOLUTE.Transparency = 1
2214
            Debris:AddItem(ABSOLUTE,10)
2215
        end))
2216
        ATTACK = false
2217
        Rooted = false
2218
    end
2219
end
2220
 
2221
2222
local ENERGYSOUND = 1417051162
2223
local BEAMSOUND = 1417056781
2224
local EXPLOSIONSOUND = 1417056081
2225
local BasePart = CreatePart(3, Weapon, "SmoothPlastic", 1, 1, "Lime green", "BraceletPart", VT(1.01,0.3,1.01),false)
2226
2227
function Charge(TIME,GYRO)
2228
    local SND = CreateSound(ENERGYSOUND,Torso,6,TIME,false)
2229
    local G = nil
2230
    if GYRO == true then
2231
        G = IT("BodyGyro",RootPart)
2232
        G.D = 250
2233
        G.P = 200000
2234
        G.MaxTorque = VT(math.huge,math.huge,math.huge)
2235
    end
2236
    for i=0, TIME, 0.1 / Animation_Speed do
2237
        Swait()
2238
        if G then
2239
            G.cframe = CF(RootPart.Position,Mouse.Hit.p)
2240
        end
2241
        WACKYEFFECT({TIME = 25, EffectType = "Sphere", Size = VT(1.2,1.2,1.2), Size2 = VT(0,0,0), Transparency = 0.5, Transparency2 = 1, CFrame = BasePart.CFrame, MoveToPos = BasePart.CFrame*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)))*CF(0,0,-4).p, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = SKILLTEXTCOLOR, SoundID = nil, SoundPitch = nil, SoundVolume = nil})
2242
        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)
2243
        Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(15 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 0.15 / Animation_Speed)
2244
        RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.25, 0.5, -0.5) * ANGLES(RAD(90), RAD(0), RAD(-45)) * RIGHTSHOULDERC0, 2 / Animation_Speed)
2245
        LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.25, 0.5, -0.5) * ANGLES(RAD(90), RAD(0), RAD(45)) * LEFTSHOULDERC0, 2 / Animation_Speed)
2246
        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)
2247
        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)
2248
    end
2249
    SND:remove()
2250
    if G then
2251
        return G
2252
    end
2253
end
2254
2255
function Warp()
2256
	local HITFLOOR,HITPOS = Raycast(Mouse.Hit.p+VT(0,1,0), (CF(RootPart.Position, RootPart.Position + VT(0, -1, 0))).lookVector, 100, Character)
2257
	if HITFLOOR then
2258
		CharacterFade(C3(0.5,0,0),50)
2259
		HITPOS = HITPOS + VT(0,3.5,0)
2260
		local POS = RootPart.Position
2261
		RootPart.CFrame = CF(HITPOS,CF(POS,HITPOS)*CF(0,0,-100000).p)
2262
		CreateSound(289556450,Torso,2,MRANDOM(8,13)/10,false)
2263
	end
2264
end
2265
2266
function Prison_Key()
2267
	if Mouse.Target ~= nil then
2268
		if Mouse.Target.Parent ~= Character and Mouse.Target.Parent.Parent ~= Character and Mouse.Target.Parent:FindFirstChildOfClass("Humanoid") ~= nil then
2269
			local HUM = Mouse.Target.Parent:FindFirstChildOfClass("Humanoid")
2270
			local TORSO = HUM.Parent:FindFirstChild("Torso") or HUM.Parent:FindFirstChild("UpperTorso")
2271
			local GYRO = IT("BodyGyro",RootPart)
2272
			GYRO.D = 750
2273
			GYRO.P = 20000
2274
			GYRO.MaxTorque = VT(0,40000000,0)
2275
			local grav = Instance.new("BodyPosition",TORSO)
2276
			grav.D = 15
2277
			grav.P = 20000
2278
			grav.maxForce = Vector3.new(math.huge,math.huge,math.huge)
2279
			grav.position = TORSO.Position
2280
			local GYRO2 = IT("BodyGyro",TORSO)
2281
			GYRO2.D = 750
2282
			GYRO2.P = 20000
2283
			GYRO2.MaxTorque = VT(0,40000000,0)
2284
			GYRO2.cframe = CF(TORSO.Position,RootPart.Position)
2285
			grav.Name = "Jail"
2286
			local LOCKPARTS = {}
2287
			ATTACK = true
2288
			Rooted = false
2289
			local LOCK = IT("Model",Effects)
2290
			LOCK.Name = "Lock"
2291
			local LOCK2 = IT("Model",LOCK)
2292
			LOCK2.Name = "Metal"
2293
			--CREATE LOCK--
2294
				local BASE = CreatePart(3, LOCK, "Glass", 0, 0, "Gold", "Keylock", VT(3, 2.5, 1))
2295
				LOCK.PrimaryPart = BASE
2296
				BASE.CFrame = CF(TORSO.Position,RootPart.Position)*CF(0,0,-4)
2297
				local PRT = CreatePart(3, LOCK, "Glass", 0, 0, "Gold", "Keylock", VT(3, 1, 3))
2298
				PRT.CFrame = BASE.CFrame*CF(0,-1.25,0)*ANGLES(RAD(90),RAD(0),RAD(0))
2299
				MakeForm(PRT,"Cyl")
2300
				local PRT = CreatePart(3, LOCK, "Glass", 0, 0, "White", "Hole", VT(1, 1, 1))
2301
				PRT.Color = C3(0,0,0)
2302
				PRT.CFrame = BASE.CFrame*CF(0,0.3,-0.01)*ANGLES(RAD(90),RAD(0),RAD(0))
2303
				MakeForm(PRT,"Cyl")
2304
				local PRT = CreatePart(3, LOCK, "Glass", 0, 0, "White", "Hole", VT(0.5, 1, 1))
2305
				PRT.Color = C3(0,0,0)
2306
				PRT.CFrame = BASE.CFrame*CF(0,-0.2,-0.01)
2307
				for i = 1, 45 do
2308
					local PRT = CreatePart(3, LOCK2, "Glass", 0, 0, "Grey", "Keylock", VT(0.5, 0.5, 0.5))
2309
					PRT.CFrame = BASE.CFrame*CF(0,2,0)*ANGLES(RAD(0),RAD(0),RAD(-90+(360/90*i)))*CF(0,1,0)
2310
				end
2311
				local PRT = CreatePart(3, LOCK2, "Glass", 0, 0, "Grey", "Keylock", VT(0.5, 0.5, 0.5))
2312
				PRT.CFrame = BASE.CFrame*CF(0,1.5,0)*ANGLES(RAD(0),RAD(0),RAD(90))*CF(0,1,0)
2313
				LOCK2.PrimaryPart = PRT
2314
			---------------
2315
			local CHILDREN = LOCK:GetDescendants()
2316
			for index, CHILD in pairs(CHILDREN) do
2317
				if CHILD:IsA("BasePart") then
2318
					CHILD.Transparency = 1
2319
				end
2320
			end
2321
			for i = 1, 75 do
2322
				LOCK:SetPrimaryPartCFrame(CF(TORSO.Position,RootPart.Position)*CF(0,0,-4))
2323
				Swait()
2324
				GYRO2.cframe = CF(TORSO.Position,RootPart.Position)
2325
				GYRO.cframe = CF(RootPart.Position,TORSO.Position)
2326
				local CHILDREN = LOCK:GetDescendants()
2327
				for index, CHILD in pairs(CHILDREN) do
2328
					if CHILD:IsA("BasePart") then
2329
						CHILD.Transparency = CHILD.Transparency - 1/75
2330
					end
2331
				end
2332
			end
2333
			HUM.DisplayDistanceType = "None"
2334
			local KEY = IT("Model",Effects)
2335
			KEY.Name = "Key"
2336
			--CREATE KEY--
2337
				local KBASE = CreatePart(3, KEY, "Neon", 0, 0, "Really red", "KeyBase", VT(0.1, 1, 0.1),false)
2338
				KEY.PrimaryPart = KBASE
2339
				KBASE.CFrame = RightArm.CFrame*CF(0,-2.1,0)*ANGLES(RAD(0),RAD(90),RAD(0))
2340
				local WLD = weldBetween(RightArm,KBASE)
2341
				for i = 1, 45 do
2342
					local PRT = CreatePart(3, KEY, "Neon", 0, 0, "Really red", "Key", VT(0.1, 0.1, 0.1),false)
2343
					PRT.CFrame = KBASE.CFrame*CF(0,0.8,0)*ANGLES(RAD(0),RAD(0),RAD((360/45*i)))*CF(0,0.25,0)
2344
					weldBetween(KBASE,PRT)
2345
				end
2346
				local PRT = CreatePart(3, KEY, "Neon", 0, 0, "Really red", "Key", VT(0.3, 0.1, 0.1),false)
2347
				PRT.CFrame = KBASE.CFrame*CF(-0.15,-0.45,0)
2348
				weldBetween(KBASE,PRT)
2349
				local PRT = CreatePart(3, KEY, "Neon", 0, 0, "Really red", "Key", VT(0.3, 0.1, 0.1),false)
2350
				PRT.CFrame = KBASE.CFrame*CF(-0.15,-0.25,0)
2351
				weldBetween(KBASE,PRT)
2352
			--------------
2353
			Rooted = true
2354
			Pose("Prepare key",1.5,1.2,false,GYRO,TORSO)
2355
			coroutine.resume(coroutine.create(function()
2356
				for i = 1, 10 do
2357
					Swait()
2358
					GYRO2.cframe = CF(TORSO.Position,RootPart.Position)
2359
					GYRO.cframe = CF(RootPart.Position,TORSO.Position)
2360
				end
2361
				CreateSound(1149318312,BASE,5,1,false)
2362
				CreateSound(160772554,BASE,3,1,false)
2363
				LOCK2:SetPrimaryPartCFrame(BASE.CFrame*CF(0,0.8,0)*ANGLES(RAD(0),RAD(0),RAD(90))*CF(0,1,0))
2364
				for i = 1, 4 do
2365
					WACKYEFFECT({Time = 35, EffectType = "Crystal", Size = VT(1,1,1), Size2 = VT(0,15,0), Transparency = 0, Transparency2 = 1, CFrame = BASE.CFrame*CF(1,1.45,0)*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360))), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = BRICKC"Really red".Color, SoundID = nil, SoundPitch = nil, SoundVolume = nil})
2366
				end
2367
				WACKYEFFECT({Time = 35, EffectType = "Sphere", Size = VT(0,0,0), Size2 = VT(1,1,1)*25, Transparency = 0, Transparency2 = 1, CFrame = TORSO.CFrame, MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = BRICKC"Really red".Color, SoundID = nil, SoundPitch = MRANDOM(8,12)/10, SoundVolume = 5})
2368
				wait(1)
2369
				TORSO.Parent.Parent = LOCK
2370
				for i = 1, 75 do
2371
					Swait()
2372
					local CHILDREN = KEY:GetDescendants()
2373
					for index, CHILD in pairs(CHILDREN) do
2374
						if CHILD:IsA("BasePart") then
2375
							CHILD.Transparency = i/25
2376
						end
2377
					end
2378
					local CHILDREN = LOCK:GetDescendants()
2379
					for index, CHILD in pairs(CHILDREN) do
2380
						if CHILD:IsA("BasePart") and CHILD.Name ~= "HumanoidRootPart" then
2381
							CHILD.Transparency = CHILD.Transparency + 1/75
2382
						elseif CHILD.ClassName == "Decal" then
2383
							CHILD.Transparency = CHILD.Transparency + 1/75
2384
						end
2385
					end
2386
				end
2387
				TORSO.Parent:ClearAllChildren()
2388
				KEY:remove()
2389
				LOCK:remove()
2390
			end))
2391
			Pose("Turn key",0.8,1.2,false,GYRO,TORSO)
2392
			GYRO:remove()
2393
			ATTACK = false
2394
			Rooted = false
2395
		end
2396
	end
2397
end
2398
2399
function Lift()
2400
	if Mouse.Target.Parent ~= Character and Mouse.Target.Parent.Parent ~= Character and Mouse.Target.Parent:FindFirstChildOfClass("Humanoid") ~= nil then
2401
		local HUM = Mouse.Target.Parent:FindFirstChildOfClass("Humanoid")
2402
		local TORSO = HUM.Parent:FindFirstChild("Torso") or HUM.Parent:FindFirstChild("UpperTorso")
2403
		if TORSO and HUM.Health > 0 then
2404
			ATTACK = true
2405
			Rooted = false
2406
			local GYRO = IT("BodyGyro",RootPart)
2407
			GYRO.D = 275
2408
			GYRO.P = 20000
2409
			GYRO.MaxTorque = VT(0,40000,0)
2410
			for i=0, 0.8, 0.1 / Animation_Speed do
2411
				Swait()
2412
				GYRO.cframe = CF(RootPart.Position,TORSO.Position)
2413
				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)
2414
				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)
2415
				RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, -0.5) * ANGLES(RAD(0), RAD(0), RAD(-85)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
2416
				LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.15, -0.5) * ANGLES(RAD(-15), RAD(0), RAD(85)) * LEFTSHOULDERC0, 1 / Animation_Speed)
2417
				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)
2418
				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)
2419
			end			
2420
			local MAGIC = ParticleEmitter({Speed = 5, Drag = 3, Size1 = 1.7, Size2 = 0, Lifetime1 = 1, Lifetime2 = 3, Parent = TORSO, Emit = 100, Offset = 360, Enabled = true})
2421
			MAGIC.Transparency = NumberSequence.new({NumberSequenceKeypoint.new(0,1),NumberSequenceKeypoint.new(1,0)})
2422
			local grav = Instance.new("BodyPosition",TORSO)
2423
			grav.D = 1500
2424
			grav.P = 20000
2425
			grav.maxForce = Vector3.new(math.huge,math.huge,math.huge)
2426
			grav.position = TORSO.Position+VT(0,15,0)
2427
			Debris:AddItem(grav,10)
2428
			Debris:AddItem(MAGIC,10)
2429
			CreateSound(902204346, Torso, 7, 1, false)
2430
			CreateSound(902204346, TORSO, 7, 1, false)
2431
			for i=0, 1, 0.1 / Animation_Speed do
2432
				Swait()
2433
				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)
2434
				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)
2435
				RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(125), RAD(-45), RAD(15)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
2436
				LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(125), RAD(45), RAD(-15)) * LEFTSHOULDERC0, 1 / Animation_Speed)
2437
				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)
2438
				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)
2439
			end
2440
			GYRO:remove()
2441
			ATTACK = false
2442
			Rooted = false
2443
		end
2444
	end
2445
end
2446
2447
function TAUNT1()
2448
	ATTACK = true
2449
	Rooted = false
2450
	CreateSound(865772398, Torso, 6, 1, false)
2451
	for i=0, 0.1, 0.1 / Animation_Speed do
2452
		Swait()
2453
		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(25 + 2.5 * SIN(SINE / 12))), 1 / Animation_Speed)
2454
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0 + 4.5 * SIN(SINE / 12)), RAD(0), RAD(-25 - 2.5 * SIN(SINE / 12))), 1 / Animation_Speed)
2455
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.35, 0.15 + 0.25 * COS(SINE / 12), -0.3) * ANGLES(RAD(140), RAD(0 - 2.5 * SIN(SINE / 12)), RAD(5 + 7.5 * SIN(SINE / 12))) * RIGHTSHOULDERC0, 1 / Animation_Speed)
2456
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, -0.4) * ANGLES(RAD(5-3 * COS(SINE / 6)), RAD(0), RAD(-12)) * LEFTSHOULDERC0, 1 / Animation_Speed)
2457
	end
2458
	for i=0, 1, 0.1 / Animation_Speed do
2459
		Swait()
2460
		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(25 + 2.5 * SIN(SINE / 12))), 1 / Animation_Speed)
2461
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0 + 4.5 * SIN(SINE / 12)), RAD(0), RAD(-25 - 2.5 * SIN(SINE / 12))), 1 / Animation_Speed)
2462
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.35, 0.15 + 0.25 * COS(SINE / 12), -0.3) * ANGLES(RAD(140), RAD(0 - 2.5 * SIN(SINE / 12)), RAD(5 + 7.5 * SIN(SINE / 12))) * RIGHTSHOULDERC0, 1 / Animation_Speed)
2463
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.15, 0.5, -0.4) * ANGLES(RAD(-25-3 * COS(SINE / 6)), RAD(25), RAD(90)) * ANGLES(RAD(0), RAD(-90), RAD(0)) * LEFTSHOULDERC0, 1 / Animation_Speed)
2464
	end
2465
	for i=0, 1, 0.1 / Animation_Speed do
2466
		Swait()
2467
		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(25 + 2.5 * SIN(SINE / 12))), 1 / Animation_Speed)
2468
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0 + 4.5 * SIN(SINE / 12)), RAD(0), RAD(-25 - 2.5 * SIN(SINE / 12))), 1 / Animation_Speed)
2469
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.35, 0.15 + 0.25 * COS(SINE / 12), -0.3) * ANGLES(RAD(140), RAD(0 - 2.5 * SIN(SINE / 12)), RAD(5 + 7.5 * SIN(SINE / 12))) * RIGHTSHOULDERC0, 1 / Animation_Speed)
2470
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(-25-3 * COS(SINE / 6)), RAD(0), RAD(-90)) * ANGLES(RAD(0), RAD(90), RAD(0)) * LEFTSHOULDERC0, 1 / Animation_Speed)
2471
	end
2472
	ATTACK = false
2473
	Rooted = false
2474
end
2475
2476
function TAUNT2()
2477
	ATTACK = true
2478
	Rooted = false
2479
	for i=0, 1, 0.1 / Animation_Speed do
2480
		Swait()
2481
		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(25 + 2.5 * SIN(SINE / 12))), 1 / Animation_Speed)
2482
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0 + 4.5 * SIN(SINE / 12)), RAD(0), RAD(-25 - 2.5 * SIN(SINE / 12))), 1 / Animation_Speed)
2483
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.35, 0.15 + 0.25 * COS(SINE / 12), -0.3) * ANGLES(RAD(140), RAD(0 - 2.5 * SIN(SINE / 12)), RAD(5 + 7.5 * SIN(SINE / 12))) * RIGHTSHOULDERC0, 1 / Animation_Speed)
2484
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.25, 0.5 + 0.25 * COS(SINE / 12), 0.4) * ANGLES(RAD(-45), RAD(0 + 2.5 * SIN(SINE / 12)), RAD(35 - 7.5 * SIN(SINE / 12))) * LEFTSHOULDERC0, 1 / Animation_Speed)
2485
	end
2486
	ATTACK = false
2487
	Rooted = false
2488
end
2489
2490
function EMOTE()
2491
	ATTACK = true
2492
	Rooted = false
2493
	local LOOP = 0
2494
	for i=0, 0.1, 0.1 / Animation_Speed do
2495
		Swait()
2496
		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)
2497
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0 + 4.5 * SIN(SINE / 12)), RAD(0), RAD(-15 - 2.5 * SIN(SINE / 12))), 1 / Animation_Speed)
2498
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.35, 0.15 + 0.25 * COS(SINE / 12), -0.3) * ANGLES(RAD(140), RAD(0 - 2.5 * SIN(SINE / 12)), RAD(5 + 7.5 * SIN(SINE / 12))) * RIGHTSHOULDERC0, 1 / Animation_Speed)
2499
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, -0.4) * ANGLES(RAD(5-3 * COS(SINE / 6)), RAD(0), RAD(-12)) * LEFTSHOULDERC0, 1 / Animation_Speed)
2500
	end
2501
	for i=0, 3, 0.1 / Animation_Speed do
2502
		Swait()
2503
		LOOP = LOOP + 1
2504
		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(5 + 2.5 * SIN(SINE / 12))), 1 / Animation_Speed)
2505
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0 + 4.5 * SIN(SINE / 12)), RAD(0), RAD(-5 - 2.5 * SIN(SINE / 12))), 1 / Animation_Speed)
2506
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.35, 0.15 + 0.25 * COS(SINE / 12), -0.3) * ANGLES(RAD(140), RAD(0 - 2.5 * SIN(SINE / 12)), RAD(5 + 7.5 * SIN(SINE / 12))) * RIGHTSHOULDERC0, 1 / Animation_Speed)
2507
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.8, 0.4) * ANGLES(RAD(170), RAD(0), RAD(-25 - 25 * SIN(LOOP / 5))) * ANGLES(RAD(0), RAD(-45), RAD(0)) * LEFTSHOULDERC0, 1 / Animation_Speed)
2508
	end
2509
	for i=0, 0.1, 0.1 / Animation_Speed do
2510
		Swait()
2511
		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(25 + 2.5 * SIN(SINE / 12))), 1 / Animation_Speed)
2512
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0 + 4.5 * SIN(SINE / 12)), RAD(0), RAD(-25 - 2.5 * SIN(SINE / 12))), 1 / Animation_Speed)
2513
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.35, 0.15 + 0.25 * COS(SINE / 12), -0.3) * ANGLES(RAD(140), RAD(0 - 2.5 * SIN(SINE / 12)), RAD(5 + 7.5 * SIN(SINE / 12))) * RIGHTSHOULDERC0, 1 / Animation_Speed)
2514
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, -0.4) * ANGLES(RAD(5-3 * COS(SINE / 6)), RAD(0), RAD(-12)) * LEFTSHOULDERC0, 1 / Animation_Speed)
2515
	end
2516
	ATTACK = false
2517
	Rooted = false
2518
end
2519
2520
function Banisher_Bullet()
2521
	ATTACK = true
2522
	Rooted = false
2523
	for i=0, 0.4, 0.1 / Animation_Speed do
2524
		Swait()
2525
		turnto(Mouse.Hit.p)
2526
		RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(90)), 0.5 / Animation_Speed)
2527
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(-90)), 0.5 / Animation_Speed)
2528
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(90), RAD(0), RAD(90)) * RIGHTSHOULDERC0, 0.5 / Animation_Speed)
2529
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.6, 0) * ANGLES(RAD(-45), RAD(0), RAD(45)) * LEFTSHOULDERC0, 0.5 / Animation_Speed)
2530
		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)
2531
		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)
2532
	end
2533
	repeat
2534
		for i=0, 0.2, 0.1 / Animation_Speed do
2535
			Swait()
2536
			turnto(Mouse.Hit.p)
2537
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(90)), 0.5 / Animation_Speed)
2538
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(-90)), 0.5 / Animation_Speed)
2539
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(90), RAD(0), RAD(90)) * RIGHTSHOULDERC0, 0.5 / Animation_Speed)
2540
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.6, 0) * ANGLES(RAD(-45), RAD(0), RAD(45)) * LEFTSHOULDERC0, 0.5 / Animation_Speed)
2541
			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)
2542
			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)
2543
		end
2544
		local HIT,POS = CastProperRay(Hole.Position, Mouse.Hit.p, 1000, Character)
2545
		SpawnTrail(Hole.Position,POS)
2546
		if HIT ~= nil then
2547
			if HIT.Parent ~= workspace and HIT.Parent.ClassName ~= "Folder" then
2548
				Banish(HIT.Parent)
2549
			end
2550
		end
2551
		WACKYEFFECT({Time = 25, EffectType = "Wave", Size = VT(0.3,0,0.3), Size2 = VT(1,1.5,1), 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})
2552
		WACKYEFFECT({Time = 25, EffectType = "Wave", Size = VT(0.3,0,0.3), Size2 = VT(2,0.5,2), 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})
2553
		WACKYEFFECT({Time = 25, EffectType = "Wave", Size = VT(0.3,0,0.3), Size2 = VT(2,0.5,2), 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})
2554
		WACKYEFFECT({Time = 25, EffectType = "Wave", Size = VT(0.3,0,0.3), Size2 = VT(2,0.5,2), 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})
2555
		for i=0, 0.3, 0.1 / Animation_Speed do
2556
			Swait()
2557
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(90)), 0.5 / Animation_Speed)
2558
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(-90)), 0.25 / Animation_Speed)
2559
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(90), RAD(15), RAD(90)) * RIGHTSHOULDERC0, 0.5 / Animation_Speed)
2560
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.6, 0) * ANGLES(RAD(-45), RAD(0), RAD(45)) * LEFTSHOULDERC0, 0.5 / Animation_Speed)
2561
			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)
2562
			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)
2563
		end
2564
	until KEYHOLD == false
2565
	ATTACK = false
2566
	Rooted = false
2567
end
2568
2569
function AttackTemplate()
2570
	ATTACK = true
2571
	Rooted = false
2572
	for i=0, 1, 0.1 / Animation_Speed do
2573
		Swait()
2574
		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)
2575
		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)
2576
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(12)) * RIGHTSHOULDERC0, 0.15 / Animation_Speed)
2577
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(-12)) * LEFTSHOULDERC0, 0.15 / Animation_Speed)
2578
		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)
2579
		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)
2580
	end
2581
	ATTACK = false
2582
	Rooted = false
2583
end
2584
2585
--//=================================\\
2586
--||	  ASSIGN THINGS TO KEYS
2587
--\\=================================//
2588
2589
function MouseDown(Mouse)
2590
	HOLD = true
2591
	if ATTACK == false then
2592
	end
2593
end
2594
2595
function MouseUp(Mouse)
2596
HOLD = false
2597
end
2598
2599
function KeyDown(Key)
2600
	KEYHOLD = true
2601
	if Key == "z" and ATTACK == false then
2602
		Banisher_Bullet()
2603
	end
2604
2605
	if Key == "b" and ATTACK == false then
2606
	end
2607
2608
	if Key == "t" and ATTACK == false then
2609
		TAUNT1()
2610
	end
2611
2612
	if Key == "q" and ATTACK == false then
2613
		Lift()
2614
	end
2615
	
2616
	if Key == "e" and ATTACK == false then
2617
		Warp()
2618
	end
2619
	
2620
	if Key == "r" and ATTACK == false then
2621
		Supernova()
2622
	end
2623
	
2624
	if Key == "x" and ATTACK == false then
2625
		Prison_Key()
2626
	end
2627
2628
	if Key == "c" and ATTACK == false then
2629
	end
2630
2631
	if Key == "v" and ATTACK == false then
2632
	end
2633
2634
	if Key == "x" and ATTACK == false then
2635
	end
2636
end
2637
2638
function KeyUp(Key)
2639
	KEYHOLD = false
2640
end
2641
2642
	Mouse.Button1Down:connect(function(NEWKEY)
2643
		MouseDown(NEWKEY)
2644
	end)
2645
	Mouse.Button1Up:connect(function(NEWKEY)
2646
		MouseUp(NEWKEY)
2647
	end)
2648
	Mouse.KeyDown:connect(function(NEWKEY)
2649
		KeyDown(NEWKEY)
2650
	end)
2651
	Mouse.KeyUp:connect(function(NEWKEY)
2652
		KeyUp(NEWKEY)
2653
	end)
2654
2655
--//=================================\\
2656
--\\=================================//
2657
2658
2659
function unanchor()
2660
	if UNANCHOR == true then
2661
		g = Character:GetChildren()
2662
		for i = 1, #g do
2663
			if g[i].ClassName == "Part" then
2664
				g[i].Anchored = false
2665
			end
2666
		end
2667
	end
2668
end
2669
2670
2671
--//=================================\\
2672
--||	WRAP THE WHOLE SCRIPT UP
2673
--\\=================================//
2674
2675
Humanoid.Changed:connect(function(Jump)
2676
    if Jump == "Jump" and (Disable_Jump == true) then
2677
        Humanoid.Jump = false
2678
    end
2679
end)
2680
 
2681
while true do
2682
    Swait()
2683
    Humanoid.HipHeight = 1.5
2684
    script.Parent = WEAPONGUI
2685
    ANIMATE.Parent = nil
2686
    if Humanoid then
2687
        local IDLEANIMATION = Humanoid:LoadAnimation(ROBLOXIDLEANIMATION)
2688
        IDLEANIMATION:Play()
2689
    end
2690
    SINE = SINE + CHANGE
2691
    local TORSOVELOCITY = (RootPart.Velocity * VT(1, 0, 1)).magnitude
2692
    local TORSOVERTICALVELOCITY = RootPart.Velocity.y
2693
    local HITFLOOR = Raycast(RootPart.Position, (CF(RootPart.Position, RootPart.Position + VT(0, -1, 0))).lookVector, 4, Character)
2694
    if ATTACK == false then
2695
        if TORSOVELOCITY < 1 then
2696
            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(25)), 1 / Animation_Speed)
2697
            Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0 + 4.5 * SIN(SINE / 12)), RAD(0), RAD(-25)), 1 / Animation_Speed)
2698
            RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.25, 0.35 + 0.15 * COS(SINE / 12), 0) * ANGLES(RAD(110), RAD(-15 - 2.5 * SIN(SINE / 12)), RAD(35 + 7.5 * SIN(SINE / 12))) * RIGHTSHOULDERC0, 1 / Animation_Speed)
2699
            LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.25, 0.35 + 0.15 * COS(SINE / 12), 0) * ANGLES(RAD(140 - 12 * SIN(SINE / 12)), RAD(15 + 2.5 * SIN(SINE / 12)), RAD(-35 - 7.5 * SIN(SINE / 12))) * LEFTSHOULDERC0, 1 / Animation_Speed)
2700
            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)
2701
            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)
2702
        elseif TORSOVELOCITY > 1 then
2703
            RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.25 * COS(SINE / 12)) * ANGLES(RAD(25 + 2.5 * SIN(SINE / 12)), RAD(0), RAD(25)), 1 / Animation_Speed)
2704
            Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(-25 + 4.5 * SIN(SINE / 12)), RAD(0), RAD(-25)), 1 / Animation_Speed)
2705
            RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.25, 0.35 + 0.15 * COS(SINE / 12), 0) * ANGLES(RAD(110), RAD(-15 - 2.5 * SIN(SINE / 12)), RAD(35 + 7.5 * SIN(SINE / 12))) * RIGHTSHOULDERC0, 1 / Animation_Speed)
2706
            LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.25, 0.35 + 0.15 * COS(SINE / 12), 0) * ANGLES(RAD(140 - 12 * SIN(SINE / 12)), RAD(15 + 2.5 * SIN(SINE / 12)), RAD(-35 - 7.5 * SIN(SINE / 12))) * LEFTSHOULDERC0, 1 / Animation_Speed)
2707
            RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, -0.01) * ANGLES(RAD(-25-2.5 * SIN(SINE / 12)), RAD(75), RAD(0)) * ANGLES(RAD(-8 - 5.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
2708
            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)
2709
        end
2710
    end
2711
    RightArmGrasp.C0 = Clerp(RightArmGrasp.C0, CF(0, -0.815+0.05 * SIN(SINE / 12), 0) * ANGLES(RAD(90-4.5 * SIN(SINE / 12)), RAD(-1.5 * SIN(SINE / 12)), RAD(0)), 1 / Animation_Speed)
2712
    unanchor()
2713
    Humanoid.MaxHealth = "inf"
2714
    Humanoid.Health = "inf"
2715
    if Rooted == false then
2716
        Disable_Jump = false
2717
        Humanoid.WalkSpeed = Speed
2718
    elseif Rooted == true then
2719
        Disable_Jump = true
2720
        Humanoid.WalkSpeed = 0
2721
    end
2722
        for _, c in pairs(Character:GetDescendants()) do
2723
        if c.ClassName == "Part" and c.Name ~= "Eye" and c.Parent ~= Effects and c.Parent.Parent ~= Effects then
2724
            c.Material = "Neon"
2725
            c.Color = C3(1,1,1)
2726
            if c:FindFirstChildOfClass("SpecialMesh") then
2727
                c:FindFirstChildOfClass("SpecialMesh").TextureId = ""
2728
            end
2729
            if c == Head then
2730
                if c:FindFirstChild("face") then
2731
                    c.face:remove()
2732
                end
2733
            end
2734
        elseif c.ClassName == "Part" and c.Name == "Eye" then
2735
            c.Color = C3(1,0,0)
2736
            c.Material = "Neon"
2737
        elseif c.ClassName == "CharacterMesh" or c.Name == "Body Colors" then
2738
            c:remove()
2739
        elseif (c.ClassName == "Shirt" or c.ClassName == "Pants") and c.Name ~= "Cloth" then
2740
            c:remove()
2741
        end
2742
    end
2743
    refit()
2744
    Humanoid.Name = "Deadeyes"
2745
    sick.Parent = Torso
2746
    sick:resume()
2747
    sick.Volume = 5
2748
    sick.Pitch = 1
2749
    sick.SoundId = "rbxassetid://356064698"
2750
    if Head:FindFirstChildOfClass("Sound") then
2751
        Head:FindFirstChildOfClass("Sound"):remove()
2752
    end
2753
end
2754
2755
--//=================================\\
2756
--\\=================================//
2757
2758
2759
2760
2761
2762
--//====================================================\\--
2763
--||			  		 END OF SCRIPT
2764
--\\====================================================//--