View difference between Paste ID: R3RN14vD and 7PfwYsFa
SHOW: | | - or go back to the newest paste.
1
--https://github.com/Mokiros/roblox-FE-compatibility
2
if game:GetService("RunService"):IsClient() then error("Script must be server-side in order to work; use h/ and not hl/") end
3
local Player,Mouse,mouse,UserInputService,ContextActionService = owner
4
local RealPlayer = Player
5-
do print("FE Compatibility code by Mokiros")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(),Button2Up=c(),Button2Down=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;if o.UserInputType==Enum.UserInputType.MouseButton2 then return f:TrigEvent(p and"Button2Down"or"Button2Up")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 typeof(t[q])=="function"and function(m,...)return t[q](t,...)end or t[q]end end,__newindex=function(self,q,u)local t=rawget(self,"_RealService")if t then t[q]=u 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 rawget(self,t)or r:GetService(t)end,Players=v({LocalPlayer=v({GetMouse=function(self)return f end},Player)},"Players"),UserInputService=v(g,"UserInputService"),ContextActionService=v(CAS,"ContextActionService"),RunService=v({_btrs={},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")}rawset(x.Players,"localPlayer",x.Players.LocalPlayer)x.service=x.GetService;v(x,game)game,owner=x,x.Players.LocalPlayer end
5+
do print("This is an edit of Super-Evolved Banish by me, RhiBel00351.")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(),Button2Up=c(),Button2Down=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;if o.UserInputType==Enum.UserInputType.MouseButton2 then return f:TrigEvent(p and"Button2Down"or"Button2Up")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 typeof(t[q])=="function"and function(m,...)return t[q](t,...)end or t[q]end end,__newindex=function(self,q,u)local t=rawget(self,"_RealService")if t then t[q]=u 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 rawget(self,t)or r:GetService(t)end,Players=v({LocalPlayer=v({GetMouse=function(self)return f end},Player)},"Players"),UserInputService=v(g,"UserInputService"),ContextActionService=v(CAS,"ContextActionService"),RunService=v({_btrs={},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")}rawset(x.Players,"localPlayer",x.Players.LocalPlayer)x.service=x.GetService;v(x,game)game,owner=x,x.Players.LocalPlayer end
6
script.Name = "BANISHER"
7
--//====================================================\\--
8
--||			   CREATED BY SHACKLUSTER
9
--||               EDIT BY NAME CLAN
10
--||               TRANSFORM TO BANISHER GUN V.4
11-
--||                             BY nguyenducloi123
11+
--||                             BY RhiBel00351
12
--\\====================================================//--
13
14
wait(0.2)
15
16
Player = game:GetService("Players").LocalPlayer
17
PlayerGui = Player.PlayerGui
18
chara = Player.Character
19
Character = Player.Character
20
Cam = workspace.CurrentCamera
21
Backpack = Player.Backpack
22
Character = Player.Character
23
Humanoid = Character.Humanoid
24
Mouse = Player:GetMouse()
25
RootPart = Character["HumanoidRootPart"]
26
Torso = Character["Torso"]
27
Head = Character["Head"]
28
RightArm = Character["Right Arm"]
29
LeftArm = Character["Left Arm"]
30
RightLeg = Character["Right Leg"]
31
LeftLeg = Character["Left Leg"]
32
RootJoint = RootPart["RootJoint"]
33
Neck = Torso["Neck"]
34
RightShoulder = Torso["Right Shoulder"]
35
LeftShoulder = Torso["Left Shoulder"]
36
RightHip = Torso["Right Hip"]
37
LeftHip = Torso["Left Hip"]
38
local sick = Instance.new("Sound",Character)
39
sick.Parent = Character
40-
sick.SoundId = "rbxassetid://472032669"
40+
sick.SoundId = "rbxassetid://3329041731"
41
sick.Looped = true
42
sick.Pitch = 1
43
sick.Volume = 7
44
sick:Play()
45
Character.Archivable = true
46
Humanoid.DisplayDistanceType = "None"
47
48
local naeeym = Instance.new("BillboardGui",chara)
49
naeeym.Size = UDim2.new(0,100,0,40)
50
naeeym.StudsOffset = Vector3.new(0,2,0)
51
naeeym.Adornee = chara.Head
52
local tecks = Instance.new("TextLabel",naeeym)
53
tecks.BackgroundTransparency = 1
54
tecks.BorderSizePixel = 0
55-
tecks.Text = "Super-Evolved Banish"
55+
tecks.Text = "The Anti-Skid"
56
tecks.Font = "Fantasy"
57
tecks.FontSize = "Size24"
58
tecks.TextStrokeTransparency = 0
59
tecks.TextStrokeColor3 = Color3.new(170,0,0)
60
tecks.TextColor3 = Color3.new(1,0,0)
61
tecks.Size = UDim2.new(1,0,0.5,0)
62
63
IT = Instance.new
64
CF = CFrame.new
65
VT = Vector3.new
66
RAD = math.rad
67
C3 = Color3.new
68
UD2 = UDim2.new
69
BRICKC = BrickColor.new
70
ANGLES = CFrame.Angles
71
EULER = CFrame.fromEulerAnglesXYZ
72
COS = math.cos
73
ACOS = math.acos
74
SIN = math.sin
75
ASIN = math.asin
76
ABS = math.abs
77
MRANDOM = math.random
78
FLOOR = math.floor
79
80
--//=================================\\
81
--|| 	      USEFUL VALUES
82
--\\=================================//
83
84
Animation_Speed = 3
85
local FORCERESET = false
86
Frame_Speed = 1 / 60 -- (1 / 30) OR (1 / 60)
87
local Speed = 16
88
local ROOTC0 = CF(0, 0, 0) * ANGLES(RAD(-90), RAD(0), RAD(180))
89
local NECKC0 = CF(0, 1, 0) * ANGLES(RAD(-90), RAD(0), RAD(180))
90
local RIGHTSHOULDERC0 = CF(-0.5, 0, 0) * ANGLES(RAD(0), RAD(90), RAD(0))
91
local LEFTSHOULDERC0 = CF(0.5, 0, 0) * ANGLES(RAD(0), RAD(-90), RAD(0))
92
local DAMAGEMULTIPLIER = 1
93
local ANIM = "Idle"
94
local ATTACK = false
95
local EQUIPPED = false
96
local HOLD = false
97
local COMBO = 1
98
local Rooted = false
99
local Gun = IT("Model")
100
Gun.Name = "Gun"
101
local SINE = 0
102
local KEYHOLD = false
103
local CHANGE = 2 / Animation_Speed
104
local WALKINGANIM = false
105
local VALUE1 = false
106
local VALUE2 = false
107
local ROBLOXIDLEANIMATION = IT("Animation")
108
ROBLOXIDLEANIMATION.Name = "Roblox Idle Animation"
109
ROBLOXIDLEANIMATION.AnimationId = "http://www.roblox.com/asset/?id=180435571"
110
--ROBLOXIDLEANIMATION.Parent = Humanoid
111
local WEAPONGUI = IT("ScreenGui", PlayerGui)
112
WEAPONGUI.Name = "BanishV3Gui"
113
local Weapon = IT("Model")
114
Weapon.Name = "Adds"
115
local Effects = IT("Folder", Weapon)
116
Effects.Name = "Effects"
117
local ANIMATOR = Humanoid.Animator
118
local ANIMATE = Character:FindFirstChild("Animate")
119
local UNANCHOR = true
120
local TOBANISH = {}
121
script.Parent = PlayerGui
122
123
--//=================================\\
124
--\\=================================//
125
126
127
--//=================================\\
128
--||		  CUSTOMIZATION
129
--\\=================================//
130
131
Class_Name = "Sharpshooter"
132
Weapon_Name = "Add-ons"
133
134
	Custom_Color_1 = BRICKC("Really black"); --1st color for the weapon.
135-
	Custom_Color_2 = BRICKC("Maroon"); --2nd color for the weapon.
135+
	Custom_Color_2 = BRICKC("Toothpaste"); --2nd color for the weapon.
136
137-
	Custom_Color_3 = BRICKC("Really red"); --Color for the abilities.
137+
	Custom_Color_3 = BRICKC("Storm blue"); --Color for the abilities.
138
	Custom_Color_4 = BRICKC("Institutional white"); --Color for the secondary bar.
139
	Custom_Color_5 = BRICKC("Institutional white"); --Color for the mana bar.
140
	Custom_Color_6 = BRICKC("Institutional white"); --Color for the health bar.
141
	Custom_Color_7 = BRICKC("Institutional white"); --Color for the stun bar.
142
143
	Custom_Color_8 = BRICKC("Institutional white"); --Background for the mana bar.
144
	Custom_Color_9 = BRICKC("Institutional white"); --Background for the secondary mana bar.
145
	Custom_Color_10 = BRICKC("Institutional white"); --Background for the stun bar.
146
	Custom_Color_11 = BRICKC("Institutional white"); --Background for the health bar.
147
	Custom_Color_12 = BRICKC("Institutional white"); --Background for the abilities.
148
149
150
Player_Size = 1 --Size of the player.
151
Animation_Speed = 3
152
Frame_Speed = 1 / 60 -- (1 / 30) OR (1 / 60)
153
154
local Speed = 20
155
local Effects2 = {}
156
157
--//=================================\\
158
--|| 	  END OF CUSTOMIZATION
159
--\\=================================//
160
161
162
--//=================================\\
163
--|| SAZERENOS' ARTIFICIAL HEARTBEAT
164
--\\=================================//
165
166
ArtificialHB = Instance.new("BindableEvent", script)
167
ArtificialHB.Name = "ArtificialHB"
168
169
script:WaitForChild("ArtificialHB")
170
171
frame = Frame_Speed
172
tf = 0
173
allowframeloss = false
174
tossremainder = false
175
lastframe = tick()
176
script.ArtificialHB:Fire()
177
178
game:GetService("RunService").Heartbeat:connect(function(s, p)
179
	tf = tf + s
180
	if tf >= frame then
181
		if allowframeloss then
182
			script.ArtificialHB:Fire()
183
			lastframe = tick()
184
		else
185
			for i = 1, math.floor(tf / frame) do
186
				script.ArtificialHB:Fire()
187
			end
188
		lastframe = tick()
189
		end
190
		if tossremainder then
191
			tf = 0
192
		else
193
			tf = tf - frame * math.floor(tf / frame)
194
		end
195
	end
196
end)
197
198
--//=================================\\
199
--\\=================================//
200
201
--//=================================\\
202
--|| 	      SOME FUNCTIONS
203
--\\=================================//
204
205
function Clerp(a, b, t)
206
	local qa = {QuaternionFromCFrame(a)}
207
	local qb = {QuaternionFromCFrame(b)}
208
	local ax, ay, az = a.x, a.y, a.z
209
	local bx, by, bz = b.x, b.y, b.z
210
	local _t = 1 - t
211
	return QuaternionToCFrame(_t * ax + t * bx, _t * ay + t * by, _t * az + t * bz, QuaternionSlerp(qa, qb, t))
212
end
213
214
function CreateFrame(PARENT, TRANSPARENCY, BORDERSIZEPIXEL, POSITION, SIZE, COLOR, BORDERCOLOR, NAME)
215
	local frame = IT("Frame")
216
	frame.BackgroundTransparency = TRANSPARENCY
217
	frame.BorderSizePixel = BORDERSIZEPIXEL
218
	frame.Position = POSITION
219
	frame.Size = SIZE
220
	frame.BackgroundColor3 = COLOR
221
	frame.BorderColor3 = BORDERCOLOR
222
	frame.Name = NAME
223
	frame.Parent = PARENT
224
	return frame
225
end
226
227
function CreateLabel(PARENT, TEXT, TEXTCOLOR, TEXTFONTSIZE, TEXTFONT, TRANSPARENCY, BORDERSIZEPIXEL, STROKETRANSPARENCY, NAME)
228
	local label = IT("TextLabel")
229
	label.BackgroundTransparency = 1
230
	label.Size = UD2(1, 0, 1, 0)
231
	label.Position = UD2(0, 0, 0, 0)
232
	label.TextColor3 = TEXTCOLOR
233
	label.TextStrokeTransparency = STROKETRANSPARENCY
234
	label.TextTransparency = TRANSPARENCY
235
	label.FontSize = TEXTFONTSIZE
236
	label.Font = TEXTFONT
237
	label.BorderSizePixel = BORDERSIZEPIXEL
238
	label.TextScaled = false
239
	label.Text = TEXT
240
	label.Name = NAME
241
	label.Parent = PARENT
242
	return label
243
end
244
245
function CreateDebreeRing(FLOOR,POSITION,SIZE,BLOCKSIZE,SWAIT)
246
	if FLOOR ~= nil then
247
		coroutine.resume(coroutine.create(function()
248
			local PART = CreatePart(3, Effects, "Plastic", 0, 1, "Pearl", "DebreeCenter", VT(0,0,0))
249
			PART.CFrame = CF(POSITION)
250
			for i = 1, 45 do
251
				local RingPiece = CreatePart(3, Effects, "Plastic", 0, 0, "Pearl", "DebreePart", BLOCKSIZE)
252
				RingPiece.Material = FLOOR.Material
253
				RingPiece.Color = FLOOR.Color
254
				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)))
255
				Debris:AddItem(RingPiece,SWAIT)
256
			end
257
			PART:remove()
258
		end))
259
	end
260
end
261
262
function CreateFlyingDebree(FLOOR,POSITION,AMOUNT,BLOCKSIZE,SWAIT,STRENGTH)
263
	if FLOOR ~= nil then
264
		for i = 1, AMOUNT do
265
			local DEBREE = CreatePart(3, Effects, "Neon", FLOOR.Reflectance, FLOOR.Transparency, "Peal", "Debree", BLOCKSIZE, false)
266
			DEBREE.Material = FLOOR.Material
267
			DEBREE.Color = FLOOR.Color
268
			DEBREE.CFrame = POSITION * ANGLES(RAD(MRANDOM(-360,360)),RAD(MRANDOM(-360,360)),RAD(MRANDOM(-360,360)))
269
			DEBREE.Velocity = VT(MRANDOM(-STRENGTH,STRENGTH),MRANDOM(-STRENGTH,STRENGTH),MRANDOM(-STRENGTH,STRENGTH))
270
			coroutine.resume(coroutine.create(function()
271
				Swait(15)
272
				DEBREE.Parent = workspace
273
				DEBREE.CanCollide = true
274
				Debris:AddItem(DEBREE,SWAIT)
275
			end))
276
		end
277
	end
278
end
279
280
function Raycast(POSITION, DIRECTION, RANGE, IGNOREDECENDANTS)
281
	return workspace:FindPartOnRay(Ray.new(POSITION, DIRECTION.unit * RANGE), IGNOREDECENDANTS)
282
end
283
284
function PositiveAngle(NUMBER)
285
	if NUMBER >= 0 then
286
		NUMBER = 0
287
	end
288
	return NUMBER
289
end
290
291
function NegativeAngle(NUMBER)
292
	if NUMBER <= 0 then
293
		NUMBER = 0
294
	end
295
	return NUMBER
296
end
297
298
function Swait(NUMBER)
299
	if NUMBER == 0 or NUMBER == nil then
300
		ArtificialHB.Event:wait()
301
	else
302
		for i = 1, NUMBER do
303
			ArtificialHB.Event:wait()
304
		end
305
	end
306
end
307
308
function CreateMesh(MESH, PARENT, MESHTYPE, MESHID, TEXTUREID, SCALE, OFFSET)
309
	local NEWMESH = IT(MESH)
310
	if MESH == "SpecialMesh" then
311
		NEWMESH.MeshType = MESHTYPE
312
		if MESHID ~= "nil" and MESHID ~= "" then
313
			NEWMESH.MeshId = "http://www.roblox.com/asset/?id="..MESHID
314
		end
315
		if TEXTUREID ~= "nil" and TEXTUREID ~= "" then
316
			NEWMESH.TextureId = "http://www.roblox.com/asset/?id="..TEXTUREID
317
		end
318
	end
319
	NEWMESH.Offset = OFFSET or VT(0, 0, 0)
320
	NEWMESH.Scale = SCALE
321
	NEWMESH.Parent = PARENT
322
	return NEWMESH
323
end
324
325
function CreatePart(FORMFACTOR, PARENT, MATERIAL, REFLECTANCE, TRANSPARENCY, BRICKCOLOR, NAME, SIZE, ANCHOR)
326
	local NEWPART = IT("Part")
327
	NEWPART.formFactor = FORMFACTOR
328
	NEWPART.Reflectance = REFLECTANCE
329
	NEWPART.Transparency = TRANSPARENCY
330
	NEWPART.CanCollide = false
331
	NEWPART.Locked = true
332
	NEWPART.Anchored = true
333
	if ANCHOR == false then
334
		NEWPART.Anchored = false
335
	end
336
	NEWPART.BrickColor = BRICKC(tostring(BRICKCOLOR))
337
	NEWPART.Name = NAME
338
	NEWPART.Size = SIZE
339
	NEWPART.Position = Torso.Position
340
	NEWPART.Material = MATERIAL
341
	NEWPART:BreakJoints()
342
	NEWPART.Parent = PARENT
343
	return NEWPART
344
end
345
346
	local function weldBetween(a, b)
347
	    local weldd = Instance.new("ManualWeld")
348
	    weldd.Part0 = a
349
	    weldd.Part1 = b
350
	    weldd.C0 = CFrame.new()
351
	    weldd.C1 = b.CFrame:inverse() * a.CFrame
352
	    weldd.Parent = a
353
	    return weldd
354
	end
355
356
357
function QuaternionFromCFrame(cf)
358
	local mx, my, mz, m00, m01, m02, m10, m11, m12, m20, m21, m22 = cf:components()
359
	local trace = m00 + m11 + m22
360
	if trace > 0 then 
361
		local s = math.sqrt(1 + trace)
362
		local recip = 0.5 / s
363
		return (m21 - m12) * recip, (m02 - m20) * recip, (m10 - m01) * recip, s * 0.5
364
	else
365
		local i = 0
366
		if m11 > m00 then
367
			i = 1
368
		end
369
		if m22 > (i == 0 and m00 or m11) then
370
			i = 2
371
		end
372
		if i == 0 then
373
			local s = math.sqrt(m00 - m11 - m22 + 1)
374
			local recip = 0.5 / s
375
			return 0.5 * s, (m10 + m01) * recip, (m20 + m02) * recip, (m21 - m12) * recip
376
		elseif i == 1 then
377
			local s = math.sqrt(m11 - m22 - m00 + 1)
378
			local recip = 0.5 / s
379
			return (m01 + m10) * recip, 0.5 * s, (m21 + m12) * recip, (m02 - m20) * recip
380
		elseif i == 2 then
381
			local s = math.sqrt(m22 - m00 - m11 + 1)
382
			local recip = 0.5 / s return (m02 + m20) * recip, (m12 + m21) * recip, 0.5 * s, (m10 - m01) * recip
383
		end
384
	end
385
end
386
 
387
function QuaternionToCFrame(px, py, pz, x, y, z, w)
388
	local xs, ys, zs = x + x, y + y, z + z
389
	local wx, wy, wz = w * xs, w * ys, w * zs
390
	local xx = x * xs
391
	local xy = x * ys
392
	local xz = x * zs
393
	local yy = y * ys
394
	local yz = y * zs
395
	local zz = z * zs
396
	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))
397
end
398
 
399
function QuaternionSlerp(a, b, t)
400
	local cosTheta = a[1] * b[1] + a[2] * b[2] + a[3] * b[3] + a[4] * b[4]
401
	local startInterp, finishInterp;
402
	if cosTheta >= 0.0001 then
403
		if (1 - cosTheta) > 0.0001 then
404
			local theta = ACOS(cosTheta)
405
			local invSinTheta = 1 / SIN(theta)
406
			startInterp = SIN((1 - t) * theta) * invSinTheta
407
			finishInterp = SIN(t * theta) * invSinTheta
408
		else
409
			startInterp = 1 - t
410
			finishInterp = t
411
		end
412
	else
413
		if (1 + cosTheta) > 0.0001 then
414
			local theta = ACOS(-cosTheta)
415
			local invSinTheta = 1 / SIN(theta)
416
			startInterp = SIN((t - 1) * theta) * invSinTheta
417
			finishInterp = SIN(t * theta) * invSinTheta
418
		else
419
			startInterp = t - 1
420
			finishInterp = t
421
		end
422
	end
423
	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
424
end
425
426
function Clerp(a, b, t)
427
	local qa = {QuaternionFromCFrame(a)}
428
	local qb = {QuaternionFromCFrame(b)}
429
	local ax, ay, az = a.x, a.y, a.z
430
	local bx, by, bz = b.x, b.y, b.z
431
	local _t = 1 - t
432
	return QuaternionToCFrame(_t * ax + t * bx, _t * ay + t * by, _t * az + t * bz, QuaternionSlerp(qa, qb, t))
433
end
434
435
function CreateFrame(PARENT, TRANSPARENCY, BORDERSIZEPIXEL, POSITION, SIZE, COLOR, BORDERCOLOR, NAME)
436
	local frame = IT("Frame")
437
	frame.BackgroundTransparency = TRANSPARENCY
438
	frame.BorderSizePixel = BORDERSIZEPIXEL
439
	frame.Position = POSITION
440
	frame.Size = SIZE
441
	frame.BackgroundColor3 = COLOR
442
	frame.BorderColor3 = BORDERCOLOR
443
	frame.Name = NAME
444
	frame.Parent = PARENT
445
	return frame
446
end
447
448
function CreateLabel(PARENT, TEXT, TEXTCOLOR, TEXTFONTSIZE, TEXTFONT, TRANSPARENCY, BORDERSIZEPIXEL, STROKETRANSPARENCY, NAME)
449
	local label = IT("TextLabel")
450
	label.BackgroundTransparency = 1
451
	label.Size = UD2(1, 0, 1, 0)
452
	label.Position = UD2(0, 0, 0, 0)
453
	label.TextColor3 = TEXTCOLOR
454
	label.TextStrokeTransparency = STROKETRANSPARENCY
455
	label.TextTransparency = TRANSPARENCY
456
	label.FontSize = TEXTFONTSIZE
457
	label.Font = TEXTFONT
458
	label.BorderSizePixel = BORDERSIZEPIXEL
459
	label.TextScaled = false
460
	label.Text = TEXT
461
	label.Name = NAME
462
	label.Parent = PARENT
463
	return label
464
end
465
466
function NoOutlines(PART)
467
	PART.TopSurface, PART.BottomSurface, PART.LeftSurface, PART.RightSurface, PART.FrontSurface, PART.BackSurface = 10, 10, 10, 10, 10, 10
468
end
469
470
function CreateWeldOrSnapOrMotor(TYPE, PARENT, PART0, PART1, C0, C1)
471
	local NEWWELD = IT(TYPE)
472
	NEWWELD.Part0 = PART0
473
	NEWWELD.Part1 = PART1
474
	NEWWELD.C0 = C0
475
	NEWWELD.C1 = C1
476
	NEWWELD.Parent = PARENT
477
	return NEWWELD
478
end
479
480
local S = IT("Sound")
481
function CreateSound(ID, PARENT, VOLUME, PITCH, DOESLOOP)
482
	local NEWSOUND = nil
483
	coroutine.resume(coroutine.create(function()
484
		NEWSOUND = S:Clone()
485
		NEWSOUND.Parent = PARENT
486
		NEWSOUND.Volume = VOLUME
487
		NEWSOUND.Pitch = PITCH
488
		NEWSOUND.SoundId = "http://www.roblox.com/asset/?id="..ID
489
		NEWSOUND:play()
490
		if DOESLOOP == true then
491
			NEWSOUND.Looped = true
492
		else
493
			repeat wait(1) until NEWSOUND.Playing == false or NEWSOUND.Parent ~= PARENT
494
			NEWSOUND:remove()
495
		end
496
	end))
497
	return NEWSOUND
498
end
499
500
function CFrameFromTopBack(at, top, back)
501
	local right = top:Cross(back)
502
	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)
503
end
504
505
--WACKYEFFECT({EffectType = "", Size = VT(1,1,1), Size2 = VT(0,0,0), Transparency = 0, Transparency2 = 1, CFrame = CF(), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = C3(1,1,1), SoundID = nil, SoundPitch = nil, SoundVolume = nil})
506
function WACKYEFFECT(Table)
507
	local TYPE = (Table.EffectType or "Sphere")
508
	local SIZE = (Table.Size or VT(1,1,1))
509
	local ENDSIZE = (Table.Size2 or VT(0,0,0))
510
	local TRANSPARENCY = (Table.Transparency or 0)
511
	local ENDTRANSPARENCY = (Table.Transparency2 or 1)
512
	local CFRAME = (Table.CFrame or Torso.CFrame)
513
	local MOVEDIRECTION = (Table.MoveToPos or nil)
514
	local ROTATION1 = (Table.RotationX or 0)
515
	local ROTATION2 = (Table.RotationY or 0)
516
	local ROTATION3 = (Table.RotationZ or 0)
517
	local MATERIAL = (Table.Material or "Neon")
518
	local COLOR = (Table.Color or C3(1,1,1))
519
	local TIME = (Table.Time or 45)
520
	local SOUNDID = (Table.SoundID or nil)
521
	local SOUNDPITCH = (Table.SoundPitch or nil)
522
	local SOUNDVOLUME = (Table.SoundVolume or nil)
523
	coroutine.resume(coroutine.create(function()
524
		local PLAYSSOUND = false
525
		local SOUND = nil
526
		local EFFECT = CreatePart(3, Effects, MATERIAL, 0, TRANSPARENCY, BRICKC("Pearl"), "Effect", VT(1,1,1), true)
527
		if SOUNDID ~= nil and SOUNDPITCH ~= nil and SOUNDVOLUME ~= nil then
528
			PLAYSSOUND = true
529
			SOUND = CreateSound(SOUNDID, EFFECT, SOUNDVOLUME, SOUNDPITCH, false)
530
		end
531
		EFFECT.Color = COLOR
532
		local MSH = nil
533
		if TYPE == "Sphere" then
534
			MSH = CreateMesh("SpecialMesh", EFFECT, "Sphere", "", "", SIZE, VT(0,0,0))
535
		elseif TYPE == "Block" then
536
			MSH = IT("BlockMesh",EFFECT)
537
			MSH.Scale = VT(SIZE.X,SIZE.X,SIZE.X)
538
		elseif TYPE == "Wave" then
539
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "20329976", "", SIZE, VT(0,0,-SIZE.X/8))
540
		elseif TYPE == "Ring" then
541
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "559831844", "", VT(SIZE.X,SIZE.X,0.1), VT(0,0,0))
542
		elseif TYPE == "Slash" then
543
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "662586858", "", VT(SIZE.X/10,0,SIZE.X/10), VT(0,0,0))
544
		elseif TYPE == "Round Slash" then
545
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "662585058", "", VT(SIZE.X/10,0,SIZE.X/10), VT(0,0,0))
546
		elseif TYPE == "Swirl" then
547
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "1051557", "", SIZE, VT(0,0,0))
548
		elseif TYPE == "Skull" then
549
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "4770583", "", SIZE, VT(0,0,0))
550
		elseif TYPE == "Crystal" then
551
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "9756362", "", SIZE, VT(0,0,0))
552
		end
553
		if MSH ~= nil then
554
			local MOVESPEED = nil
555
			if MOVEDIRECTION ~= nil then
556
				MOVESPEED = (CFRAME.p - MOVEDIRECTION).Magnitude/TIME
557
			end
558
			local GROWTH = SIZE - ENDSIZE
559
			local TRANS = TRANSPARENCY - ENDTRANSPARENCY
560
			if TYPE == "Block" then
561
				EFFECT.CFrame = CFRAME*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)))
562
			else
563
				EFFECT.CFrame = CFRAME
564
			end
565
			for LOOP = 1, TIME+1 do
566
				Swait()
567
				MSH.Scale = MSH.Scale - GROWTH/TIME
568
				if TYPE == "Wave" then
569
					MSH.Offset = VT(0,0,-MSH.Scale.X/8)
570
				end
571
				EFFECT.Transparency = EFFECT.Transparency - TRANS/TIME
572
				if TYPE == "Block" then
573
					EFFECT.CFrame = CFRAME*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)))
574
				else
575
					EFFECT.CFrame = EFFECT.CFrame*ANGLES(RAD(ROTATION1),RAD(ROTATION2),RAD(ROTATION3))
576
				end
577
				if MOVEDIRECTION ~= nil then
578
					local ORI = EFFECT.Orientation
579
					EFFECT.CFrame = CF(EFFECT.Position,MOVEDIRECTION)*CF(0,0,-MOVESPEED)
580
					EFFECT.Orientation = ORI
581
				end
582
			end
583
			if PLAYSSOUND == false then
584
				EFFECT:remove()
585
			else
586
				SOUND.Stopped:Connect(function()
587
					EFFECT:remove()
588
				end)
589
			end
590
		else
591
			if PLAYSSOUND == false then
592
				EFFECT:remove()
593
			else
594
				repeat Swait() until SOUND.Playing == false
595
				EFFECT:remove()
596
			end
597
		end
598
	end))
599
end
600
601
local DECAL = IT("Decal")
602
function MakeRing()
603
	local RING = CreatePart(3, Effects, "Neon", 0, 1, BRICKC("Really red"), "MagicRing", VT(0, 0, 0), true)
604
	local MSH = IT("BlockMesh", RING)
605
	local TOP = DECAL:Clone()
606
	local BOTTOM = DECAL:Clone()
607
	TOP.Parent = RING
608
	BOTTOM.Parent = RING
609
	TOP.Face = "Top"
610
	BOTTOM.Face = "Bottom"
611
	TOP.Texture = "http://www.roblox.com/asset/?id=127817121"
612
	BOTTOM.Texture = "http://www.roblox.com/asset/?id=127817121"
613
	local function REMOVE()
614
		coroutine.resume(coroutine.create(function()
615
			local SIZE = MSH.Scale.X
616
			for i = 1, 35 do
617
				Swait()
618
				MSH.Scale = MSH.Scale - VT(SIZE, 0, SIZE) / 60
619
				TOP.Transparency = TOP.Transparency + 0.02857142857142857
620
				BOTTOM.Transparency = BOTTOM.Transparency + 0.02857142857142857
621
				RING.CFrame = RING.CFrame * ANGLES(RAD(0), RAD(-5), RAD(0))
622
			end
623
			RING:remove()
624
		end))
625
	end
626
	return RING, MSH, REMOVE
627
end
628
629
function MakeForm(PART,TYPE)
630
	if TYPE == "Cyl" then
631
		local MSH = IT("CylinderMesh",PART)
632
	elseif TYPE == "Ball" then
633
		local MSH = IT("SpecialMesh",PART)
634
		MSH.MeshType = "Sphere"
635
	elseif TYPE == "Wedge" then
636
		local MSH = IT("SpecialMesh",PART)
637
		MSH.MeshType = "Wedge"
638
	end
639
end
640
641
function SpawnTrail(FROM,TO,BIG)
642
	local TRAIL = CreatePart(3, Effects, "Neon", 0, 0.5, "Really red", "Trail", VT(0,0,0))
643
	MakeForm(TRAIL,"Cyl")
644
	local DIST = (FROM - TO).Magnitude
645
	if BIG == true then
646
		TRAIL.Size = VT(0.5,DIST,0.5)
647
	else
648
		TRAIL.Size = VT(0.25,DIST,0.25)
649
	end
650
	TRAIL.CFrame = CF(FROM, TO) * CF(0, 0, -DIST/2) * ANGLES(RAD(90),RAD(0),RAD(0))
651
	coroutine.resume(coroutine.create(function()
652
		for i = 1, 5 do
653
			Swait()
654
			TRAIL.Transparency = TRAIL.Transparency + 0.1
655
		end
656
		TRAIL:remove()
657
	end))
658
end
659
--WACKYEFFECT({EffectType = "", Size = VT(1,1,1), Size2 = VT(0,0,0), Transparency = 0, Transparency2 = 1, CFrame = CF(), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = C3(1,1,1), SoundID = nil, SoundPitch = nil, SoundVolume = nil})
660
function WACKYEFFECT(Table)
661
	local TYPE = (Table.EffectType or "Sphere")
662
	local SIZE = (Table.Size or VT(1,1,1))
663
	local ENDSIZE = (Table.Size2 or VT(0,0,0))
664
	local TRANSPARENCY = (Table.Transparency or 0)
665
	local ENDTRANSPARENCY = (Table.Transparency2 or 1)
666
	local CFRAME = (Table.CFrame or Torso.CFrame)
667
	local MOVEDIRECTION = (Table.MoveToPos or nil)
668
	local ROTATION1 = (Table.RotationX or 0)
669
	local ROTATION2 = (Table.RotationY or 0)
670
	local ROTATION3 = (Table.RotationZ or 0)
671
	local MATERIAL = (Table.Material or "Neon")
672
	local COLOR = (Table.Color or C3(1,1,1))
673
	local TIME = (Table.Time or 45)
674
	local SOUNDID = (Table.SoundID or nil)
675
	local SOUNDPITCH = (Table.SoundPitch or nil)
676
	local SOUNDVOLUME = (Table.SoundVolume or nil)
677
	coroutine.resume(coroutine.create(function()
678
		local PLAYSSOUND = false
679
		local SOUND = nil
680
		local EFFECT = CreatePart(3, Effects, MATERIAL, 0, TRANSPARENCY, BRICKC("Really red"), "Effect", VT(1,1,1), true)
681
		if SOUNDID ~= nil and SOUNDPITCH ~= nil and SOUNDVOLUME ~= nil then
682
			PLAYSSOUND = true
683
			SOUND = CreateSound(SOUNDID, EFFECT, SOUNDVOLUME, SOUNDPITCH, false)
684
		end
685
		EFFECT.Color = COLOR
686
		local MSH = nil
687
		if TYPE == "Sphere" then
688
			MSH = CreateMesh("SpecialMesh", EFFECT, "Sphere", "", "", SIZE, VT(0,0,0))
689
		elseif TYPE == "Block" then
690
			MSH = IT("BlockMesh",EFFECT)
691
			MSH.Scale = VT(SIZE.X,SIZE.X,SIZE.X)
692
		elseif TYPE == "Wave" then
693
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "20329976", "", SIZE, VT(0,0,-SIZE.X/8))
694
		elseif TYPE == "Ring" then
695
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "559831844", "", VT(SIZE.X,SIZE.X,0.1), VT(0,0,0))
696
		elseif TYPE == "Slash" then
697
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "662586858", "", VT(SIZE.X/10,0,SIZE.X/10), VT(0,0,0))
698
		elseif TYPE == "Round Slash" then
699
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "662585058", "", VT(SIZE.X/10,0,SIZE.X/10), VT(0,0,0))
700
		elseif TYPE == "Swirl" then
701
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "1051557", "", SIZE, VT(0,0,0))
702
		elseif TYPE == "Skull" then
703
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "4770583", "", SIZE, VT(0,0,0))
704
		elseif TYPE == "Crystal" then
705
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "9756362", "", SIZE, VT(0,0,0))
706
		end
707
		if MSH ~= nil then
708
			local MOVESPEED = nil
709
			if MOVEDIRECTION ~= nil then
710
				MOVESPEED = (CFRAME.p - MOVEDIRECTION).Magnitude/TIME
711
			end
712
			local GROWTH = SIZE - ENDSIZE
713
			local TRANS = TRANSPARENCY - ENDTRANSPARENCY
714
			if TYPE == "Block" then
715
				EFFECT.CFrame = CFRAME*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)))
716
			else
717
				EFFECT.CFrame = CFRAME
718
			end
719
			for LOOP = 1, TIME+1 do
720
				Swait()
721
				MSH.Scale = MSH.Scale - GROWTH/TIME
722
				if TYPE == "Wave" then
723
					MSH.Offset = VT(0,0,-MSH.Scale.X/8)
724
				end
725
				EFFECT.Transparency = EFFECT.Transparency - TRANS/TIME
726
				if TYPE == "Block" then
727
					EFFECT.CFrame = CFRAME*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)))
728
				else
729
					EFFECT.CFrame = EFFECT.CFrame*ANGLES(RAD(ROTATION1),RAD(ROTATION2),RAD(ROTATION3))
730
				end
731
				if MOVEDIRECTION ~= nil then
732
					local ORI = EFFECT.Orientation
733
					EFFECT.CFrame = CF(EFFECT.Position,MOVEDIRECTION)*CF(0,0,-MOVESPEED)
734
					EFFECT.Orientation = ORI
735
				end
736
			end
737
			if PLAYSSOUND == false then
738
				EFFECT:remove()
739
			else
740
				SOUND.Stopped:Connect(function()
741
					EFFECT:remove()
742
				end)
743
			end
744
		else
745
			if PLAYSSOUND == false then
746
				EFFECT:remove()
747
			else
748
				repeat Swait() until SOUND.Playing == false
749
				EFFECT:remove()
750
			end
751
		end
752
	end))
753
end
754
755
function MakeForm(PART,TYPE)
756
	if TYPE == "Cyl" then
757
		local MSH = IT("CylinderMesh",PART)
758
	elseif TYPE == "Ball" then
759
		local MSH = IT("SpecialMesh",PART)
760
		MSH.MeshType = "Sphere"
761
	elseif TYPE == "Wedge" then
762
		local MSH = IT("SpecialMesh",PART)
763
		MSH.MeshType = "Wedge"
764
	end
765
end
766
767
function SpawnTrail(FROM,TO,BIG)
768
	local TRAIL = CreatePart(3, Effects, "Neon", 0, 0.5, "Really red", "Trail", VT(0,0,0))
769
	MakeForm(TRAIL,"Cyl")
770
	local DIST = (FROM - TO).Magnitude
771
	if BIG == true then
772
		TRAIL.Size = VT(0.5,DIST,0.5)
773
	else
774
		TRAIL.Size = VT(0.25,DIST,0.25)
775
	end
776
	TRAIL.CFrame = CF(FROM, TO) * CF(0, 0, -DIST/2) * ANGLES(RAD(90),RAD(0),RAD(0))
777
	coroutine.resume(coroutine.create(function()
778
		for i = 1, 5 do
779
			Swait()
780
			TRAIL.Transparency = TRAIL.Transparency + 0.1
781
		end
782
		TRAIL:remove()
783
	end))
784
end
785
786
function SHAKECAM(POSITION, RANGE, INTENSITY, TIME)
787
	local TORSO = Torso
788
	local HUM = Humanoid
789
	if TORSO and RANGE >= (TORSO.Position - POSITION).Magnitude then
790
		coroutine.wrap(function()
791
			VT = Vector3.new
792
			MRANDOM = math.random
793
			local A = TIME
794
			local B = INTENSITY
795
			local C = true
796
			local HUMANOID = Humanoid
797
			local TIMER = A or 35
798
			local SHAKE = B or 5
799
			local FADE = C or true
800
			if HUMANOID then
801
				local FADER = SHAKE / TIMER
802
				for i = 1, TIMER do
803
					wait()
804
					HUMANOID.CameraOffset = VT(MRANDOM(-(SHAKE - FADER * i), SHAKE - FADER * i) / 10, MRANDOM(-(SHAKE - FADER * i), SHAKE - FADER * i) / 10, MRANDOM(-(SHAKE - FADER * i), SHAKE - FADER * i) / 10)
805
				end
806
				HUMANOID.CameraOffset = VT(0, 0, 0)
807
			end
808
809
		end)()
810
	end
811
end
812
813
function chatfunc(text)
814
	local chat = coroutine.wrap(function()
815
	if Character:FindFirstChild("TalkingBillBoard")~= nil then
816
		Character:FindFirstChild("TalkingBillBoard"):destroy()
817
	end
818
	local Bill = Instance.new("BillboardGui",Character)
819
	Bill.Size = UDim2.new(0,100,0,40)
820
	Bill.StudsOffset = Vector3.new(0,3,0)
821
	Bill.Adornee = Character.Head
822
	Bill.Name = "TalkingBillBoard"
823
	local Hehe = Instance.new("TextLabel",Bill)
824
	Hehe.BackgroundTransparency = 1
825
	Hehe.BorderSizePixel = 0
826
	Hehe.Text = ""
827
	Hehe.Font = "Bodoni"
828
	Hehe.TextSize = 40
829
	Hehe.TextStrokeTransparency = 0
830
	Hehe.Size = UDim2.new(1,0,0.5,0)
831
	coroutine.resume(coroutine.create(function()
832
		while Hehe ~= nil do
833
			Swait()	
834
			Hehe.Position = UDim2.new(math.random(-.4,.4),math.random(-5,5),.05,math.random(-5,5))	
835
			Hehe.Rotation = math.random(-2.5,2.5)
836
			Hehe.TextColor3 = Color3.new(MRANDOM(55,255),0,0)
837
			Hehe.TextStrokeColor3 = Color3.new(0,0,0)
838
		end
839
	end))
840
	for i = 1,string.len(text),1 do
841
		Swait()
842
		Hehe.Text = string.sub(text,1,i)
843
	end
844
	Swait(90)--Re[math.random(1, 93)]
845
	for i = 0, 1, .025 do
846
		Swait()
847
		Bill.ExtentsOffset = Vector3.new(math.random(-i, i), math.random(-i, i), math.random(-i, i))
848
		Hehe.TextStrokeTransparency = i
849
		Hehe.TextTransparency = i
850
	end
851
	Bill:Destroy()
852
	end)
853
chat()
854
end
855
856
Debris = game:GetService("Debris")
857
858
function CastProperRay(StartPos, EndPos, Distance, Ignore)
859
	local DIRECTION = CF(StartPos,EndPos).lookVector
860
	return Raycast(StartPos, DIRECTION, Distance, Ignore)
861
end
862
863
function turnto(position)
864
	RootPart.CFrame=CFrame.new(RootPart.CFrame.p,VT(position.X,RootPart.Position.Y,position.Z)) * CFrame.new(0, 0, 0)
865
end
866
867
--//=================================\\
868
--||	     RAGDOLL STUFF
869
--\\=================================//
870
871
function recurse(root,callback,i)
872
	i= i or 0
873
	for _,v in pairs(root:GetChildren()) do
874
		i = i + 1
875
		callback(i,v)
876
		
877
		if #v:GetChildren() > 0 then
878
			i = recurse(v,callback,i)
879
		end
880
	end
881
	
882
	return i
883
end
884
885
function ragdollJoint(character, part0, part1, attachmentName, className, properties)
886
	attachmentName = attachmentName.."RigAttachment"
887
	local constraint = Instance.new(className.."Constraint")
888
	constraint.Attachment0 = part0:FindFirstChild(attachmentName)
889
	constraint.Attachment1 = part1:FindFirstChild(attachmentName)
890
	constraint.Name = "RagdollConstraint"..part1.Name
891
	
892
	for _,propertyData in next,properties or {} do
893
		constraint[propertyData[1]] = propertyData[2]
894
	end
895
	
896
	constraint.Parent = character
897
end
898
899
function getAttachment0(character, attachmentName)
900
	for _,child in next,character:GetChildren() do
901
		local attachment = child:FindFirstChild(attachmentName)
902
		if attachment then
903
			return attachment
904
		end
905
	end
906
end
907
908
function ArtificialHitbox(Part)
909
	local HITBOX = CreatePart(3, Part, "Metal", 0, 1, "Really black", "Hitbox", Part.Size/2, false)
910
	HITBOX.CanCollide = true
911
	HITBOX.CFrame = Part.CFrame
912
	weldBetween(Part,HITBOX)
913
end
914
915
function R15Ragdoll(character,KeepArms)
916
	character:BreakJoints()
917
	coroutine.resume(coroutine.create(function()
918
		recurse(character, function(_,v)
919
			if v:IsA("Attachment") then
920
				v.Axis = Vector3.new(0, 1, 0)
921
				v.SecondaryAxis = Vector3.new(0, 0, 1)
922
				v.Rotation = Vector3.new(0, 0, 0)
923
			end
924
		end)
925
		for _,child in next,character:GetChildren() do
926
			if child:IsA("Accoutrement") then
927
				for _,part in next,child:GetChildren() do
928
					if part:IsA("BasePart") and part.Name ~= "HumanoidRootPart" then
929
						local attachment1 = part:FindFirstChildOfClass("Attachment")
930
						local attachment0 = getAttachment0(character,attachment1.Name)
931
						if attachment0 and attachment1 then
932
							local constraint = Instance.new("HingeConstraint")
933
							constraint.Attachment0 = attachment0
934
							constraint.Attachment1 = attachment1
935
							constraint.LimitsEnabled = true
936
							constraint.UpperAngle = 0
937
							constraint.LowerAngle = 0
938
							constraint.Parent = character
939
						end
940
						ArtificialHitbox(part)
941
					elseif part.Name == "HumanoidRootPart" then
942
						part:remove()
943
					end
944
				end
945
			end
946
		end
947
		
948
		ragdollJoint(character,character.LowerTorso, character.UpperTorso, "Waist", "BallSocket", {
949
			{"LimitsEnabled",true};
950
			{"UpperAngle",5};
951
		})
952
		if character:FindFirstChild("Head") then
953
			ragdollJoint(character,character.UpperTorso, character.Head, "Neck", "BallSocket", {
954
				{"LimitsEnabled",true};
955
				{"UpperAngle",15};
956
			})
957
		end
958
		
959
		local handProperties = {
960
			{"LimitsEnabled", true};
961
			{"UpperAngle",0};
962
			{"LowerAngle",0};
963
		}
964
		ragdollJoint(character,character.LeftLowerArm, character.LeftHand, "LeftWrist", "Hinge", handProperties)
965
		ragdollJoint(character,character.RightLowerArm, character.RightHand, "RightWrist", "Hinge", handProperties)
966
		
967
		local shinProperties = {
968
			{"LimitsEnabled", true};
969
			{"UpperAngle", 0};
970
			{"LowerAngle", -75};
971
		}
972
		ragdollJoint(character,character.LeftUpperLeg, character.LeftLowerLeg, "LeftKnee", "Hinge", shinProperties)
973
		ragdollJoint(character,character.RightUpperLeg, character.RightLowerLeg, "RightKnee", "Hinge", shinProperties)
974
		
975
		local footProperties = {
976
			{"LimitsEnabled", true};
977
			{"UpperAngle", 15};
978
			{"LowerAngle", -45};
979
		}
980
		ragdollJoint(character,character.LeftLowerLeg, character.LeftFoot, "LeftAnkle", "Hinge", footProperties)
981
		ragdollJoint(character,character.RightLowerLeg, character.RightFoot, "RightAnkle", "Hinge", footProperties)
982
		if KeepArms == true then
983
			ragdollJoint(character,character.UpperTorso, character.RightUpperArm, "RightShoulder", "BallSocket")
984
			ragdollJoint(character,character.RightUpperArm, character.RightLowerArm, "RightElbow", "BallSocket")
985
			ragdollJoint(character,character.UpperTorso, character.LeftUpperArm, "LeftShoulder", "BallSocket")
986
			ragdollJoint(character,character.LeftUpperArm, character.LeftLowerArm, "LeftElbow", "BallSocket")
987
		end
988
		ragdollJoint(character,character.LowerTorso, character.LeftUpperLeg, "LeftHip", "BallSocket")
989
		ragdollJoint(character,character.LowerTorso, character.RightUpperLeg, "RightHip", "BallSocket")
990
		Debris:AddItem(character,5)
991
	end))
992
end
993
994
function Ragdoll(Character2,CharTorso,KeepArms)
995
	coroutine.resume(coroutine.create(function()
996
		Character2:BreakJoints()
997
		local hum = Character2:findFirstChild("Humanoid")
998
		hum:remove()
999
		local function Scan(ch)
1000
			local e
1001
			for e = 1,#ch do
1002
				Scan(ch[e]:GetChildren())
1003
				if ch[e].ClassName == "Weld" or ch[e].ClassName == "Motor6D" then
1004
					ch[e]:remove()
1005
				end
1006
			end
1007
		end
1008
		local NEWHUM = IT("Humanoid")
1009
		NEWHUM.Name = "Corpse"
1010
		NEWHUM.Health = 0
1011
		NEWHUM.MaxHealth = 0
1012
		NEWHUM.PlatformStand = true
1013
		NEWHUM.Parent = Character2
1014
		NEWHUM.DisplayDistanceType = "None"
1015
	
1016
		local ch = Character2:GetChildren()
1017
		local i
1018
		for i = 1,#ch do
1019
			if ch[i].Name == "THandle1" or ch[i].Name == "THandle2" then
1020
				ch[i]:remove()
1021
			end
1022
		end
1023
	
1024
		local Torso2 = Character2.Torso
1025
		local movevector = Vector3.new()
1026
	
1027
		if Torso2 then
1028
			movevector = CFrame.new(CharTorso.Position,Torso2.Position).lookVector
1029
			local Head = Character2:FindFirstChild("Head")
1030
			if Head then
1031
				local Neck = Instance.new("Weld")
1032
				Neck.Name = "Neck"
1033
				Neck.Part0 = Torso2
1034
				Neck.Part1 = Head
1035
				Neck.C0 = CFrame.new(0, 1.5, 0)
1036
				Neck.C1 = CFrame.new()
1037
				Neck.Parent = Torso2
1038
	
1039
			end
1040
			local Limb = Character2:FindFirstChild("Right Arm")
1041
			if Limb and KeepArms == true then
1042
	
1043
				Limb.CFrame = Torso2.CFrame * CFrame.new(1.5, 0, 0)
1044
				local Joint = Instance.new("Glue")
1045
				Joint.Name = "RightShoulder"
1046
				Joint.Part0 = Torso2
1047
				Joint.Part1 = Limb
1048
				Joint.C0 = CFrame.new(1.5, 0.5, 0, 0, 0, 1, 0, 1, 0, -1, -0, -0)
1049
				Joint.C1 = CFrame.new(-0, 0.5, 0, 0, 0, 1, 0, 1, 0, -1, -0, -0)
1050
				Joint.Parent = Torso2
1051
	
1052
				local B = Instance.new("Part")
1053
				B.TopSurface = 0
1054
				B.BottomSurface = 0
1055
				B.formFactor = "Symmetric"
1056
				B.Size = Vector3.new(1, 1, 1)
1057
				B.Transparency = 1
1058
				B.CFrame = Limb.CFrame * CFrame.new(0, -0.5, 0)
1059
				B.Parent = Character2
1060
				local W = Instance.new("Weld")
1061
				W.Part0 = Limb
1062
				W.Part1 = B
1063
				W.C0 = CFrame.new(0, -0.5, 0)
1064
				W.Parent = Limb
1065
	
1066
			end
1067
			local Limb = Character2:FindFirstChild("Left Arm")
1068
			if Limb and KeepArms == true then
1069
	
1070
				Limb.CFrame = Torso2.CFrame * CFrame.new(-1.5, 0, 0)
1071
				local Joint = Instance.new("Glue")
1072
				Joint.Name = "LeftShoulder"
1073
				Joint.Part0 = Torso2
1074
				Joint.Part1 = Limb
1075
				Joint.C0 = CFrame.new(-1.5, 0.5, 0, -0, -0, -1, 0, 1, 0, 1, 0, 0)
1076
				Joint.C1 = CFrame.new(0, 0.5, 0, -0, -0, -1, 0, 1, 0, 1, 0, 0)
1077
				Joint.Parent = Torso2
1078
	
1079
				local B = Instance.new("Part")
1080
				B.TopSurface = 0
1081
				B.BottomSurface = 0
1082
				B.formFactor = "Symmetric"
1083
				B.Size = Vector3.new(1, 1, 1)
1084
				B.Transparency = 1
1085
				B.CFrame = Limb.CFrame * CFrame.new(0, -0.5, 0)
1086
				B.Parent = Character2
1087
				local W = Instance.new("Weld")
1088
				W.Part0 = Limb
1089
				W.Part1 = B
1090
				W.C0 = CFrame.new(0, -0.5, 0)
1091
				W.Parent = Limb
1092
	
1093
			end
1094
			local Limb = Character2:FindFirstChild("Right Leg")
1095
			if Limb then
1096
	
1097
				Limb.CFrame = Torso2.CFrame * CFrame.new(0.5, -2, 0)
1098
				local Joint = Instance.new("Glue")
1099
				Joint.Name = "RightHip"
1100
				Joint.Part0 = Torso2
1101
				Joint.Part1 = Limb
1102
				Joint.C0 = CFrame.new(0.5, -1, 0, 0, 0, 1, 0, 1, 0, -1, -0, -0)
1103
				Joint.C1 = CFrame.new(0, 1, 0, 0, 0, 1, 0, 1, 0, -1, -0, -0)
1104
				Joint.Parent = Torso2
1105
	
1106
				local B = Instance.new("Part")
1107
				B.TopSurface = 0
1108
				B.BottomSurface = 0
1109
				B.formFactor = "Symmetric"
1110
				B.Size = Vector3.new(1, 1, 1)
1111
				B.Transparency = 1
1112
				B.CFrame = Limb.CFrame * CFrame.new(0, -0.5, 0)
1113
				B.Parent = Character2
1114
				local W = Instance.new("Weld")
1115
				W.Part0 = Limb
1116
				W.Part1 = B
1117
				W.C0 = CFrame.new(0, -0.5, 0)
1118
				W.Parent = Limb
1119
	
1120
			end
1121
			local Limb = Character2:FindFirstChild("Left Leg")
1122
			if Limb then
1123
	
1124
				Limb.CFrame = Torso2.CFrame * CFrame.new(-0.5, -2, 0)
1125
				local Joint = Instance.new("Glue")
1126
				Joint.Name = "LeftHip"
1127
				Joint.Part0 = Torso2
1128
				Joint.Part1 = Limb
1129
				Joint.C0 = CFrame.new(-0.5, -1, 0, -0, -0, -1, 0, 1, 0, 1, 0, 0)
1130
				Joint.C1 = CFrame.new(-0, 1, 0, -0, -0, -1, 0, 1, 0, 1, 0, 0)
1131
				Joint.Parent = Torso2
1132
	
1133
				local B = Instance.new("Part")
1134
				B.TopSurface = 0
1135
				B.BottomSurface = 0
1136
				B.formFactor = "Symmetric"
1137
				B.Size = Vector3.new(1, 1, 1)
1138
				B.Transparency = 1
1139
				B.CFrame = Limb.CFrame * CFrame.new(0, -0.5, 0)
1140
				B.Parent = Character2
1141
				local W = Instance.new("Weld")
1142
				W.Part0 = Limb
1143
				W.Part1 = B
1144
				W.C0 = CFrame.new(0, -0.5, 0)
1145
				W.Parent = Limb
1146
	
1147
			end
1148
			--[
1149
			local Bar = Instance.new("Part")
1150
			Bar.TopSurface = 0
1151
			Bar.BottomSurface = 0
1152
			Bar.formFactor = "Symmetric"
1153
			Bar.Size = Vector3.new(1, 1, 1)
1154
			Bar.Transparency = 1
1155
			Bar.CFrame = Torso2.CFrame * CFrame.new(0, 0.5, 0)
1156
			Bar.Parent = Character2
1157
			local Weld = Instance.new("Weld")
1158
			Weld.Part0 = Torso2
1159
			Weld.Part1 = Bar
1160
			Weld.C0 = CFrame.new(0, 0.5, 0)
1161
			Weld.Parent = Torso2
1162
			--]]
1163
		end
1164
		Character2.Parent = workspace
1165
		Debris:AddItem(Character2,5)
1166
	
1167
		return Character2,Torso2
1168
	end))
1169
end
1170
1171
--//=================================\\
1172
--||	     WEAPON CREATION
1173
--\\=================================//
1174
1175
local Particle = IT("ParticleEmitter",nil)
1176
Particle.Enabled = false
1177
Particle.Transparency = NumberSequence.new({NumberSequenceKeypoint.new(0,0.3),NumberSequenceKeypoint.new(0.3,0),NumberSequenceKeypoint.new(1,1)})
1178
Particle.LightEmission = 0.5
1179
Particle.Rate = 250
1180
Particle.ZOffset = 0.2
1181
Particle.Rotation = NumberRange.new(-180, 180)
1182
Particle.RotSpeed = NumberRange.new(-180, 180)
1183
Particle.Texture = "http://www.roblox.com/asset/?id=304437537"
1184
Particle.Color = ColorSequence.new(C3(1,0,0),C3(1,0,0))
1185
1186
--ParticleEmitter({Speed = 5, Drag = 0, Size1 = 1, Size2 = 5, Lifetime1 = 1, Lifetime2 = 1.5, Parent = Torso, Emit = 100, Offset = 360, Enabled = false})
1187
function ParticleEmitter(Table)
1188
	local PRTCL = Particle:Clone()
1189
	local Speed = Table.Speed or 5
1190
	local Drag = Table.Drag or 0
1191
	local Size1 = Table.Size1 or 1
1192
	local Size2 = Table.Size2 or 5
1193
	local Lifetime1 = Table.Lifetime1 or 1
1194
	local Lifetime2 = Table.Lifetime2 or 1.5
1195
	local Parent = Table.Parent or Torso
1196
	local Emit = Table.Emit or 100
1197
	local Offset = Table.Offset or 360
1198
	local Acel = Table.Acel or VT(0,0,0)
1199
	local Enabled = Table.Enabled or false
1200
	PRTCL.Parent = Parent
1201
	PRTCL.Size = NumberSequence.new(Size1,Size2)
1202
	PRTCL.Lifetime = NumberRange.new(Lifetime1,Lifetime2)
1203
	PRTCL.Speed = NumberRange.new(Speed)
1204
	PRTCL.VelocitySpread = Offset
1205
	PRTCL.Drag = Drag
1206
	PRTCL.Acceleration = Acel
1207
	if Enabled == false then
1208
		PRTCL:Emit(Emit)
1209
		Debris:AddItem(PRTCL,Lifetime2)
1210
	else
1211
		PRTCL.Enabled = true
1212
	end
1213
	return PRTCL
1214
end
1215
1216
local Handle = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Part", VT(0.2,0.6,0.2),false)
1217
local RightArmGrasp = CreateWeldOrSnapOrMotor("Weld", Handle, RightArm, Handle, CF(0,-1, 0) * ANGLES(RAD(90), RAD(0), RAD(0)), CF(0, 0.21, 0))
1218
local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Part", VT(0.2,0.5,0.2),false)
1219
MakeForm(Part,"Wedge")
1220
CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.3, 0.2) * ANGLES(RAD(0), RAD(180), RAD(0)), CF(0, 0, 0))
1221
local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Part", VT(0.2,0.3,0.2),false)
1222
MakeForm(Part,"Wedge")
1223
CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.4, 0) * ANGLES(RAD(0), RAD(0), RAD(180)), CF(0, 0, 0))
1224
local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Part", VT(0.3,0.3,0.3),false)
1225
CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.5, 0.2) * ANGLES(RAD(0), RAD(0), RAD(0)), CF(0, 0, 0))
1226
local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Part", VT(0.3,0.5,0.5),false)
1227
CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.6, 0.5) * ANGLES(RAD(0), RAD(0), RAD(0)), CF(0, 0, 0))
1228
local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Part", VT(0.4,0.4,0.4),false)
1229
MakeForm(Part,"Cyl")
1230
CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.6, 0.5) * ANGLES(RAD(90), RAD(0), RAD(0)), CF(0, 0, 0))
1231
for i = 1, 8 do
1232
	local Piece = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Eye", VT(0,0.35,0.41),false)
1233
	CreateWeldOrSnapOrMotor("Weld", Handle, Part, Piece, CF(0, 0, 0) * ANGLES(RAD(0), RAD((360/8)*i), RAD(0)), CF(0, 0, 0))
1234
end
1235
local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Eye", VT(0.38,0.41,0.38),false)
1236
MakeForm(Part,"Cyl")
1237
CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.6, 0.5) * ANGLES(RAD(90), RAD(0), RAD(0)), CF(0, 0, 0))
1238
local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Part", VT(0.37,0.5,0.37),false)
1239
MakeForm(Part,"Ball")
1240
CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.6, 0.3) * ANGLES(RAD(90), RAD(0), RAD(0)), CF(0, 0, 0))
1241
local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Part", VT(0.2,0.7,0.4),false)
1242
MakeForm(Part,"Wedge")
1243
CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.7, 0.5) * ANGLES(RAD(90), RAD(180), RAD(180)), CF(0, 0, 0))
1244
local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Part", VT(0.3,0.4,0.2),false)
1245
CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.6, 0.7) * ANGLES(RAD(0), RAD(0), RAD(0)), CF(0, 0, 0))
1246
local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Part", VT(0.35,0.35,0.35),false)
1247
MakeForm(Part,"Cyl")
1248
CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.6, 0.7) * ANGLES(RAD(90), RAD(0), RAD(0)), CF(0, 0, 0))
1249
local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Part", VT(0.5,0.1,0.5),false)
1250
MakeForm(Part,"Cyl")
1251
CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.6, 1) * ANGLES(RAD(90), RAD(0), RAD(0)), CF(0, 0, 0))
1252
local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Part", VT(0.5,0.1,0.45),false)
1253
MakeForm(Part,"Cyl")
1254
CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.6, 1.1) * ANGLES(RAD(90), RAD(0), RAD(0)), CF(0, 0, 0))
1255
local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Part", VT(0.2,0.5,0.2),false)
1256
MakeForm(Part,"Wedge")
1257
CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.55, 0.2) * ANGLES(RAD(-135), RAD(0), RAD(0)), CF(0, -0.3, 0))
1258
local LASTPART = Handle
1259
for i = 1, 10 do
1260
	if LASTPART == Handle then
1261
		local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Part", VT(0.1,0.2,0),false)
1262
		LASTPART = Part
1263
		CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.1, 0.2) * ANGLES(RAD(90), RAD(0), RAD(0)), CF(0, 0, 0))
1264
	else
1265
		local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Part", VT(0.1,0.05,0),false)
1266
		CreateWeldOrSnapOrMotor("Weld", Handle, LASTPART, Part, CF(0, 0.025, 0) * ANGLES(RAD(8), RAD(0), RAD(0)), CF(0, -0.025, 0))
1267
		LASTPART = Part
1268
	end
1269
end
1270
1271
local Barrel = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Part", VT(0.15,2,0.15),false)
1272
MakeForm(Barrel,"Cyl")
1273
CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Barrel, CF(0, -0.6, 1.8) * ANGLES(RAD(90), RAD(0), RAD(0)), CF(0, 0, 0))
1274
local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Part", VT(0.25,1,0.25),false)
1275
MakeForm(Part,"Cyl")
1276
CreateWeldOrSnapOrMotor("Weld", Handle, Barrel, Part, CF(0, -0.6, 0), CF(0, 0, 0))
1277
local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Part", VT(0,0.1,0.2),false)
1278
MakeForm(Part,"Wedge")
1279
CreateWeldOrSnapOrMotor("Weld", Handle, Barrel, Part, CF(0, 0.945, 0.1) * ANGLES(RAD(180), RAD(0), RAD(0)), CF(0, 0, 0))
1280
local Hole = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Eye", VT(0.125,0,0.125),false)
1281
MakeForm(Hole,"Cyl")
1282
CreateWeldOrSnapOrMotor("Weld", Handle, Barrel, Hole, CF(0, 0.98, 0), CF(0, 0, 0))
1283
local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Part", VT(0,0,0),false)
1284
local GEARWELD = CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.6, 0.7), CF(0, 0, 0))
1285
CreateMesh("SpecialMesh", Part, "FileMesh", 156292343, "", VT(0.8,0.8,1.5), VT(0,0,0.2))
1286
local Part = CreatePart(3, Weapon, "Metal", 0, 0.5, "Mid gray", "Eye", VT(0,0,0),false)
1287
local GEARWELD2 = CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.6, 0.7), CF(0, 0, 0))
1288
CreateMesh("SpecialMesh", Part, "FileMesh", 156292343, "", VT(0.9,0.9,0.3), VT(0,0,0.2))
1289
coroutine.resume(coroutine.create(function()
1290
	while wait() do
1291
		GEARWELD.C0 = GEARWELD.C0 * ANGLES(RAD(0), RAD(0), RAD(5))
1292
		GEARWELD2.C0 = GEARWELD2.C0 * ANGLES(RAD(0), RAD(0), RAD(-5))
1293
	end
1294
end))
1295
1296
ParticleEmitter({Speed = 0.35, Drag = 0, Size1 = 0.4, Size2 = 0, Lifetime1 = 0.3, Lifetime2 = 0.5, Parent = Hole, Emit = 100, Offset = 360, Enabled = true, Acel = VT(1,5,1)})
1297
--ParticleEmitter({Speed = 0.5, Drag = 0, Size1 = 0.2, Size2 = 0, Lifetime1 = 0.3, Lifetime2 = 0.7, Parent = Dangle, Emit = 100, Offset = 360, Enabled = true, Acel = VT(0,5,0)})
1298
1299
for _, c in pairs(Weapon:GetDescendants()) do
1300
	if c.ClassName == "Part" and c.Name ~= "Eye" and c.Parent ~= Effects and c.Parent.Parent ~= Effects then
1301
		c.Material = "Glass"
1302
		c.Color = C3(0,0,0)
1303
	elseif c.ClassName == "Part" and c.Name == "Eye" then
1304
		c.Color = C3(1,0,0)
1305
		c.Material = "Neon"
1306
	end
1307
end
1308
1309
Weapon.Parent = Character
1310
for _, c in pairs(Weapon:GetChildren()) do
1311
	if c.ClassName == "Part" then
1312
		c.CustomPhysicalProperties = PhysicalProperties.new(0, 0, 0, 0, 0)
1313
	end
1314
end
1315
1316
local SKILLTEXTCOLOR = C3(1,0,0)
1317
local SKILLFONT = "Fantasy"
1318
local SKILLTEXTSIZE = 5
1319
1320
Humanoid.Died:connect(function()
1321
	ATTACK = true
1322
end)
1323
1324
local SKILL1FRAME = CreateFrame(WEAPONGUI, 1, 2, UD2(0.1, 0, 0.90, 0), UD2(0.26, 0, 0.07, 0), C3(0,0,0), C3(0, 0, 0), "Skill 1 Frame")
1325
local SKILL2FRAME = CreateFrame(WEAPONGUI, 1, 2, UD2(0.63, 0, 0.90, 0), UD2(0.26, 0, 0.07, 0), C3(0,0,0), C3(0, 0, 0), "Skill 2 Frame")
1326
local SKILL3FRAME = CreateFrame(WEAPONGUI, 1, 2, UD2(0.215, 0, 0.90, 0), UD2(0.26, 0, 0.07, 0), C3(0,0,0), C3(0, 0, 0), "Skill 3 Frame")
1327
local SKILL4FRAME = CreateFrame(WEAPONGUI, 1, 2, UD2(0.525, 0, 0.90, 0), UD2(0.26, 0, 0.07, 0), C3(0,0,0), C3(0, 0, 0), "Skill 4 Frame")
1328
local SKILL5FRAME = CreateFrame(WEAPONGUI, 1, 2, UD2(0.365, 0, 0.90, 0), UD2(0.26, 0, 0.07, 0), C3(0,0,0), C3(0, 0, 0), "Skill 5 Frame")
1329
local SKILL6FRAME = CreateFrame(WEAPONGUI, 1, 2, UD2(0.365, 0, 0.100, 0), UD2(0.26, 0, 0.07, 0), C3(0,0,0), C3(0, 0, 0), "Skill 6 Frame")
1330
1331
local SKILL1TEXT = CreateLabel(SKILL1FRAME, "[Z] Banish Shot", SKILLTEXTCOLOR, SKILLTEXTSIZE, SKILLFONT, 0, 2, 0.7, "Text 1")
1332
local SKILL2TEXT = CreateLabel(SKILL2FRAME, "[V] Shot", SKILLTEXTCOLOR, SKILLTEXTSIZE, SKILLFONT, 0, 2, 0.7, "Text 2")
1333
local SKILL3TEXT = CreateLabel(SKILL3FRAME, "[X] Go to Sleep", SKILLTEXTCOLOR, SKILLTEXTSIZE, SKILLFONT, 0, 2, 0.7, "Text 3")
1334
local SKILL4TEXT = CreateLabel(SKILL4FRAME, "[C] Bullet On Sky", SKILLTEXTCOLOR, SKILLTEXTSIZE, SKILLFONT, 0, 2, 0.7, "Text 4")
1335
local SKILL5TEXT = CreateLabel(SKILL5FRAME, "[T] Laugh", SKILLTEXTCOLOR, SKILLTEXTSIZE, SKILLFONT, 0, 2, 0.7, "Text 5")
1336
local SKILL6TEXT = CreateLabel(SKILL6FRAME, "[F] Mercy", SKILLTEXTCOLOR, SKILLTEXTSIZE, SKILLFONT, 0, 2, 0.7, "Text 6")
1337
1338
function printbye(Name)
1339-
	local MESSAGES = {"Stay until It's Over...... "}
1339+
	local MESSAGES = {"Begone Thot... "}
1340
	warn(MESSAGES[MRANDOM(1,#MESSAGES)]..Name..".")	
1341
end
1342
1343
workspace.ChildAdded:connect(function(instance)
1344
    for BANISH = 1, #TOBANISH do
1345
		if TOBANISH[BANISH] ~= nil then
1346
			if instance.Name == TOBANISH[BANISH] then
1347
				coroutine.resume(coroutine.create(function()
1348
					printbye(instance.Name)
1349
					instance:ClearAllChildren()
1350
					Debris:AddItem(instance,0.0005)
1351
				end))
1352
			end
1353
		end
1354
	end
1355
end)
1356
1357
--//=================================\\
1358
--||			DAMAGING
1359
--\\=================================//
1360
1361
function ApplyDamage(Humanoid,Damage,OneShot)
1362
	Damage = Damage * DAMAGEMULTIPLIER
1363
	local DEAD = false
1364
	if Humanoid.Health < 2000 and OneShot == false then
1365
		if Humanoid.Health - Damage > 0 then
1366
			Humanoid.Health = Humanoid.Health - Damage
1367
		else
1368
			Humanoid.Parent:BreakJoints()
1369
			DEAD = true
1370
		end
1371
	else
1372
		DEAD = true
1373
		Humanoid.Parent:BreakJoints()
1374
	end
1375
	if DEAD == true then
1376
		local PARTS = {}
1377
		for index, CHILD in pairs(Humanoid.Parent:GetChildren()) do
1378
			if CHILD:IsA("BasePart") then
1379
				table.insert(PARTS,CHILD)
1380
			end
1381
		end
1382
		coroutine.resume(coroutine.create(function()
1383
			wait(2)
1384
			repeat
1385
				Swait()
1386
				local PIECE = nil
1387
				if MRANDOM(1,5) == 1 then
1388
					for E = 1, #PARTS do
1389
						if MRANDOM(1,5) == 1 then
1390
							PIECE = PARTS[E]
1391
							table.remove(PARTS,E)
1392
							break
1393
						end
1394
					end
1395
				end
1396
				if PIECE ~= nil then
1397
					if PIECE.Name == "Head" then
1398
						WACKYEFFECT({Time = MRANDOM(10,30)*5, EffectType = "Box", Size = VT(PIECE.Size.Z,PIECE.Size.Y,PIECE.Size.Z), Size2 = (VT(PIECE.Size.Z,PIECE.Size.Y,PIECE.Size.Z))*MRANDOM(7,14)/10, Transparency = PIECE.Transparency, Transparency2 = 1, CFrame = PIECE.CFrame, MoveToPos = PIECE.Position+VT(0,MRANDOM(5,8)/1.5,0), RotationX = MRANDOM(-25,25)/35, RotationY = MRANDOM(-25,25)/35, RotationZ = MRANDOM(-25,25)/35, Material = "Neon", Color = C3(0.4,0,0), SoundID = 3264923, SoundPitch = MRANDOM(12,16)/10, SoundVolume = 2})
1399
					else
1400
						WACKYEFFECT({Time = MRANDOM(10,30)*5, EffectType = "Box", Size = PIECE.Size, Size2 = PIECE.Size*MRANDOM(7,14)/10, Transparency = PIECE.Transparency, Transparency2 = 1, CFrame = PIECE.CFrame, MoveToPos = PIECE.Position+VT(0,MRANDOM(5,8)/1.5,0), MRANDOM(-25,25)/35, RotationY = MRANDOM(-25,25)/35, RotationZ = MRANDOM(-25,25)/35, Material = "Neon", Color = C3(0.4,0,0), SoundID = 3264923, SoundPitch = MRANDOM(12,16)/10, SoundVolume = 2})
1401
					end
1402
					PIECE:remove()
1403
				end
1404
			until #PARTS == 0
1405
		end))
1406
	end
1407
end
1408
1409
1410
function ApplyDamage3(Humanoid,Damage,TorsoPart)
1411
	local defence = Instance.new("BoolValue",Humanoid.Parent)
1412
	defence.Name = ("HitBy"..Player.Name)
1413
	game:GetService("Debris"):AddItem(defence, 0.001)
1414
	Damage = Damage * DAMAGEMULTIPLIER
1415
	if Humanoid.Health ~= 0 then
1416
		local CritChance = MRANDOM(1,100)
1417
		if Damage > Humanoid.Health then
1418
			Damage = math.ceil(Humanoid.Health)
1419
			if Damage == 0 then
1420
				Damage = 0.1
1421
			end
1422
		end
1423
		Humanoid.Health = Humanoid.Health - Damage
1424
	end
1425
end
1426
1427
function ApplyDamage3(Humanoid,Damage,TorsoPart)
1428
	local defence = Instance.new("BoolValue",Humanoid.Parent)
1429
	defence.Name = ("HitBy"..Player.Name)
1430
	game:GetService("Debris"):AddItem(defence, 0.001)
1431
	Damage = Damage * DAMAGEMULTIPLIER
1432
	if Humanoid.Health ~= 0 then
1433
		local CritChance = MRANDOM(1,100)
1434
		if Damage > Humanoid.Health then
1435
			Damage = math.ceil(Humanoid.Health)
1436
			if Damage == 0 then
1437
				Damage = 0.1
1438
			end
1439
		end
1440
		Humanoid.Health = Humanoid.Health - Damage
1441
	end
1442
end
1443
1444
function ApplyAoE3(POSITION,RANGE,MINDMG,MAXDMG,FLING,INSTAKILL)
1445
	local CHILDREN = workspace:GetDescendants()
1446
	for index, CHILD in pairs(CHILDREN) do
1447
		if CHILD.ClassName == "Model" and CHILD ~= Character and CHILD.Parent ~= Effects then
1448
			local HUM = CHILD:FindFirstChildOfClass("Humanoid")
1449
			if HUM then
1450
				local TORSO = CHILD:FindFirstChild("Torso") or CHILD:FindFirstChild("UpperTorso")
1451
				if TORSO then
1452
					if (TORSO.Position - POSITION).Magnitude <= RANGE then
1453
						if INSTAKILL == true then
1454
							CHILD:BreakJoints()
1455
						else
1456
							local DMG = MRANDOM(MINDMG,MAXDMG)
1457
							ApplyDamage(HUM,DMG,TORSO)
1458
						end
1459
						if FLING > 0 then
1460
							for _, c in pairs(CHILD:GetChildren()) do
1461
								if c:IsA("BasePart") then
1462
									local bv = Instance.new("BodyVelocity") 
1463
									bv.maxForce = Vector3.new(1e9, 1e9, 1e9)
1464
									bv.velocity = CF(POSITION,TORSO.Position).lookVector*FLING
1465
									bv.Parent = c
1466
									Debris:AddItem(bv,0.05)
1467
								end
1468
							end
1469
						end
1470
					end
1471
				end
1472
			end
1473
		end
1474
	end
1475
end
1476
1477
function CameraEnshaking(Length, Intensity)
1478
	coroutine.resume(coroutine.create(function()
1479
		local intensity = 1 * Intensity
1480
		local rotM = 0.01 * Intensity
1481
		for i = 0, Length, 0.1 do
1482
			Swait()
1483
			intensity = intensity - 0.05 * Intensity / Length
1484
			rotM = rotM - 5.0E-4 * Intensity / Length
1485
			Humanoid.CameraOffset = Vector3.new(RAD(MRANDOM(-intensity, intensity)), RAD(MRANDOM(-intensity, intensity)), RAD(MRANDOM(-intensity, intensity)))
1486
			Cam.CFrame = Cam.CFrame * CF(RAD(MRANDOM(-intensity, intensity)), RAD(MRANDOM(-intensity, intensity)), RAD(MRANDOM(-intensity, intensity))) * EULER(RAD(MRANDOM(-intensity, intensity)) * rotM, RAD(MRANDOM(-intensity, intensity)) * rotM, RAD(MRANDOM(-intensity, intensity)) * rotM)
1487
		end
1488
		Humanoid.CameraOffset = Vector3.new(0, 0, 0)
1489
	end))
1490
end
1491
1492
function ApplyAoE4(POSITION,RANGE,BRUTAL)
1493
	local CHILDREN = workspace:GetDescendants()
1494
	for index, CHILD in pairs(CHILDREN) do
1495
		if CHILD.ClassName == "Model" and CHILD ~= Character then
1496
			local HUM = CHILD:FindFirstChildOfClass("Humanoid")
1497
			if HUM then
1498
				local TORSO = CHILD:FindFirstChild("Torso") or CHILD:FindFirstChild("UpperTorso")
1499
				if TORSO then
1500
					if (TORSO.Position - POSITION).Magnitude <= RANGE then
1501
						if BRUTAL == true then
1502
							Kill(CHILD)
1503
						else
1504
							CHILD:BreakJoints()
1505
						end
1506
					end
1507
				end
1508
			end
1509
		end
1510
	end
1511
end
1512
1513
function Kill(Char)
1514
	local NewCharacter = IT("Model",Effects)
1515
	NewCharacter.Name = "Ow im ded ;-;"
1516
	for _, c in pairs(Char:GetDescendants()) do
1517
		if c:IsA("BasePart") and c.Transparency == 0 then
1518
			c:BreakJoints()
1519
			c.Material = "Glass"
1520
			c.Color = C3(1,0,0)
1521
			c.CanCollide = true
1522
			c.Transparency = 0.3
1523
			if c:FindFirstChildOfClass("SpecialMesh") then
1524
				c:FindFirstChildOfClass("SpecialMesh").TextureId = ""
1525
			end
1526
			if c.Name == "Head" then
1527
				c:ClearAllChildren()
1528
				c.Size = VT(c.Size.Y,c.Size.Y,c.Size.Y)
1529
			end
1530
			if c.ClassName == "MeshPart" then
1531
				c.TextureID = ""
1532
			end
1533
			if c:FindFirstChildOfClass("BodyPosition") then
1534
				c:FindFirstChildOfClass("BodyPosition"):remove()
1535
			end
1536
			if c:FindFirstChildOfClass("ParticleEmitter") then
1537
				c:FindFirstChildOfClass("ParticleEmitter"):remove()
1538
			end
1539
			c.Parent = NewCharacter
1540
			c.Name = "DeadPart"
1541
			c.Velocity = VT(MRANDOM(-45,45),MRANDOM(-45,45),MRANDOM(-45,45))/15
1542
			c.RotVelocity = VT(MRANDOM(-45,45),MRANDOM(-15,85),MRANDOM(-45,45))
1543
		end
1544
	end
1545
	Char:remove()
1546
	Debris:AddItem(NewCharacter,5)
1547
end
1548
1549
function ApplyAoE(POSITION,RANGE,BRUTAL)
1550
	local CHILDREN = workspace:GetDescendants()
1551
	for index, CHILD in pairs(CHILDREN) do
1552
		if CHILD.ClassName == "Model" and CHILD ~= Character then
1553
			local HUM = CHILD:FindFirstChildOfClass("Humanoid")
1554
			if HUM then
1555
				local TORSO = CHILD:FindFirstChild("Torso") or CHILD:FindFirstChild("UpperTorso")
1556
				if TORSO then
1557
					if (TORSO.Position - POSITION).Magnitude <= RANGE then
1558
						if BRUTAL == true then
1559
							Kill(CHILD)
1560
						else
1561
							CHILD:BreakJoints()
1562
						end
1563
					end
1564
				end
1565
			end
1566
		end
1567
	end
1568
end
1569
1570
function ApplyAoE(POSITION,RANGE,BRUTAL)
1571
	local CHILDREN = workspace:GetDescendants()
1572
	for index, CHILD in pairs(CHILDREN) do
1573
		if CHILD.ClassName == "Model" and CHILD ~= Character then
1574
			local HUM = CHILD:FindFirstChildOfClass("Humanoid")
1575
			if HUM then
1576
				local TORSO = CHILD:FindFirstChild("Torso") or CHILD:FindFirstChild("UpperTorso")
1577
				if TORSO then
1578
					if (TORSO.Position - POSITION).Magnitude <= RANGE then
1579
						if BRUTAL == true then
1580
							Kill(CHILD)
1581
						else
1582
							CHILD:BreakJoints()
1583
						end
1584
					end
1585
				end
1586
			end
1587
		end
1588
	end
1589
end
1590
1591
function Banish(Foe)
1592
	if Foe then
1593
		coroutine.resume(coroutine.create(function()
1594
			--if game.Players:FindFirstChild(Foe.Name) then
1595
				table.insert(TOBANISH,Foe.Name)
1596
				printbye(Foe.Name)
1597
			--end
1598
			Foe.Archivable = true
1599
			local CLONE = Foe:Clone()
1600
			Foe:Destroy()
1601
			CLONE.Parent = Effects
1602
			CLONE:BreakJoints()
1603
			local MATERIALS = {"Glass","Neon"}
1604
			for _, c in pairs(CLONE:GetDescendants()) do
1605
				if c:IsA("BasePart") then
1606
					if c.Name == "Torso" or c.Name == "UpperTorso" or c == CLONE.PrimaryPart then
1607
 						CreateSound(138271815, c, 10, 1, false)
1608
					end
1609
					c.Anchored = true
1610
					c.Transparency = c.Transparency + 0.2
1611
					c.Material = MATERIALS[MRANDOM(1,2)]
1612
					c.Color = C3(1,0,0)
1613
					if c.ClassName == "MeshPart" then
1614
						c.TextureID = ""
1615
					end
1616
					if c:FindFirstChildOfClass("SpecialMesh") then
1617
						c:FindFirstChildOfClass("SpecialMesh").TextureId = ""
1618
					end
1619
					if c:FindFirstChildOfClass("Decal") then
1620
						c:FindFirstChildOfClass("Decal"):remove()
1621
					end
1622
					c.Name = "Banished"
1623
					c.CanCollide = false
1624
				else
1625
					c:remove()
1626
				end
1627
			end
1628
			local A = false
1629
			for i = 1, 35 do
1630
				if A == false then
1631
					A = true
1632
				elseif A == true then
1633
					A = false
1634
				end
1635
				for _, c in pairs(CLONE:GetDescendants()) do
1636
					if c:IsA("BasePart") then
1637
						c.Anchored = true
1638
						c.Material = MATERIALS[MRANDOM(1,2)]
1639
						c.Transparency = c.Transparency + 0.8/35
1640
						if A == false then
1641
							c.CFrame = c.CFrame*CF(MRANDOM(-45,45)/45,MRANDOM(-45,45)/45,MRANDOM(-45,45)/45)
1642
						elseif A == true then
1643
							c.CFrame = c.CFrame*CF(MRANDOM(-45,45)/45,MRANDOM(-45,45)/45,MRANDOM(-45,45)/45)						
1644
						end
1645
					end
1646
				end
1647
				Swait()
1648
			end
1649
			CLONE:remove()
1650
		end))
1651
	end
1652
end
1653
1654
1655
function ApplyAoE(POSITION,RANGE,ISBANISH)
1656
	local CHILDREN = workspace:GetDescendants()
1657
	for index, CHILD in pairs(CHILDREN) do
1658
		if CHILD.ClassName == "Model" and CHILD ~= Character then
1659
			local HUM = CHILD:FindFirstChildOfClass("Humanoid")
1660
			if HUM then
1661
				local TORSO = CHILD:FindFirstChild("Torso") or CHILD:FindFirstChild("UpperTorso")
1662
				if TORSO then
1663
					if (TORSO.Position - POSITION).Magnitude <= RANGE then
1664
						if ISBANISH == true then
1665
							Banish(CHILD)
1666
						else
1667
							if ISBANISH == "Gravity" then
1668
								HUM.PlatformStand = true
1669
								if TORSO:FindFirstChild("V3BanishForce"..Player.Name) then
1670
									local grav = Instance.new("BodyPosition",TORSO)
1671
									grav.D = 15
1672
									grav.P = 20000
1673
									grav.maxForce = Vector3.new(math.huge,math.huge,math.huge)
1674
									grav.position = TORSO.Position
1675
									grav.Name = "V3BanishForce"..Player.Name
1676
								else
1677
									TORSO:FindFirstChild("V3BanishForce"..Player.Name).position = TORSO.Position+VT(0,0.3,0)
1678
									TORSO.RotVelocity = VT(MRANDOM(-25,25),MRANDOM(-25,25),MRANDOM(-25,25))
1679
								end
1680
							else
1681
								HUM.PlatformStand = false
1682
							end
1683
						end
1684
					elseif ISBANISH == "Gravity" then
1685
						if TORSO:FindFirstChild("V3BanishForce"..Player.Name) then
1686
							TORSO:FindFirstChild("V3BanishForce"..Player.Name):remove()
1687
							HUM.PlatformStand = false
1688
						end
1689
					end
1690
				end
1691
			end
1692
		end
1693
	end
1694
end
1695
1696
function SpawnSmite(POS)
1697
	local HITFLOOR,HITPOS = Raycast(POS+VT(0,1,0), (CF(POS, POS + VT(0, -1, 0))).lookVector, 100, Character)
1698
	local EMITPOS = HITPOS
1699
	if HITFLOOR ~= nil then
1700
		if HITFLOOR.Parent:FindFirstChildOfClass("Humanoid") then
1701
			HITFLOOR,HITPOS = Raycast(POS+VT(0,1,0), (CF(POS, POS + VT(0, -1, 0))).lookVector, 100, HITFLOOR.Parent)
1702
			EMITPOS = HITPOS
1703
		elseif HITFLOOR.Parent.Parent:FindFirstChildOfClass("Humanoid") then
1704
			HITFLOOR,HITPOS = Raycast(POS+VT(0,1,0), (CF(POS, POS + VT(0, -1, 0))).lookVector, 100, HITFLOOR.Parent.Parent)
1705
			EMITPOS = HITPOS
1706
		end
1707
	end
1708
	if HITFLOOR ~= nil then
1709
		ApplyAoE(EMITPOS,10)
1710
		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 = C3(1,0,0), SoundID = 419011114, SoundPitch = 1, SoundVolume = 5})
1711
		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 = C3(1,0,0), SoundID = nil, SoundPitch = 1, SoundVolume = 5})
1712
		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 = C3(1,0,0), SoundID = nil, SoundPitch = 1, SoundVolume = 5})
1713
		for i = 1, 5 do
1714
			local TOPOS = CF(EMITPOS)*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)))*CF(0,0,12)
1715
			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 = C3(1,0,0), SoundID = 419011114, SoundPitch = 1, SoundVolume = 5})
1716
		end
1717
	end
1718
end
1719
1720
--//=================================\\
1721
--||	ATTACK FUNCTIONS AND STUFF
1722
--\\=================================//
1723
1724
function eh()
1725
	ATTACK = true
1726
	Rooted = false
1727
	Speed = 20
1728
		Swait()
1729
		local CHILDREN = workspace:GetDescendants()
1730
		for index, CHILD in pairs(CHILDREN) do
1731
			if CHILD.ClassName == "Model" and CHILD ~= Character then
1732
				local HUM = CHILD:FindFirstChildOfClass("Humanoid")
1733
				if HUM then
1734
					local TORSO = CHILD:FindFirstChild("Head")
1735
					if TORSO then
1736
						if (TORSO.Position - Head.Position).Magnitude <= 25 then
1737
							WACKYEFFECT({Time = 45, EffectType = "Sphere", Size = VT(1,1,1), Size2 = VT(5,5,5), Transparency = 0, Transparency2 = 1, CFrame = CF(TORSO.Position), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = C3(1,0,0), SoundID = nil, SoundPitch = nil, SoundVolume = nil})
1738
							TORSO:remove()
1739
							if CHILD:FindFirstChild("Torso") then
1740
								Ragdoll(CHILD,Torso,true)
1741
							elseif CHILD:FindFirstChild("UpperTorso") then
1742
								R15Ragdoll(CHILD,true)
1743
							end
1744
						end
1745
					end
1746
				end
1747
			end
1748
		end
1749
		WACKYEFFECT({Time = 25, EffectType = "Wave", Size = VT(0.3,0,0.3), Size2 = VT(1,1.5,1), Transparency = 0, Transparency2 = 1, CFrame = Hole.CFrame, MoveToPos = Hole.CFrame*CF(0,0.5,0).p, RotationX = 0, RotationY = -15, RotationZ = 0, Material = "Neon", Color = C3(1,0,0), SoundID = nil, SoundPitch = nil, SoundVolume = nil})
1750
		WACKYEFFECT({Time = 25, EffectType = "Wave", Size = VT(0.3,0,0.3), Size2 = VT(2,0.5,2), Transparency = 0, Transparency2 = 1, CFrame = Hole.CFrame, MoveToPos = nil, RotationX = 0, RotationY = 5, RotationZ = 0, Material = "Neon", Color = C3(1,0,0), SoundID = 136523485, SoundPitch = MRANDOM(8,11)/10, SoundVolume = 1})
1751
	for i=0, 0.3, 0.1 / Animation_Speed do
1752
		Swait()
1753
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(25 + MRANDOM(-5,5) - 4 * COS(SINE / 12)), RAD(MRANDOM(-5,5)), RAD(15)), 1 / Animation_Speed)	
1754
		RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.25 / Animation_Speed)
1755
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0.3) * ANGLES(RAD(180), RAD(0), RAD(0)) * ANGLES(RAD(0), RAD(45), RAD(0)) * RIGHTSHOULDERC0, 0.25 / Animation_Speed)
1756
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.6, 0) * ANGLES(RAD(-45), RAD(0), RAD(45)) * LEFTSHOULDERC0, 0.25 / Animation_Speed)
1757
		RightHip.C0 = Clerp(RightHip.C0, CF(1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 0.25 / Animation_Speed)
1758
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 0.25 / Animation_Speed)
1759
end
1760
	Speed = 20
1761
	ATTACK = false
1762
	Rooted = false
1763
end
1764
1765
function Taunt()
1766
	ATTACK = true
1767
	Rooted = true
1768
	        CreateSound("1238240145", Torso, 6, 0.9)
1769
		for i=0, 0.6, 0.1 / Animation_Speed do
1770
			Swait()
1771
		RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.35 * COS(SINE / 2)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.15 / Animation_Speed)
1772
Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0 + MRANDOM(-25,25) - 4 * COS(SINE / 12)), RAD(MRANDOM(-25,25)), RAD(0)), 1.5 / Animation_Speed)
1773
RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.35, 0) * ANGLES(RAD(90), RAD(34), RAD(0)) * RIGHTSHOULDERC0, 0.15 / Animation_Speed)
1774
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(90), RAD(25), RAD(45)) * LEFTSHOULDERC0, 0.15 / Animation_Speed)
1775
		RightHip.C0 = Clerp(RightHip.C0, CF(1, -1 - 0.35 * COS(SINE / 2), -0.01) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.15 / Animation_Speed)
1776
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.35 * COS(SINE / 2), -0.01) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.15 / Animation_Speed)
1777
		end
1778
		for i=0, 0.6, 0.1 / Animation_Speed do
1779
			Swait()
1780
		RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.35 * COS(SINE / 2)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.15 / Animation_Speed)
1781
Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0 + MRANDOM(-25,25) - 4 * COS(SINE / 12)), RAD(MRANDOM(-25,25)), RAD(0)), 1.5 / Animation_Speed)
1782
RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.35, 0) * ANGLES(RAD(80), RAD(0), RAD(0)) * RIGHTSHOULDERC0, 0.15 / Animation_Speed)
1783
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(90), RAD(15), RAD(45)) * LEFTSHOULDERC0, 0.15 / Animation_Speed)
1784
		RightHip.C0 = Clerp(RightHip.C0, CF(1, -1 - 0.35 * COS(SINE / 2), -0.01) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.15 / Animation_Speed)
1785
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.35 * COS(SINE / 2), -0.01) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.15 / Animation_Speed)
1786
		end
1787
		for i=0, 0.6, 0.1 / Animation_Speed do
1788
			Swait()
1789
		RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.35 * COS(SINE / 2)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.15 / Animation_Speed)
1790
Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0 + MRANDOM(-25,25) - 4 * COS(SINE / 12)), RAD(MRANDOM(-25,25)), RAD(0)), 1.5 / Animation_Speed)
1791
RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.35, 0) * ANGLES(RAD(90), RAD(34), RAD(0)) * RIGHTSHOULDERC0, 0.15 / Animation_Speed)
1792
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(90), RAD(25), RAD(45)) * LEFTSHOULDERC0, 0.15 / Animation_Speed)
1793
		RightHip.C0 = Clerp(RightHip.C0, CF(1, -1 - 0.35 * COS(SINE / 2), -0.01) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.15 / Animation_Speed)
1794
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.35 * COS(SINE / 2), -0.01) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.15 / Animation_Speed)
1795
		end
1796
		for i=0, 0.6, 0.1 / Animation_Speed do
1797
			Swait()
1798
		RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.35 * COS(SINE / 2)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.15 / Animation_Speed)
1799
Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0 + MRANDOM(-25,25) - 4 * COS(SINE / 12)), RAD(MRANDOM(-25,25)), RAD(0)), 1.5 / Animation_Speed)
1800
RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.35, 0) * ANGLES(RAD(80), RAD(0), RAD(0)) * RIGHTSHOULDERC0, 0.15 / Animation_Speed)
1801
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(90), RAD(15), RAD(45)) * LEFTSHOULDERC0, 0.15 / Animation_Speed)
1802
		RightHip.C0 = Clerp(RightHip.C0, CF(1, -1 - 0.35 * COS(SINE / 2), -0.01) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.15 / Animation_Speed)
1803
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.35 * COS(SINE / 2), -0.01) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.15 / Animation_Speed)
1804
		end
1805
		for i=0, 0.6, 0.1 / Animation_Speed do
1806
			Swait()
1807
		RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.35 * COS(SINE / 2)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.15 / Animation_Speed)
1808
Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0 + MRANDOM(-25,25) - 4 * COS(SINE / 12)), RAD(MRANDOM(-25,25)), RAD(0)), 1.5 / Animation_Speed)
1809
RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.35, 0) * ANGLES(RAD(90), RAD(34), RAD(0)) * RIGHTSHOULDERC0, 0.15 / Animation_Speed)
1810
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(90), RAD(25), RAD(45)) * LEFTSHOULDERC0, 0.15 / Animation_Speed)
1811
		RightHip.C0 = Clerp(RightHip.C0, CF(1, -1 - 0.35 * COS(SINE / 2), -0.01) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.15 / Animation_Speed)
1812
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.35 * COS(SINE / 2), -0.01) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.15 / Animation_Speed)
1813
		end
1814
		for i=0, 0.6, 0.1 / Animation_Speed do
1815
			Swait()
1816
		RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.35 * COS(SINE / 2)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.15 / Animation_Speed)
1817
Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0 + MRANDOM(-25,25) - 4 * COS(SINE / 12)), RAD(MRANDOM(-25,25)), RAD(0)), 1.5 / Animation_Speed)
1818
RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.35, 0) * ANGLES(RAD(80), RAD(0), RAD(0)) * RIGHTSHOULDERC0, 0.15 / Animation_Speed)
1819
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(90), RAD(15), RAD(45)) * LEFTSHOULDERC0, 0.15 / Animation_Speed)
1820
		RightHip.C0 = Clerp(RightHip.C0, CF(1, -1 - 0.35 * COS(SINE / 2), -0.01) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.15 / Animation_Speed)
1821
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.35 * COS(SINE / 2), -0.01) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.15 / Animation_Speed)
1822
		end
1823
	ATTACK = false
1824
	Rooted = false
1825
end
1826
1827
function Shot()
1828
	ATTACK = true
1829
	Rooted = false
1830
	for i=0, 0.2, 0.05 / Animation_Speed do
1831
		Swait()
1832
		turnto(Mouse.Hit.p)
1833
		RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(90)), 0.5 / Animation_Speed)
1834
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(-90)), 0.5 / Animation_Speed)
1835
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(90), RAD(0), RAD(90)) * RIGHTSHOULDERC0, 0.5 / Animation_Speed)
1836
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.6, 0) * ANGLES(RAD(-45), RAD(0), RAD(45)) * LEFTSHOULDERC0, 0.5 / Animation_Speed)
1837
		RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, 0) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 0.5 / Animation_Speed)
1838
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, 0) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 0.5 / Animation_Speed)
1839
	end
1840
	repeat
1841
		for i=0, 0.2, 0.05 / Animation_Speed do
1842
			Swait()
1843
			turnto(Mouse.Hit.p)
1844
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(90)), 0.5 / Animation_Speed)
1845
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(-90)), 0.5 / Animation_Speed)
1846
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(90), RAD(0), RAD(90)) * RIGHTSHOULDERC0, 0.5 / Animation_Speed)
1847
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.6, 0) * ANGLES(RAD(-45), RAD(0), RAD(45)) * LEFTSHOULDERC0, 0.5 / Animation_Speed)
1848
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, 0) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 0.5 / Animation_Speed)
1849
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, 0) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 0.5 / Animation_Speed)
1850
		end
1851
		local HIT,POS = CastProperRay(Hole.Position, Mouse.Hit.p, 1000, Character)
1852
		SpawnTrail(Hole.Position,POS)
1853
		if HIT ~= nil then
1854
			if HIT.Parent ~= workspace and HIT.Parent.ClassName ~= "Folder" then
1855
				Banish(HIT.Parent)
1856
			end
1857
		end
1858
		WACKYEFFECT({Time = 25, EffectType = "Wave", Size = VT(0.3,0,0.3), Size2 = VT(1,1.5,1), Transparency = 0, Transparency2 = 1, CFrame = Hole.CFrame, MoveToPos = Hole.CFrame*CF(0,0.5,0).p, RotationX = 0, RotationY = -15, RotationZ = 0, Material = "Neon", Color = C3(1,0,0), SoundID = nil, SoundPitch = nil, SoundVolume = nil})
1859
		WACKYEFFECT({Time = 25, EffectType = "Wave", Size = VT(0.3,0,0.3), Size2 = VT(2,0.5,2), Transparency = 0, Transparency2 = 1, CFrame = Hole.CFrame, MoveToPos = nil, RotationX = 0, RotationY = 5, RotationZ = 0, Material = "Neon", Color = C3(1,0,0), SoundID = 136523485, SoundPitch = MRANDOM(8,11)/10, SoundVolume = 8})
1860
		WACKYEFFECT({Time = 25, EffectType = "Wave", Size = VT(0.3,0,0.3), Size2 = VT(2,0.5,2), Transparency = 0, Transparency2 = 1, CFrame = CF(POS,Hole.Position) * ANGLES(RAD(-90), RAD(0), RAD(0)), MoveToPos = nil, RotationX = 0, RotationY = -5, RotationZ = 0, Material = "Neon", Color = C3(1,0,0), SoundID = nil, SoundPitch = MRANDOM(8,11)/10, SoundVolume = 8})
1861
		WACKYEFFECT({Time = 25, EffectType = "Wave", Size = VT(0.3,0,0.3), Size2 = VT(2,0.5,2), Transparency = 0, Transparency2 = 1, CFrame = CF(POS,Hole.Position) * ANGLES(RAD(-90), RAD(0), RAD(0)), MoveToPos = nil, RotationX = 0, RotationY = 5, RotationZ = 0, Material = "Neon", Color = C3(1,0,0), SoundID = nil, SoundPitch = MRANDOM(8,11)/10, SoundVolume = 8})
1862
	Humanoid.CameraOffset = VT(MRANDOM(-5,5)/2.5,MRANDOM(-5,5)/2.5,MRANDOM(-5,5)/2.5)/30
1863
		for i=0, 0.2, 0.05 / Animation_Speed do
1864
			Swait()
1865
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(90)), 0.5 / Animation_Speed)
1866
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(-90)), 0.25 / Animation_Speed)
1867
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(90), RAD(15), RAD(90)) * RIGHTSHOULDERC0, 0.5 / Animation_Speed)
1868
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.6, 0) * ANGLES(RAD(-45), RAD(0), RAD(45)) * LEFTSHOULDERC0, 0.5 / Animation_Speed)
1869
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, 0) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 0.5 / Animation_Speed)
1870
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, 0) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 0.5 / Animation_Speed)
1871
		end
1872
	until KEYHOLD == false
1873
	ATTACK = false
1874
	Rooted = false
1875
end
1876
1877
function Shot2()
1878
	ATTACK = true
1879
	Rooted = false
1880
	for i=0, 0.2, 0.05 / Animation_Speed do
1881
		Swait()
1882
		turnto(Mouse.Hit.p)
1883
		RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(90)), 0.5 / Animation_Speed)
1884
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(-90)), 0.5 / Animation_Speed)
1885
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(90), RAD(0), RAD(90)) * RIGHTSHOULDERC0, 0.5 / Animation_Speed)
1886
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.6, 0) * ANGLES(RAD(-45), RAD(0), RAD(45)) * LEFTSHOULDERC0, 0.5 / Animation_Speed)
1887
		RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, 0) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 0.5 / Animation_Speed)
1888
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, 0) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 0.5 / Animation_Speed)
1889
	end
1890
	repeat
1891
		for i=0, 0.2, 0.05 / Animation_Speed do
1892
			Swait()
1893
			turnto(Mouse.Hit.p)
1894
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(90)), 0.5 / Animation_Speed)
1895
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(-90)), 0.5 / Animation_Speed)
1896
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(90), RAD(0), RAD(90)) * RIGHTSHOULDERC0, 0.5 / Animation_Speed)
1897
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.6, 0) * ANGLES(RAD(-45), RAD(0), RAD(45)) * LEFTSHOULDERC0, 0.5 / Animation_Speed)
1898
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, 0) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 0.5 / Animation_Speed)
1899
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, 0) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 0.5 / Animation_Speed)
1900
		end
1901
		local HIT,POS = CastProperRay(Hole.Position, Mouse.Hit.p, 1000, Character)
1902
		SpawnTrail(Hole.Position,POS)
1903
		if HIT ~= nil then
1904
			if HIT.Parent ~= workspace and HIT.Parent.ClassName ~= "Folder" then
1905
				Kill(HIT.Parent)
1906
			end
1907
		end
1908
		WACKYEFFECT({Time = 25, EffectType = "Wave", Size = VT(0.3,0,0.3), Size2 = VT(1,1.5,1), Transparency = 0, Transparency2 = 1, CFrame = Hole.CFrame, MoveToPos = Hole.CFrame*CF(0,0.5,0).p, RotationX = 0, RotationY = -15, RotationZ = 0, Material = "Neon", Color = C3(1,0,0), SoundID = nil, SoundPitch = nil, SoundVolume = nil})
1909
		WACKYEFFECT({Time = 25, EffectType = "Wave", Size = VT(0.3,0,0.3), Size2 = VT(2,0.5,2), Transparency = 0, Transparency2 = 1, CFrame = Hole.CFrame, MoveToPos = nil, RotationX = 0, RotationY = 5, RotationZ = 0, Material = "Neon", Color = C3(1,0,0), SoundID = 136523485, SoundPitch = MRANDOM(8,11)/10, SoundVolume = 8})
1910
		WACKYEFFECT({Time = 25, EffectType = "Wave", Size = VT(0.3,0,0.3), Size2 = VT(2,0.5,2), Transparency = 0, Transparency2 = 1, CFrame = CF(POS,Hole.Position) * ANGLES(RAD(-90), RAD(0), RAD(0)), MoveToPos = nil, RotationX = 0, RotationY = -5, RotationZ = 0, Material = "Neon", Color = C3(1,0,0), SoundID = nil, SoundPitch = MRANDOM(8,11)/10, SoundVolume = 8})
1911
		WACKYEFFECT({Time = 25, EffectType = "Wave", Size = VT(0.3,0,0.3), Size2 = VT(2,0.5,2), Transparency = 0, Transparency2 = 1, CFrame = CF(POS,Hole.Position) * ANGLES(RAD(-90), RAD(0), RAD(0)), MoveToPos = nil, RotationX = 0, RotationY = 5, RotationZ = 0, Material = "Neon", Color = C3(1,0,0), SoundID = nil, SoundPitch = MRANDOM(8,11)/10, SoundVolume = 8})
1912
	Humanoid.CameraOffset = VT(MRANDOM(-5,5)/2.5,MRANDOM(-5,5)/2.5,MRANDOM(-5,5)/2.5)/30
1913
		for i=0, 0.2, 0.05 / Animation_Speed do
1914
			Swait()
1915
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(90)), 0.5 / Animation_Speed)
1916
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(-90)), 0.25 / Animation_Speed)
1917
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(90), RAD(15), RAD(90)) * RIGHTSHOULDERC0, 0.5 / Animation_Speed)
1918
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.6, 0) * ANGLES(RAD(-45), RAD(0), RAD(45)) * LEFTSHOULDERC0, 0.5 / Animation_Speed)
1919
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, 0) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 0.5 / Animation_Speed)
1920
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, 0) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 0.5 / Animation_Speed)
1921
		end
1922
	until KEYHOLD == false
1923
	ATTACK = false
1924
	Rooted = false
1925
end
1926
1927
function AttackTemplate()
1928
	ATTACK = true
1929
	Rooted = false
1930
	for i=0, 1, 0.1 / Animation_Speed do
1931
		Swait()
1932
		RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(90)), 0.5 / Animation_Speed)
1933
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(-90)), 0.5 / Animation_Speed)
1934
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(90), RAD(0), RAD(90)) * RIGHTSHOULDERC0, 0.5 / Animation_Speed)
1935
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.6, 0) * ANGLES(RAD(-45), RAD(0), RAD(45)) * LEFTSHOULDERC0, 0.5 / Animation_Speed)
1936
		RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, 0) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 0.5 / Animation_Speed)
1937
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, 0) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 0.5 / Animation_Speed)
1938
	end
1939
	ATTACK = false
1940
	Rooted = false
1941
end
1942
1943
function Finisher()
1944
	local TARGET = Mouse.Target
1945
	if TARGET ~= nil then
1946
		if TARGET.Parent:FindFirstChildOfClass("Humanoid") then
1947
			local HUM = TARGET.Parent:FindFirstChildOfClass("Humanoid")
1948
			local ROOT = TARGET.Parent:FindFirstChild("HumanoidRootPart") or TARGET.Parent:FindFirstChild("Torso") or TARGET.Parent:FindFirstChild("UpperTorso")
1949
			if ROOT and HUM.Health > 0 then
1950
				local FOE = Mouse.Target.Parent
1951
				ATTACK = true
1952
				Rooted = true
1953
				RootPart.CFrame = ROOT.CFrame*CF(-1.35,0,4)
1954
				ROOT.Anchored = true 
1955
				CreateSound(670796769, Torso, 9999, 0.6, false) 
1956
				CreateSound(362990415, Torso, 5, 1.08, false) 
1957
				for i=0, 0.4, 0.1 / Animation_Speed do
1958
					Swait()
1959
					RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
1960
					Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
1961
					RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(80), RAD(0), RAD(0)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
1962
					LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(0)) * LEFTSHOULDERC0, 1 / Animation_Speed)
1963
					RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, -0.01) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
1964
					LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, -0.01) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
1965
				end
1966
				HUM.PlatformStand = true
1967
				ROOT.CFrame = ROOT.CFrame * CF(0,-2*ROOT.Size.Z,0) * ANGLES(RAD(-90), RAD(0), RAD(0))
1968
				coroutine.resume(coroutine.create(function()
1969
					Swait()
1970
					ROOT.Anchored = true
1971
				end))
1972
				RootPart.CFrame = RootPart.CFrame*CF(0,0,-0.6)
1973
				for i=0, 0.2, 0.1 / Animation_Speed do
1974
					Swait()
1975
					RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(45)), 1 / Animation_Speed)
1976
					Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0), RAD(0), RAD(-45)), 1 / Animation_Speed)
1977
					RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, -0.5) * ANGLES(RAD(90), RAD(0), RAD(45)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
1978
					LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(0)) * LEFTSHOULDERC0, 1 / Animation_Speed)
1979
					RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, -0.01) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
1980
					LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, -0.01) * ANGLES(RAD(0), RAD(-50), RAD(0)) * ANGLES(RAD(-1), RAD(0), RAD(0)), 1 / Animation_Speed)
1981
				end
1982
		WACKYEFFECT({Time = 25, EffectType = "Wave", Size = VT(0.3,0,0.3), Size2 = VT(1,1.5,1), Transparency = 0, Transparency2 = 1, CFrame = Hole.CFrame, MoveToPos = Hole.CFrame*CF(0,0.5,0).p, RotationX = 0, RotationY = -15, RotationZ = 0, Material = "Neon", Color = C3(1,0,0), SoundID = nil, SoundPitch = nil, SoundVolume = nil})
1983
		WACKYEFFECT({Time = 25, EffectType = "Wave", Size = VT(0.3,0,0.3), Size2 = VT(2,0.5,2), Transparency = 0, Transparency2 = 1, CFrame = Hole.CFrame, MoveToPos = nil, RotationX = 0, RotationY = 5, RotationZ = 0, Material = "Neon", Color = C3(1,0,0), SoundID = 136523485, SoundPitch = MRANDOM(8,11)/10, SoundVolume = 8})
1984
				for i=0, 0.2, 0.1 / Animation_Speed do
1985
					Swait()
1986
					RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(15)), 1 / Animation_Speed)
1987
					Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0), RAD(0), RAD(-15)), 1 / Animation_Speed)
1988
					RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(90)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
1989
					LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(0)) * LEFTSHOULDERC0, 1 / Animation_Speed)
1990
					RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, -0.01) * ANGLES(RAD(0), RAD(75), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
1991
					LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, -0.01) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
1992
				end
1993
		WACKYEFFECT({Time = 25, EffectType = "Wave", Size = VT(0.3,0,0.3), Size2 = VT(1,1.5,1), Transparency = 0, Transparency2 = 1, CFrame = Hole.CFrame, MoveToPos = Hole.CFrame*CF(0,0.5,0).p, RotationX = 0, RotationY = -15, RotationZ = 0, Material = "Neon", Color = C3(1,0,0), SoundID = nil, SoundPitch = nil, SoundVolume = nil})
1994
		WACKYEFFECT({Time = 25, EffectType = "Wave", Size = VT(0.3,0,0.3), Size2 = VT(2,0.5,2), Transparency = 0, Transparency2 = 1, CFrame = Hole.CFrame, MoveToPos = nil, RotationX = 0, RotationY = 5, RotationZ = 0, Material = "Neon", Color = C3(1,0,0), SoundID = 136523485, SoundPitch = MRANDOM(8,11)/10, SoundVolume = 8})
1995
				local AMMO = 6
1996
				local FIRING = true
1997
				local SHOOTING = false
1998
				local TIMER = 70
1999
				CreateSound(147722227, GunPoint, 6, 1.3, false)
2000
				for i=0, 0.2, 0.1 / Animation_Speed do
2001
					Swait()
2002
					RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(45)), 1 / Animation_Speed)
2003
					Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0), RAD(0), RAD(-45)), 1 / Animation_Speed)
2004
					RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(30), RAD(0), RAD(45)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
2005
					LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(0)) * LEFTSHOULDERC0, 1 / Animation_Speed)
2006
					RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, -0.01) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
2007
					LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, -0.01) * ANGLES(RAD(0), RAD(-65), RAD(0)) * ANGLES(RAD(-1), RAD(0), RAD(0)), 1 / Animation_Speed)
2008
				end
2009
		WACKYEFFECT({Time = 25, EffectType = "Wave", Size = VT(0.3,0,0.3), Size2 = VT(1,1.5,1), Transparency = 0, Transparency2 = 1, CFrame = Hole.CFrame, MoveToPos = Hole.CFrame*CF(0,0.5,0).p, RotationX = 0, RotationY = -15, RotationZ = 0, Material = "Neon", Color = C3(1,0,0), SoundID = nil, SoundPitch = nil, SoundVolume = nil})
2010
		WACKYEFFECT({Time = 25, EffectType = "Wave", Size = VT(0.3,0,0.3), Size2 = VT(2,0.5,2), Transparency = 0, Transparency2 = 1, CFrame = Hole.CFrame, MoveToPos = nil, RotationX = 0, RotationY = 5, RotationZ = 0, Material = "Neon", Color = C3(1,0,0), SoundID = 136523485, SoundPitch = MRANDOM(8,11)/10, SoundVolume = 8})
2011
				for i = 1, 6 do
2012
					local GUNPOS = Hole.CFrame*CF(0, 0, 0).p
2013
					local DISTANCE = (FOE.Head.Position - GUNPOS).Magnitude
2014
		WACKYEFFECT({Time = 25, EffectType = "Wave", Size = VT(0.3,0,0.3), Size2 = VT(1,1.5,1), Transparency = 0, Transparency2 = 1, CFrame = Hole.CFrame, MoveToPos = Hole.CFrame*CF(0,0.5,0).p, RotationX = 0, RotationY = -15, RotationZ = 0, Material = "Neon", Color = C3(1,0,0), SoundID = nil, SoundPitch = nil, SoundVolume = nil})
2015
		WACKYEFFECT({Time = 25, EffectType = "Wave", Size = VT(0.3,0,0.3), Size2 = VT(2,0.5,2), Transparency = 0, Transparency2 = 1, CFrame = Hole.CFrame, MoveToPos = nil, RotationX = 0, RotationY = 5, RotationZ = 0, Material = "Neon", Color = C3(1,0,0), SoundID = 136523485, SoundPitch = MRANDOM(8,11)/10, SoundVolume = 8})
2016
					HUM.Health = HUM.Health/1.5
2017
					for i=0, 0.2, 0.1 / Animation_Speed do
2018
						Swait()
2019
					RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(45)), 1 / Animation_Speed)
2020
					Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0), RAD(0), RAD(-45)), 1 / Animation_Speed)
2021
					RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(70), RAD(0), RAD(45)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
2022
					LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(0)) * LEFTSHOULDERC0, 1 / Animation_Speed)
2023
					RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, -0.01) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
2024
					LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, -0.01) * ANGLES(RAD(0), RAD(-65), RAD(0)) * ANGLES(RAD(-1), RAD(0), RAD(0)), 1 / Animation_Speed)
2025
				end
2026
		WACKYEFFECT({Time = 25, EffectType = "Wave", Size = VT(0.3,0,0.3), Size2 = VT(1,1.5,1), Transparency = 0, Transparency2 = 1, CFrame = Hole.CFrame, MoveToPos = Hole.CFrame*CF(0,0.5,0).p, RotationX = 0, RotationY = -15, RotationZ = 0, Material = "Neon", Color = C3(1,0,0), SoundID = nil, SoundPitch = nil, SoundVolume = nil})
2027
		WACKYEFFECT({Time = 25, EffectType = "Wave", Size = VT(0.3,0,0.3), Size2 = VT(2,0.5,2), Transparency = 0, Transparency2 = 1, CFrame = Hole.CFrame, MoveToPos = nil, RotationX = 0, RotationY = 5, RotationZ = 0, Material = "Neon", Color = C3(1,0,0), SoundID = 136523485, SoundPitch = MRANDOM(8,11)/10, SoundVolume = 8})
2028
					for i=0, 0.2, 0.1 / Animation_Speed do
2029
						Swait()
2030
					RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(45)), 1 / Animation_Speed)
2031
					Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0), RAD(0), RAD(-45)), 1 / Animation_Speed)
2032
					RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(30), RAD(0), RAD(45)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
2033
					LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(0)) * LEFTSHOULDERC0, 1 / Animation_Speed)
2034
					RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, -0.01) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
2035
					LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, -0.01) * ANGLES(RAD(0), RAD(-65), RAD(0)) * ANGLES(RAD(-1), RAD(0), RAD(0)), 1 / Animation_Speed)
2036
					end
2037
				end
2038
		WACKYEFFECT({Time = 25, EffectType = "Wave", Size = VT(0.3,0,0.3), Size2 = VT(1,1.5,1), Transparency = 0, Transparency2 = 1, CFrame = Hole.CFrame, MoveToPos = Hole.CFrame*CF(0,0.5,0).p, RotationX = 0, RotationY = -15, RotationZ = 0, Material = "Neon", Color = C3(1,0,0), SoundID = nil, SoundPitch = nil, SoundVolume = nil})
2039
		WACKYEFFECT({Time = 25, EffectType = "Wave", Size = VT(0.3,0,0.3), Size2 = VT(2,0.5,2), Transparency = 0, Transparency2 = 1, CFrame = Hole.CFrame, MoveToPos = nil, RotationX = 0, RotationY = 5, RotationZ = 0, Material = "Neon", Color = C3(1,0,0), SoundID = 136523485, SoundPitch = MRANDOM(8,11)/10, SoundVolume = 8})
2040
				ApplyDamage(HUM,0,true)
2041
				FOE:BreakJoints()
2042
				ROOT.Anchored = false
2043
				for i=0, 0.3, 0.1 / Animation_Speed do
2044
					Swait()
2045
					RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
2046
					Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(25), RAD(0), RAD(15)), 1 / Animation_Speed)
2047
					RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(0)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
2048
					LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.525, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(5)) * LEFTSHOULDERC0, 1 / Animation_Speed)
2049
					RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, -0.01) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
2050
					LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, -0.01) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
2051
				end
2052
				ATTACK = false
2053
				Rooted = false
2054
			end
2055
		end
2056
	end
2057
end
2058
2059
2060
--//=================================\\
2061
--||	  ASSIGN THINGS TO KEYS
2062
--\\=================================//
2063
2064
function MouseDown(Mouse)
2065
	if ATTACK == false then
2066
	end
2067
end
2068
2069
function MouseUp(Mouse)
2070
HOLD = false
2071
end
2072
2073
function KeyDown(Key)
2074
	KEYHOLD = true
2075
	if Key == "z" and ATTACK == false then
2076
		Shot()
2077
	end
2078
2079
	if Key == "v" and ATTACK == false then
2080
		Shot2()
2081
	end
2082
2083
	if Key == "x" and ATTACK == false then
2084
                Finisher()
2085
	end
2086
	
2087
	if Key == "f" and ATTACK == false then
2088
		for i=0, 0.3, 0.1 / Animation_Speed do
2089
		Swait()
2090
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(25 + MRANDOM(-5,5) - 4 * COS(SINE / 12)), RAD(MRANDOM(-5,5)), RAD(15)), 1 / Animation_Speed)	
2091
		RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.25 / Animation_Speed)
2092
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0.3) * ANGLES(RAD(180), RAD(0), RAD(0)) * ANGLES(RAD(0), RAD(45), RAD(0)) * RIGHTSHOULDERC0, 0.25 / Animation_Speed)
2093
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.6, 0) * ANGLES(RAD(-45), RAD(0), RAD(45)) * LEFTSHOULDERC0, 0.25 / Animation_Speed)
2094
		RightHip.C0 = Clerp(RightHip.C0, CF(1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 0.25 / Animation_Speed)
2095
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 0.25 / Animation_Speed)
2096
		end
2097
		WACKYEFFECT({Time = 25, EffectType = "Wave", Size = VT(0.3,0,0.3), Size2 = VT(1,1.5,1), Transparency = 0, Transparency2 = 1, CFrame = Hole.CFrame, MoveToPos = Hole.CFrame*CF(0,0.5,0).p, RotationX = 0, RotationY = -15, RotationZ = 0, Material = "Neon", Color = C3(1,0,0), SoundID = nil, SoundPitch = nil, SoundVolume = nil})
2098
		WACKYEFFECT({Time = 25, EffectType = "Wave", Size = VT(0.3,0,0.3), Size2 = VT(2,0.5,2), Transparency = 0, Transparency2 = 1, CFrame = Hole.CFrame, MoveToPos = nil, RotationX = 0, RotationY = 5, RotationZ = 0, Material = "Neon", Color = C3(1,0,0), SoundID = 136523485, SoundPitch = MRANDOM(8,11)/10, SoundVolume = 1})
2099
                TOBANISH = {}
2100
	end
2101
2102
	if Key == "t" and ATTACK == false then
2103
               Taunt()
2104
	end
2105
2106
	if Key == "c" and ATTACK == false then
2107
                eh()
2108
	end
2109
end
2110
2111
function KeyUp(Key)
2112
	KEYHOLD = false
2113
end
2114
2115
	Mouse.Button1Down:connect(function(NEWKEY)
2116
		MouseDown(NEWKEY)
2117
	end)
2118
	Mouse.Button1Up:connect(function(NEWKEY)
2119
		MouseUp(NEWKEY)
2120
	end)
2121
	Mouse.KeyDown:connect(function(NEWKEY)
2122
		KeyDown(NEWKEY)
2123
	end)
2124
	Mouse.KeyUp:connect(function(NEWKEY)
2125
		KeyUp(NEWKEY)
2126
	end)
2127
2128
--//=================================\\
2129
--\\=================================//
2130
2131
2132
function unanchor()
2133
	if UNANCHOR == true then
2134
		g = Character:GetChildren()
2135
		for i = 1, #g do
2136
			if g[i].ClassName == "Part" then
2137
				g[i].Anchored = false
2138
			end
2139
		end
2140
	end
2141
end
2142
2143
2144
--//=================================\\
2145
--||	WRAP THE WHOLE SCRIPT UP
2146
--\\=================================//
2147
2148
Humanoid.Changed:connect(function(Jump)
2149
	if Jump == "Jump" and (Disable_Jump == true) then
2150
		Humanoid.Jump = false
2151
	end
2152
end)
2153
2154
local FF = IT("ForceField",Character)
2155
FF.Visible = false
2156
2157
INSTANT = false
2158
Speed = 20
2159
2160
while true do
2161
	Swait()
2162
	SINE = SINE + CHANGE
2163
		ANIMATE.Parent = nil
2164
		local IDLEANIMATION = Humanoid:LoadAnimation(ROBLOXIDLEANIMATION)
2165
		IDLEANIMATION:Play()
2166
			local TORSOVELOCITY = (RootPart.Velocity * VT(1, 0, 1)).magnitude
2167
			local TORSOVERTICALVELOCITY = RootPart.Velocity.y
2168
			local LV = Torso.CFrame:pointToObjectSpace(Torso.Velocity - Torso.Position)
2169
			local HITFLOOR = Raycast(RootPart.Position, (CF(RootPart.Position, RootPart.Position + VT(0, -1, 0))).lookVector, 4 * Player_Size, Character)
2170
			local WALKSPEEDVALUE = 6 / (Humanoid.WalkSpeed / 16)
2171
			if ATTACK == false and VALUE2 == false then
2172
                            end
2173
			if ANIM == "Walk" and TORSOVELOCITY > 1 then
2174
				RootJoint.C1 = Clerp(RootJoint.C1, ROOTC0 * CF(0, 0, -0.15 * COS(SINE / (WALKSPEEDVALUE / 2)) * Player_Size) * ANGLES(RAD(0), RAD(0) - RootPart.RotVelocity.Y / 75, RAD(0)), 2 * (Humanoid.WalkSpeed / 16) / Animation_Speed)
2175
				Neck.C1 = Clerp(Neck.C1, CF(0 * Player_Size, -0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(-90), RAD(0), RAD(180)) * ANGLES(RAD(2.5 * SIN(SINE / (WALKSPEEDVALUE / 2))), RAD(0), RAD(0) - Head.RotVelocity.Y / 30), 0.2 * (Humanoid.WalkSpeed / 16) / Animation_Speed)
2176
				RightHip.C1 = Clerp(RightHip.C1, CF(0.5 * Player_Size, 0.875 * Player_Size - 0.125 * SIN(SINE / WALKSPEEDVALUE) * Player_Size, -0.125 * COS(SINE / WALKSPEEDVALUE) * Player_Size) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0) - RightLeg.RotVelocity.Y / 75, RAD(0), RAD(76 * COS(SINE / WALKSPEEDVALUE))), 0.2 * (Humanoid.WalkSpeed / 16) / Animation_Speed)
2177
				LeftHip.C1 = Clerp(LeftHip.C1, CF(-0.5 * Player_Size, 0.875 * Player_Size + 0.125 * SIN(SINE / WALKSPEEDVALUE) * Player_Size, 0.125 * COS(SINE / WALKSPEEDVALUE) * Player_Size) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0) + LeftLeg.RotVelocity.Y / 75, RAD(0), RAD(76 * COS(SINE / WALKSPEEDVALUE))), 0.2 * (Humanoid.WalkSpeed / 16) / Animation_Speed)
2178
			elseif (ANIM ~= "Walk") or (TORSOVELOCITY < 1) then
2179
				RootJoint.C1 = Clerp(RootJoint.C1, ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.2 / Animation_Speed)
2180
				Neck.C1 = Clerp(Neck.C1, CF(0 * Player_Size, -0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(-90), RAD(0), RAD(180)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.2 / Animation_Speed)
2181
				RightHip.C1 = Clerp(RightHip.C1, CF(0.5 * Player_Size, 1 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.2 / Animation_Speed)
2182
				LeftHip.C1 = Clerp(LeftHip.C1, CF(-0.5 * Player_Size, 1 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.2 / Animation_Speed)
2183
			end
2184
			if TORSOVERTICALVELOCITY > 1 and HITFLOOR == nil then
2185
				ANIM = "Jump"
2186
				if ATTACK == false then
2187
					RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.2 / Animation_Speed)
2188
					Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0 * Player_Size, 0 + ((1) - 1)) * ANGLES(RAD(-20), RAD(0), RAD(0)), 0.2 / Animation_Speed)
2189
					RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(-40), RAD(0), RAD(20)) * RIGHTSHOULDERC0, 0.2 / Animation_Speed)
2190
					LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(-40), RAD(0), RAD(-20)) * LEFTSHOULDERC0, 0.2 / Animation_Speed)
2191
					RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, -0.3) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(-5), RAD(0), RAD(-20)), 0.2 / Animation_Speed)
2192
					LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, -0.3) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-5), RAD(0), RAD(20)), 0.2 / Animation_Speed)
2193
			       end
2194
			elseif TORSOVERTICALVELOCITY < -1 and HITFLOOR == nil then
2195
				ANIM = "Fall"
2196
				if ATTACK == false then
2197
					RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0, 0, 0 ) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.2 / Animation_Speed)
2198
					Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0 , 0 + ((1) - 1)) * ANGLES(RAD(20), RAD(0), RAD(0)), 0.2 / Animation_Speed)
2199
					RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(60)) * RIGHTSHOULDERC0, 0.2 / Animation_Speed)
2200
					LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(-60)) * LEFTSHOULDERC0, 0.2 / Animation_Speed)
2201
					RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, 0) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(20)), 0.2 / Animation_Speed)
2202
					LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, 0) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(10)), 0.2 / Animation_Speed)
2203
				end
2204
			elseif TORSOVELOCITY < 1 and HITFLOOR ~= nil then
2205
				ANIM = "Idle"
2206
				if ATTACK == false then
2207
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(25 + MRANDOM(-5,5) - 4 * COS(SINE / 12)), RAD(MRANDOM(-5,5)), RAD(15)), 1 / Animation_Speed)
2208
			if MRANDOM(1,7) == 1 then
2209
				Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0 + MRANDOM(-25,25) - 4 * COS(SINE / 12)), RAD(MRANDOM(-25,25)), RAD(0)), 1.5 / Animation_Speed)
2210
			end		
2211
		RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.25 / Animation_Speed)
2212
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(180), RAD(0), RAD(0)) * ANGLES(RAD(0), RAD(45), RAD(0)) * RIGHTSHOULDERC0, 0.25 / Animation_Speed)
2213
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.6, 0) * ANGLES(RAD(-45), RAD(0), RAD(45)) * LEFTSHOULDERC0, 0.25 / Animation_Speed)
2214
		RightHip.C0 = Clerp(RightHip.C0, CF(1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 0.25 / Animation_Speed)
2215
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 0.25 / Animation_Speed)
2216
				end
2217
			elseif TORSOVELOCITY > 1 and HITFLOOR ~= nil then
2218
				ANIM = "Walk"
2219
				if ATTACK == false then
2220
					RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, -0.1) * ANGLES(RAD(5), RAD(0), RAD(0)), 0.15 / Animation_Speed)
2221
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(25 + MRANDOM(-5,5) - 4 * COS(SINE / 12)), RAD(MRANDOM(-5,5)), RAD(15)), 1 / Animation_Speed)
2222
			if MRANDOM(1,7) == 1 then
2223
				Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0 + MRANDOM(-25,25) - 4 * COS(SINE / 12)), RAD(MRANDOM(-25,25)), RAD(0)), 1.5 / Animation_Speed)
2224
			end
2225
					RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.35, 0) * ANGLES(RAD(0), RAD(180), RAD(180)) * RIGHTSHOULDERC0, 0.15 / Animation_Speed)
2226
					LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(-60 * COS(SINE / WALKSPEEDVALUE)), RAD(0), RAD(-5)) * LEFTSHOULDERC0, 0.35 / Animation_Speed)
2227
					RightHip.C0 = Clerp(RightHip.C0, CF(1 , -1 - 0.15 * COS(SINE / WALKSPEEDVALUE*2), -0.2+ 0.2 * COS(SINE / WALKSPEEDVALUE)) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(-15)), 2 / Animation_Speed)
2228
					LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.15 * COS(SINE / WALKSPEEDVALUE*2), -0.2+ -0.2 * COS(SINE / WALKSPEEDVALUE)) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(15)), 2 / Animation_Speed)
2229
				end
2230
			end
2231
		end
2232
	--end
2233
	Humanoid.DisplayDistanceType = "None"
2234
	SHAKECAM(999999, 25, 25)
2235
	Humanoid.CameraOffset = VT(MRANDOM(-5,5)/4.5,MRANDOM(-5,5)/4.5,MRANDOM(-5,5)/4.5)/60
2236
	unanchor()
2237
	Humanoid.MaxHealth = "inf"
2238
	Humanoid.Health = "inf"
2239
	if Rooted == false then
2240
		Disable_Jump = false
2241
		Humanoid.WalkSpeed = Speed
2242
	elseif Rooted == true then
2243
		Disable_Jump = true
2244
		Humanoid.WalkSpeed = 0
2245
	end
2246
	local MATHS = {"0","1"}
2247
	Humanoid.Name = MATHS[MRANDOM(1,#MATHS)]..MATHS[MRANDOM(1,#MATHS)]..MATHS[MRANDOM(1,#MATHS)]..MATHS[MRANDOM(1,#MATHS)]..MATHS[MRANDOM(1,#MATHS)]..MATHS[MRANDOM(1,#MATHS)]..MATHS[MRANDOM(1,#MATHS)]..MATHS[MRANDOM(1,#MATHS)]..MATHS[MRANDOM(1,#MATHS)]..MATHS[MRANDOM(1,#MATHS)]..MATHS[MRANDOM(1,#MATHS)]..MATHS[MRANDOM(1,#MATHS)]..MATHS[MRANDOM(1,#MATHS)]..MATHS[MRANDOM(1,#MATHS)]..MATHS[MRANDOM(1,#MATHS)]..MATHS[MRANDOM(1,#MATHS)]..MATHS[MRANDOM(1,#MATHS)]..MATHS[MRANDOM(1,#MATHS)]
2248
	Humanoid.PlatformStand = false
2249
	script.Parent = PlayerGui
2250
	Character.Parent = workspace
2251
	Humanoid.Parent = Character
2252
--//=================================\\
2253
--\\=================================//
2254
2255
2256
2257
2258
2259
--//====================================================\\--
2260
--||			  		 END OF SCRIPT
2261
--\\====================================================//--