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