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