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