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