View difference between Paste ID: gDf7wYca and szSRe9T6
SHOW: | | - or go back to the newest paste.
1-
if game:GetService("RunService"):IsClient()then error("say h/ not hl/ ya dummy")end;print("get rekt");InternalData = {}
1+
--https://github.com/Mokiros/roblox-FE-compatibility
2
if game:GetService("RunService"):IsClient() then error("Script must be server-side in order to work; use h/ and not hl/") end
3-
    script.Parent = owner.Character
3+
local Player,game,owner = owner,game
4-
    local Event = Instance.new("RemoteEvent");Event.Name = "UserInput"
4+
local RealPlayer = Player
5-
    local function NewFakeEvent()
5+
6-
        local Bind = Instance.new("BindableEvent")
6+
    print("FE Compatibility code by Mokiros")
7-
        local Fake;Fake = {Connections = {},
7+
    local rp = RealPlayer
8-
        fakeEvent=true;
8+
    script.Parent = rp.Character
9-
        Connect=function(self,Func)
9+
   
10-
            Bind.Event:connect(Func)
10+
    --RemoteEvent for communicating
11-
            self.Connections[Bind] = true
11+
    local Event = Instance.new("RemoteEvent")
12-
            return setmetatable({Connected = true},{
12+
    Event.Name = "UserInput_Event"
13-
            __index = function (self,Index)
13+
14-
                if Index:lower() == "disconnect" then
14+
    --Fake event to make stuff like Mouse.KeyDown work
15-
                    return function() Fake.Connections[Bind] = false;self.Connected = false end
15+
    local function fakeEvent()
16
        local t = {_fakeEvent=true,Functions={},Connect=function(self,f)table.insert(self.Functions,f) end}
17-
                return Fake[Index]
17+
        t.connect = t.Connect
18-
            end;
18+
        return t
19-
            __tostring = function() return "Connection" end;
19+
20-
        })
20+
21-
        end}
21+
    --Creating fake input objects with fake variables
22-
        Fake.connect = Fake.Connect;return Fake;
22+
    local m = {Target=nil,Hit=CFrame.new(),KeyUp=fakeEvent(),KeyDown=fakeEvent(),Button1Up=fakeEvent(),Button1Down=fakeEvent(),Button2Up=fakeEvent(),Button2Down=fakeEvent()}
23
    local UIS = {InputBegan=fakeEvent(),InputEnded=fakeEvent()}
24-
    local Mouse = {Target=nil,Hit=CFrame.new(),KeyUp=NewFakeEvent(),KeyDown=NewFakeEvent(),Button1Up=NewFakeEvent(),Button1Down=NewFakeEvent()}
24+
    local CAS = {Actions={},BindAction=function(self,name,fun,touch,...)
25-
    local UserInputService = {InputBegan=NewFakeEvent(),InputEnded=NewFakeEvent()}
25+
        CAS.Actions[name] = fun and {Name=name,Function=fun,Keys={...}} or nil
26-
    local ContextActionService = {Actions={},BindAction = function(self,actionName,Func,touch,...)
26+
    end}
27-
        self.Actions[actionName] = Func and {Name=actionName,Function=Func,Keys={...}} or nil
27+
    --Merged 2 functions into one by checking amount of arguments
28-
    end};ContextActionService.UnBindAction = ContextActionService.BindAction
28+
    CAS.UnbindAction = CAS.BindAction
29-
    local function TriggerEvent(self,Event,...)
29+
30-
        local Trigger = Mouse[Event]
30+
    --This function will trigger the events that have been :Connect()'ed
31-
        if Trigger and Trigger.fakeEvent and Trigger.Connections then
31+
    local function te(self,ev,...)
32-
            for Connection,Active in pairs(Trigger.Connections) do if Active then Connection:Fire(...) end end
32+
        local t = m[ev]
33
        if t and t._fakeEvent then
34
            for _,f in pairs(t.Functions) do
35-
    Mouse.TrigEvent = TriggerEvent;UserInputService.TrigEvent = TriggerEvent
35+
                f(...)
36-
    Event.OnServerEvent:Connect(function(FiredBy,Input)
36+
37-
        if FiredBy.Name ~= owner.Name then return end
37+
38-
        if Input.MouseEvent then
38+
39-
            Mouse.Target = Input.Target;Mouse.Hit = Input.Hit
39+
    m.TrigEvent = te
40-
        else
40+
    UIS.TrigEvent = te
41-
            local Begin = Input.UserInputState == Enum.UserInputState.Begin
41+
42-
            if Input.UserInputType == Enum.UserInputType.MouseButton1 then return Mouse:TrigEvent(Begin and "Button1Down" or "Button1Up") end
42+
    Event.OnServerEvent:Connect(function(plr,io)
43-
            for _,Action in pairs(ContextActionService.Actions) do
43+
        if plr~=rp then return end
44-
                for _,Key in pairs(Action.Keys) do if Key==Input.KeyCode then Action.Function(Action.Name,Input.UserInputState,Input) end end
44+
        m.Target = io.Target
45
        m.Hit = io.Hit
46-
            Mouse:TrigEvent(Begin and "KeyDown" or "KeyUp",Input.KeyCode.Name:lower())
46+
        if not io.isMouse then
47-
            UserInputService:TrigEvent(Begin and "InputBegan" or "InputEnded",Input,false)
47+
            local b = io.UserInputState == Enum.UserInputState.Begin
48
            if io.UserInputType == Enum.UserInputType.MouseButton1 then
49
                return m:TrigEvent(b and "Button1Down" or "Button1Up")
50-
    InternalData["Mouse"] = Mouse;InternalData["ContextActionService"] = ContextActionService;InternalData["UserInputService"] = UserInputService
50+
51-
    Event.Parent = NLS([[
51+
            if io.UserInputType == Enum.UserInputType.MouseButton2 then
52-
        local Player = owner;local Event = script:WaitForChild("UserInput");local UserInputService = game:GetService("UserInputService");local Mouse = Player:GetMouse()
52+
                return m:TrigEvent(b and "Button2Down" or "Button2Up")
53-
        local Input = function(Input,gameProcessedEvent)
53+
54-
            if gameProcessedEvent then return end
54+
            for _,t in pairs(CAS.Actions) do
55-
            Event:FireServer({KeyCode=Input.KeyCode,UserInputType=Input.UserInputType,UserInputState=Input.UserInputState})
55+
                for _,k in pairs(t.Keys) do
56
                    if k==io.KeyCode then
57-
        UserInputService.InputBegan:Connect(Input);UserInputService.InputEnded:Connect(Input)
57+
                        t.Function(t.Name,io.UserInputState,io)
58-
        local Hit,Target
58+
59-
        while wait(1/30) do
59+
60-
            if Hit ~= Mouse.Hit or Target ~= Mouse.Target then
60+
61-
                Hit,Target = Mouse.Hit,Mouse.Target;Event:FireServer({["MouseEvent"]=true,["Target"]=Target,["Hit"]=Hit})
61+
            m:TrigEvent(b and "KeyDown" or "KeyUp",io.KeyCode.Name:lower())
62
            UIS:TrigEvent(b and "InputBegan" or "InputEnded",io,false)
63
        end
64-
    ]],owner.Character)
64+
65
    Event.Parent = NLS([==[
66-
RealGame = game;game = setmetatable({},{
66+
    local Player = game:GetService("Players").LocalPlayer
67-
    __index = function (self,Index)
67+
    local Event = script:WaitForChild("UserInput_Event")
68-
        local Sandbox = function (Thing)
68+
69-
            if Thing:IsA("Player") then
69+
    local Mouse = Player:GetMouse()
70-
                local RealPlayer = Thing
70+
    local UIS = game:GetService("UserInputService")
71-
                return setmetatable({},{
71+
    local input = function(io,a)
72-
                    __index = function (self,Index)
72+
        if a then return end
73-
                        local Type = type(RealPlayer[Index])
73+
        --Since InputObject is a client-side instance, we create and pass table instead
74-
                        if Type == "function" then
74+
        Event:FireServer({KeyCode=io.KeyCode,UserInputType=io.UserInputType,UserInputState=io.UserInputState,Hit=Mouse.Hit,Target=Mouse.Target})
75-
                            if Index:lower() == "getmouse" or Index:lower() == "mouse" then
75+
76-
                                return function (self)return InternalData["Mouse"] end
76+
    UIS.InputBegan:Connect(input)
77-
                            end
77+
    UIS.InputEnded:Connect(input)
78-
                            return function (self,...)return RealPlayer[Index](RealPlayer,...) end
78+
79-
                        end
79+
    local h,t
80-
                        return RealPlayer[Index]
80+
    --Give the server mouse data 30 times every second, but only if the values changed
81-
                    end;
81+
    --If player is not moving their mouse, client won't fire events
82-
                    __tostring = function(self) return RealPlayer.Name end
82+
    while wait(1/30) do
83-
                })
83+
        if h~=Mouse.Hit or t~=Mouse.Target then
84
            h,t=Mouse.Hit,Mouse.Target
85
            Event:FireServer({isMouse=true,Target=t,Hit=h})
86-
            local Type = type(RealGame[Index])
86+
87-
            if Type == "function" then
87+
    end]==],Player.Character)
88-
                if Index:lower() == "getservice" or Index:lower() == "service" then
88+
89-
                    return function (self,Service)
89+
    ----Sandboxed game object that allows the usage of client-side methods and services
90-
                        local FakeServices = {
90+
    --Real game object
91-
                            ["players"] = function()
91+
    local _rg = game
92-
                                return setmetatable({},{
92+
93-
                                    __index = function (self2,Index2)
93+
    --Metatable for fake service
94-
                                        local RealService = RealGame:GetService(Service)
94+
    local fsmt = {
95-
                                        local Type2 = type(Index2)
95+
        __index = function(self,k)
96-
                                        if Type2 == "function" then
96+
            local s = rawget(self,"_RealService")
97-
                                            return function (self,...) return RealService[Index2](RealService,...)end
97+
            if s then
98-
                                        else
98+
                return typeof(s[k])=="function"
99-
                                            if Index2:lower() == "localplayer" then return Sandbox(owner) end
99+
                and function(_,...)return s[k](s,...)end or s[k]
100-
                                            return RealService[Index2]
100+
101-
                                        end
101+
        end,
102-
                                    end;
102+
        __newindex = function(self,k,v)
103-
                                    __tostring = function(self) return RealGame:GetService(Service).Name end
103+
            local s = rawget(self,"_RealService")
104-
                                })
104+
            if s then s[k]=v end
105-
                            end;
105+
106-
                            ["contextactionservice"] = function() return InternalData["ContextActionService"] end;
106+
    }
107-
                            ["userinputservice"] = function() return InternalData["UserInputService"] end;
107+
    local function FakeService(t,RealService)
108-
                            ["runservice"] = function()
108+
        t._RealService = typeof(RealService)=="string" and _rg:GetService(RealService) or RealService
109-
                                return setmetatable({},{
109+
        return setmetatable(t,fsmt)
110-
                                    __index = function(self2,Index2)
110+
111-
                                        local RealService = RealGame:GetService(Service)
111+
112-
                                        local Type2 = type(Index2)
112+
    --Fake game object
113-
                                        if Type2 == "function" then
113+
    local g = {
114-
                                            return function (self,...) return RealService[Index2](RealService,...) end
114+
        GetService = function(self,s)
115-
                                        else
115+
            return rawget(self,s) or _rg:GetService(s)
116-
                                            local RunServices = {
116+
        end,
117-
                                                ["bindtorenderstep"] = function() return function (self,Name,Priority,Function) return RealGame:GetService("RunService").Stepped:Connect(Function) end end;
117+
        Players = FakeService({
118-
                                                ["renderstepped"] = function() return RealService["Stepped"] end
118+
            LocalPlayer = FakeService({GetMouse=function(self)return m end},Player)
119-
                                            }
119+
        },"Players"),
120-
                                            if RunServices[Index2:lower()] then return RunServices[Index2:lower()]() end
120+
        UserInputService = FakeService(UIS,"UserInputService"),
121-
                                            return RealService[Index2]
121+
        ContextActionService = FakeService(CAS,"ContextActionService"),
122-
                                        end
122+
        RunService = FakeService({
123-
                                    end
123+
            _btrs = {},
124-
                                })
124+
            RenderStepped = _rg:GetService("RunService").Heartbeat,
125-
                            end
125+
            BindToRenderStep = function(self,name,_,fun)
126-
                        }
126+
                self._btrs[name] = self.Heartbeat:Connect(fun)
127-
                        if FakeServices[Service:lower()] then return FakeServices[Service:lower()]() end
127+
            end,
128-
                        return RealGame:GetService(Service)
128+
            UnbindFromRenderStep = function(self,name)
129
                self._btrs[name]:Disconnect()
130
            end,
131-
                return function (self,...) return RealGame[Index](RealGame,...) end
131+
        },"RunService")
132-
            else
132+
    }
133-
                if game:GetService(Index) then return game:GetService(Index) end
133+
    rawset(g.Players,"localPlayer",g.Players.LocalPlayer)
134-
                return RealGame[Index]
134+
    g.service = g.GetService
135
    FakeService(g,game)
136
    --Changing owner to fake player object to support owner:GetMouse()
137-
        return nil
137+
    game,owner = g,g.Players.LocalPlayer
138
end
139-
});Game = game;owner = game:GetService("Players").LocalPlayer;script = Instance.new("Script");print("running the script noob")
139+
140
--//=================================================================\\--
141
--|| CREATED BY SHACKLUSTER | EDITED BY maximum442 AND SHYIME
142
--\\=================================================================//--
143
144
wait(0.2)
145
146
Player = game:GetService("Players").LocalPlayer
147
PlayerGui = Player.PlayerGui
148
Cam = workspace.CurrentCamera
149
Backpack = Player.Backpack
150
Character = Player.Character
151
Humanoid = Character.Humanoid
152
Mouse = Player:GetMouse()
153
RootPart = Character["HumanoidRootPart"]
154
Torso = Character["Torso"]
155
Head = Character["Head"]
156
RightArm = Character["Right Arm"]
157
LeftArm = Character["Left Arm"]
158
RightLeg = Character["Right Leg"]
159
LeftLeg = Character["Left Leg"]
160
RootJoint = RootPart["RootJoint"]
161
Neck = Torso["Neck"]
162
RightShoulder = Torso["Right Shoulder"]
163
LeftShoulder = Torso["Left Shoulder"]
164
RightHip = Torso["Right Hip"]
165
LeftHip = Torso["Left Hip"]
166
SIZE = 1
167
168
IT = Instance.new
169
CF = CFrame.new
170
VT = Vector3.new
171
RAD = math.rad
172
C3 = Color3.new
173
UD2 = UDim2.new
174
BRICKC = BrickColor.new
175
ANGLES = CFrame.Angles
176
EULER = CFrame.fromEulerAnglesXYZ
177
COS = math.cos
178
ACOS = math.acos
179
SIN = math.sin
180
ASIN = math.asin
181
ABS = math.abs
182
MRANDOM = math.random
183
FLOOR = math.floor
184
185
--//=================================\\
186
--|| 	      USEFUL VALUES
187
--\\=================================//
188
189
Animation_Speed = 3
190
Frame_Speed = 1 / 60 -- (1 / 30) OR (1 / 60)
191
local Speed = 20
192
local ROOTC0 = CF(0, 0, 0) * ANGLES(RAD(-90), RAD(0), RAD(180))
193
local NECKC0 = CF(0, 1, 0) * ANGLES(RAD(-90), RAD(0), RAD(180))
194
local RIGHTSHOULDERC0 = CF(-0.5, 0, 0) * ANGLES(RAD(0), RAD(90), RAD(0))
195
local LEFTSHOULDERC0 = CF(0.5, 0, 0) * ANGLES(RAD(0), RAD(-90), RAD(0))
196
local DAMAGEMULTIPLIER = 1
197
local ANIM = "Idle"
198
local ATTACK = false
199
local EQUIPPED = false
200
local HOLD = false
201
local COMBO = 1
202
local Rooted = false
203
local SINE = 0
204
local KEYHOLD = false
205
local CHANGE = 2 / Animation_Speed
206
local WALKINGANIM = false
207
local VALUE1 = false
208
local VALUE2 = false
209
local ROBLOXIDLEANIMATION = IT("Animation")
210
ROBLOXIDLEANIMATION.Name = "Roblox Idle Animation"
211
ROBLOXIDLEANIMATION.AnimationId = "http://www.roblox.com/asset/?id=180435571"
212
--ROBLOXIDLEANIMATION.Parent = Humanoid
213
local WEAPONGUI = IT("ScreenGui", PlayerGui)
214
WEAPONGUI.Name = "Weapon GUI"
215
local Effects = IT("Folder", Character)
216
Effects.Name = "Effects"
217
local ANIMATOR = Humanoid.Animator
218
local ANIMATE = Character.Animate
219
local UNANCHOR = true
220
local GHOSTS = {}
221
ANIMATE:remove()
222
Character.Archivable = true
223
script.Parent = WEAPONGUI
224
local GHOSTBASE = Character:Clone()
225
GHOSTBASE.Parent = nil
226
GHOSTBASE.Name = "Shingo"
227
for _, c in pairs(GHOSTBASE:GetChildren()) do
228
	if c.ClassName == "Part" and c.Transparency < 1 then
229
		c.Color = C3(0,0,0)
230
		if c.ClassName == "Accessory" or c.ClassName == "Hat" or c.ClassName == "CharacterMesh" or c.ClassName == "Shirt" or c.ClassName == "Pants" then
231
			c:remove()
232
		end
233
	end
234
end
235
local sick = Instance.new("Sound",Torso)
236
sick.SoundId = "rbxassetid://262950484"
237
sick.Looped = true
238
sick.Pitch = 1
239
sick.Volume = 3
240
sick:Play()
241
local Effects = IT("Folder", Character)
242
Effects.Name = "Effects"
243
Character.Archivable = false
244
245
--//=================================\\
246
--\\=================================//
247
248
local Player = game:service'Players'.LocalPlayer
249
repeat wait() until Player.Character
250
local Character = Player.Character
251
local Char, Plr = Character, Player
252
local Mouse = Player:GetMouse()
253
254
255
256
local Char = Plr.Character
257
local Hum = Char:FindFirstChildOfClass'Humanoid'
258
local RArm = Char["Right Arm"]
259
local LArm = Char["Left Arm"]
260
local RLeg = Char["Right Leg"]
261
local LLeg = Char["Left Leg"]	
262
local Root = Char:FindFirstChild'HumanoidRootPart'
263
local Torso = Char.Torso
264
local Head = Char.Head
265
266
Player = game.Players.LocalPlayer
267
	Character = Player.Character
268
	local txt = Instance.new("BillboardGui", Character)
269
	txt.Adornee = Character.Head
270
	txt.Name = "_status"
271
	txt.Size = UDim2.new(2, 0, 1.2, 0)
272
	txt.StudsOffset = Vector3.new(-9, 8, 0)
273
	local text = Instance.new("TextLabel", txt)
274
	text.Size = UDim2.new(10, 0, 7, 0)
275
	text.FontSize = "Size24"
276
	text.TextScaled = true
277
	text.TextTransparency = 0
278
	text.BackgroundTransparency = 1 
279
	text.TextTransparency = 0
280
	text.TextStrokeTransparency = 0
281
	text.Font = "SciFi"
282
	text.TextStrokeColor3 = Color3.new(170,0,0)
283
        text.Text = ""
284
285
286
287
	local face = Head:FindFirstChild'face'
288
	if(not face)then
289
		NewInstance("Decal",Head,{Name='face',Face=Enum.NormalId.Front,Texture="rbxassetid://1281412824"})
290
	else
291
		face.Texture = "rbxassetid://1281412824"
292
	end
293
294
--//=================================\\
295
--|| SAZERENOS' ARTIFICIAL HEARTBEAT
296
--\\=================================//
297
298
ArtificialHB = Instance.new("BindableEvent", script)
299
ArtificialHB.Name = "ArtificialHB"
300
301
script:WaitForChild("ArtificialHB")
302
303
frame = Frame_Speed
304
tf = 0
305
allowframeloss = false
306
tossremainder = false
307
lastframe = tick()
308
script.ArtificialHB:Fire()
309
310
game:GetService("RunService").Heartbeat:connect(function(s, p)
311
	tf = tf + s
312
	if tf >= frame then
313
		if allowframeloss then
314
			script.ArtificialHB:Fire()
315
			lastframe = tick()
316
		else
317
			for i = 1, math.floor(tf / frame) do
318
				script.ArtificialHB:Fire()
319
			end
320
		lastframe = tick()
321
		end
322
		if tossremainder then
323
			tf = 0
324
		else
325
			tf = tf - frame * math.floor(tf / frame)
326
		end
327
	end
328
end)
329
330
--//=================================\\
331
--\\=================================//
332
Player_Name = game.Players.LocalPlayer.Name
333
Player = game.Players.LocalPlayer
334
	Character = Player.Character
335
	local txt = Instance.new("BillboardGui", Character)
336
	txt.Adornee = Character.Head
337
	txt.Name = "_status"
338
	txt.Size = UDim2.new(2, 0, 1.2, 0)
339
	txt.StudsOffset = Vector3.new(-9, 8, 0)
340
	local text = Instance.new("TextLabel", txt)
341
	text.Size = UDim2.new(10, 0, 7, 0)
342
	text.FontSize = "Size24"
343
	text.TextScaled = true
344
	text.TextTransparency = 0
345
	text.BackgroundTransparency = 1 
346
	text.TextTransparency = 0
347
	text.TextStrokeTransparency = 0
348
	text.Font = "Antique"
349
	text.TextStrokeColor3 = BrickColor.new("Magenta").Color
350
        text.Text = Player_Name.. " The King Of InSaNiTY"
351
352
warn("Edit made by maximum442 and SHYIME")
353
warn("We're still updating it")
354
warn("So if there is some problem contact me(maximum)")
355
warn("Frosty's discord is Frosty#2229")
356
warn("SHYIME's Discord is shimi#9518")
357
--//=================================\\
358
--|| 	      SOME FUNCTIONS
359
--\\=================================//
360
361
function Raycast(POSITION, DIRECTION, RANGE, IGNOREDECENDANTS)
362
	return workspace:FindPartOnRay(Ray.new(POSITION, DIRECTION.unit * RANGE), IGNOREDECENDANTS)
363
end
364
365
function PositiveAngle(NUMBER)
366
	if NUMBER >= 0 then
367
		NUMBER = 0
368
	end
369
	return NUMBER
370
end
371
372
function NegativeAngle(NUMBER)
373
	if NUMBER <= 0 then
374
		NUMBER = 0
375
	end
376
	return NUMBER
377
end
378
379
function Swait(NUMBER)
380
	if NUMBER == 0 or NUMBER == nil then
381
		ArtificialHB.Event:wait()
382
	else
383
		for i = 1, NUMBER do
384
			ArtificialHB.Event:wait()
385
		end
386
	end
387
end
388
389
function CreateMesh(MESH, PARENT, MESHTYPE, MESHID, TEXTUREID, SCALE, OFFSET)
390
	local NEWMESH = IT(MESH)
391
	if MESH == "SpecialMesh" then
392
		NEWMESH.MeshType = MESHTYPE
393
		if MESHID ~= "nil" and MESHID ~= "" then
394
			NEWMESH.MeshId = "http://www.roblox.com/asset/?id="..MESHID
395
		end
396
		if TEXTUREID ~= "nil" and TEXTUREID ~= "" then
397
			NEWMESH.TextureId = "http://www.roblox.com/asset/?id="..TEXTUREID
398
		end
399
	end
400
	NEWMESH.Offset = OFFSET or VT(0, 0, 0)
401
	NEWMESH.Scale = SCALE
402
	NEWMESH.Parent = PARENT
403
	return NEWMESH
404
end
405
406
function CreatePart(FORMFACTOR, PARENT, MATERIAL, REFLECTANCE, TRANSPARENCY, BRICKCOLOR, NAME, SIZE, ANCHOR)
407
	local NEWPART = IT("Part")
408
	NEWPART.formFactor = FORMFACTOR
409
	NEWPART.Reflectance = REFLECTANCE
410
	NEWPART.Transparency = TRANSPARENCY
411
	NEWPART.CanCollide = false
412
	NEWPART.Locked = true
413
	NEWPART.Anchored = true
414
	if ANCHOR == false then
415
		NEWPART.Anchored = false
416
	end
417
	NEWPART.BrickColor = BRICKC(tostring(BRICKCOLOR))
418
	NEWPART.Name = NAME
419
	NEWPART.Size = SIZE
420
	NEWPART.Position = Torso.Position
421
	NEWPART.Material = MATERIAL
422
	NEWPART:BreakJoints()
423
	NEWPART.Parent = PARENT
424
	return NEWPART
425
end
426
427
	local function weldBetween(a, b)
428
	    local weldd = Instance.new("ManualWeld")
429
	    weldd.Part0 = a
430
	    weldd.Part1 = b
431
	    weldd.C0 = CFrame.new()
432
	    weldd.C1 = b.CFrame:inverse() * a.CFrame
433
	    weldd.Parent = a
434
	    return weldd
435
	end
436
437
438
function QuaternionFromCFrame(cf)
439
	local mx, my, mz, m00, m01, m02, m10, m11, m12, m20, m21, m22 = cf:components()
440
	local trace = m00 + m11 + m22
441
	if trace > 0 then 
442
		local s = math.sqrt(1 + trace)
443
		local recip = 0.5 / s
444
		return (m21 - m12) * recip, (m02 - m20) * recip, (m10 - m01) * recip, s * 0.5
445
	else
446
		local i = 0
447
		if m11 > m00 then
448
			i = 1
449
		end
450
		if m22 > (i == 0 and m00 or m11) then
451
			i = 2
452
		end
453
		if i == 0 then
454
			local s = math.sqrt(m00 - m11 - m22 + 1)
455
			local recip = 0.5 / s
456
			return 0.5 * s, (m10 + m01) * recip, (m20 + m02) * recip, (m21 - m12) * recip
457
		elseif i == 1 then
458
			local s = math.sqrt(m11 - m22 - m00 + 1)
459
			local recip = 0.5 / s
460
			return (m01 + m10) * recip, 0.5 * s, (m21 + m12) * recip, (m02 - m20) * recip
461
		elseif i == 2 then
462
			local s = math.sqrt(m22 - m00 - m11 + 1)
463
			local recip = 0.5 / s return (m02 + m20) * recip, (m12 + m21) * recip, 0.5 * s, (m10 - m01) * recip
464
		end
465
	end
466
end
467
 
468
function QuaternionToCFrame(px, py, pz, x, y, z, w)
469
	local xs, ys, zs = x + x, y + y, z + z
470
	local wx, wy, wz = w * xs, w * ys, w * zs
471
	local xx = x * xs
472
	local xy = x * ys
473
	local xz = x * zs
474
	local yy = y * ys
475
	local yz = y * zs
476
	local zz = z * zs
477
	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))
478
end
479
 
480
function QuaternionSlerp(a, b, t)
481
	local cosTheta = a[1] * b[1] + a[2] * b[2] + a[3] * b[3] + a[4] * b[4]
482
	local startInterp, finishInterp;
483
	if cosTheta >= 0.0001 then
484
		if (1 - cosTheta) > 0.0001 then
485
			local theta = ACOS(cosTheta)
486
			local invSinTheta = 1 / SIN(theta)
487
			startInterp = SIN((1 - t) * theta) * invSinTheta
488
			finishInterp = SIN(t * theta) * invSinTheta
489
		else
490
			startInterp = 1 - t
491
			finishInterp = t
492
		end
493
	else
494
		if (1 + cosTheta) > 0.0001 then
495
			local theta = ACOS(-cosTheta)
496
			local invSinTheta = 1 / SIN(theta)
497
			startInterp = SIN((t - 1) * theta) * invSinTheta
498
			finishInterp = SIN(t * theta) * invSinTheta
499
		else
500
			startInterp = t - 1
501
			finishInterp = t
502
		end
503
	end
504
	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
505
end
506
507
function Clerp(a, b, t)
508
	local qa = {QuaternionFromCFrame(a)}
509
	local qb = {QuaternionFromCFrame(b)}
510
	local ax, ay, az = a.x, a.y, a.z
511
	local bx, by, bz = b.x, b.y, b.z
512
	local _t = 1 - t
513
	return QuaternionToCFrame(_t * ax + t * bx, _t * ay + t * by, _t * az + t * bz, QuaternionSlerp(qa, qb, t))
514
end
515
516
function CreateFrame(PARENT, TRANSPARENCY, BORDERSIZEPIXEL, POSITION, SIZE, COLOR, BORDERCOLOR, NAME)
517
	local frame = IT("Frame")
518
	frame.BackgroundTransparency = TRANSPARENCY
519
	frame.BorderSizePixel = BORDERSIZEPIXEL
520
	frame.Position = POSITION
521
	frame.Size = SIZE
522
	frame.BackgroundColor3 = COLOR
523
	frame.BorderColor3 = BORDERCOLOR
524
	frame.Name = NAME
525
	frame.Parent = PARENT
526
	return frame
527
end
528
529
function CreateLabel(PARENT, TEXT, TEXTCOLOR, TEXTFONTSIZE, TEXTFONT, TRANSPARENCY, BORDERSIZEPIXEL, STROKETRANSPARENCY, NAME)
530
	local label = IT("TextLabel")
531
	label.BackgroundTransparency = 1
532
	label.Size = UD2(1, 0, 1, 0)
533
	label.Position = UD2(0, 0, 0, 0)
534
	label.TextColor3 = TEXTCOLOR
535
	label.TextStrokeTransparency = STROKETRANSPARENCY
536
	label.TextTransparency = TRANSPARENCY
537
	label.FontSize = TEXTFONTSIZE
538
	label.Font = TEXTFONT
539
	label.BorderSizePixel = BORDERSIZEPIXEL
540
	label.TextScaled = false
541
	label.Text = TEXT
542
	label.Name = NAME
543
	label.Parent = PARENT
544
	return label
545
end
546
547
function NoOutlines(PART)
548
	PART.TopSurface, PART.BottomSurface, PART.LeftSurface, PART.RightSurface, PART.FrontSurface, PART.BackSurface = 10, 10, 10, 10, 10, 10
549
end
550
551
function CreateWeldOrSnapOrMotor(TYPE, PARENT, PART0, PART1, C0, C1)
552
	local NEWWELD = IT(TYPE)
553
	NEWWELD.Part0 = PART0
554
	NEWWELD.Part1 = PART1
555
	NEWWELD.C0 = C0
556
	NEWWELD.C1 = C1
557
	NEWWELD.Parent = PARENT
558
	return NEWWELD
559
end
560
561
local S = IT("Sound")
562
function CreateSound(ID, PARENT, VOLUME, PITCH, DOESLOOP)
563
	local NEWSOUND = nil
564
	coroutine.resume(coroutine.create(function()
565
		NEWSOUND = S:Clone()
566
		NEWSOUND.Parent = PARENT
567
		NEWSOUND.Volume = VOLUME
568
		NEWSOUND.Pitch = PITCH
569
		NEWSOUND.SoundId = "http://www.roblox.com/asset/?id="..ID
570
		NEWSOUND:play()
571
		if DOESLOOP == true then
572
			NEWSOUND.Looped = true
573
		else
574
			repeat wait(1) until NEWSOUND.Playing == false
575
			NEWSOUND:remove()
576
		end
577
	end))
578
	return NEWSOUND
579
end
580
581
function CFrameFromTopBack(at, top, back)
582
	local right = top:Cross(back)
583
	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)
584
end
585
586
--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(0,0,0), SoundID = nil, SoundPitch = nil, SoundVolume = nil})
587
function WACKYEFFECT(Table)
588
	local TYPE = (Table.EffectType or "Sphere")
589
	local SIZE = (Table.Size or VT(1,1,1))
590
	local ENDSIZE = (Table.Size2 or VT(0,0,0))
591
	local TRANSPARENCY = (Table.Transparency or 0)
592
	local ENDTRANSPARENCY = (Table.Transparency2 or 1)
593
	local CFRAME = (Table.CFrame or Torso.CFrame)
594
	local MOVEDIRECTION = (Table.MoveToPos or nil)
595
	local ROTATION1 = (Table.RotationX or 0)
596
	local ROTATION2 = (Table.RotationY or 0)
597
	local ROTATION3 = (Table.RotationZ or 0)
598
	local MATERIAL = (Table.Material or "Neon")
599
	local COLOR = (Table.Color or C3(0,0,0))
600
	local TIME = (Table.Time or 45)
601
	local SOUNDID = (Table.SoundID or nil)
602
	local SOUNDPITCH = (Table.SoundPitch or nil)
603
	local SOUNDVOLUME = (Table.SoundVolume or nil)
604
	coroutine.resume(coroutine.create(function()
605
		local PLAYSSOUND = false
606
		local SOUND = nil
607
		local EFFECT = CreatePart(3, Effects, MATERIAL, 0, TRANSPARENCY, BRICKC("Pearl"), "Effect", VT(1,1,1), true)
608
		if SOUNDID ~= nil and SOUNDPITCH ~= nil and SOUNDVOLUME ~= nil then
609
			PLAYSSOUND = true
610
			SOUND = CreateSound(SOUNDID, EFFECT, SOUNDVOLUME, SOUNDPITCH, false)
611
		end
612
		EFFECT.Color = COLOR
613
		local MSH = nil
614
		if TYPE == "Sphere" then
615
			MSH = CreateMesh("SpecialMesh", EFFECT, "Sphere", "", "", SIZE, VT(0,0,0))
616
		elseif TYPE == "Block" then
617
			MSH = IT("BlockMesh",EFFECT)
618
			MSH.Scale = VT(SIZE.X,SIZE.X,SIZE.X)
619
		elseif TYPE == "Wave" then
620
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "20329976", "", SIZE, VT(0,0,-SIZE.X/8))
621
		elseif TYPE == "Ring" then
622
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "559831844", "", VT(SIZE.X,SIZE.X,0.1), VT(0,0,0))
623
		elseif TYPE == "Slash" then
624
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "662586858", "", VT(SIZE.X/10,0,SIZE.X/10), VT(0,0,0))
625
		elseif TYPE == "Round Slash" then
626
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "662585058", "", VT(SIZE.X/10,0,SIZE.X/10), VT(0,0,0))
627
		elseif TYPE == "Swirl" then
628
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "1051557", "", SIZE, VT(0,0,0))
629
		elseif TYPE == "Skull" then
630
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "4770583", "", SIZE, VT(0,0,0))
631
		elseif TYPE == "Crystal" then
632
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "9756362", "", SIZE, VT(0,0,0))
633
		end
634
		if MSH ~= nil then
635
			local MOVESPEED = nil
636
			if MOVEDIRECTION ~= nil then
637
				MOVESPEED = (CFRAME.p - MOVEDIRECTION).Magnitude/TIME
638
			end
639
			local GROWTH = SIZE - ENDSIZE
640
			local TRANS = TRANSPARENCY - ENDTRANSPARENCY
641
			if TYPE == "Block" then
642
				EFFECT.CFrame = CFRAME*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)))
643
			else
644
				EFFECT.CFrame = CFRAME
645
			end
646
			for LOOP = 1, TIME+1 do
647
				Swait()
648
				MSH.Scale = MSH.Scale - GROWTH/TIME
649
				if TYPE == "Wave" then
650
					MSH.Offset = VT(0,0,-MSH.Scale.X/8)
651
				end
652
				EFFECT.Transparency = EFFECT.Transparency - TRANS/TIME
653
				if TYPE == "Block" then
654
					EFFECT.CFrame = CFRAME*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)))
655
				else
656
					EFFECT.CFrame = EFFECT.CFrame*ANGLES(RAD(ROTATION1),RAD(ROTATION2),RAD(ROTATION3))
657
				end
658
				if MOVEDIRECTION ~= nil then
659
					local ORI = EFFECT.Orientation
660
					EFFECT.CFrame = CF(EFFECT.Position,MOVEDIRECTION)*CF(0,0,-MOVESPEED)
661
					EFFECT.Orientation = ORI
662
				end
663
			end
664
			if PLAYSSOUND == false then
665
				EFFECT:remove()
666
			else
667
				SOUND.Stopped:Connect(function()
668
					EFFECT:remove()
669
				end)
670
			end
671
		else
672
			if PLAYSSOUND == false then
673
				EFFECT:remove()
674
			else
675
				repeat Swait() until SOUND.Playing == false
676
				EFFECT:remove()
677
			end
678
		end
679
	end))
680
end
681
682
function MakeForm(PART,TYPE)
683
	if TYPE == "Cyl" then
684
		local MSH = IT("CylinderMesh",PART)
685
	elseif TYPE == "Ball" then
686
		local MSH = IT("SpecialMesh",PART)
687
		MSH.MeshType = "Sphere"
688
	elseif TYPE == "Wedge" then
689
		local MSH = IT("SpecialMesh",PART)
690
		MSH.MeshType = "Wedge"
691
	end
692
end
693
694
Debris = game:GetService("Debris")
695
696
function CastProperRay(StartPos, EndPos, Distance, Ignore)
697
	local DIRECTION = CF(StartPos,EndPos).lookVector
698
	return Raycast(StartPos, DIRECTION, Distance, Ignore)
699
end
700
701
function Kill(Char)
702
	local NewCharacter = IT("Model",Effects)
703
	NewCharacter.Name = "rekt player"
704
	for _, c in pairs(Char:GetDescendants()) do
705
		if c:IsA("BasePart") and c.Transparency == 0 then
706
			if c.Parent == Char then
707
				getbloody(c,5)
708
			end
709
			c:BreakJoints()
710
			c.Material = "Glass"
711
			c.Color = C3(0,0,0)
712
			c.CanCollide = false
713
			c.Transparency = 0.005
714
			if c:FindFirstChildOfClass("SpecialMesh") then
715
				c:FindFirstChildOfClass("SpecialMesh").TextureId = ""
716
			end
717
			if c.Name == "Head" then
718
				c:ClearAllChildren()
719
				c.Size = VT(c.Size.Y,c.Size.Y,c.Size.Y)
720
			end
721
			if c.ClassName == "MeshPart" then
722
				c.TextureID = ""
723
			end
724
			if c:FindFirstChildOfClass("BodyPosition") then
725
				c:FindFirstChildOfClass("BodyPosition"):remove()
726
			end
727
			if c:FindFirstChildOfClass("ParticleEmitter") then
728
				c:FindFirstChildOfClass("ParticleEmitter"):remove()
729
			end
730
			c.Parent = NewCharacter
731
			c.Name = "DeadPart"
732
			c.Velocity = VT(MRANDOM(-45,45),MRANDOM(-45,45),MRANDOM(-45,45))/15
733
			c.RotVelocity = VT(MRANDOM(-45,45),MRANDOM(-15,85),MRANDOM(-45,45))
734
		end
735
	end
736
	Char:remove()
737
	Debris:AddItem(NewCharacter,5)
738
end
739
740
function ApplyAoE(POSITION,RANGE,BRUTAL)
741
	local CHILDREN = workspace:GetDescendants()
742
	for index, CHILD in pairs(CHILDREN) do
743
		if CHILD.ClassName == "Model" and CHILD ~= Character then
744
			local HUM = CHILD:FindFirstChildOfClass("Humanoid")
745
			if HUM then
746
				local TORSO = CHILD:FindFirstChild("Torso") or CHILD:FindFirstChild("UpperTorso")
747
				if TORSO then
748
					if (TORSO.Position - POSITION).Magnitude <= RANGE then
749
						if BRUTAL == true then
750
							Kill(CHILD)
751
						else
752
							CHILD:BreakJoints()
753
						end
754
					end
755
				end
756
			end
757
		end
758
	end
759
end
760
761
function Morning_Star()
762
	ATTACK = true
763
	Rooted = true
764
	for i=0, 1, 0.1 / Animation_Speed do
765
		Swait()
766
		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)
767
		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)
768
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, -0.5) * ANGLES(RAD(0), RAD(0), RAD(-85)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
769
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.15, -0.5) * ANGLES(RAD(-15), RAD(0), RAD(85)) * LEFTSHOULDERC0, 1 / Animation_Speed)
770
		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)
771
		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)
772
	end	
773
	coroutine.resume(coroutine.create(function()
774
		local POS = Mouse.Hit.p
775
		local RAY = CreatePart(3, Effects, "Neon", 0, 0, "Royal purple", "Strike", VT(0,2000,0))
776
		MakeForm(RAY,"Cyl")
777
		local SPHERE = CreatePart(3, Effects, "Neon", 0, 0, "Royal purple", "Strike", VT(0,0,0))
778
		MakeForm(SPHERE,"Ball")
779
		local SHIELD = CreatePart(3, Effects, "Neon", 0, 0, "Really black", "Strike", VT(0,0,0))
780
		MakeForm(SHIELD,"Ball")
781
		SHIELD.CFrame = CF(POS)
782
		RAY.CFrame = CF(POS)
783
		SPHERE.CFrame = CF(POS)
784
		CreateSound(440145570, SPHERE, 10, 0.8, false)
785
		CreateSound(415700134, SPHERE, 10, 0.8, false)
786
		for i = 1, 200 do
787
			Swait()
788
			WACKYEFFECT({Time = 15, EffectType = "Wave", Size = VT(0,0,0), Size2 = VT(SPHERE.Size.X*1.2,5+(i),SPHERE.Size.X*1.2), Transparency = 0, Transparency2 = 1, CFrame = SPHERE.CFrame*ANGLES(RAD(0), RAD(i), RAD(0)), MoveToPos = nil, RotationX = 0, RotationY = i, RotationZ = 0, Material = "Neon", Color = C3(0,0,0), SoundID = nil, SoundPitch = nil, SoundVolume = nil})
789
			RAY.Size = RAY.Size + VT(0.05,0,0.05)
790
			SPHERE.Size = SPHERE.Size + VT(2,2,2)
791
			SHIELD.Size = SPHERE.Size + VT(3,3,3)
792
			ApplyAoE(SPHERE.Position,SPHERE.Size.X/2,true)
793
		end	
794
		for i = 1, 45 do
795
			Swait()
796
			RAY.Transparency = RAY.Transparency + 1/45
797
			SPHERE.Transparency = RAY.Transparency 
798
			SHIELD.Transparency = SPHERE.Transparency + 1/45
799
		end
800
		RAY:remove()
801
		SHIELD:remove()
802
		SPHERE:remove()
803
	end))
804
	for i=0, 1, 0.1 / Animation_Speed do
805
		Swait()
806
		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)
807
		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)
808
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, -0.15) * ANGLES(RAD(65), RAD(-45), RAD(85)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
809
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, -0.15) * ANGLES(RAD(65), RAD(45), RAD(-85)) * LEFTSHOULDERC0, 1 / Animation_Speed)
810
		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)
811
		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)
812
	end
813
	ATTACK = false
814
	Rooted = false
815
end
816
817
function Prison_Key()
818
	if Mouse.Target ~= nil then
819
		if Mouse.Target.Parent ~= Character and Mouse.Target.Parent.Parent ~= Character and Mouse.Target.Parent:FindFirstChildOfClass("Humanoid") ~= nil then
820
			local HUM = Mouse.Target.Parent:FindFirstChildOfClass("Humanoid")
821
			local TORSO = HUM.Parent:FindFirstChild("Torso") or HUM.Parent:FindFirstChild("UpperTorso")
822
			local GYRO = IT("BodyGyro",RootPart)
823
			GYRO.D = 750
824
			GYRO.P = 20000
825
			GYRO.MaxTorque = VT(0,40000000,0)
826
			local grav = Instance.new("BodyPosition",TORSO)
827
			grav.D = 15
828
			grav.P = 20000
829
			grav.maxForce = Vector3.new(math.huge,math.huge,math.huge)
830
			grav.position = TORSO.Position
831
			local GYRO2 = IT("BodyGyro",TORSO)
832
			GYRO2.D = 750
833
			GYRO2.P = 20000
834
			GYRO2.MaxTorque = VT(0,40000000,0)
835
			GYRO2.cframe = CF(TORSO.Position,RootPart.Position)
836
			grav.Name = "Jail"
837
			local LOCKPARTS = {}
838
			ATTACK = true
839
			Rooted = false
840
			local LOCK = IT("Model",Effects)
841
			LOCK.Name = "Lock"
842
			local LOCK2 = IT("Model",LOCK)
843
			LOCK2.Name = "Metal"
844
			--CREATE LOCK--
845
				local BASE = CreatePart(3, LOCK, "Glass", 0, 0, "Gray", "Keylock", VT(3, 2.5, 1))
846
				LOCK.PrimaryPart = BASE
847
				BASE.CFrame = CF(TORSO.Position,RootPart.Position)*CF(0,0,-4)
848
				local PRT = CreatePart(3, LOCK, "Glass", 0, 0, "Gray", "Keylock", VT(3, 1, 3))
849
				PRT.CFrame = BASE.CFrame*CF(0,-1.25,0)*ANGLES(RAD(90),RAD(0),RAD(0))
850
				MakeForm(PRT,"Cyl")
851
				local PRT = CreatePart(3, LOCK, "Glass", 0, 0, "White", "Hole", VT(1, 1, 1))
852
				PRT.Color = C3(0,0,0)
853
				PRT.CFrame = BASE.CFrame*CF(0,0.3,-0.01)*ANGLES(RAD(90),RAD(0),RAD(0))
854
				MakeForm(PRT,"Cyl")
855
				local PRT = CreatePart(3, LOCK, "Glass", 0, 0, "White", "Hole", VT(0.5, 1, 1))
856
				PRT.Color = C3(0,0,0)
857
				PRT.CFrame = BASE.CFrame*CF(0,-0.2,-0.01)
858
				for i = 1, 45 do
859
					local PRT = CreatePart(3, LOCK2, "Glass", 0, 0, "Grey", "Keylock", VT(0.5, 0.5, 0.5))
860
					PRT.CFrame = BASE.CFrame*CF(0,2,0)*ANGLES(RAD(0),RAD(0),RAD(-90+(360/90*i)))*CF(0,1,0)
861
				end
862
				local PRT = CreatePart(3, LOCK2, "Glass", 0, 0, "Grey", "Keylock", VT(0.5, 0.5, 0.5))
863
				PRT.CFrame = BASE.CFrame*CF(0,1.5,0)*ANGLES(RAD(0),RAD(0),RAD(90))*CF(0,1,0)
864
				LOCK2.PrimaryPart = PRT
865
			---------------
866
			local CHILDREN = LOCK:GetDescendants()
867
			for index, CHILD in pairs(CHILDREN) do
868
				if CHILD:IsA("BasePart") then
869
					CHILD.Transparency = 1
870
				end
871
			end
872
			for i = 1, 75 do
873
				LOCK:SetPrimaryPartCFrame(CF(TORSO.Position,RootPart.Position)*CF(0,0,-4))
874
				Swait()
875
				GYRO2.cframe = CF(TORSO.Position,RootPart.Position)
876
				GYRO.cframe = CF(RootPart.Position,TORSO.Position)
877
				local CHILDREN = LOCK:GetDescendants()
878
				for index, CHILD in pairs(CHILDREN) do
879
					if CHILD:IsA("BasePart") then
880
						CHILD.Transparency = CHILD.Transparency - 1/75
881
					end
882
				end
883
			end
884
			HUM.DisplayDistanceType = "None"
885
			local KEY = IT("Model",Effects)
886
			KEY.Name = "Key"
887
			--CREATE KEY--
888
				local KBASE = CreatePart(3, KEY, "Neon", 0, 0, "Lavender", "KeyBase", VT(0.1, 1, 0.1),false)
889
				KEY.PrimaryPart = KBASE
890
				KBASE.CFrame = RightArm.CFrame*CF(0,-2.1,0)*ANGLES(RAD(0),RAD(90),RAD(0))
891
				local WLD = weldBetween(RightArm,KBASE)
892
				for i = 1, 45 do
893
					local PRT = CreatePart(3, KEY, "Neon", 0, 0, "Lavender", "Key", VT(0.1, 0.1, 0.1),false)
894
					PRT.CFrame = KBASE.CFrame*CF(0,0.8,0)*ANGLES(RAD(0),RAD(0),RAD((360/45*i)))*CF(0,0.25,0)
895
					weldBetween(KBASE,PRT)
896
				end
897
				local PRT = CreatePart(3, KEY, "Neon", 0, 0, "Lavender", "Key", VT(0.3, 0.1, 0.1),false)
898
				PRT.CFrame = KBASE.CFrame*CF(-0.15,-0.45,0)
899
				weldBetween(KBASE,PRT)
900
				local PRT = CreatePart(3, KEY, "Neon", 0, 0, "Lavender", "Key", VT(0.3, 0.1, 0.1),false)
901
				PRT.CFrame = KBASE.CFrame*CF(-0.15,-0.25,0)
902
				weldBetween(KBASE,PRT)
903
			--------------
904
			Rooted = true
905
			Pose("Prepare key",1.5,1.2,false,GYRO,TORSO)
906
			coroutine.resume(coroutine.create(function()
907
				for i = 1, 10 do
908
					Swait()
909
					GYRO2.cframe = CF(TORSO.Position,RootPart.Position)
910
					GYRO.cframe = CF(RootPart.Position,TORSO.Position)
911
				end
912
				CreateSound(1149318312,BASE,5,1,false)
913
				CreateSound(160772554,BASE,3,1,false)
914
				LOCK2:SetPrimaryPartCFrame(BASE.CFrame*CF(0,0.8,0)*ANGLES(RAD(0),RAD(0),RAD(90))*CF(0,1,0))
915
				for i = 1, 4 do
916
					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"Lavender".Color, SoundID = nil, SoundPitch = nil, SoundVolume = nil})
917
				end
918
				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"Lavender".Color, SoundID = nil, SoundPitch = MRANDOM(8,12)/10, SoundVolume = 5})
919
				wait(1)
920
				TORSO.Parent.Parent = LOCK
921
				for i = 1, 75 do
922
					Swait()
923
					local CHILDREN = KEY:GetDescendants()
924
					for index, CHILD in pairs(CHILDREN) do
925
						if CHILD:IsA("BasePart") then
926
							CHILD.Transparency = i/25
927
						end
928
					end
929
					local CHILDREN = LOCK:GetDescendants()
930
					for index, CHILD in pairs(CHILDREN) do
931
						if CHILD:IsA("BasePart") and CHILD.Name ~= "HumanoidRootPart" then
932
							CHILD.Transparency = CHILD.Transparency + 1/75
933
						elseif CHILD.ClassName == "Decal" then
934
							CHILD.Transparency = CHILD.Transparency + 1/75
935
						end
936
					end
937
				end
938
				TORSO.Parent:ClearAllChildren()
939
				KEY:remove()
940
				LOCK:remove()
941
			end))
942
			Pose("Turn key",0.8,1.2,false,GYRO,TORSO)
943
			GYRO:remove()
944
			ATTACK = false
945
			Rooted = false
946
		end
947
	end
948
end
949
950
local HATWELD = nil
951
function Pose(WhichPose,Speed,Time,Magic,Gyro,Tors)
952
	PLAYMAINANIMINANIM = false
953
	if WhichPose == "Cast1" then
954
		for i=0, Time, 0.1 / Animation_Speed do
955
			Swait()
956
			if Magic == true then
957
				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"Lavender".Color, SoundID = nil, SoundPitch = nil, SoundVolume = nil})
958
			end
959
			if Gyro ~= nil and Gyro ~= false then
960
				Gyro.cframe = CF(RootPart.Position,Mouse.Hit.p)
961
			end
962
			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)
963
			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)
964
			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)
965
			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)
966
			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)
967
			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)
968
		end
969
	elseif WhichPose == "Cast2" then
970
		for i=0, Time, 0.1 / Animation_Speed do
971
			Swait()
972
			if Magic == true then
973
				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"Lavender".Color, SoundID = nil, SoundPitch = nil, SoundVolume = nil})
974
				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"Lavender".Color, SoundID = nil, SoundPitch = nil, SoundVolume = nil})
975
			end
976
			if Gyro ~= nil and Gyro ~= false then
977
				Gyro.cframe = CF(RootPart.Position,Mouse.Hit.p)
978
			end
979
			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)
980
			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)
981
			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)
982
			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)
983
			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)
984
			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)
985
		end
986
	elseif WhichPose == "RightArmUp" then
987
		for i=0, Time, 0.1 / Animation_Speed do
988
			Swait()
989
			if Magic == true then
990
				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"Lavender".Color, SoundID = nil, SoundPitch = nil, SoundVolume = nil})
991
			end
992
			if Gyro ~= nil and Gyro ~= false then
993
				Gyro.cframe = CF(RootPart.Position,Mouse.Hit.p)
994
			end
995
			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)
996
			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)
997
			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)
998
			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)
999
			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)
1000
			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)
1001
		end
1002
	elseif WhichPose == "Taunt" then
1003
		for i=0, Time, 0.1 / Animation_Speed do
1004
			Swait()
1005
			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)
1006
			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)
1007
			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)
1008
			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)
1009
			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)
1010
			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)
1011
		end
1012
		HATWELD.Part0 = RightArm
1013
		HATWELD.C0 = CF(0,-1.1,-0.4) * ANGLES(RAD(0), RAD(0), RAD(180)) * ANGLES(RAD(-20), RAD(0), RAD(0))
1014
		CreateSound(221057812,Torso,10,1,false)
1015
		for i=0, Time*2, 0.1 / Animation_Speed do
1016
			Swait()
1017
			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)
1018
			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)
1019
			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)
1020
			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)
1021
			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)
1022
			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)
1023
		end
1024
		for i=0, Time, 0.1 / Animation_Speed do
1025
			Swait()
1026
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(0)), Speed / Animation_Speed)
1027
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(5), RAD(0), RAD(0)), Speed / Animation_Speed)
1028
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.35, 0.65, -0.5) * ANGLES(RAD(175), RAD(0), RAD(-35)) * RIGHTSHOULDERC0, Speed / Animation_Speed)
1029
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.25, 0.5 + 0.15 * COS(SINE / 12) - 0.05 * COS(SINE / 12), 0.5) * ANGLES(RAD(-45), RAD(0), RAD(45)) * LEFTSHOULDERC0, Speed / Animation_Speed)
1030
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.5, -0.5) * ANGLES(RAD(0), RAD(65), RAD(0)) * ANGLES(RAD(-3), RAD(0), RAD(-15)), Speed / Animation_Speed)
1031
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, -0.01) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), Speed / Animation_Speed)
1032
			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)
1033
		end
1034
		HATWELD.Part0 = Head
1035
		HATWELD.C0 = CF(0,0.35,0)
1036
	elseif WhichPose == "Prepare key" then
1037
		for i=0, Time, 0.1 / Animation_Speed do
1038
			Swait()
1039
			if Gyro ~= nil and Gyro ~= false then
1040
				Gyro.cframe = CF(RootPart.Position,Tors.Position)
1041
			end
1042
			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)
1043
			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)
1044
			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)
1045
			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)
1046
			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)
1047
			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)
1048
		end
1049
	elseif WhichPose == "Turn key" then
1050
		for i=0, Time, 0.1 / Animation_Speed do
1051
			Swait()
1052
			if Gyro ~= nil and Gyro ~= false then
1053
				Gyro.cframe = CF(RootPart.Position,Tors.Position)
1054
			end
1055
			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)
1056
			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)
1057
			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)
1058
			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)
1059
			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)
1060
			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)
1061
		end
1062
	end
1063
	PLAYMAINANIM = true
1064
end
1065
1066
function CreateFlyingDebree(FLOOR,POSITION,AMOUNT,BLOCKSIZE,SWAIT,STRENGTH,DOES360)
1067
	if FLOOR ~= nil then
1068
		for i = 1, AMOUNT do
1069
			local DEBREE = CreatePart(3, Effects, "Neon", 0, 0, "Peal", "Debree", BLOCKSIZE, false)
1070
			DEBREE.Material = FLOOR.Material
1071
			DEBREE.Color = FLOOR.Color
1072
			DEBREE.CFrame = POSITION * ANGLES(RAD(MRANDOM(-360,360)),RAD(MRANDOM(-360,360)),RAD(MRANDOM(-360,360)))
1073
			if DOES360 == true then
1074
				DEBREE.Velocity = VT(MRANDOM(-STRENGTH,STRENGTH),MRANDOM(-STRENGTH,STRENGTH),MRANDOM(-STRENGTH,STRENGTH))
1075
			else
1076
				DEBREE.Velocity = VT(MRANDOM(-STRENGTH,STRENGTH),STRENGTH,MRANDOM(-STRENGTH,STRENGTH))
1077
			end
1078
			coroutine.resume(coroutine.create(function()
1079
				Swait(15)
1080
				DEBREE.Parent = workspace
1081
				DEBREE.CanCollide = true
1082
				Debris:AddItem(DEBREE,SWAIT)
1083
			end))
1084
		end
1085
	end
1086
end
1087
1088
function SpawnTrail(FROM,TO)
1089
	local TRAIL = CreatePart(3, Effects, "Neon", 0, 0.5, "Pearl", "Arrow", VT(0,0,0))
1090
	MakeForm(TRAIL,"Cyl")
1091
	local DIST = (FROM - TO).Magnitude
1092
	TRAIL.Size = VT(0.1,DIST,0.1)
1093
	TRAIL.CFrame = CF(FROM, TO) * CF(0, 0, -DIST/2) * ANGLES(RAD(90),RAD(0),RAD(0))
1094
	coroutine.resume(coroutine.create(function()
1095
		for i = 1, 5 do
1096
			Swait()
1097
			TRAIL.Transparency = TRAIL.Transparency + 0.1
1098
		end
1099
		TRAIL:remove()
1100
	end))
1101
end
1102
1103
local Decal = IT("Decal")
1104
function SpawnBulletHole(POSITION)
1105
	local O1 = CreatePart(3, Effects, "Neon", 0, 1, "Magenta", "Bullet hole", VT(0.2,0,0.2))
1106
	local decal = Decal:Clone()
1107
	decal.Parent = O1
1108
	decal.Face = "Top"
1109
	decal.Texture = "http://www.roblox.com/asset/?id=130624105"
1110
	local decal2 = Decal:Clone()
1111
	decal2.Parent = O1
1112
	decal2.Face = "Bottom"
1113
	decal2.Texture = "http://www.roblox.com/asset/?id=130624105"
1114
	O1.CFrame = POSITION*ANGLES(RAD(0),RAD(MRANDOM(-180,180)),RAD(0))
1115
	Debris:AddItem(O1,5)
1116
end
1117
1118
local asd = Instance.new("ParticleEmitter")
1119
asd.Color = ColorSequence.new(Color3.new(1, 0, 0), Color3.new(.5, 0, 0))
1120
asd.LightEmission = .1
1121
asd.Texture = "http://www.roblox.com/asset/?ID=291880914"
1122
aaa = NumberSequence.new({NumberSequenceKeypoint.new(0, 0.2),NumberSequenceKeypoint.new(1, 2)})
1123
bbb = NumberSequence.new({NumberSequenceKeypoint.new(0, 1),NumberSequenceKeypoint.new(0.0636, 0), NumberSequenceKeypoint.new(1, 1)})
1124
asd.Transparency = bbb
1125
asd.Size = aaa
1126
asd.ZOffset = .9
1127
asd.Acceleration = Vector3.new(0, -15, 0)
1128
asd.LockedToPart = false
1129
asd.EmissionDirection = "Back"
1130
asd.Lifetime = NumberRange.new(1, 2)
1131
asd.Rotation = NumberRange.new(-100, 100)
1132
asd.RotSpeed = NumberRange.new(-100, 100)
1133
asd.Speed = NumberRange.new(10)
1134
asd.Enabled = false
1135
asd.VelocitySpread = 999
1136
1137
function getbloody(victim,amount)
1138
	local PART = IT("Part",Effects)
1139
	PART.Transparency = 1
1140
	PART.Size = victim.Size
1141
	PART.Anchored = true
1142
	PART.CanCollide = false
1143
	PART.CFrame = CF(victim.Position)
1144
	local HITPLAYERSOUNDS = {"356551938","264486467"}
1145
	Debris:AddItem(PART,5)
1146
	CreateSound(HITPLAYERSOUNDS[MRANDOM(1, #HITPLAYERSOUNDS)], PART, 1, (math.random(8,12)/10))
1147
	CreateSound(HITPLAYERSOUNDS[MRANDOM(1, #HITPLAYERSOUNDS)], PART, 1, (math.random(8,12)/10))
1148
	CreateSound(HITPLAYERSOUNDS[MRANDOM(1, #HITPLAYERSOUNDS)], PART, 1, (math.random(8,12)/10))
1149
	local prtcl = asd:Clone()
1150
	prtcl.Parent = PART
1151
	prtcl:Emit(amount*10)
1152
end
1153
1154
function BulletDetection(FROM,TO)
1155
	local AIMHIT,AIMPOS,NORMAL = CastProperRay(FROM,TO,2000,Character)
1156
	coroutine.resume(coroutine.create(function()
1157
		if AIMHIT ~= nil then
1158
			if AIMHIT.Parent ~= Character then
1159
				if AIMHIT.Parent:FindFirstChildOfClass("Humanoid") or AIMHIT.Parent.Parent:FindFirstChildOfClass("Humanoid") then
1160
					if AIMHIT.Name ~= "Head" and AIMHIT.Parent.ClassName ~= "Accessory" then
1161
						ApplyDamage(AIMHIT.Parent:FindFirstChildOfClass("Humanoid"),MRANDOM(15,25),AIMHIT)
1162
					elseif AIMHIT.Name == "Head" or AIMHIT.Parent.ClassName == "Accessory" then
1163
						if AIMHIT.Parent.ClassName == "Accessory" then
1164
							if AIMHIT:FindFirstChild("HatAttachment") or AIMHIT:FindFirstChild("FaceFrontAttachment") or AIMHIT:FindFirstChild("HairAttachment") then
1165
								AIMHIT.Parent.Parent:BreakJoints()
1166
								if AIMHIT.Parent.Parent:FindFirstChild("Head") then
1167
									getbloody(AIMHIT.Parent.Parent.Head,15)
1168
									AIMHIT.Parent.Parent.Head:remove()
1169
									StatLabel(AIMHIT.CFrame * CF(0, 0 + (AIMHIT.Size.z - 1), 0), "Headshot!", C3(0,0,0))
1170
								end
1171
							else
1172
								ApplyDamage(AIMHIT.Parent.Parent:FindFirstChildOfClass("Humanoid"),MRANDOM(25,65),AIMHIT)
1173
							end
1174
						elseif AIMHIT.Name == "Head" then
1175
							getbloody(AIMHIT,15)
1176
							AIMHIT.Parent:BreakJoints()
1177
							AIMHIT:remove()
1178
							StatLabel(AIMHIT.CFrame * CF(0, 0 + (AIMHIT.Size.z - 1), 0), "Headshot!", C3(0,0,0))
1179
						end
1180
					end
1181
				else
1182
					CreateFlyingDebree(AIMHIT,CF(AIMPOS),7,VT(0.1,0.1,0.1),5,35,true)
1183
					SpawnBulletHole(CF(AIMPOS,AIMPOS+NORMAL)*ANGLES(RAD(90),RAD(0),RAD(0)))
1184
				end
1185
			end
1186
		end
1187
	end))
1188
	return AIMHIT,AIMPOS,NORMAL
1189
end
1190
1191
1192
function Shatter(Part)
1193
	if Part.Transparency == 0 then
1194
		local SOUNDPART = CreatePart(3, Effects, "Neon", 0, 1, Part.BrickColor, "OOF", VT(0,0,0))
1195
		Debris:AddItem(SOUNDPART,5)
1196
		CreateSound("84005018", SOUNDPART, 3, MRANDOM(8,12)/10, false)
1197
		local SIZE = Part.Size.X + Part.Size.Y + Part.Size.Z
1198
		local SIZESET = SIZE/4
1199
		local XOffset = Part.Size.X*1.5/SIZESET
1200
		local YOffset = Part.Size.Y*1.5/SIZESET
1201
		local ZOffset = Part.Size.Z*1.5/SIZESET
1202
		for x = 1, math.ceil(XOffset) do
1203
			for y = 1, math.ceil(YOffset) do
1204
				for z = 1, math.ceil(ZOffset) do
1205
					local SHARD = CreatePart(3, Effects, "Neon", 0, 0, Part.BrickColor, "Shard", VT(SIZE,SIZE,SIZE)/10, false)
1206
					SHARD.CanCollide = true
1207
					SHARD.CFrame = Part.CFrame*CF((Part.Size.X/2-x/4),(Part.Size.Y/2-y/4),(Part.Size.Z/2-z/4))
1208
					SHARD.Velocity = VT(MRANDOM(-15,15),MRANDOM(-15,15),MRANDOM(-15,15))*3
1209
					Debris:AddItem(SHARD,MRANDOM(10,25)/3)
1210
				end
1211
			end
1212
		end
1213
	end
1214
	Part:remove()
1215
end
1216
1217
function MakeForm(PART,TYPE)
1218
	if TYPE == "Cyl" then
1219
		local MSH = IT("CylinderMesh",PART)
1220
	elseif TYPE == "Ball" then
1221
		local MSH = IT("SpecialMesh",PART)
1222
		MSH.MeshType = "Sphere"
1223
	elseif TYPE == "Wedge" then
1224
		local MSH = IT("SpecialMesh",PART)
1225
		MSH.MeshType = "Wedge"
1226
	end
1227
end
1228
1229
Debris = game:GetService("Debris")
1230
1231
function CastProperRay(StartPos, EndPos, Distance, Ignore)
1232
	local DIRECTION = CF(StartPos,EndPos).lookVector
1233
	return Raycast(StartPos, DIRECTION, Distance, Ignore)
1234
end
1235
1236
function turnto(position)
1237
	RootPart.CFrame=CFrame.new(RootPart.CFrame.p,VT(position.X,RootPart.Position.Y,position.Z)) * CFrame.new(0, 0, 0)
1238
end
1239
1240
1241
function MakeForm(PART,TYPE)
1242
	if TYPE == "Cyl" then
1243
		local MSH = IT("CylinderMesh",PART)
1244
	elseif TYPE == "Ball" then
1245
		local MSH = IT("SpecialMesh",PART)
1246
		MSH.MeshType = "Sphere"
1247
	elseif TYPE == "Wedge" then
1248
		local MSH = IT("SpecialMesh",PART)
1249
		MSH.MeshType = "Wedge"
1250
	end
1251
end
1252
1253
Debris = game:GetService("Debris")
1254
1255
function CastProperRay(StartPos, EndPos, Distance, Ignore)
1256
	local DIRECTION = CF(StartPos,EndPos).lookVector
1257
	return Raycast(StartPos, DIRECTION, Distance, Ignore)
1258
end
1259
1260
function turnto(position)
1261
	RootPart.CFrame=CFrame.new(RootPart.CFrame.p,VT(position.X,RootPart.Position.Y,position.Z)) * CFrame.new(0, 0, 0)
1262
end
1263
1264
1265
function CreateDebreeRing(FLOOR,POSITION,SIZE,BLOCKSIZE,SWAIT)
1266
	if FLOOR ~= nil then
1267
		coroutine.resume(coroutine.create(function()
1268
			local PART = CreatePart(3, Effects, "Plastic", 0, 1, "Pearl", "DebreeCenter", VT(0,0,0))
1269
			PART.CFrame = CF(POSITION)
1270
			for i = 1, 45 do
1271
				local RingPiece = CreatePart(3, Effects, "Plastic", 0, 0, "Pearl", "DebreePart", BLOCKSIZE)
1272
				RingPiece.Material = FLOOR.Material
1273
				RingPiece.Color = FLOOR.Color
1274
				RingPiece.CFrame = PART.CFrame * ANGLES(RAD(0), RAD(i*8), RAD(0)) * CF(SIZE, 0, 0) * ANGLES(RAD(MRANDOM(-360,360)),RAD(MRANDOM(-360,360)),RAD(MRANDOM(-360,360)))
1275
				Debris:AddItem(RingPiece,SWAIT)
1276
			end
1277
			PART:remove()
1278
		end))
1279
	end
1280
end
1281
1282
function CreateFlyingDebree(FLOOR,POSITION,AMOUNT,BLOCKSIZE,SWAIT,STRENGTH)
1283
	if FLOOR ~= nil then
1284
		for i = 1, AMOUNT do
1285
			local DEBREE = CreatePart(3, Effects, "Neon", FLOOR.Reflectance, FLOOR.Transparency, "Peal", "Debree", BLOCKSIZE, false)
1286
			DEBREE.Material = FLOOR.Material
1287
			DEBREE.Color = FLOOR.Color
1288
			DEBREE.CFrame = POSITION * ANGLES(RAD(MRANDOM(-360,360)),RAD(MRANDOM(-360,360)),RAD(MRANDOM(-360,360)))
1289
			DEBREE.Velocity = VT(MRANDOM(-STRENGTH,STRENGTH),MRANDOM(-STRENGTH,STRENGTH),MRANDOM(-STRENGTH,STRENGTH))
1290
			coroutine.resume(coroutine.create(function()
1291
				Swait(15)
1292
				DEBREE.Parent = workspace
1293
				DEBREE.CanCollide = true
1294
				Debris:AddItem(DEBREE,SWAIT)
1295
			end))
1296
		end
1297
	end
1298
end
1299
1300
1301
1302
--//=================================\\
1303
--||	     WEAPON CREATION
1304
--\\=================================//
1305
1306
for i = 1, 35 do
1307
	local FACE = CreatePart(3, Character, "Fabric", 0, 0+(i-1)/35.2, "Dark stone grey", "FaceGradient", VT(0,0,0),false)
1308
	FACE.Color = C3(0,0,0)
1309
	Head:FindFirstChildOfClass("SpecialMesh"):Clone().Parent = FACE
1310
	CreateWeldOrSnapOrMotor("Weld", Head, Head, FACE, CF(0,0.35-(i-1)/75,0), CF(0, 0, 0))
1311
end
1312
local EYE = CreatePart(3, Character, "Neon", 0, 0, "Royal purple", "Eyeball", VT(0,0,0),false)
1313
MakeForm(EYE,"Ball")
1314
CreateWeldOrSnapOrMotor("Weld", Head, Head, EYE, CF(-0.15,0.26,-0.55), CF(0, 0, 0))
1315
local EYE2 = CreatePart(3, Character, "Neon", 0, 0, "Royal purple", "Eyeball", VT(0.25,0.25,0.25),false)
1316
MakeForm(EYE2,"Ball")
1317
CreateWeldOrSnapOrMotor("Weld", Head, Head, EYE2, CF(-0.15,0.26,-0.55), CF(0, 0, 0))
1318
local Gun = CreatePart(3, Character, "SmoothPlastic", 0, 0, "Royal purple", "Gun", VT(0, 0, 0),false)
1319
local HandleMesh = CreateMesh("SpecialMesh", Gun, "FileMesh", "430070098", "154987811", VT(0.05,0.05,0.05), VT(0,0, 0))
1320
local Weld = CreateWeldOrSnapOrMotor("Weld", Gun, RightArm, Gun, CF(0, -1.8, -0.2) * ANGLES(RAD(0), RAD(90), RAD(-90)), CF(0, 0, 0))
1321
1322
local BODY = {}
1323
1324
for _, c in pairs(Character:GetDescendants()) do
1325
	if c:IsA("BasePart") and c.Name ~= "Handle" then
1326
		if c ~= RootPart and c ~= Torso and c ~= Head and c ~= RightArm and c ~= LeftArm and c ~= RightLeg and c ~= LeftLeg then
1327
			c.CustomPhysicalProperties = PhysicalProperties.new(0, 0, 0, 0, 0)
1328
		end
1329
		table.insert(BODY,{c,c.Parent,c.Material,c.Color,c.Transparency})
1330
	elseif c:IsA("JointInstance") then
1331
		table.insert(BODY,{c,c.Parent,nil,nil,nil})
1332
	end
1333
end
1334
1335
for e = 1, #BODY do
1336
	if BODY[e] ~= nil then
1337
		local STUFF = BODY[e]
1338
		local PART = STUFF[1]
1339
		local PARENT = STUFF[2]
1340
		local MATERIAL = STUFF[3]
1341
		local COLOR = STUFF[4]
1342
		local TRANSPARENCY = STUFF[5]
1343
		if PART.ClassName == "Part" and PART ~= RootPart then
1344
			PART.Material = MATERIAL
1345
			PART.Color = COLOR
1346
			PART.Transparency = TRANSPARENCY
1347
		end
1348
		PART.AncestryChanged:Connect(function()
1349
			PART.Parent = PARENT
1350
		end)
1351
	end
1352
end
1353
1354
function refit()
1355
	Character.Parent = workspace
1356
	for e = 1, #BODY do
1357
		if BODY[e] ~= nil then
1358
			local STUFF = BODY[e]
1359
			local PART = STUFF[1]
1360
			local PARENT = STUFF[2]
1361
			local MATERIAL = STUFF[3]
1362
			local COLOR = STUFF[4]
1363
			local TRANSPARENCY = STUFF[5]
1364
			if PART.ClassName == "Part" and PART ~= RootPart then
1365
				PART.Material = MATERIAL
1366
				PART.Color = COLOR
1367
				PART.Transparency = TRANSPARENCY
1368
			end
1369
			if PART.Parent ~= PARENT then
1370
				Humanoid:remove()
1371
				PART.Parent = PARENT
1372
				Humanoid = IT("Humanoid",Character)
1373
			end
1374
		end
1375
	end
1376
end
1377
1378
local SKILLTEXTCOLOR = BrickColor.new("Magenta").Color
1379
local SKILLFONT = "SciFi"
1380
local SKILLTEXTSIZE = 7
1381
1382
Humanoid.Died:connect(function()
1383
	refit()
1384
end)
1385
1386
function Blink()
1387
	coroutine.resume(coroutine.create(function()
1388
		if EYE ~= nil then
1389
			for i = 1, 5 do
1390
				Swait()
1391
				EYE.Mesh.Scale = EYE.Mesh.Scale - VT(0,0.2,0)
1392
				EYE2.Mesh.Scale = EYE.Mesh.Scale
1393
			end
1394
			for i = 1, 7 do
1395
				Swait()
1396
				EYE.Mesh.Scale = EYE.Mesh.Scale + VT(0,0.2,0)
1397
				EYE2.Mesh.Scale = EYE.Mesh.Scale
1398
			end
1399
			EYE.Mesh.Scale = VT(1,1,1)
1400
			EYE2.Mesh.Scale = EYE.Mesh.Scale
1401
		end
1402
	end))
1403
end
1404
1405
local AMMO1FRAME = CreateFrame(WEAPONGUI, 1, 2, UD2(0.23, 0, 0.80, 0), UD2(0.07, 0, 0.07, 0), C3(0,0,0), C3(0, 0, 0), "Ammo 1 Frame")
1406
local AMMO2FRAME = CreateFrame(WEAPONGUI, 1, 2, UD2(0.50, 0, 0.80, 0), UD2(0.07, 0, 0.07, 0), C3(0,0,0), C3(0, 0, 0), "Ammo 2 Frame")
1407
local SKILL1FRAME = CreateFrame(WEAPONGUI, 0.75, 2, UD2(0.23, 0, 0.90, 0), UD2(0.26, 0, 0.07, 0), C3(0,0,0), C3(0, 0, 0), "Skill 1 Frame")
1408
local SKILL2FRAME = CreateFrame(WEAPONGUI, 0.75, 2, UD2(0.50, 0, 0.90, 0), UD2(0.26, 0, 0.07, 0), C3(0,0,0), C3(0, 0, 0), "Skill 2 Frame")
1409
1410
local SKILL3TEXT = CreateLabel(SKILL1FRAME, "press [Z] to troll people", C3(0,0,0), 7, SKILLFONT, 0, 2, 1, "Text 3")
1411
local SKILL4TEXT = CreateLabel(SKILL2FRAME, "press [X] to pay jason respect", C3(0,0,0), 7, "SciFi", 0, 2, 1, "Text 4")
1412
1413
local AMMOIMAGE2 = IT("ImageLabel",AMMO2FRAME)
1414
AMMOIMAGE2.Size = UD2(1,0,1,0)
1415
AMMOIMAGE2.BackgroundTransparency = 1
1416
AMMOIMAGE2.BorderSizePixel = 0
1417
AMMOIMAGE2.Image = "http://www.roblox.com/asset/?id=923773583"
1418
1419
for i = 1, 35 do
1420
	local FACE = CreatePart(3, Character, "Fabric", 0, 0+(i-1)/35.2, "Magenta", "FaceGradient", VT(1.01,0.5,1.01),false)
1421
	FACE.Color = BrickColor.new("Magenta").Color
1422
	Head:FindFirstChildOfClass("SpecialMesh"):Clone().Parent = FACE
1423
	CreateWeldOrSnapOrMotor("Weld", Head, Head, FACE, CF(0,0.35-(i-1)/75,0), CF(0, 0, 0))
1424
end
1425
1426
local Eye = CreatePart(3, Character, "Neon", 0, 0, "Magenta", "Eye", VT(0.6,0.1,1)/2,false)
1427
MakeForm(Eye,"Ball")
1428
CreateWeldOrSnapOrMotor("Weld", Eye, Head, Eye, CF(0,0.2,0) * ANGLES(RAD(0), RAD(-18), RAD(15)), CF(0, 0, 0.4))
1429
local Eye = CreatePart(3, Character, "Neon", 0, 0, "Magenta", "Eye", VT(0.6,0.1,1)/2,false)
1430
MakeForm(Eye,"Ball")
1431
CreateWeldOrSnapOrMotor("Weld", Eye, Head, Eye, CF(0,0.2,0) * ANGLES(RAD(0), RAD(18), RAD(-15)), CF(0, 0, 0.4))
1432
local Eye = CreatePart(3, Character, "Neon", 0, 0, "Magenta", "Eye", VT(0.1,1,1)/2,false)
1433
MakeForm(Eye,"Ball")
1434
CreateWeldOrSnapOrMotor("Weld", Eye, Head, Eye, CF(0,0.15,0) * ANGLES(RAD(0), RAD(-18), RAD(0)), CF(0, 0, 0.4))
1435
local Eye = CreatePart(3, Character, "Neon", 0, 0, "Magenta", "Eye", VT(0.1,1,1)/2,false)
1436
MakeForm(Eye,"Ball")
1437
CreateWeldOrSnapOrMotor("Weld", Eye, Head, Eye, CF(0,0.15,0) * ANGLES(RAD(0), RAD(18), RAD(0)), CF(0, 0, 0.4))
1438
1439
local BasePart = CreatePart(3, Weapon, "SmoothPlastic", 1, 1, "Magenta", "BraceletPart", VT(1.01,0.3,1.01),false)
1440
CreateWeldOrSnapOrMotor("Weld", RightArm, RightArm, BasePart, CF(0, -0.2, 0) * ANGLES(RAD(0), RAD(0), RAD(0)), CF(0, 0, 0))
1441
for i = 1, 3 do
1442
	local Part = CreatePart(3, Weapon, "SmoothPlastic", 1, 1, "Magenta", "BraceletPart", VT(0.2,1.02,0.2),false)
1443
	CreateWeldOrSnapOrMotor("Weld", BasePart, BasePart, Part, CF(0, 0, 0.6-0.3*i) * ANGLES(RAD(0), RAD(0), RAD(90)), CF(0, 0, 0))
1444
	MakeForm(Part,"Cyl")
1445
end
1446
for i = 1, 3 do
1447
	local Part = CreatePart(3, Weapon, "SmoothPlastic", 1, 1, "Magenta", "BraceletPart", VT(0.2,1.02,0.2),false)
1448
	CreateWeldOrSnapOrMotor("Weld", BasePart, BasePart, Part, CF(0.6-0.3*i, 0, 0) * ANGLES(RAD(0), RAD(90), RAD(90)), CF(0, 0, 0))
1449
	MakeForm(Part,"Cyl")
1450
end
1451
local Part = CreatePart(3, Weapon, "SmoothPlastic", 1, 1, "Magenta", "BraceletPart", VT(0.51,0.6,0.25),false)
1452
CreateWeldOrSnapOrMotor("Weld", BasePart, BasePart, Part, CF(-0.125, -0.4, -0.25) * ANGLES(RAD(0), RAD(90), RAD(180)), CF(0, 0, 0))
1453
MakeForm(Part,"Wedge")
1454
local Part = CreatePart(3, Weapon, "SmoothPlastic", 1, 1, "Magenta", "BraceletPart", VT(0.51,0.6,0.25),false)
1455
CreateWeldOrSnapOrMotor("Weld", BasePart, BasePart, Part, CF(0.125, -0.4, -0.25) * ANGLES(RAD(0), RAD(-90), RAD(180)), CF(0, 0, 0))
1456
MakeForm(Part,"Wedge")
1457
local Part = CreatePart(3, Weapon, "SmoothPlastic", 1, 1, "Magenta", "BraceletPart", VT(0.52,0.5,0.25/2.3),false)
1458
CreateWeldOrSnapOrMotor("Weld", BasePart, BasePart, Part, CF(-0.125/2.3, -0.25, -0.25) * ANGLES(RAD(0), RAD(90), RAD(180)), CF(0, 0, 0))
1459
MakeForm(Part,"Wedge")
1460
local Part = CreatePart(3, Weapon, "SmoothPlastic", 1, 1, "Magenta", "BraceletPart", VT(0.52,0.5,0.25/2.3),false)
1461
CreateWeldOrSnapOrMotor("Weld", BasePart, BasePart, Part, CF(0.125/2.3, -0.25, -0.25) * ANGLES(RAD(0), RAD(-90), RAD(180)), CF(0, 0, 0))
1462
MakeForm(Part,"Wedge")
1463
1464
1465
1466
local HAT1 = CreatePart(3, Character, "SmoothPlastic", 0, 0, "Magenta", "Hat", VT(2,0.2,2),false)
1467
MakeForm(HAT1,"Cyl")
1468
HATWELD = CreateWeldOrSnapOrMotor("Weld", Head, Head, HAT1, CF(0,0.35,0), CF(0, 0, 0))
1469
local BELT = CreatePart(3, Character, "SmoothPlastic", 0, 0, "Magenta", "Hat", VT(2.01,0.15,2.01),false)
1470
BELT.Color = BrickColor.new("Magenta").Color
1471
MakeForm(BELT,"Cyl")
1472
CreateWeldOrSnapOrMotor("Weld", HAT1, HAT1, BELT, CF(0,0,0), CF(0, 0, 0))
1473
local HAT2 = CreatePart(3, Character, "SmoothPlastic", 0, 0, "Magenta", "Hat", VT(1.3,2.2,1.3),false)
1474
MakeForm(HAT2,"Cyl")
1475
CreateWeldOrSnapOrMotor("Weld", HAT1, HAT1, HAT2, CF(0,1.1,0), CF(0, 0, 0))
1476
local BELT = CreatePart(3, Character, "SmoothPlastic", 0, 0, "Magenta", "Hat", VT(1.31,0.2,1.31),false)
1477
BELT.Color = BrickColor.new("Magenta").Color
1478
MakeForm(BELT,"Cyl")
1479
CreateWeldOrSnapOrMotor("Weld", HAT2, HAT2, BELT, CF(0,0,0), CF(0, 0, 0))
1480
local GEM = CreatePart(3, Character, "Neon", 0, 0, "Lime green", "Gem", VT(0.25,0.25,0.1),false)
1481
MakeForm(GEM,"Ball")
1482
CreateWeldOrSnapOrMotor("Weld", HAT2, HAT2, GEM, CF(0,0,-BELT.Size.X/2), CF(0, 0, 0))
1483
local GEM = CreatePart(3, Character, "Neon", 0, 0, "Lime green", "Gem", VT(0.25,0.25,0.1),false)
1484
MakeForm(GEM,"Ball")
1485
CreateWeldOrSnapOrMotor("Weld", HAT2, HAT2, GEM, CF(0,0,BELT.Size.X/2), CF(0, 0, 0))
1486
local GEM = CreatePart(3, Character, "Neon", 0, 0, "Lime green", "Gem", VT(0.1,0.25,0.25),false)
1487
MakeForm(GEM,"Ball")
1488
CreateWeldOrSnapOrMotor("Weld", HAT2, HAT2, GEM, CF(-BELT.Size.X/2,0,0), CF(0, 0, 0))
1489
local GEM = CreatePart(3, Character, "Neon", 0, 0, "Lime green", "Gem", VT(0.1,0.25,0.25),false)
1490
MakeForm(GEM,"Ball")
1491
CreateWeldOrSnapOrMotor("Weld", HAT2, HAT2, GEM, CF(BELT.Size.X/2,0,0), CF(0, 0, 0))
1492
          
1493
1494
1495
1496
1497
--//=================================\\
1498
--||	     DAMAGE FUNCTIONS
1499
--\\=================================//
1500
1501
function StatLabel(CFRAME, TEXT, COLOR)
1502
	local STATPART = CreatePart(3, Effects, "SmoothPlastic", 0, 1, "Really black", "Effect", VT())
1503
	STATPART.CFrame = CF(CFRAME.p,CFRAME.p+VT(MRANDOM(-5,5),MRANDOM(0,5),MRANDOM(-5,5)))
1504
	local BODYGYRO = IT("BodyGyro", STATPART)
1505
	game:GetService("Debris"):AddItem(STATPART ,5)
1506
	local BILLBOARDGUI = Instance.new("BillboardGui", STATPART)
1507
	BILLBOARDGUI.Adornee = STATPART
1508
	BILLBOARDGUI.Size = UD2(2.5, 0, 2.5 ,0)
1509
	BILLBOARDGUI.StudsOffset = VT(-2, 2, 0)
1510
	BILLBOARDGUI.AlwaysOnTop = false
1511
	local TEXTLABEL = Instance.new("TextLabel", BILLBOARDGUI)
1512
	TEXTLABEL.BackgroundTransparency = 1
1513
	TEXTLABEL.Size = UD2(2.5, 0, 2.5, 0)
1514
	TEXTLABEL.Text = TEXT
1515
	TEXTLABEL.Font = SKILLFONT
1516
	TEXTLABEL.FontSize="Size42"
1517
	TEXTLABEL.TextColor3 = COLOR
1518
	TEXTLABEL.TextStrokeTransparency = 0
1519
	TEXTLABEL.TextScaled = true
1520
	TEXTLABEL.TextWrapped = true
1521
	coroutine.resume(coroutine.create(function(THEPART, THEBODYPOSITION, THETEXTLABEL)
1522
		for i = 1, 10 do
1523
			Swait()
1524
			STATPART.CFrame = STATPART.CFrame * CF(0,0,-0.2)
1525
			TEXTLABEL.TextTransparency = TEXTLABEL.TextTransparency + (1/10)
1526
			TEXTLABEL.TextStrokeTransparency = TEXTLABEL.TextTransparency
1527
		end
1528
		THEPART.Parent = nil
1529
	end),STATPART, TEXTLABEL)
1530
end
1531
1532
--//=================================\\
1533
--||			DAMAGING
1534
--\\=================================//
1535
1536
function ApplyDamage(Humanoid,Damage,TorsoPart)
1537
	local defence = Instance.new("BoolValue",Humanoid.Parent)
1538
	defence.Name = ("HitBy"..Player.Name)
1539
	game:GetService("Debris"):AddItem(defence, 0.001)
1540
	Damage = Damage * DAMAGEMULTIPLIER
1541
	if Humanoid.Health ~= 0 then
1542
		local CritChance = MRANDOM(1,100)
1543
		if Damage > Humanoid.Health then
1544
			Damage = math.ceil(Humanoid.Health)
1545
			if Damage == 0 then
1546
				Damage = 0.1
1547
			end
1548
		end
1549
		Humanoid.Health = Humanoid.Health - Damage
1550
		StatLabel(TorsoPart.CFrame * CF(0, 0 + (TorsoPart.Size.z - 1), 0), Damage, C3(0, 0, 0))
1551
	end
1552
end
1553
1554
function Ghostify(POSITION,RANGE)
1555
	local CHILDREN = workspace:GetDescendants()
1556
	for index, CHILD in pairs(CHILDREN) do
1557
		if CHILD.ClassName == "Model" and CHILD ~= Character and CHILD.Parent ~= Effects then
1558
			local HUM = CHILD:FindFirstChildOfClass("Humanoid")
1559
			if HUM then
1560
				local TORSO = CHILD:FindFirstChild("Torso") or CHILD:FindFirstChild("UpperTorso")
1561
				if TORSO then
1562
					if HUM.Health > 0 and (TORSO.Position - POSITION).Magnitude <= RANGE then
1563
						local GHOST = GHOSTBASE:Clone()
1564
						GHOST.Parent = Effects
1565
						GHOST.Torso.CFrame = TORSO.CFrame
1566
						table.insert(GHOSTS,GHOST)
1567
						CHILD:remove()
1568
					end
1569
				end
1570
			end
1571
		end
1572
	end
1573
end
1574
1575
--//=================================\\
1576
--||	ATTACK FUNCTIONS AND STUFF
1577
--\\=================================//
1578
1579
function Shell()
1580
    ATTACK = false
1581
    Rooted = false
1582
    local GYRO = IT("BodyGyro",RootPart)
1583
    GYRO.D = 750
1584
    GYRO.P = 20000
1585
    GYRO.MaxTorque = VT(0,40000000,0)
1586
    for i=0, 1, 0.1 / Animation_Speed do
1587
        Swait()
1588
        GYRO.cframe = CF(RootPart.Position,Mouse.Hit.p)
1589
        RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, -0.1 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(25), RAD(0), RAD(35)), 0.75 / Animation_Speed)
1590
        Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(25 - 0.5 * SIN(SINE / 12)), RAD(15), RAD(-35)), 0.75 / Animation_Speed)
1591
        RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.7 - 0.1 * COS(SINE / 12), 0) * ANGLES(RAD(115), RAD(0), RAD(35)) * ANGLES(RAD(0), RAD(90), RAD(0)) * RIGHTSHOULDERC0, 0.75 / Animation_Speed)
1592
        LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.45, -0.1) * ANGLES(RAD(25), RAD(0), RAD(5)) * LEFTSHOULDERC0, 0.75 / Animation_Speed)
1593
        RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.8 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(50), RAD(0)) * ANGLES(RAD(-35), RAD(0), RAD(35)), 0.75 / Animation_Speed)
1594
        LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1.3 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(-85), RAD(0)) * ANGLES(RAD(5), RAD(0), RAD(-25)), 0.75 / Animation_Speed)
1595
    end
1596
    GYRO:remove()
1597
    CreateSound(130113322, Gun, 5, 1, false)
1598
    local AIMHIT,AIMPOS,NORMAL = BulletDetection(Gun.Position,Mouse.Hit.p)
1599
    SpawnTrail(Gun.CFrame*CF(1.5,0.5,0).p,AIMPOS)
1600
    WACKYEFFECT({Time = 3, EffectType = "Sphere", Size = VT(1,0.3,0.3), Size2 = VT(1,0,0), Transparency = 0, Transparency2 = 1, CFrame = Gun.CFrame*CF(1.5,0.5,0), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = BrickColor.new("Magenta").Color, SoundID = nil, SoundPitch = nil, SoundVolume = nil})
1601
    for i=0, 0.3, 0.1 / Animation_Speed do
1602
        Swait()
1603
        RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, -0.1 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(25), RAD(0), RAD(35)), 0.75 / Animation_Speed)
1604
        Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(25 - 0.5 * SIN(SINE / 12)), RAD(15), RAD(-35)), 0.75 / Animation_Speed)
1605
        RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.7 - 0.1 * COS(SINE / 12), 0.3) * ANGLES(RAD(110), RAD(0), RAD(35)) * ANGLES(RAD(0), RAD(90), RAD(0)) * RIGHTSHOULDERC0, 0.75 / Animation_Speed)
1606
        LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.45, -0.1) * ANGLES(RAD(25), RAD(0), RAD(5)) * LEFTSHOULDERC0, 0.75 / Animation_Speed)
1607
        RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.8 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(50), RAD(0)) * ANGLES(RAD(-35), RAD(0), RAD(35)), 0.75 / Animation_Speed)
1608
        LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1.3 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(-85), RAD(0)) * ANGLES(RAD(5), RAD(0), RAD(-25)), 0.75 / Animation_Speed)
1609
    end
1610
    ATTACK = false
1611
    Rooted = false
1612
end
1613
1614
function Taunt()
1615
	ATTACK = true
1616
	Rooted = false
1617
	TAUNT = true
1618
	for i=0, 0.1, 0.1 / Animation_Speed do
1619
		Swait()
1620
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(5 - 2.5), RAD(0), RAD(0)), 0.15 / Animation_Speed)
1621
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(12)) * RIGHTSHOULDERC0, 2 / Animation_Speed)
1622
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(-12)) * LEFTSHOULDERC0, 2 / Animation_Speed)
1623
	end
1624
	for i=0, 3, 0.1 / Animation_Speed do
1625
		Swait()
1626
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(5 - 2.5), RAD(0), RAD(0)), 0.15 / Animation_Speed)
1627
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(170), RAD(0), RAD(-15)) * RIGHTSHOULDERC0, 0.15 / Animation_Speed)
1628
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(170), RAD(0), RAD(15)) * LEFTSHOULDERC0, 0.15 / Animation_Speed)
1629
	end
1630
	CreateSound(363808674, Torso, 10, 1.3)
1631
	for i=0, 1, 0.1 / Animation_Speed do
1632
		Swait()
1633
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(5 - 2.5), RAD(0), RAD(120)), 3 / Animation_Speed)
1634
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(150), RAD(0), RAD(-25)) * RIGHTSHOULDERC0, 3/ Animation_Speed)
1635
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(230), RAD(0), RAD(35)) * LEFTSHOULDERC0, 3 / Animation_Speed)
1636
	end
1637
	WACKYEFFECT({EffectType = "Block", Size = VT(6,6,6), Size2 = VT(15,15,15), Transparency = 0, Transparency2 = 1, CFrame = Torso.CFrame, MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = BrickColor.new("Magenta").Color, SoundID = nil, SoundPitch = 1, SoundVolume = 5})
1638
	CreateSound(649634100, Torso, 10, 0.8)
1639
	for i=0, 0.01, 0.1 / Animation_Speed do
1640
		Swait()
1641
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(15 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 3 / Animation_Speed)
1642
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1, 0.5, 0.5) * ANGLES(RAD(0), RAD(-45), RAD(12)) * ANGLES(RAD(-45 - 2.5 * COS(SINE / 12) + 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)) * RIGHTSHOULDERC0, 3 / Animation_Speed)
1643
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1, 0.5, 0.5) * ANGLES(RAD(0), RAD(45), RAD(-12)) * ANGLES(RAD(-45 - 2.5 * COS(SINE / 12) + 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)) * LEFTSHOULDERC0, 3 / Animation_Speed)
1644
	end
1645
	ATTACK = false
1646
	Rooted = false
1647
	TAUNT = false
1648
end
1649
1650
function SinfulShell()
1651
	ATTACK = true
1652
	Rooted = false
1653
	local GYRO = IT("BodyGyro",RootPart)
1654
	GYRO.D = 750
1655
	GYRO.P = 20000
1656
	GYRO.MaxTorque = VT(0,40000000,0)
1657
	for i=0, 1, 0.1 / Animation_Speed do
1658
		Swait()
1659
		GYRO.cframe = CF(RootPart.Position,Mouse.Hit.p)
1660
		RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, -0.1 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(25), RAD(0), RAD(35)), 0.75 / Animation_Speed)
1661
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(25 - 0.5 * SIN(SINE / 12)), RAD(15), RAD(-35)), 0.75 / Animation_Speed)
1662
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.7 - 0.1 * COS(SINE / 12), 0) * ANGLES(RAD(115), RAD(0), RAD(35)) * ANGLES(RAD(0), RAD(90), RAD(0)) * RIGHTSHOULDERC0, 0.75 / Animation_Speed)
1663
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.45, -0.1) * ANGLES(RAD(25), RAD(0), RAD(5)) * LEFTSHOULDERC0, 0.75 / Animation_Speed)
1664
		RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.8 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(50), RAD(0)) * ANGLES(RAD(-35), RAD(0), RAD(35)), 0.75 / Animation_Speed)
1665
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1.3 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(-85), RAD(0)) * ANGLES(RAD(5), RAD(0), RAD(-25)), 0.75 / Animation_Speed)
1666
	end
1667
	GYRO:remove()
1668
	CreateSound(132456187, Gun, 5, 1, false)
1669
	WACKYEFFECT({Time = 3, EffectType = "Sphere", Size = VT(1,0.3,0.3), Size2 = VT(1,0,0), Transparency = 0, Transparency2 = 1, CFrame = Gun.CFrame*CF(1.5,0.5,0), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = C3(0,0,0), SoundID = nil, SoundPitch = nil, SoundVolume = nil})
1670
	coroutine.resume(coroutine.create(function()
1671
		local Bullet = CreatePart(3, Effects, "SmoothPlastic", 0, 0, "Royal purple", "Sinful bullet", VT(0,0,0))
1672
		CreateMesh("SpecialMesh", Bullet, "FileMesh", "94295100", "", VT(6, 6, 7), VT(0,0, 0))
1673
		Bullet.CFrame = Gun.CFrame*CF(1.5,0.5,0)
1674
		local AIMPOINT = Mouse.Hit.p
1675
		local STARTPOS = Gun.CFrame*CF(1.5,0.5,0).p
1676
		local VECTOR = CF(STARTPOS,AIMPOINT) 
1677
		local IMPACTED = false
1678
		CreateSound(1393698948, Bullet, 10, 1, true)
1679
		for E = 1, 50 do
1680
			if IMPACTED == true then
1681
				break
1682
			end
1683
			local TARGETPOINT = VECTOR*CF(0,0,-E*5)*ANGLES(RAD(0),RAD(0),RAD(MRANDOM(0,360)))*CF(0,1,0).p
1684
			Bullet.CFrame = CF(Bullet.Position,TARGETPOINT)
1685
			for i = 1, 5 do
1686
				Swait()
1687
				WACKYEFFECT({Time = 15, EffectType = "Swirl", Size = VT(1,1,1), Size2 = VT(3,3,3), Transparency = 0, Transparency2 = 1, CFrame = Bullet.CFrame * ANGLES(RAD(90), RAD(0), RAD(0)), MoveToPos = nil, RotationX = 0, RotationY = i+E, RotationZ = 0, Material = "Neon", Color = C3(0,0,0), SoundID = nil, SoundPitch = 1, SoundVolume = 5})
1688
				Bullet.CFrame = Bullet.CFrame*CF(0,0,-1)
1689
				local AIMHIT,AIMPOS,NORMAL = Raycast(Bullet.Position,Bullet.CFrame.lookVector,1.3,Character)
1690
				if AIMHIT ~= nil then
1691
					IMPACTED = true
1692
					break
1693
				end
1694
			end
1695
		end
1696
		WACKYEFFECT({Time = 25, EffectType = "Sphere", Size = VT(10,10,10), Size2 = VT(9,9,9), Transparency = 0, Transparency2 = 1, CFrame = Bullet.CFrame, MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = C3(0,0,0), SoundID = 182765513, SoundPitch = MRANDOM(8,12)/10, SoundVolume = 7})
1697
		for i = 1, 7 do
1698
			WACKYEFFECT({Time = 25, EffectType = "Sphere", Size = VT(1,15,1), Size2 = VT(0,25,0), Transparency = 0, Transparency2 = 1, CFrame = Bullet.CFrame*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360))), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = C3(0,0,0), SoundID = nil, SoundPitch = nil, SoundVolume = nil})
1699
		end
1700
		Ghostify(Bullet.Position,10)
1701
		Bullet:remove()
1702
	end))
1703
	for i=0, 0.3, 0.1 / Animation_Speed do
1704
		Swait()
1705
		RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, -0.1 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(25), RAD(0), RAD(35)), 0.75 / Animation_Speed)
1706
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(25 - 0.5 * SIN(SINE / 12)), RAD(15), RAD(-35)), 0.75 / Animation_Speed)
1707
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.7 - 0.1 * COS(SINE / 12), 0.3) * ANGLES(RAD(110), RAD(0), RAD(35)) * ANGLES(RAD(0), RAD(90), RAD(0)) * RIGHTSHOULDERC0, 0.75 / Animation_Speed)
1708
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.45, -0.1) * ANGLES(RAD(25), RAD(0), RAD(5)) * LEFTSHOULDERC0, 0.75 / Animation_Speed)
1709
		RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.8 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(50), RAD(0)) * ANGLES(RAD(-35), RAD(0), RAD(35)), 0.75 / Animation_Speed)
1710
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1.3 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(-85), RAD(0)) * ANGLES(RAD(5), RAD(0), RAD(-25)), 0.75 / Animation_Speed)
1711
	end
1712
	ATTACK = false
1713
	Rooted = false
1714
end
1715
1716
1717
1718
1719
function Astral_Hop()
1720
	ATTACK = true
1721
	Rooted = false
1722
	local O1 = CreatePart(3, Effects, "Neon", 0, 1, "Really red", "Warphole", VT(0,0,0))
1723
	O1.CFrame = RootPart.CFrame*CF(0,0,-3)*ANGLES(RAD(90),RAD(0),RAD(0))
1724
	local decal = Decal:Clone()
1725
	decal.Parent = O1
1726
	decal.Face = "Top"
1727
	decal.Texture = "http://www.roblox.com/asset/?id=202696571"
1728
	local decal2 = Decal:Clone()
1729
	decal2.Parent = O1
1730
	decal2.Face = "Bottom"
1731
	decal2.Texture = "http://www.roblox.com/asset/?id=202696571"
1732
	local O2 = CreatePart(3, Effects, "Neon", 0, 1, "Really red", "Warphole", VT(0,0,0))
1733
	local POS = VT(RootPart.Position.X,Mouse.Hit.p.Y+6,RootPart.Position.Z)
1734
	O2.CFrame = CF(Mouse.Hit.p+VT(0,6,0),POS)*ANGLES(RAD(90),RAD(0),RAD(0))
1735
	local ROOT = CreatePart(3, Effects, "Neon", 0, 1, "Really red", "Warphole", VT(0,0,0))
1736
	ROOT.CFrame = CF(O2.Position,RootPart.Position)
1737
	local decal = Decal:Clone()
1738
	decal.Parent = O2
1739
	decal.Face = "Top"
1740
	decal.Texture = "http://www.roblox.com/asset/?id=202696571"
1741
	local decal2 = Decal:Clone()
1742
	decal2.Parent = O2
1743
	decal2.Face = "Bottom"
1744
	decal2.Texture = "http://www.roblox.com/asset/?id=202696571"
1745
	CreateSound("153613030", O1, 10, 0.7)
1746
	CreateSound("153613030", O2, 10, 0.7)
1747
	for i = 1, 75 do
1748
		Swait()
1749
		O1.Size = O1.Size + VT(0.1,0,0.1)
1750
		O1.CFrame = RootPart.CFrame*CF(0,0,-3)*ANGLES(RAD(90),RAD(i),RAD(0))
1751
		O2.Size = O2.Size + VT(0.1,0,0.1)
1752
		O2.CFrame = O2.CFrame*ANGLES(RAD(0),RAD(i),RAD(0))
1753
		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)
1754
		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)
1755
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5 + 0.25 * COS(SINE / 12), 0) * ANGLES(RAD(90), RAD(0 - 2.5 * SIN(SINE / 12)), RAD(5 + 7.5 * SIN(SINE / 12))) * RIGHTSHOULDERC0, 1 / Animation_Speed)
1756
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5 + 0.25 * COS(SINE / 12), 0) * ANGLES(RAD(90), RAD(0 + 2.5 * SIN(SINE / 12)), RAD(-5 - 7.5 * SIN(SINE / 12))) * LEFTSHOULDERC0, 1 / Animation_Speed)
1757
		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)
1758
		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)
1759
1760
	end
1761
1762
1763
	Rooted = true
1764
	UNANCHOR = false
1765
	RootPart.Anchored = true
1766
	VALUE1 = true
1767
	for i = 1, 15 do
1768
		Swait()
1769
		RootPart.CFrame = RootPart.CFrame*CF(0,0,-0.13)
1770
		RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.25 * COS(SINE / 12)) * ANGLES(RAD(16 + 2.5 * SIN(SINE / 12)), RAD(0), RAD(5 + 2.5 * SIN(SINE / 12))), 1 / Animation_Speed)
1771
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(-15 + 4.5 * SIN(SINE / 12)), RAD(0), RAD(-5 - 2.5 * SIN(SINE / 12))), 1 / Animation_Speed)
1772
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5 + 0.25 * COS(SINE / 12), 0) * ANGLES(RAD(-15), RAD(0 - 2.5 * SIN(SINE / 12)), RAD(5 + 7.5 * SIN(SINE / 12))) * RIGHTSHOULDERC0, 1 / Animation_Speed)
1773
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5 + 0.25 * COS(SINE / 12), 0) * ANGLES(RAD(-15), RAD(0 + 2.5 * SIN(SINE / 12)), RAD(-5 - 7.5 * SIN(SINE / 12))) * LEFTSHOULDERC0, 1 / Animation_Speed)
1774
		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)
1775
		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)
1776
	end
1777
	RootPart.CFrame = ROOT.CFrame
1778
	ROOT:remove()
1779
	for i = 1, 15 do
1780
		Swait()
1781
		RootPart.CFrame = RootPart.CFrame*CF(0,0,-0.5)
1782
		RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.25 * COS(SINE / 12)) * ANGLES(RAD(16 + 2.5 * SIN(SINE / 12)), RAD(0), RAD(5 + 2.5 * SIN(SINE / 12))), 1 / Animation_Speed)
1783
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(-15 + 4.5 * SIN(SINE / 12)), RAD(0), RAD(-5 - 2.5 * SIN(SINE / 12))), 1 / Animation_Speed)
1784
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5 + 0.25 * COS(SINE / 12), 0) * ANGLES(RAD(-15), RAD(0 - 2.5 * SIN(SINE / 12)), RAD(5 + 7.5 * SIN(SINE / 12))) * RIGHTSHOULDERC0, 1 / Animation_Speed)
1785
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5 + 0.25 * COS(SINE / 12), 0) * ANGLES(RAD(-15), RAD(0 + 2.5 * SIN(SINE / 12)), RAD(-5 - 7.5 * SIN(SINE / 12))) * LEFTSHOULDERC0, 1 / Animation_Speed)
1786
		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)
1787
		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)
1788
	end
1789
	VALUE1 = false
1790
	coroutine.resume(coroutine.create(function()
1791
		for i = 1, 75 do
1792
			Swait()
1793
			O1.Size = O1.Size - VT(0.1,0,0.1)
1794
			O1.CFrame = O1.CFrame*ANGLES(RAD(0),RAD(i),RAD(0))
1795
			O2.Size = O2.Size - VT(0.1,0,0.1)
1796
			O2.CFrame = O2.CFrame*ANGLES(RAD(0),RAD(i),RAD(0))
1797
		end
1798
		O1:remove()
1799
		O2:remove()
1800
	end))
1801
	UNANCHOR = true
1802
	RootPart.Anchored = false
1803
	ATTACK = false
1804
	Rooted = false
1805
end
1806
1807
1808
function Technobeam()
1809
	ATTACK = true
1810
	Rooted = false
1811
	local GYRO = IT("BodyGyro",RootPart)
1812
	GYRO.D = 100
1813
	GYRO.P = 2000
1814
	GYRO.MaxTorque = VT(0,4000000,0)
1815
	GYRO.cframe = CF(RootPart.Position,Mouse.Hit.p)
1816
	CreateSound("93724183", RightArm, 5, 1, false)
1817
	for i=1, 35 do
1818
		Swait()
1819
		WACKYEFFECT({Time = 5, EffectType = "Block", Size = VT(5,5,5), Size2 = VT(0,0,0), Transparency = 1, Transparency2 = 0.25, CFrame = RightArm.CFrame*CF(0,-5,0), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = SKILLTEXTCOLOR, SoundID = nil, SoundPitch = 0.6, SoundVolume = 6})
1820
		GYRO.cframe = CF(RootPart.Position,Mouse.Hit.p)
1821
		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(45)), 1 / Animation_Speed)
1822
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(15 + 4.5 * SIN(SINE / 12)), RAD(0), RAD(-45 - 4 * SIN(SINE / 12))), 1 / Animation_Speed)
1823
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5 + 0.025 * COS(SINE / 12), -0.5) * ANGLES(RAD(90), RAD(0 - 7.5 * SIN(SINE / 12)), RAD(45 + 7.5 * SIN(SINE / 12))) * RIGHTSHOULDERC0, 1 / Animation_Speed)
1824
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5 + 0.025 * 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)
1825
		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)
1826
		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)
1827
	end
1828
	local BEAM = CreatePart(3, Effects, "Neon", 0, 1, "Magenta", "Lazer", VT(0,0,0))
1829
	local LOOP = CreateSound("415700134", RightArm, 5, 1, false)
1830
	local TOCH = BEAM.Touched:Connect(function(hit)
1831
		if hit.Anchored == false and hit.Parent ~= Head and  hit.Parent ~= Character and hit.Parent ~= Effects then
1832
			Shatter(hit)
1833
		end
1834
	end)
1835
	local I = 0
1836
	repeat
1837
		Swait()
1838
		I = I + 1
1839
		if I <= 10 then
1840
			BEAM.Transparency = BEAM.Transparency - 0.1
1841
		end
1842
		local STARTPOS = RightArm.CFrame*CF(0,-4,0).p
1843
		local ENDHIT,ENDPOS = CastProperRay(STARTPOS,Mouse.Hit.p,650,Character)
1844
		local DISTANCE = (STARTPOS - ENDPOS).Magnitude
1845
		BEAM.CFrame = CF(STARTPOS,ENDPOS)*CF(0,0,-DISTANCE/2)*ANGLES(RAD(0),RAD(0),RAD(I*5))
1846
		BEAM.Size = VT(2,2,DISTANCE)
1847
		WACKYEFFECT({Time = 5, EffectType = "Box", Size = VT(1,1,1), Size2 = VT(1,1,1), Transparency = 0, Transparency2 = 1, CFrame = CF(ENDPOS), MoveToPos = CF(ENDPOS)*ANGLES(RAD(MRANDOM(-180,180)),RAD(MRANDOM(-180,180)),RAD(MRANDOM(-180,180)))*CF(0,15,0).p, RotationX = MRANDOM(-5,5), RotationY = MRANDOM(-5,5), RotationZ = MRANDOM(-5,5), Material = "Neon", Color = BrickColor.new("Magenta").Color, SoundID = nil, SoundPitch = nil, SoundVolume = nil})
1848
		WACKYEFFECT({Time = 5, EffectType = "Block", Size = VT(5,5,5), Size2 = VT(0,0,0), Transparency = 0, Transparency2 = 0.25, CFrame = RightArm.CFrame*CF(0,-4,0), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = BrickColor.new("Magenta").Color, SoundID = nil, SoundPitch = 0.6, SoundVolume = 6})
1849
		WACKYEFFECT({Time = 5, EffectType = "Block", Size = VT(5,5,5), Size2 = VT(0,0,0), Transparency = 0, Transparency2 = 0.25, CFrame = CF(ENDPOS), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = BrickColor.new("Magenta").Color, SoundID = nil, SoundPitch = 0.6, SoundVolume = 6})
1850
		GYRO.cframe = CF(RootPart.Position,Mouse.Hit.p)
1851
		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(45)), 1 / Animation_Speed)
1852
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(15 + 4.5 * SIN(SINE / 12)), RAD(0), RAD(-45 - 4 * SIN(SINE / 12))), 1 / Animation_Speed)
1853
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5 + 0.025 * COS(SINE / 12), -0.5) * ANGLES(RAD(90), RAD(0 - 7.5 * SIN(SINE / 12)), RAD(45 + 7.5 * SIN(SINE / 12))) * RIGHTSHOULDERC0, 1 / Animation_Speed)
1854
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5 + 0.025 * 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)
1855
		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)
1856
		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)
1857
		if ENDHIT ~= nil then
1858
			if ENDHIT.Anchored == false and ENDHIT.Parent ~= Effects then
1859
				Shatter(ENDHIT)
1860
			end
1861
		end
1862
	until LOOP.Playing == false
1863
	GYRO:remove()
1864
	BEAM:remove()
1865
	ATTACK = false
1866
	Rooted = false
1867
end
1868
1869
function SpawnSmite(POS)
1870
	local HITFLOOR,HITPOS = Raycast(POS+VT(0,1,0), (CF(POS, POS + VT(0, -1, 0))).lookVector, 100, Character)
1871
	local EMITPOS = HITPOS
1872
	if HITFLOOR ~= nil then
1873
		if HITFLOOR.Parent:FindFirstChildOfClass("Humanoid") then
1874
			HITFLOOR,HITPOS = Raycast(POS+VT(0,1,0), (CF(POS, POS + VT(0, -1, 0))).lookVector, 100, HITFLOOR.Parent)
1875
			EMITPOS = HITPOS
1876
		elseif HITFLOOR.Parent.Parent:FindFirstChildOfClass("Humanoid") then
1877
			HITFLOOR,HITPOS = Raycast(POS+VT(0,1,0), (CF(POS, POS + VT(0, -1, 0))).lookVector, 100, HITFLOOR.Parent.Parent)
1878
			EMITPOS = HITPOS
1879
		end
1880
	end
1881
	if HITFLOOR ~= nil then
1882
		ApplyAoE(EMITPOS,10)
1883
		WACKYEFFECT({EffectType = "Sphere", Size = VT(0,100000,0), Size2 = VT(10,100000,10), Transparency = 0, Transparency2 = 1, CFrame = CF(EMITPOS) * ANGLES(RAD(MRANDOM(-15,15)), RAD(0), RAD(MRANDOM(-15,15))), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = BrickColor.new("Magenta").Color, SoundID = 419011114, SoundPitch = 1, SoundVolume = 5})
1884
		WACKYEFFECT({EffectType = "Block", Size = VT(0,0,0), Size2 = VT(10,10,10)*2, Transparency = 0, Transparency2 = 1, CFrame = CF(EMITPOS), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = BrickColor.new("Magenta").Color, SoundID = nil, SoundPitch = 1, SoundVolume = 5})
1885
		WACKYEFFECT({EffectType = "Block", Size = VT(0,0,0), Size2 = VT(10,10,10)*1.5, Transparency = 0, Transparency2 = 1, CFrame = CF(EMITPOS), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = BrickColor.new("Magenta").Color, SoundID = nil, SoundPitch = 1, SoundVolume = 5})
1886
		for i = 1, 5 do
1887
			local TOPOS = CF(EMITPOS)*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)))*CF(0,0,12)
1888
			WACKYEFFECT({EffectType = "Slash", Size = VT(0,0,0), Size2 = VT(0.2,0,0.2), Transparency = 0, Transparency2 = 1, CFrame = CF(EMITPOS,TOPOS.p) * ANGLES(RAD(90), RAD(0), RAD(0)), MoveToPos = TOPOS.p, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = BrickColor.new("Magenta").Color, SoundID = 419011114, SoundPitch = 1, SoundVolume = 5})
1889
		end
1890
	end
1891
end
1892
1893
function SpawnMeteor(POS,SIZE,ISDEBREE,ORIPOS)
1894
	coroutine.resume(coroutine.create(function()
1895
		local METEOR = IT("Model",Effects)
1896
		METEOR.Name = "Meteorite"
1897
		local CENTER = CreatePart(3, METEOR, "Granite", 0, 0, "Magenta", "MeteorCenter", VT(5,5,5)*SIZE)
1898
		METEOR.PrimaryPart = CENTER
1899
		local PRT = CreatePart(3, METEOR, "Granite", 0, 0, "Magenta", "MeteorCenter", VT(5,5,5)*SIZE)
1900
		PRT.CFrame = CENTER.CFrame*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)))
1901
		for i = 1, 15 do
1902
			local FIRE = CreatePart(3, METEOR, "Neon", 0, 0, "Magenta", "Fire", VT(5.1,1,5.1)*SIZE)
1903
			FIRE.CFrame = CENTER.CFrame*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)))
1904
		end
1905
		if ISDEBREE ~= true then
1906
			METEOR:SetPrimaryPartCFrame(CF(POS) * ANGLES(RAD(MRANDOM(-15,15)), RAD(0), RAD(MRANDOM(-15,15)))*CF(0,500,0) * ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360))))
1907
		else
1908
			METEOR:SetPrimaryPartCFrame(CF(ORIPOS,POS) * ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360))))
1909
		end
1910
		local IMPACT = false
1911
		CreateSound(463593339, CENTER, 10, 0.6)
1912
		if SIZE >= 3.5 then
1913
			for i = 1, MRANDOM(3,7) do
1914
				SpawnMeteor(CF(POS) * ANGLES(RAD(0), RAD(MRANDOM(0,360)), RAD(0))*CF(0,0,SIZE*12).p,SIZE/MRANDOM(4,5),true,CENTER.CFrame*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)))*CF(0,0,SIZE*15).p)
1915
			end
1916
		end
1917
		for i = 1, 200 do
1918
			Swait()
1919
			local HITFLOOR,HITPOS = Raycast(CENTER.Position, CF(CENTER.Position,POS).lookVector, 3, Character)
1920
			if HITFLOOR == nil then
1921
				local ORI = CENTER.Orientation
1922
				METEOR:SetPrimaryPartCFrame(CF(HITPOS) * ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360))))
1923
			else
1924
				if HITFLOOR.Anchored == true then
1925
					CreateDebreeRing(HITFLOOR,HITPOS,30*SIZE,VT(6,6,6)*SIZE,5)
1926
					CreateFlyingDebree(HITFLOOR,CF(HITPOS),8,VT(6,6,6)*SIZE,5,175)
1927
				end
1928
				IMPACT = true
1929
				break
1930
			end
1931
		end
1932
		if IMPACT == true then
1933
			WACKYEFFECT({EffectType = "Block", Size = CENTER.Size, Size2 = VT(10,10,10)*4*SIZE, Transparency = 0, Transparency2 = 1, CFrame = CF(CENTER.Position), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = C3(1,0,0), SoundID = 130972023, SoundPitch = 1, SoundVolume = 5})
1934
			WACKYEFFECT({EffectType = "Block", Size = CENTER.Size, Size2 = VT(10,10,10)*3*SIZE, Transparency = 0, Transparency2 = 1, CFrame = CF(CENTER.Position), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = C3(1,0,0), SoundID = 201858144, SoundPitch = 1, SoundVolume = 5})
1935
			WACKYEFFECT({EffectType = "Sphere", Size = VT(SIZE*20,0,SIZE*20), Size2 = VT(0,SIZE*750,0), Transparency = 0, Transparency2 = 1, CFrame = CF(CENTER.Position), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = C3(1,0,0), SoundID = 130972023, SoundPitch = 1, SoundVolume = 5})
1936
			ApplyAoE(CENTER.Position,30*SIZE)
1937
		end
1938
		METEOR:remove()
1939
	end))
1940
end
1941
1942
function Smite()
1943
	ATTACK = true
1944
	Rooted = false
1945
	CreateSound(1368573150, RightArm, 3, 1.5)
1946
	for i=0, 0.6, 0.1 / Animation_Speed do
1947
		Swait()
1948
		WACKYEFFECT({TIME = 15, EffectType = "Block", Size = VT(3,3,3)/3, Size2 = VT(1,1,1)/3, Transparency = 0.5, Transparency2 = 1, CFrame = RightArm.CFrame*CF(0,-1.3,0), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = BrickColor.new("Magenta").Color, SoundID = nil, SoundPitch = 1, SoundVolume = 5})
1949
		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)
1950
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.6, 0.75, -0.5) * ANGLES(RAD(0), RAD(-45), RAD(12)) * ANGLES(RAD(125 - 2.5 * COS(SINE / 12) + 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)) * RIGHTSHOULDERC0, 2.5 / Animation_Speed)
1951
	end
1952
	local POWER = 0
1953
	repeat 
1954
		Swait() 
1955
		WACKYEFFECT({EffectType = "Block", Size = VT(3,3,3)/3, Size2 = VT(1,1,1)/3, Transparency = 0.5, Transparency2 = 1, CFrame = RightArm.CFrame*CF(0,-1.3,0), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = BrickColor.new("Magenta").Color, SoundID = nil, SoundPitch = 1, SoundVolume = 5})
1956
		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)
1957
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.6, 0.75, -0.5) * ANGLES(RAD(0), RAD(-45), RAD(12)) * ANGLES(RAD(125 - 2.5 * COS(SINE / 12) + 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)) * RIGHTSHOULDERC0, 2.5 / Animation_Speed)
1958
		POWER = POWER + 0.5 
1959
		if POWER >= 85 then
1960
			POWER = 85
1961
		end
1962
	until KEYHOLD == false
1963
	if POWER < 0.6 then
1964
		SpawnSmite(Mouse.Hit.p)
1965
	else
1966
		if POWER < 15 then
1967
			POWER = 15
1968
		end
1969
		SpawnMeteor(Mouse.Hit.p,POWER/15)
1970
	end
1971
	ATTACK = false
1972
	Rooted = false
1973
end
1974
1975
1976
1977
function Corrupted_Explosion()
1978
	ATTACK = true
1979
	Rooted = true
1980
	for i=0, 1, 0.1 / Animation_Speed do
1981
		Swait()
1982
		RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, -0.3, 0) * ANGLES(RAD(0), RAD(0), RAD(-75)), 0.6 / Animation_Speed)
1983
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0), RAD(0), RAD(75)), 0.6 / Animation_Speed)
1984
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(90), RAD(0), RAD(15)) * RIGHTSHOULDERC0, 0.3 / Animation_Speed)
1985
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(-90)) * LEFTSHOULDERC0, 0.1 / Animation_Speed)
1986
		RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, -0.01) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(-15), RAD(0), RAD(0)), 0.5 / Animation_Speed)
1987
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, -0.01) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-15), RAD(0), RAD(0)), 0.5 / Animation_Speed)
1988
	end
1989
	for i=0, 0.4, 0.1 / Animation_Speed do
1990
		Swait()
1991
		RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, -1, -0.3) * ANGLES(RAD(75), RAD(0), RAD(75)), 1 / Animation_Speed)
1992
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0), RAD(0), RAD(-75)), 1/ Animation_Speed)
1993
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(90)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
1994
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(0)) * LEFTSHOULDERC0, 1 / Animation_Speed)
1995
		RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.5, -0.01) * ANGLES(RAD(75), RAD(25), RAD(0)) * ANGLES(RAD(-35), RAD(0), RAD(0)), 1 / Animation_Speed)
1996
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, -0.01) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-15), RAD(0), RAD(0)), 1 / Animation_Speed)
1997
	end
1998
	local BEAM = CreatePart(3, Effects, "Neon", 0, 0, "Magenta", "Beam", VT(0,0,0))
1999
	local BEAM2 = CreatePart(3, Effects, "Neon", 0, 0, "Magenta", "Beam", VT(0,0,0))
2000
	MakeForm(BEAM,"Ball")
2001
	MakeForm(BEAM2,"Ball")
2002
	BEAM.CFrame = CF(RootPart.Position)
2003
	BEAM2.CFrame = CF(RootPart.Position)
2004
	CreateSound(EXPLOSIONSOUND,RootPart,10,1,false)
2005
	for i=1, 100 do
2006
		Swait()
2007
		BEAM.Size = BEAM.Size + VT(0.7,8,0.7)
2008
		BEAM2.Size = BEAM2.Size + VT(2,2,2)
2009
		ApplyAoE(BEAM2.Position,BEAM2.Size.Z/2,5,5,15,true)
2010
		BEAM.CFrame = CF(RootPart.Position)
2011
		BEAM2.CFrame = CF(RootPart.Position)
2012
		WACKYEFFECT({TIME = 5+i, EffectType = "Swirl", Size = BEAM2.Size*1.15, Size2 = VT(0,BEAM.Size.Y,0), Transparency = 0.8, Transparency2 = 1, CFrame = BEAM.CFrame * ANGLES(RAD(0), RAD(i*5), RAD(0)), MoveToPos = nil, RotationX = 0, RotationY = i/8, RotationZ = 0, Material = "Neon", Color = BrickColor.new("Magenta").Color, SoundID = nil, SoundPitch = nil, SoundVolume = nil})
2013
		RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, -1, -0.3) * ANGLES(RAD(75), RAD(0), RAD(75)), 1 / Animation_Speed)
2014
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0), RAD(0), RAD(-75)), 1/ Animation_Speed)
2015
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(90)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
2016
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(0)) * LEFTSHOULDERC0, 1 / Animation_Speed)
2017
		RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.5, -0.01) * ANGLES(RAD(75), RAD(25), RAD(0)) * ANGLES(RAD(-35), RAD(0), RAD(0)), 1 / Animation_Speed)
2018
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, -0.01) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-15), RAD(0), RAD(0)), 1 / Animation_Speed)
2019
	end
2020
	WACKYEFFECT({TIME = 75, EffectType = "Sphere", Size = BEAM.Size, Size2 = VT(0,BEAM.Size.Y,0), Transparency = 0, Transparency2 = 0, CFrame = BEAM.CFrame, MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = BrickColor.new("Magenta").Color, SoundID = nil, SoundPitch = nil, SoundVolume = nil})
2021
	WACKYEFFECT({TIME = 75, EffectType = "Sphere", Size = BEAM2.Size, Size2 = VT(0,0,0), Transparency = 0, Transparency2 = 0.6, CFrame = BEAM2.CFrame, MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = BrickColor.new("Magenta").Color, SoundID = nil, SoundPitch = nil, SoundVolume = nil})
2022
	BEAM2:remove()
2023
	BEAM:remove()
2024
	ATTACK = false
2025
	Rooted = false
2026
end
2027
2028
2029
2030
--//=================================\\
2031
--||	  ASSIGN THINGS TO KEYS
2032
--\\=================================//
2033
2034
function MouseDown(Mouse)
2035
	if ATTACK == false then
2036
	end
2037
end
2038
2039
function MouseUp(Mouse)
2040
HOLD = false
2041
end
2042
2043
function KeyDown(Key)
2044
	KEYHOLD = true
2045
	if Key == "z" and ATTACK == false then
2046
		Shell()
2047
	end
2048
2049
        if Key == "q" and ATTACK == false then
2050
		Astral_Hop()
2051
	end
2052
2053
        if Key == "e" and ATTACK == false then
2054
		Corrupted_Explosion()
2055
	end
2056
2057
       
2058
2059
        if Key == "b" and ATTACK == false then
2060
			Technobeam()
2061
		end
2062
2063
	if Key == "t" and ATTACK == false then
2064
		Taunt()
2065
	end
2066
2067
2068
2069
        if Key == "c" and ATTACK == false then
2070
			Smite()
2071
		end
2072
2073
2074
	if Key == "x" and ATTACK == false then
2075
		SinfulShell()
2076
    end
2077
2078
    if Key == "f" and ATTACK == false then
2079
		Prison_Key()
2080
	end
2081
2082
    if Key == "g" and ATTACK == false then
2083
		Morning_Star()                                  
2084
    end
2085
end
2086
2087
function KeyUp(Key)
2088
	KEYHOLD = false
2089
end
2090
2091
	Mouse.Button1Down:connect(function(NEWKEY)
2092
		MouseDown(NEWKEY)
2093
	end)
2094
	Mouse.Button1Up:connect(function(NEWKEY)
2095
		MouseUp(NEWKEY)
2096
	end)
2097
	Mouse.KeyDown:connect(function(NEWKEY)
2098
		KeyDown(NEWKEY)
2099
	end)
2100
	Mouse.KeyUp:connect(function(NEWKEY)
2101
		KeyUp(NEWKEY)
2102
	end)
2103
2104
--//=================================\\
2105
--\\=================================//
2106
2107
2108
function unanchor()
2109
	if UNANCHOR == true then
2110
		g = Character:GetChildren()
2111
		for i = 1, #g do
2112
			if g[i].ClassName == "Part" then
2113
				g[i].Anchored = false
2114
			end
2115
		end
2116
	end
2117
end
2118
2119
2120
--//=================================\\
2121
--||	WRAP THE WHOLE SCRIPT UP
2122
--\\=================================//
2123
2124
Humanoid.Changed:connect(function(Jump)
2125
	if Jump == "Jump" and (Disable_Jump == true) then
2126
		Humanoid.Jump = false
2127
	end
2128
end)
2129
2130
local BLINKLOOP = 0
2131
2132
while true do
2133
	Swait()
2134
	script.Parent = WEAPONGUI
2135
	ANIMATE.Parent = nil
2136
	for _,v in next, Humanoid:GetPlayingAnimationTracks() do
2137
	    v:Stop();
2138
	end
2139
	Humanoid.JumpPower = 75
2140
	SINE = SINE + CHANGE
2141
	local TORSOVELOCITY = (RootPart.Velocity * VT(1, 0, 1)).magnitude
2142
	local TORSOVERTICALVELOCITY = RootPart.Velocity.y
2143
	local HITFLOOR = Raycast(RootPart.Position, (CF(RootPart.Position, RootPart.Position + VT(0, -1, 0))).lookVector, 4, Character)
2144
	local WALKSPEEDVALUE = 4 / (Humanoid.WalkSpeed / 16)
2145
	if ANIM == "Walk" and TORSOVELOCITY > 1 then
2146
		RootJoint.C1 = Clerp(RootJoint.C1, ROOTC0 * CF(0, 0, -0.15 * COS(SINE / (WALKSPEEDVALUE / 2))) * ANGLES(RAD(0), RAD(0), RAD(0)), 2 * (Humanoid.WalkSpeed / 16) / Animation_Speed)
2147
		Neck.C1 = Clerp(Neck.C1, CF(0, -0.5, 0) * ANGLES(RAD(-90), RAD(0), RAD(180)) * ANGLES(RAD(2.5 * SIN(SINE / (WALKSPEEDVALUE / 2))), RAD(0), RAD(0)), 0.2 * (Humanoid.WalkSpeed / 16) / Animation_Speed)
2148
		RightHip.C1 = Clerp(RightHip.C1, CF(0.5, 0.825 - 0.175 * SIN(SINE / WALKSPEEDVALUE) - 0.15 * COS(SINE / WALKSPEEDVALUE*2), -0.125 * COS(SINE / WALKSPEEDVALUE) +0.1- 0.5 * COS(SINE / WALKSPEEDVALUE)) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(76 * COS(SINE / WALKSPEEDVALUE))), 0.2 * (Humanoid.WalkSpeed / 16) / Animation_Speed)
2149
		LeftHip.C1 = Clerp(LeftHip.C1, CF(-0.5, 0.825 + 0.175 * SIN(SINE / WALKSPEEDVALUE) - 0.15 * COS(SINE / WALKSPEEDVALUE*2), 0.125 * COS(SINE / WALKSPEEDVALUE) +0.1+ 0.5 * COS(SINE / WALKSPEEDVALUE)) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(76 * COS(SINE / WALKSPEEDVALUE))), 0.2 * (Humanoid.WalkSpeed / 16) / Animation_Speed)
2150
	elseif (ANIM ~= "Walk") or (TORSOVELOCITY < 1) then
2151
		RootJoint.C1 = Clerp(RootJoint.C1, ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
2152
		Neck.C1 = Clerp(Neck.C1, CF(0, -0.5, 0) * ANGLES(RAD(-90), RAD(0), RAD(180)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
2153
		RightHip.C1 = Clerp(RightHip.C1, CF(0.5, 1, 0) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
2154
		LeftHip.C1 = Clerp(LeftHip.C1, CF(-0.5, 1, 0) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
2155
	end
2156
	if HITFLOOR == nil then
2157
		ANIM = "Midair"
2158
		local JUMPHIT = Raycast(RootPart.Position, (CF(RootPart.Position, RootPart.Position + VT(0, -1, 0))).lookVector, 5, Character)
2159
		if JUMPHIT ~= nil and TORSOVERTICALVELOCITY < 0 then
2160
			if JUMPHIT.Name == "Head" and JUMPHIT:FindFirstChild("Stomped") == nil then
2161
				local HIT = IT("Folder",JUMPHIT)
2162
				HIT.Name = "Stomped"
2163
				CreateSound(165013277, JUMPHIT, 10, 1, false)
2164
				RootPart.Velocity = VT(0,80,0)
2165
				GoombaStomp(JUMPHIT.Parent)
2166
			elseif JUMPHIT.Parent.ClassName == "Accessory" then
2167
				local HEAD = JUMPHIT.Parent.Parent:FindFirstChild("Head")
2168
				if HEAD then
2169
					if HEAD:FindFirstChild("Stomped") == nil then
2170
						local HIT = IT("Folder",HEAD)
2171
						HIT.Name = "Stomped"
2172
						CreateSound(165013277, HEAD, 10, 1, false)
2173
						RootPart.Velocity = VT(0,80,0)
2174
						GoombaStomp(HEAD.Parent)
2175
					end
2176
				end
2177
			end
2178
		end
2179
		local JUMPHIT = Raycast(RootPart.CFrame*CF(1,0,0).p, (CF(RootPart.Position, RootPart.Position + VT(0, -1, 0))).lookVector, 5, Character)
2180
		if JUMPHIT ~= nil and TORSOVERTICALVELOCITY < 0 then
2181
			if JUMPHIT.Name == "Head" and JUMPHIT:FindFirstChild("Stomped") == nil then
2182
				local HIT = IT("Folder",JUMPHIT)
2183
				HIT.Name = "Stomped"
2184
				CreateSound(165013277, JUMPHIT, 10, 1, false)
2185
				RootPart.Velocity = VT(0,80,0)
2186
				GoombaStomp(JUMPHIT.Parent)
2187
			elseif JUMPHIT.Parent.ClassName == "Accessory" then
2188
				local HEAD = JUMPHIT.Parent.Parent:FindFirstChild("Head")
2189
				if HEAD then
2190
					if HEAD:FindFirstChild("Stomped") == nil then
2191
						local HIT = IT("Folder",HEAD)
2192
						HIT.Name = "Stomped"
2193
						CreateSound(165013277, HEAD, 10, 1, false)
2194
						RootPart.Velocity = VT(0,80,0)
2195
						GoombaStomp(HEAD.Parent)
2196
					end
2197
				end
2198
			end
2199
		end
2200
		local JUMPHIT = Raycast(RootPart.CFrame*CF(-1,0,0).p, (CF(RootPart.Position, RootPart.Position + VT(0, -1, 0))).lookVector, 5, Character)
2201
		if JUMPHIT ~= nil and TORSOVERTICALVELOCITY < 0 then
2202
			if JUMPHIT.Name == "Head" and JUMPHIT:FindFirstChild("Stomped") == nil then
2203
				local HIT = IT("Folder",JUMPHIT)
2204
				HIT.Name = "Stomped"
2205
				CreateSound(165013277, JUMPHIT, 10, 1, false)
2206
				RootPart.Velocity = VT(0,80,0)
2207
				GoombaStomp(JUMPHIT.Parent)
2208
			elseif JUMPHIT.Parent.ClassName == "Accessory" then
2209
				local HEAD = JUMPHIT.Parent.Parent:FindFirstChild("Head")
2210
				if HEAD then
2211
					if HEAD:FindFirstChild("Stomped") == nil then
2212
						local HIT = IT("Folder",HEAD)
2213
						HIT.Name = "Stomped"
2214
						CreateSound(165013277, HEAD, 10, 1, false)
2215
						RootPart.Velocity = VT(0,80,0)
2216
						GoombaStomp(HEAD.Parent)
2217
					end
2218
				end
2219
			end
2220
		end
2221
		if ATTACK == false then
2222
			RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0, 0, 0+sick.PlaybackLoudness/800) * ANGLES(RAD(0), RAD(0), RAD(0)), 2 / Animation_Speed)
2223
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1+sick.PlaybackLoudness/800) - 1)) * ANGLES(RAD(-20), RAD(0), RAD(0)), 2 / Animation_Speed)
2224
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.75, -0.2) * ANGLES(RAD(150), RAD(0), RAD(0)) * RIGHTSHOULDERC0, 2 / Animation_Speed)
2225
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(-40), RAD(0), RAD(-15)) * LEFTSHOULDERC0, 2 / Animation_Speed)
2226
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.4-sick.PlaybackLoudness/800, -0.7) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 2 / Animation_Speed)
2227
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1-sick.PlaybackLoudness/800, -0.3) * ANGLES(RAD(-25), RAD(-80), RAD(0)) * ANGLES(RAD(-5), RAD(0), RAD(0)), 2 / Animation_Speed)
2228
	    end
2229
	elseif TORSOVELOCITY < 1 and HITFLOOR ~= nil then
2230
		ANIM = "Idle"
2231
		JUMPED = false
2232
		if ATTACK == false then
2233
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0+sick.PlaybackLoudness/800) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
2234
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1+sick.PlaybackLoudness/800) - 1)) * ANGLES(RAD(0), RAD(7.5-30*SIN(sick.PlaybackLoudness/300)), RAD(0 - 25 * SIN(SINE / 15))), 1 / Animation_Speed)
2235
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5+sick.PlaybackLoudness/1200, 0) * ANGLES(RAD(0), RAD(-15), RAD(-2+sick.PlaybackLoudness/45)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
2236
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.25, 0.5, 0.3) * ANGLES(RAD(0), RAD(55), RAD(-12)) * ANGLES(RAD(-45), RAD(0), RAD(0)) * LEFTSHOULDERC0, 1 / Animation_Speed)
2237
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -1-sick.PlaybackLoudness/800, -0.01) * ANGLES(RAD(0), RAD(80), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
2238
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1-sick.PlaybackLoudness/800, -0.01) * ANGLES(RAD(0), RAD(-80), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
2239
		end
2240
	elseif TORSOVELOCITY > 1 and HITFLOOR ~= nil then
2241
		ANIM = "Walk"
2242
		JUMPED = false
2243
		if ATTACK == false then
2244
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, -0.1+sick.PlaybackLoudness/800) * ANGLES(RAD(5), RAD(0), RAD(0)), 1 / Animation_Speed)
2245
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1+sick.PlaybackLoudness/800) - 1)) * ANGLES(RAD(5 - 2 * SIN(SINE / (WALKSPEEDVALUE / 2))), RAD(7.5-30*SIN(sick.PlaybackLoudness/300)), RAD(0)), 1 / Animation_Speed)
2246
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5+sick.PlaybackLoudness/1200, 0) * ANGLES(RAD(60 * COS(SINE / WALKSPEEDVALUE)), RAD(0), RAD(-5)) * RIGHTSHOULDERC0, 0.35 / Animation_Speed)
2247
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.25, 0.5, 0.3) * ANGLES(RAD(0), RAD(55), RAD(-12)) * ANGLES(RAD(-45), RAD(0), RAD(0)) * LEFTSHOULDERC0, 1 / Animation_Speed)
2248
			RightHip.C0 = Clerp(RightHip.C0, CF(1 , -1-sick.PlaybackLoudness/800, 0) * ANGLES(RAD(0), RAD(80), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(-3)), 2 / Animation_Speed)
2249
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1-sick.PlaybackLoudness/800, 0) * ANGLES(RAD(0), RAD(-80), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(3)), 2 / Animation_Speed)
2250
		end
2251
	end
2252
	
2253
	unanchor()
2254
	Humanoid.MaxHealth = "inf"
2255
	Humanoid.Health = "inf"
2256
	if Rooted == false then
2257
		Disable_Jump = false
2258
		Humanoid.WalkSpeed = Speed
2259
	elseif Rooted == true then
2260
		Disable_Jump = true
2261
		Humanoid.WalkSpeed = 0
2262
	end
2263
	sick.SoundId = "rbxassetid://591604546"
2264
	sick.Looped = true
2265
	sick.Pitch = 1
2266
	sick.Volume = 10
2267
	sick.Playing = true
2268
	sick.Parent = Torso
2269
	if Head:FindFirstChild("face") then
2270
		Head.face.Texture = "rbxassetid://142478285"
2271
	end
2272
	BLINKLOOP = BLINKLOOP + 1
2273
	if BLINKLOOP >=650 then
2274
		BLINKLOOP = 0
2275
		Blink()
2276
	end
2277
	if #GHOSTS>0 then
2278
		for e=1,#GHOSTS do
2279
			if GHOSTS[e]~=nil then
2280
				local Thing=GHOSTS[e]
2281
				if Thing~=nil then
2282
					if Thing:FindFirstChild("Head") then
2283
						if Thing:FindFirstChild("Head"):FindFirstChild("face") then
2284
							Thing:FindFirstChild("Head").face.Texture = "rbxassetid://127959433"
2285
						end
2286
						if Thing:FindFirstChild("Head"):FindFirstChildOfClass("Sound") then
2287
							Thing:FindFirstChild("Head"):FindFirstChildOfClass("Sound"):remove()
2288
						end
2289
					end
2290
					local TORSO = Thing:FindFirstChild("Torso")
2291
					if TORSO then
2292
						TORSO.Anchored = false
2293
						local ROOT = Thing.HumanoidRootPart
2294
						local RootJoint1 = ROOT:FindFirstChild("RootJoint")
2295
						local Neck1 = TORSO:FindFirstChild("Neck")
2296
						local RightShoulder1 = TORSO:FindFirstChild("Right Shoulder")
2297
						local LeftShoulder1 = TORSO:FindFirstChild("Left Shoulder")
2298
						local RightHip1 = TORSO:FindFirstChild("Right Hip")
2299
						local LeftHip1 = TORSO:FindFirstChild("Left Hip")
2300
						if ROOT and RootJoint1 then
2301
							local VELOCITY = (ROOT.Velocity * VT(1, 0, 1)).magnitude
2302
							if VELOCITY < 1 then
2303
								RootJoint1.C0 = ROOTC0 * CF(0, 0, 0 + 0.15 * COS(SINE / 12)) * ANGLES(RAD(4 + 2.5 * SIN(SINE / 12)), RAD(0), RAD(2.5 * SIN(SINE / 12)))
2304
								Neck1.C0 = NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0 + 4.5 * SIN(SINE / 12)), RAD(0), RAD( - 2.5 * SIN(SINE / 12)))
2305
								RightShoulder1.C0 = CF(1.5, 0.5 + 0.05 * COS(SINE / 12), 0) * ANGLES(RAD(0), RAD(0 - 2.5 * SIN(SINE / 12)), RAD(5 + 1.5 * SIN(SINE / 12))) * RIGHTSHOULDERC0
2306
								LeftShoulder1.C0 = CF(-1.5, 0.5 + 0.05 * COS(SINE / 12), 0) * ANGLES(RAD(0), RAD(0 + 2.5 * SIN(SINE / 12)), RAD(-5 - 1.5 * SIN(SINE / 12))) * LEFTSHOULDERC0
2307
								RightHip1.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))
2308
								LeftHip1.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))
2309
							elseif VELOCITY > 1 then
2310
								RootJoint1.C0 = ROOTC0 * CF(0, 0, 0 + 0.15 * COS(SINE / 12)) * ANGLES(RAD(25 + 2.5 * SIN(SINE / 12)), RAD(0), RAD(2.5 * SIN(SINE / 12)))
2311
								Neck1.C0 = NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(-25 + 4.5 * SIN(SINE / 12)), RAD(0), RAD( - 2.5 * SIN(SINE / 12)))
2312
								RightShoulder1.C0 = CF(1.5, 0.5 + 0.05 * COS(SINE / 12), 0) * ANGLES(RAD(-25), RAD(0 - 2.5 * SIN(SINE / 12)), RAD(15 + 1.5 * SIN(SINE / 12))) * RIGHTSHOULDERC0
2313
								LeftShoulder1.C0 = CF(-1.5, 0.5 + 0.05 * COS(SINE / 12), 0) * ANGLES(RAD(-25), RAD(0 + 2.5 * SIN(SINE / 12)), RAD(-15 - 1.5 * SIN(SINE / 12))) * LEFTSHOULDERC0
2314
								RightHip1.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))
2315
								LeftHip1.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))
2316
							end
2317
						end
2318
						local Human = Thing.Humanoid
2319
						if Human then
2320
							Human.HipHeight = 0.3
2321
							for _, c in pairs(Thing:GetChildren()) do
2322
								if c.ClassName == "Part" and c.Transparency < 1 then
2323
									c.Color = C3(0,0,0)
2324
									c.Transparency = 0.65 + 0.15 * COS(SINE / 25)
2325
								elseif c.ClassName == "Accessory" or c.ClassName == "Hat" or c.ClassName == "CharacterMesh" or c.ClassName == "Shirt" or c.ClassName == "Pants" then
2326
									c:remove()
2327
								end
2328
							end
2329
							if Human then
2330
								local IDLEANIMATION = Human:LoadAnimation(ROBLOXIDLEANIMATION)
2331
								IDLEANIMATION:Play()
2332
							end
2333
							local list = game.Workspace:children()
2334
							local torso = nil
2335
							local dist = 50
2336
							local temp = nil
2337
							local human = nil
2338
							local temp2 = nil
2339
							local OwnerInDanger = false
2340
							for x = 1, #list do
2341
								temp2 = list[x]
2342
								if (temp2.className == "Model") and (temp2 ~= Character) and (temp2 ~= Thing) then
2343
									temp = temp2:findFirstChild("Torso") or temp2:findFirstChild("UpperTorso")
2344
									human = temp2:findFirstChildOfClass("Humanoid")
2345
									if (temp ~= nil) and (human ~= nil) and (human.Health > 0) then
2346
										if (temp.Position - Torso.Position).magnitude < 15 then
2347
											OwnerInDanger = true
2348
											newdist = (temp.Position - TORSO.Position).magnitude
2349
											dist = (Torso.Position - temp.Position).magnitude
2350
											Human:MoveTo(temp.Position)
2351
											torso = temp
2352
											if newdist < 7 then
2353
												torso.CFrame = CF(torso.Position,TORSO.Position)*CF(0,0,5)
2354
												CreateSound(814168787, temp, 1, 2, false)
2355
												ApplyDamage(human,MRANDOM(15,35),temp)
2356
												WACKYEFFECT({Time = 15, EffectType = "Wave", Size = VT(1,1,1), Size2 = VT(3,1,3), Transparency = 0, Transparency2 = 1, CFrame = CF(TORSO.Position,torso.Position)*CF(0,0,-2) * ANGLES(RAD(-90), RAD(0), RAD(0)), MoveToPos = nil, RotationX = 0, RotationY = 5, RotationZ = 0, Material = "Neon", Color = C3(0,0,0), SoundID = nil, SoundPitch = 1, SoundVolume = 5})
2357
												WACKYEFFECT({Time = 35, EffectType = "Wave", Size = VT(1,1,1), Size2 = VT(3,1,3), Transparency = 0, Transparency2 = 1, CFrame = torso.CFrame*CF(0,-4*torso.Size.Y/2,0), MoveToPos = nil, RotationX = 0, RotationY = 5, RotationZ = 0, Material = "Neon", Color = C3(0,0,0), SoundID = nil, SoundPitch = 1, SoundVolume = 5})
2358
											end
2359
										end
2360
									end
2361
								end
2362
							end
2363
							if OwnerInDanger == false then
2364
								for x = 1, #list do
2365
									temp2 = list[x]
2366
									if (temp2.className == "Model") and (temp2 ~= Character) and (temp2 ~= Thing) then
2367
										temp = temp2:findFirstChild("Torso") or temp2:findFirstChild("UpperTorso")
2368
										human = temp2:findFirstChildOfClass("Humanoid")
2369
										if (temp ~= nil) and (human ~= nil) and (human.Health > 0) then
2370
											if (temp.Position - Torso.Position).magnitude < dist then
2371
												newdist = (temp.Position - TORSO.Position).magnitude
2372
												Human:MoveTo(temp.Position)
2373
												torso = temp
2374
												if newdist < 15 then
2375
													if MRANDOM(1,35) == 1 then
2376
														CreateSound(438665935, temp, 1, 3, false)
2377
														ApplyDamage(human,MRANDOM(2,20),temp)
2378
														WACKYEFFECT({Time = 15, EffectType = "Wave", Size = VT(1,1,1), Size2 = VT(3,1,3), Transparency = 0, Transparency2 = 1, CFrame = CF(TORSO.Position,torso.Position)*CF(0,0,-2) * ANGLES(RAD(-90), RAD(0), RAD(0)), MoveToPos = nil, RotationX = 0, RotationY = 5, RotationZ = 0, Material = "Neon", Color = C3(0,0,0), SoundID = nil, SoundPitch = 1, SoundVolume = 5})
2379
													end
2380
												end
2381
											end
2382
										end
2383
									end
2384
								end
2385
							end
2386
							if torso == nil then
2387
								Human.WalkSpeed = Speed -0.2
2388
								if (Torso.Position - TORSO.Position).magnitude < 12 and (Torso.Position - TORSO.Position).magnitude >= 11 then
2389
									Human:MoveTo(TORSO.Position)
2390
								elseif (Torso.Position - TORSO.Position).magnitude > 15 then
2391
									Human:MoveTo(Torso.Position)
2392
								elseif (Torso.Position - TORSO.Position).magnitude < 11 then
2393
									Human:MoveTo(CF(Torso.Position,TORSO.Position)*CF(0,0,-5).p)
2394
								end
2395
							else
2396
								if OwnerInDanger == false then
2397
									Human.WalkSpeed = Speed*1.2
2398
								else
2399
									Human.WalkSpeed = Speed*5
2400
								end
2401
							end
2402
							if Human.Health == 0 then
2403
								Thing:remove()
2404
								table.remove(GHOSTS,e)
2405
							else
2406
								Human.Health = Human.Health + 0.5
2407
							end
2408
						else
2409
							Thing:remove()
2410
							table.remove(GHOSTS,e)
2411
						end
2412
					else
2413
						Thing:remove()
2414
						table.remove(GHOSTS,e)
2415
					end
2416
				end
2417
			end
2418
		end
2419
	end
2420
	refit()
2421
end
2422
2423
--//=================================\\
2424
--\\=================================//
2425
2426
2427
2428
2429
2430
--//====================================================\\--
2431
--||			  		 END OF THE SCRIPT
2432
--\\====================================================//--