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