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