View difference between Paste ID: dDaj6xMw and Q673146Z
SHOW: | | - or go back to the newest paste.
1
if game:GetService("RunService"):IsClient() then error("Script must be server-side in order to work; use h/ and not hl/") end
2
local Player,game,owner = owner,game
3
local RealPlayer = Player
4
do
5
    print("FE Compatibility code by Mokiros, Edited by StarzoZero")
6
    local rp = RealPlayer
7
    script.Parent = rp.Character
8
   
9
    --RemoteEvent for communicating
10
    local Event = Instance.new("RemoteEvent")
11
    Event.Name = "UserInput_Event"
12
 
13
    --Fake event to make stuff like Mouse.KeyDown work
14
    local function fakeEvent()
15
        local t = {_fakeEvent=true,Functions={},Connect=function(self,f)table.insert(self.Functions,f) end}
16
        t.connect = t.Connect
17
        return t
18
    end
19
 
20
    --Creating fake input objects with fake variables
21
    local m = {Target=nil,Hit=CFrame.new(),KeyUp=fakeEvent(),KeyDown=fakeEvent(),Button1Up=fakeEvent(),Button1Down=fakeEvent(),Button2Up=fakeEvent(),Button2Down=fakeEvent()}
22
    local UIS = {InputBegan=fakeEvent(),InputEnded=fakeEvent()}
23
    local CAS = {Actions={},BindAction=function(self,name,fun,touch,...)
24
        CAS.Actions[name] = fun and {Name=name,Function=fun,Keys={...}} or nil
25
    end}
26
    --Merged 2 functions into one by checking amount of arguments
27
    CAS.UnbindAction = CAS.BindAction
28
 
29
    --This function will trigger the events that have been :Connect()'ed
30
    local function te(self,ev,...)
31
        local t = m[ev]
32
        if t and t._fakeEvent then
33
            for _,f in pairs(t.Functions) do
34
                f(...)
35
            end
36
        end
37
    end
38
    m.TrigEvent = te
39
    UIS.TrigEvent = te
40
 
41
    Event.OnServerEvent:Connect(function(plr,io)
42
        if plr~=rp then return end
43
        m.Target = io.Target
44
        m.Hit = io.Hit
45
        if not io.isMouse then
46
            local b = io.UserInputState == Enum.UserInputState.Begin
47
            if io.UserInputType == Enum.UserInputType.MouseButton1 then
48
                return m:TrigEvent(b and "Button1Down" or "Button1Up")
49
            end
50
            if io.UserInputType == Enum.UserInputType.MouseButton2 then
51
                return m:TrigEvent(b and "Button2Down" or "Button2Up")
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
    local Mouse = Player:GetMouse()
68
    local UIS = game:GetService("UserInputService")
69
    local input = function(io,a)
70
        if a then return end
71
        --Since InputObject is a client-side instance, we create and pass table instead
72
        Event:FireServer({KeyCode=io.KeyCode,UserInputType=io.UserInputType,UserInputState=io.UserInputState,Hit=Mouse.Hit,Target=Mouse.Target})
73
    end
74
    UIS.InputBegan:Connect(input)
75
    UIS.InputEnded:Connect(input)
76
    local h,t
77
    --Give the server mouse data 30 times every second, but only if the values changed
78
    --If player is not moving their mouse, client won't fire events
79
    while wait(1/30) do
80
        if h~=Mouse.Hit or t~=Mouse.Target then
81
            h,t=Mouse.Hit,Mouse.Target
82
            Event:FireServer({isMouse=true,Target=t,Hit=h})
83
        end
84
    end]==],Player.Character)
85
 
86
    ----Sandboxed game object that allows the usage of client-side methods and services
87
    --Real game object
88
    local _rg = game
89
 
90
    --Metatable for fake service
91
    local fsmt = {
92
        __index = function(self,k)
93
            local s = rawget(self,"_RealService")
94
            if s then
95
                return typeof(s[k])=="function"
96
                and function(_,...)return s[k](s,...)end or s[k]
97
            end
98
        end,
99
        __newindex = function(self,k,v)
100
            local s = rawget(self,"_RealService")
101
            if s then s[k]=v end
102
        end
103
    }
104
    local function FakeService(t,RealService)
105
        t._RealService = typeof(RealService)=="string" and _rg:GetService(RealService) or RealService
106
        return setmetatable(t,fsmt)
107
    end
108
 
109
    --Fake game object
110
    local g = {
111
        GetService = function(self,s)
112
            return rawget(self,s) or _rg:GetService(s)
113
        end,
114
        Players = FakeService({
115
            LocalPlayer = FakeService({GetMouse=function(self)return m end},Player)
116
        },"Players"),
117
        UserInputService = FakeService(UIS,"UserInputService"),
118
        ContextActionService = FakeService(CAS,"ContextActionService"),
119
        RunService = FakeService({
120
            _btrs = {},
121
            RenderStepped = _rg:GetService("RunService").Heartbeat,
122
            BindToRenderStep = function(self,name,_,fun)
123
                self._btrs[name] = self.Heartbeat:Connect(fun)
124
            end,
125
            UnbindFromRenderStep = function(self,name)
126
                self._btrs[name]:Disconnect()
127
            end,
128
        },"RunService")
129
    }
130
    rawset(g.Players,"localPlayer",g.Players.LocalPlayer)
131
    g.service = g.GetService
132
    FakeService(g,game)
133
    --Changing owner to fake player object to support owner:GetMouse()
134
    game,owner = g,g.Players.LocalPlayer
135
end
136
--//====================================================\\--
137
--||			   CREATED BY SHACKLUSTER
138
--\\====================================================//--
139
140
wait(0.2)
141
142
Player = game:GetService("Players").LocalPlayer
143
PlayerGui = Player.PlayerGui
144
Cam = workspace.CurrentCamera
145
Backpack = Player.Backpack
146
Character = Player.Character
147
Humanoid = Character.Humanoid
148
Mouse = Player:GetMouse()
149
RootPart = Character["HumanoidRootPart"]
150
Torso = Character["Torso"]
151
Head = Character["Head"]
152
RightArm = Character["Right Arm"]
153
LeftArm = Character["Left Arm"]
154
RightLeg = Character["Right Leg"]
155
LeftLeg = Character["Left Leg"]
156
RootJoint = RootPart["RootJoint"]
157
Neck = Torso["Neck"]
158
RightShoulder = Torso["Right Shoulder"]
159
LeftShoulder = Torso["Left Shoulder"]
160
RightHip = Torso["Right Hip"]
161
LeftHip = Torso["Left Hip"]
162
163
IT = Instance.new
164
CF = CFrame.new
165
VT = Vector3.new
166
RAD = math.rad
167
C3 = Color3.new
168
UD2 = UDim2.new
169
BRICKC = BrickColor.new
170
ANGLES = CFrame.Angles
171
EULER = CFrame.fromEulerAnglesXYZ
172
COS = math.cos
173
ACOS = math.acos
174
SIN = math.sin
175
ASIN = math.asin
176
ABS = math.abs
177
MRANDOM = math.random
178
FLOOR = math.floor
179
180
--//=================================\\
181
--|| 	      USEFUL VALUES
182
--\\=================================//
183
184
Animation_Speed = 3
185
Frame_Speed = 1 / 60 -- (1 / 30) OR (1 / 60)
186
local Speed = 12
187
local SIZE = 1
188
local ROOTC0 = CF(0, 0, 0) * ANGLES(RAD(-90), RAD(0), RAD(180))
189
local NECKC0 = CF(0, 1, 0) * ANGLES(RAD(-90), RAD(0), RAD(180))
190
local RIGHTSHOULDERC0 = CF(-0.5, 0, 0) * ANGLES(RAD(0), RAD(90), RAD(0))
191
local LEFTSHOULDERC0 = CF(0.5, 0, 0) * ANGLES(RAD(0), RAD(-90), RAD(0))
192
local DAMAGEMULTIPLIER = 1
193
local ANIM = "Idle"
194
local ATTACK = false
195
local EQUIPPED = false
196
local HOLD = false
197
local COMBO = 1
198
local Rooted = false
199
local SINE = 0
200
local KEYHOLD = false
201
local CHANGE = 2 / Animation_Speed
202
local WALKINGANIM = false
203
local VALUE1 = false
204
local VALUE2 = false
205
local ROBLOXIDLEANIMATION = IT("Animation")
206
ROBLOXIDLEANIMATION.Name = "Roblox Idle Animation"
207
ROBLOXIDLEANIMATION.AnimationId = "http://www.roblox.com/asset/?id=180435571"
208
--ROBLOXIDLEANIMATION.Parent = Humanoid
209
local WEAPONGUI = IT("ScreenGui", PlayerGui)
210
WEAPONGUI.Name = "Weapon GUI"
211
local Weapon = IT("Model")
212
Weapon.Name = "Adds"
213
local Effects = IT("Folder", Weapon)
214
Effects.Name = "Effects"
215
local ANIMATOR = Humanoid.Animator
216
local ANIMATE = Character.Animate
217
local UNANCHOR = true
218
local PLAYANIMS = true
219
local CLOAKED = false
220
221
--//=================================\\
222
--\\=================================//
223
224
225
--//=================================\\
226
--|| SAZERENOS' ARTIFICIAL HEARTBEAT
227
--\\=================================//
228
229
ArtificialHB = Instance.new("BindableEvent", script)
230
ArtificialHB.Name = "ArtificialHB"
231
232
script:WaitForChild("ArtificialHB")
233
234
frame = Frame_Speed
235
tf = 0
236
allowframeloss = false
237
tossremainder = false
238
lastframe = tick()
239
script.ArtificialHB:Fire()
240
241
game:GetService("RunService").Heartbeat:connect(function(s, p)
242
	tf = tf + s
243
	if tf >= frame then
244
		if allowframeloss then
245
			script.ArtificialHB:Fire()
246
			lastframe = tick()
247
		else
248
			for i = 1, math.floor(tf / frame) do
249
				script.ArtificialHB:Fire()
250
			end
251
		lastframe = tick()
252
		end
253
		if tossremainder then
254
			tf = 0
255
		else
256
			tf = tf - frame * math.floor(tf / frame)
257
		end
258
	end
259
end)
260
261
--//=================================\\
262
--\\=================================//
263
264
--//=================================\\
265
--|| 	      SOME FUNCTIONS
266
--\\=================================//
267
268
function Raycast(POSITION, DIRECTION, RANGE, IGNOREDECENDANTS)
269
	return workspace:FindPartOnRay(Ray.new(POSITION, DIRECTION.unit * RANGE), IGNOREDECENDANTS)
270
end
271
272
function PositiveAngle(NUMBER)
273
	if NUMBER >= 0 then
274
		NUMBER = 0
275
	end
276
	return NUMBER
277
end
278
279
function NegativeAngle(NUMBER)
280
	if NUMBER <= 0 then
281
		NUMBER = 0
282
	end
283
	return NUMBER
284
end
285
286
function Swait(NUMBER)
287
	if NUMBER == 0 or NUMBER == nil then
288
		ArtificialHB.Event:wait()
289
	else
290
		for i = 1, NUMBER do
291
			ArtificialHB.Event:wait()
292
		end
293
	end
294
end
295
296
function CreateMesh(MESH, PARENT, MESHTYPE, MESHID, TEXTUREID, SCALE, OFFSET)
297
	local NEWMESH = IT(MESH)
298
	if MESH == "SpecialMesh" then
299
		NEWMESH.MeshType = MESHTYPE
300
		if MESHID ~= "nil" and MESHID ~= "" then
301
			NEWMESH.MeshId = "http://www.roblox.com/asset/?id="..MESHID
302
		end
303
		if TEXTUREID ~= "nil" and TEXTUREID ~= "" then
304
			NEWMESH.TextureId = "http://www.roblox.com/asset/?id="..TEXTUREID
305
		end
306
	end
307
	NEWMESH.Offset = OFFSET or VT(0, 0, 0)
308
	NEWMESH.Scale = SCALE
309
	NEWMESH.Parent = PARENT
310
	return NEWMESH
311
end
312
313
function CreatePart(FORMFACTOR, PARENT, MATERIAL, REFLECTANCE, TRANSPARENCY, BRICKCOLOR, NAME, SIZE, ANCHOR)
314
	local NEWPART = IT("Part")
315
	NEWPART.formFactor = FORMFACTOR
316
	NEWPART.Reflectance = REFLECTANCE
317
	NEWPART.Transparency = TRANSPARENCY
318
	NEWPART.CanCollide = false
319
	NEWPART.Locked = true
320
	NEWPART.Anchored = true
321
	if ANCHOR == false then
322
		NEWPART.Anchored = false
323
	end
324
	NEWPART.BrickColor = BRICKC(tostring(BRICKCOLOR))
325
	NEWPART.Name = NAME
326
	NEWPART.Size = SIZE
327
	NEWPART.Position = Torso.Position
328
	NEWPART.Material = MATERIAL
329
	NEWPART:BreakJoints()
330
	NEWPART.Parent = PARENT
331
	return NEWPART
332
end
333
334
	local function weldBetween(a, b)
335
	    local weldd = Instance.new("ManualWeld")
336
	    weldd.Part0 = a
337
	    weldd.Part1 = b
338
	    weldd.C0 = CFrame.new()
339
	    weldd.C1 = b.CFrame:inverse() * a.CFrame
340
	    weldd.Parent = a
341
	    return weldd
342
	end
343
344
345
function QuaternionFromCFrame(cf)
346
	local mx, my, mz, m00, m01, m02, m10, m11, m12, m20, m21, m22 = cf:components()
347
	local trace = m00 + m11 + m22
348
	if trace > 0 then 
349
		local s = math.sqrt(1 + trace)
350
		local recip = 0.5 / s
351
		return (m21 - m12) * recip, (m02 - m20) * recip, (m10 - m01) * recip, s * 0.5
352
	else
353
		local i = 0
354
		if m11 > m00 then
355
			i = 1
356
		end
357
		if m22 > (i == 0 and m00 or m11) then
358
			i = 2
359
		end
360
		if i == 0 then
361
			local s = math.sqrt(m00 - m11 - m22 + 1)
362
			local recip = 0.5 / s
363
			return 0.5 * s, (m10 + m01) * recip, (m20 + m02) * recip, (m21 - m12) * recip
364
		elseif i == 1 then
365
			local s = math.sqrt(m11 - m22 - m00 + 1)
366
			local recip = 0.5 / s
367
			return (m01 + m10) * recip, 0.5 * s, (m21 + m12) * recip, (m02 - m20) * recip
368
		elseif i == 2 then
369
			local s = math.sqrt(m22 - m00 - m11 + 1)
370
			local recip = 0.5 / s return (m02 + m20) * recip, (m12 + m21) * recip, 0.5 * s, (m10 - m01) * recip
371
		end
372
	end
373
end
374
 
375
function QuaternionToCFrame(px, py, pz, x, y, z, w)
376
	local xs, ys, zs = x + x, y + y, z + z
377
	local wx, wy, wz = w * xs, w * ys, w * zs
378
	local xx = x * xs
379
	local xy = x * ys
380
	local xz = x * zs
381
	local yy = y * ys
382
	local yz = y * zs
383
	local zz = z * zs
384
	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))
385
end
386
 
387
function QuaternionSlerp(a, b, t)
388
	local cosTheta = a[1] * b[1] + a[2] * b[2] + a[3] * b[3] + a[4] * b[4]
389
	local startInterp, finishInterp;
390
	if cosTheta >= 0.0001 then
391
		if (1 - cosTheta) > 0.0001 then
392
			local theta = ACOS(cosTheta)
393
			local invSinTheta = 1 / SIN(theta)
394
			startInterp = SIN((1 - t) * theta) * invSinTheta
395
			finishInterp = SIN(t * theta) * invSinTheta
396
		else
397
			startInterp = 1 - t
398
			finishInterp = t
399
		end
400
	else
401
		if (1 + cosTheta) > 0.0001 then
402
			local theta = ACOS(-cosTheta)
403
			local invSinTheta = 1 / SIN(theta)
404
			startInterp = SIN((t - 1) * theta) * invSinTheta
405
			finishInterp = SIN(t * theta) * invSinTheta
406
		else
407
			startInterp = t - 1
408
			finishInterp = t
409
		end
410
	end
411
	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
412
end
413
414
function Clerp(a, b, t)
415
	local qa = {QuaternionFromCFrame(a)}
416
	local qb = {QuaternionFromCFrame(b)}
417
	local ax, ay, az = a.x, a.y, a.z
418
	local bx, by, bz = b.x, b.y, b.z
419
	local _t = 1 - t
420
	return QuaternionToCFrame(_t * ax + t * bx, _t * ay + t * by, _t * az + t * bz, QuaternionSlerp(qa, qb, t))
421
end
422
423
function CreateFrame(PARENT, TRANSPARENCY, BORDERSIZEPIXEL, POSITION, SIZE, COLOR, BORDERCOLOR, NAME)
424
	local frame = IT("Frame")
425
	frame.BackgroundTransparency = TRANSPARENCY
426
	frame.BorderSizePixel = BORDERSIZEPIXEL
427
	frame.Position = POSITION
428
	frame.Size = SIZE
429
	frame.BackgroundColor3 = COLOR
430
	frame.BorderColor3 = BORDERCOLOR
431
	frame.Name = NAME
432
	frame.Parent = PARENT
433
	return frame
434
end
435
436
function CreateLabel(PARENT, TEXT, TEXTCOLOR, TEXTFONTSIZE, TEXTFONT, TRANSPARENCY, BORDERSIZEPIXEL, STROKETRANSPARENCY, NAME)
437
	local label = IT("TextLabel")
438
	label.BackgroundTransparency = 1
439
	label.Size = UD2(1, 0, 1, 0)
440
	label.Position = UD2(0, 0, 0, 0)
441
	label.TextColor3 = TEXTCOLOR
442
	label.TextStrokeTransparency = STROKETRANSPARENCY
443
	label.TextTransparency = TRANSPARENCY
444
	label.FontSize = TEXTFONTSIZE
445
	label.Font = TEXTFONT
446
	label.BorderSizePixel = BORDERSIZEPIXEL
447
	label.TextScaled = false
448
	label.Text = TEXT
449
	label.Name = NAME
450
	label.Parent = PARENT
451
	return label
452
end
453
454
function NoOutlines(PART)
455
	PART.TopSurface, PART.BottomSurface, PART.LeftSurface, PART.RightSurface, PART.FrontSurface, PART.BackSurface = 10, 10, 10, 10, 10, 10
456
end
457
458
function CreateWeldOrSnapOrMotor(TYPE, PARENT, PART0, PART1, C0, C1)
459
	local NEWWELD = IT(TYPE)
460
	NEWWELD.Part0 = PART0
461
	NEWWELD.Part1 = PART1
462
	NEWWELD.C0 = C0
463
	NEWWELD.C1 = C1
464
	NEWWELD.Parent = PARENT
465
	return NEWWELD
466
end
467
468
local S = IT("Sound")
469
function CreateSound(ID, PARENT, VOLUME, PITCH, DOESLOOP)
470
	local NEWSOUND = nil
471
	coroutine.resume(coroutine.create(function()
472
		NEWSOUND = S:Clone()
473
		NEWSOUND.Parent = PARENT
474
		NEWSOUND.Volume = VOLUME
475
		NEWSOUND.Pitch = PITCH
476
		NEWSOUND.SoundId = "http://www.roblox.com/asset/?id="..ID
477
		NEWSOUND:play()
478
		if DOESLOOP == true then
479
			NEWSOUND.Looped = true
480
		else
481
			repeat wait(1) until NEWSOUND.Playing == false
482
			NEWSOUND:remove()
483
		end
484
	end))
485
	return NEWSOUND
486
end
487
488
function MakeForm(PART,TYPE)
489
	if TYPE == "Cyl" then
490
		local MSH = IT("CylinderMesh",PART)
491
	elseif TYPE == "Ball" then
492
		local MSH = IT("SpecialMesh",PART)
493
		MSH.MeshType = "Sphere"
494
	elseif TYPE == "Wedge" then
495
		local MSH = IT("SpecialMesh",PART)
496
		MSH.MeshType = "Wedge"
497
	end
498
end
499
500
function CFrameFromTopBack(at, top, back)
501
	local right = top:Cross(back)
502
	return CF(at.x, at.y, at.z, right.x, top.x, back.x, right.y, top.y, back.y, right.z, top.z, back.z)
503
end
504
505
function PuddleOfBlood(Position,MaxDrop,Model,MaxSize)
506
	local HITFLOOR, HITPOS, NORMAL = Raycast(Position, (CF(Position, Position + VT(0, -1, 0))).lookVector, MaxDrop, Model)
507
	if HITFLOOR ~= nil then
508
		if HITFLOOR.Parent ~= Weapon and HITFLOOR.Parent ~= Character then
509
			if HITFLOOR.Name == "BloodPuddle" then
510
				local DIST = (Position - HITFLOOR.Position).Magnitude
511
				if (HITFLOOR.Size.Z <= 5 and HITFLOOR.Size.Z < MaxSize) or (HITFLOOR.Size.Z > 5 and HITFLOOR.Size.Z < MaxSize and DIST < HITFLOOR.Size.Z/3) then
512
					HITFLOOR.Size = HITFLOOR.Size + VT(0.1,0,0.1)
513
				end
514
			else
515
				if HITFLOOR.Anchored == true then
516
					local BLOOD = CreatePart(3, Effects, "Glass", 0, 0, "Maroon", "BloodPuddle", VT(2,0,2))
517
					BLOOD.CFrame = CF(HITPOS,HITPOS+NORMAL)*ANGLES(RAD(90),RAD(0),RAD(0))
518
					MakeForm(BLOOD,"Cyl")
519
					coroutine.resume(coroutine.create(function()
520
						Swait(75)
521
						while true do
522
							Swait()
523
							BLOOD.Size = BLOOD.Size - VT(0.02,0,0.02)
524
							if BLOOD.Size.Z < 0.051 then
525
								BLOOD:remove()
526
								break
527
							end
528
						end
529
					end))
530
				end
531
			end
532
		end
533
	end
534
end
535
536
--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})
537
function WACKYEFFECT(Table)
538
	local TYPE = (Table.EffectType or "Sphere")
539
	local SIZE = (Table.Size or VT(1,1,1))
540
	local ENDSIZE = (Table.Size2 or VT(0,0,0))
541
	local TRANSPARENCY = (Table.Transparency or 0)
542
	local ENDTRANSPARENCY = (Table.Transparency2 or 1)
543
	local CFRAME = (Table.CFrame or Torso.CFrame)
544
	local MOVEDIRECTION = (Table.MoveToPos or nil)
545
	local ROTATION1 = (Table.RotationX or 0)
546
	local ROTATION2 = (Table.RotationY or 0)
547
	local ROTATION3 = (Table.RotationZ or 0)
548
	local MATERIAL = (Table.Material or "Neon")
549
	local COLOR = (Table.Color or C3(1,1,1))
550
	local TIME = (Table.Time or 45)
551
	local SOUNDID = (Table.SoundID or nil)
552
	local SOUNDPITCH = (Table.SoundPitch or nil)
553
	local SOUNDVOLUME = (Table.SoundVolume or nil)
554
	coroutine.resume(coroutine.create(function()
555
		local PLAYSSOUND = false
556
		local SOUND = nil
557
		local EFFECT = CreatePart(3, Effects, MATERIAL, 0, TRANSPARENCY, BRICKC("Pearl"), "Effect", VT(1,1,1), true)
558
		if SOUNDID ~= nil and SOUNDPITCH ~= nil and SOUNDVOLUME ~= nil then
559
			PLAYSSOUND = true
560
			SOUND = CreateSound(SOUNDID, EFFECT, SOUNDVOLUME, SOUNDPITCH, false)
561
		end
562
		EFFECT.Color = COLOR
563
		local MSH = nil
564
		if TYPE == "Sphere" then
565
			MSH = CreateMesh("SpecialMesh", EFFECT, "Sphere", "", "", SIZE, VT(0,0,0))
566
		elseif TYPE == "Block" or TYPE == "Box" then
567
			MSH = IT("BlockMesh",EFFECT)
568
			MSH.Scale = SIZE
569
		elseif TYPE == "Wave" then
570
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "20329976", "", SIZE, VT(0,0,-SIZE.X/8))
571
		elseif TYPE == "Ring" then
572
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "559831844", "", VT(SIZE.X,SIZE.X,0.1), VT(0,0,0))
573
		elseif TYPE == "Slash" then
574
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "662586858", "", VT(SIZE.X/10,0,SIZE.X/10), VT(0,0,0))
575
		elseif TYPE == "Round Slash" then
576
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "662585058", "", VT(SIZE.X/10,0,SIZE.X/10), VT(0,0,0))
577
		elseif TYPE == "Swirl" then
578
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "1051557", "", SIZE, VT(0,0,0))
579
		elseif TYPE == "Skull" then
580
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "4770583", "", SIZE, VT(0,0,0))
581
		elseif TYPE == "Crystal" then
582
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "9756362", "", SIZE, VT(0,0,0))
583
		end
584
		if MSH ~= nil then
585
			local MOVESPEED = nil
586
			if MOVEDIRECTION ~= nil then
587
				MOVESPEED = (CFRAME.p - MOVEDIRECTION).Magnitude/TIME
588
			end
589
			local GROWTH = SIZE - ENDSIZE
590
			local TRANS = TRANSPARENCY - ENDTRANSPARENCY
591
			if TYPE == "Block" then
592
				EFFECT.CFrame = CFRAME*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)))
593
			else
594
				EFFECT.CFrame = CFRAME
595
			end
596
			for LOOP = 1, TIME+1 do
597
				Swait()
598
				MSH.Scale = MSH.Scale - GROWTH/TIME
599
				if TYPE == "Wave" then
600
					MSH.Offset = VT(0,0,-MSH.Scale.X/8)
601
				end
602
				EFFECT.Transparency = EFFECT.Transparency - TRANS/TIME
603
				if TYPE == "Block" then
604
					EFFECT.CFrame = CFRAME*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)))
605
				else
606
					EFFECT.CFrame = EFFECT.CFrame*ANGLES(RAD(ROTATION1),RAD(ROTATION2),RAD(ROTATION3))
607
				end
608
				if MOVEDIRECTION ~= nil then
609
					local ORI = EFFECT.Orientation
610
					EFFECT.CFrame = CF(EFFECT.Position,MOVEDIRECTION)*CF(0,0,-MOVESPEED)
611
					EFFECT.Orientation = ORI
612
				end
613
			end
614
			if PLAYSSOUND == false then
615
				EFFECT:remove()
616
			else
617
				repeat wait(1) until SOUND.Playing == false
618
				EFFECT:remove()
619
			end
620
		else
621
			if PLAYSSOUND == false then
622
				EFFECT:remove()
623
			else
624
				repeat Swait() until SOUND.Playing == false
625
				EFFECT:remove()
626
			end
627
		end
628
	end))
629
end
630
631
function SprayBlood(POSITION,DIRECTION,BloodSize)
632
	local BLOOD = CreatePart(3, Effects, "Glass", 0, 0, "Maroon", "BloodPuddle", VT(0.3,0.3,0.3),false)
633
	BLOOD.CFrame = CF(POSITION)
634
	MakeForm(BLOOD,"Ball")
635
	local bv = Instance.new("BodyVelocity",BLOOD) 
636
	bv.maxForce = Vector3.new(1e9, 1e9, 1e9)
637
	bv.velocity = CF(POSITION,DIRECTION+VT(MRANDOM(-3,3)/30,MRANDOM(-3,3)/30,MRANDOM(-3,3)/30)).lookVector*75
638
	bv.Name = "MOVE"
639
	Debris:AddItem(bv,0.05)
640
	coroutine.resume(coroutine.create(function()
641
		local HASTOUCHEDGROUND = false
642
		local HIT = BLOOD.Touched:Connect(function(hit)
643
			if hit.Anchored == true then
644
				HASTOUCHEDGROUND = true
645
				PuddleOfBlood(BLOOD.Position+VT(0,1,0),2,BLOOD,BloodSize)
646
			end
647
		end)
648
		wait(5)
649
		if HASTOUCHEDGROUND == false then
650
			BLOOD:remove()
651
		end
652
	end))
653
end
654
655
Debris = game:GetService("Debris")
656
657
function CastProperRay(StartPos, EndPos, Distance, Ignore)
658
	local DIRECTION = CF(StartPos,EndPos).lookVector
659
	return Raycast(StartPos, DIRECTION, Distance, Ignore)
660
end
661
662
function turnto(position)
663
	RootPart.CFrame=CFrame.new(RootPart.CFrame.p,VT(position.X,RootPart.Position.Y,position.Z)) * CFrame.new(0, 0, 0)
664
end
665
666
function recurse(root,callback,i)
667
	i= i or 0
668
	for _,v in pairs(root:GetChildren()) do
669
		i = i + 1
670
		callback(i,v)
671
		
672
		if #v:GetChildren() > 0 then
673
			i = recurse(v,callback,i)
674
		end
675
	end
676
	
677
	return i
678
end
679
680
function ragdollJoint(character, part0, part1, attachmentName, className, properties)
681
	attachmentName = attachmentName.."RigAttachment"
682
	local constraint = Instance.new(className.."Constraint")
683
	constraint.Attachment0 = part0:FindFirstChild(attachmentName)
684
	constraint.Attachment1 = part1:FindFirstChild(attachmentName)
685
	constraint.Name = "RagdollConstraint"..part1.Name
686
	
687
	for _,propertyData in next,properties or {} do
688
		constraint[propertyData[1]] = propertyData[2]
689
	end
690
	
691
	constraint.Parent = character
692
end
693
694
function getAttachment0(character, attachmentName)
695
	for _,child in next,character:GetChildren() do
696
		local attachment = child:FindFirstChild(attachmentName)
697
		if attachment then
698
			return attachment
699
		end
700
	end
701
end
702
703
function R15Ragdoll(character)
704
	recurse(character, function(_,v)
705
		if v:IsA("Attachment") then
706
			v.Axis = Vector3.new(0, 1, 0)
707
			v.SecondaryAxis = Vector3.new(0, 0, 1)
708
			v.Rotation = Vector3.new(0, 0, 0)
709
		end
710
	end)
711
	for _,child in next,character:GetChildren() do
712
		if child:IsA("Accoutrement") then
713
			for _,part in next,child:GetChildren() do
714
				if part:IsA("BasePart") and part.Name ~= "HumanoidRootPart" then
715
					local attachment1 = part:FindFirstChildOfClass("Attachment")
716
					local attachment0 = getAttachment0(character,attachment1.Name)
717
					if attachment0 and attachment1 then
718
						local constraint = Instance.new("HingeConstraint")
719
						constraint.Attachment0 = attachment0
720
						constraint.Attachment1 = attachment1
721
						constraint.LimitsEnabled = true
722
						constraint.UpperAngle = 0
723
						constraint.LowerAngle = 0
724
						constraint.Parent = character
725
					end
726
				elseif part.Name == "HumanoidRootPart" then
727
					part:remove()
728
				end
729
			end
730
		end
731
	end
732
	
733
	ragdollJoint(character,character.LowerTorso, character.UpperTorso, "Waist", "BallSocket", {
734
		{"LimitsEnabled",true};
735
		{"UpperAngle",5};
736
	})
737
	ragdollJoint(character,character.UpperTorso, character.Head, "Neck", "BallSocket", {
738
		{"LimitsEnabled",true};
739
		{"UpperAngle",15};
740
	})
741
	
742
	local handProperties = {
743
		{"LimitsEnabled", true};
744
		{"UpperAngle",0};
745
		{"LowerAngle",0};
746
	}
747
	ragdollJoint(character,character.LeftLowerArm, character.LeftHand, "LeftWrist", "Hinge", handProperties)
748
	ragdollJoint(character,character.RightLowerArm, character.RightHand, "RightWrist", "Hinge", handProperties)
749
	
750
	local shinProperties = {
751
		{"LimitsEnabled", true};
752
		{"UpperAngle", 0};
753
		{"LowerAngle", -75};
754
	}
755
	ragdollJoint(character,character.LeftUpperLeg, character.LeftLowerLeg, "LeftKnee", "Hinge", shinProperties)
756
	ragdollJoint(character,character.RightUpperLeg, character.RightLowerLeg, "RightKnee", "Hinge", shinProperties)
757
	
758
	local footProperties = {
759
		{"LimitsEnabled", true};
760
		{"UpperAngle", 15};
761
		{"LowerAngle", -45};
762
	}
763
	ragdollJoint(character,character.LeftLowerLeg, character.LeftFoot, "LeftAnkle", "Hinge", footProperties)
764
	ragdollJoint(character,character.RightLowerLeg, character.RightFoot, "RightAnkle", "Hinge", footProperties)
765
	
766
	ragdollJoint(character,character.UpperTorso, character.LeftUpperArm, "LeftShoulder", "BallSocket")
767
	ragdollJoint(character,character.LeftUpperArm, character.LeftLowerArm, "LeftElbow", "BallSocket")
768
	ragdollJoint(character,character.UpperTorso, character.RightUpperArm, "RightShoulder", "BallSocket")
769
	ragdollJoint(character,character.RightUpperArm, character.RightLowerArm, "RightElbow", "BallSocket")
770
	ragdollJoint(character,character.LowerTorso, character.LeftUpperLeg, "LeftHip", "BallSocket")
771
	ragdollJoint(character,character.LowerTorso, character.RightUpperLeg, "RightHip", "BallSocket")
772
end
773
774
function Ragdoll(Character2,CharTorso)
775
	Character2:BreakJoints()
776
	local hum = Character2:findFirstChild("Humanoid")
777
	hum:remove()
778
	local function Scan(ch)
779
		local e
780
		for e = 1,#ch do
781
			Scan(ch[e]:GetChildren())
782
			if ch[e].ClassName == "Weld" or ch[e].ClassName == "Motor6D" then
783
				ch[e]:remove()
784
			end
785
		end
786
	end
787
	local NEWHUM = IT("Humanoid")
788
	NEWHUM.Name = "Corpse"
789
	NEWHUM.Health = 0
790
	NEWHUM.MaxHealth = 0
791
	NEWHUM.PlatformStand = true
792
	NEWHUM.Parent = Character2
793
	NEWHUM.DisplayDistanceType = "None"
794
795
	local ch = Character2:GetChildren()
796
	local i
797
	for i = 1,#ch do
798
		if ch[i].Name == "THandle1" or ch[i].Name == "THandle2" then
799
			ch[i]:remove()
800
		end
801
	end
802
803
	local Torso2 = Character2.Torso
804
	local movevector = Vector3.new()
805
806
	if Torso2 then
807
		movevector = CFrame.new(CharTorso.Position,Torso2.Position).lookVector
808
		local Head = Character2:FindFirstChild("Head")
809
		if Head then
810
			local Neck = Instance.new("Weld")
811
			Neck.Name = "Neck"
812
			Neck.Part0 = Torso2
813
			Neck.Part1 = Head
814
			Neck.C0 = CFrame.new(0, 1.5, 0)
815
			Neck.C1 = CFrame.new()
816
			Neck.Parent = Torso2
817
818
		end
819
		local Limb = Character2:FindFirstChild("Right Arm")
820
		if Limb then
821
822
			Limb.CFrame = Torso2.CFrame * CFrame.new(1.5, 0, 0)
823
			local Joint = Instance.new("Glue")
824
			Joint.Name = "RightShoulder"
825
			Joint.Part0 = Torso2
826
			Joint.Part1 = Limb
827
			Joint.C0 = CFrame.new(1.5, 0.5, 0, 0, 0, 1, 0, 1, 0, -1, -0, -0)
828
			Joint.C1 = CFrame.new(-0, 0.5, 0, 0, 0, 1, 0, 1, 0, -1, -0, -0)
829
			Joint.Parent = Torso2
830
831
			local B = Instance.new("Part")
832
			B.TopSurface = 0
833
			B.BottomSurface = 0
834
			B.formFactor = "Symmetric"
835
			B.Size = Vector3.new(1, 1, 1)
836
			B.Transparency = 1
837
			B.CFrame = Limb.CFrame * CFrame.new(0, -0.5, 0)
838
			B.Parent = Character2
839
			local W = Instance.new("Weld")
840
			W.Part0 = Limb
841
			W.Part1 = B
842
			W.C0 = CFrame.new(0, -0.5, 0)
843
			W.Parent = Limb
844
845
		end
846
		local Limb = Character2:FindFirstChild("Left Arm")
847
		if Limb then
848
849
			Limb.CFrame = Torso2.CFrame * CFrame.new(-1.5, 0, 0)
850
			local Joint = Instance.new("Glue")
851
			Joint.Name = "LeftShoulder"
852
			Joint.Part0 = Torso2
853
			Joint.Part1 = Limb
854
			Joint.C0 = CFrame.new(-1.5, 0.5, 0, -0, -0, -1, 0, 1, 0, 1, 0, 0)
855
			Joint.C1 = CFrame.new(0, 0.5, 0, -0, -0, -1, 0, 1, 0, 1, 0, 0)
856
			Joint.Parent = Torso2
857
858
			local B = Instance.new("Part")
859
			B.TopSurface = 0
860
			B.BottomSurface = 0
861
			B.formFactor = "Symmetric"
862
			B.Size = Vector3.new(1, 1, 1)
863
			B.Transparency = 1
864
			B.CFrame = Limb.CFrame * CFrame.new(0, -0.5, 0)
865
			B.Parent = Character2
866
			local W = Instance.new("Weld")
867
			W.Part0 = Limb
868
			W.Part1 = B
869
			W.C0 = CFrame.new(0, -0.5, 0)
870
			W.Parent = Limb
871
872
		end
873
		local Limb = Character2:FindFirstChild("Right Leg")
874
		if Limb then
875
876
			Limb.CFrame = Torso2.CFrame * CFrame.new(0.5, -2, 0)
877
			local Joint = Instance.new("Glue")
878
			Joint.Name = "RightHip"
879
			Joint.Part0 = Torso2
880
			Joint.Part1 = Limb
881
			Joint.C0 = CFrame.new(0.5, -1, 0, 0, 0, 1, 0, 1, 0, -1, -0, -0)
882
			Joint.C1 = CFrame.new(0, 1, 0, 0, 0, 1, 0, 1, 0, -1, -0, -0)
883
			Joint.Parent = Torso2
884
885
			local B = Instance.new("Part")
886
			B.TopSurface = 0
887
			B.BottomSurface = 0
888
			B.formFactor = "Symmetric"
889
			B.Size = Vector3.new(1, 1, 1)
890
			B.Transparency = 1
891
			B.CFrame = Limb.CFrame * CFrame.new(0, -0.5, 0)
892
			B.Parent = Character2
893
			local W = Instance.new("Weld")
894
			W.Part0 = Limb
895
			W.Part1 = B
896
			W.C0 = CFrame.new(0, -0.5, 0)
897
			W.Parent = Limb
898
899
		end
900
		local Limb = Character2:FindFirstChild("Left Leg")
901
		if Limb then
902
903
			Limb.CFrame = Torso2.CFrame * CFrame.new(-0.5, -2, 0)
904
			local Joint = Instance.new("Glue")
905
			Joint.Name = "LeftHip"
906
			Joint.Part0 = Torso2
907
			Joint.Part1 = Limb
908
			Joint.C0 = CFrame.new(-0.5, -1, 0, -0, -0, -1, 0, 1, 0, 1, 0, 0)
909
			Joint.C1 = CFrame.new(-0, 1, 0, -0, -0, -1, 0, 1, 0, 1, 0, 0)
910
			Joint.Parent = Torso2
911
912
			local B = Instance.new("Part")
913
			B.TopSurface = 0
914
			B.BottomSurface = 0
915
			B.formFactor = "Symmetric"
916
			B.Size = Vector3.new(1, 1, 1)
917
			B.Transparency = 1
918
			B.CFrame = Limb.CFrame * CFrame.new(0, -0.5, 0)
919
			B.Parent = Character2
920
			local W = Instance.new("Weld")
921
			W.Part0 = Limb
922
			W.Part1 = B
923
			W.C0 = CFrame.new(0, -0.5, 0)
924
			W.Parent = Limb
925
926
		end
927
		--[
928
		local Bar = Instance.new("Part")
929
		Bar.TopSurface = 0
930
		Bar.BottomSurface = 0
931
		Bar.formFactor = "Symmetric"
932
		Bar.Size = Vector3.new(1, 1, 1)
933
		Bar.Transparency = 1
934
		Bar.CFrame = Torso2.CFrame * CFrame.new(0, 0.5, 0)
935
		Bar.Parent = Character2
936
		local Weld = Instance.new("Weld")
937
		Weld.Part0 = Torso2
938
		Weld.Part1 = Bar
939
		Weld.C0 = CFrame.new(0, 0.5, 0)
940
		Weld.Parent = Torso2
941
		--]]
942
	end
943
	Character2.Parent = workspace
944
	Debris:AddItem(Character2,5)
945
946
	return Character2,Torso2
947
end
948
949
--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})
950
function WACKYEFFECT(Table)
951
	local TYPE = (Table.EffectType or "Sphere")
952
	local SIZE = (Table.Size or VT(1,1,1))
953
	local ENDSIZE = (Table.Size2 or VT(0,0,0))
954
	local TRANSPARENCY = (Table.Transparency or 0)
955
	local ENDTRANSPARENCY = (Table.Transparency2 or 1)
956
	local CFRAME = (Table.CFrame or Torso.CFrame)
957
	local MOVEDIRECTION = (Table.MoveToPos or nil)
958
	local ROTATION1 = (Table.RotationX or 0)
959
	local ROTATION2 = (Table.RotationY or 0)
960
	local ROTATION3 = (Table.RotationZ or 0)
961
	local MATERIAL = (Table.Material or "Neon")
962
	local COLOR = (Table.Color or C3(1,1,1))
963
	local TIME = (Table.Time or 45)
964
	local SOUNDID = (Table.SoundID or nil)
965
	local SOUNDPITCH = (Table.SoundPitch or nil)
966
	local SOUNDVOLUME = (Table.SoundVolume or nil)
967
	coroutine.resume(coroutine.create(function()
968
		local PLAYSSOUND = false
969
		local SOUND = nil
970
		local EFFECT = CreatePart(3, Effects, MATERIAL, 0, TRANSPARENCY, BRICKC("Pearl"), "Effect", VT(1,1,1), true)
971
		if SOUNDID ~= nil and SOUNDPITCH ~= nil and SOUNDVOLUME ~= nil then
972
			PLAYSSOUND = true
973
			SOUND = CreateSound(SOUNDID, EFFECT, SOUNDVOLUME, SOUNDPITCH, false)
974
		end
975
		EFFECT.Color = COLOR
976
		local MSH = nil
977
		if TYPE == "Sphere" then
978
			MSH = CreateMesh("SpecialMesh", EFFECT, "Sphere", "", "", SIZE, VT(0,0,0))
979
		elseif TYPE == "Block" or TYPE == "Box" then
980
			MSH = IT("BlockMesh",EFFECT)
981
			MSH.Scale = SIZE
982
		elseif TYPE == "Wave" then
983
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "20329976", "", SIZE, VT(0,0,-SIZE.X/8))
984
		elseif TYPE == "Ring" then
985
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "559831844", "", VT(SIZE.X,SIZE.X,0.1), VT(0,0,0))
986
		elseif TYPE == "Slash" then
987
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "662586858", "", VT(SIZE.X/10,0,SIZE.X/10), VT(0,0,0))
988
		elseif TYPE == "Round Slash" then
989
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "662585058", "", VT(SIZE.X/10,0,SIZE.X/10), VT(0,0,0))
990
		elseif TYPE == "Swirl" then
991
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "1051557", "", SIZE, VT(0,0,0))
992
		elseif TYPE == "Skull" then
993
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "4770583", "", SIZE, VT(0,0,0))
994
		elseif TYPE == "Crystal" then
995
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "9756362", "", SIZE, VT(0,0,0))
996
		end
997
		if MSH ~= nil then
998
			local MOVESPEED = nil
999
			if MOVEDIRECTION ~= nil then
1000
				MOVESPEED = (CFRAME.p - MOVEDIRECTION).Magnitude/TIME
1001
			end
1002
			local GROWTH = SIZE - ENDSIZE
1003
			local TRANS = TRANSPARENCY - ENDTRANSPARENCY
1004
			if TYPE == "Block" then
1005
				EFFECT.CFrame = CFRAME*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)))
1006
			else
1007
				EFFECT.CFrame = CFRAME
1008
			end
1009
			for LOOP = 1, TIME+1 do
1010
				Swait()
1011
				MSH.Scale = MSH.Scale - GROWTH/TIME
1012
				if TYPE == "Wave" then
1013
					MSH.Offset = VT(0,0,-MSH.Scale.X/8)
1014
				end
1015
				EFFECT.Transparency = EFFECT.Transparency - TRANS/TIME
1016
				if TYPE == "Block" then
1017
					EFFECT.CFrame = CFRAME*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)))
1018
				else
1019
					EFFECT.CFrame = EFFECT.CFrame*ANGLES(RAD(ROTATION1),RAD(ROTATION2),RAD(ROTATION3))
1020
				end
1021
				if MOVEDIRECTION ~= nil then
1022
					local ORI = EFFECT.Orientation
1023
					EFFECT.CFrame = CF(EFFECT.Position,MOVEDIRECTION)*CF(0,0,-MOVESPEED)
1024
					EFFECT.Orientation = ORI
1025
				end
1026
			end
1027
			if PLAYSSOUND == false then
1028
				EFFECT:remove()
1029
			else
1030
				repeat Swait() until SOUND.Playing == false
1031
				EFFECT:remove()
1032
			end
1033
		else
1034
			if PLAYSSOUND == false then
1035
				EFFECT:remove()
1036
			else
1037
				repeat Swait() until SOUND.Playing == false
1038
				EFFECT:remove()
1039
			end
1040
		end
1041
	end))
1042
end
1043
1044
--//=================================\\
1045
--||	     WEAPON CREATION
1046
--\\=================================//
1047
1048
local BMUSIC = IT("Sound",RootPart)
1049
local VOLUME = 0.8
1050
local PITCH = 0.8
1051
local SONGID = 521970657
1052
local A = IT("Attachment",Torso)
1053
1054
local GUN = CreatePart(3, Weapon, "Neon", 0, 0, "Really black", "Gun", VT(1, 0.8, 3),false)
1055
CreateMesh("SpecialMesh", GUN, "FileMesh", "623102664", "623102879", VT(0.01, 0.01, 0.01), VT(0,0,0))
1056
local GUNWELD = CreateWeldOrSnapOrMotor("Weld", GUN, Torso, GUN, CF(-1.1,-1.1,0) * ANGLES(RAD(0), RAD(90), RAD(-90)), CF(0, 0, 0))
1057
1058
local Knife = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Part", VT(0.2,1.2,0.2),false)
1059
local Grip = CreateWeldOrSnapOrMotor("Weld", RightArm, RightArm, Knife, CF(0,-1.2, -0.5) * ANGLES(RAD(0), RAD(0), RAD(180)) * ANGLES(RAD(45), RAD(0), RAD(0)), CF(0, 0.3, 0))
1060
CreateMesh("SpecialMesh", Knife, "FileMesh", "470094777", "470149026", VT(0.2,0.2,0.2), VT(0,0,0))
1061
local A = IT("Attachment",Knife)
1062
A.Position = VT(-0, 0.2, 0.136)
1063
local B = IT("Attachment",Knife)
1064
B.Position = VT(-0, -0.95, -0.982)
1065
local Trail = IT("Trail",Knife)
1066
Trail.Attachment0 = B
1067
Trail.Attachment1 = A
1068
Trail.Lifetime = 0.1
1069
Trail.Transparency = NumberSequence.new(0.5, 1)
1070
Trail.Texture = "http://www.roblox.com/asset/?id=1472703539"
1071
Trail.Enabled = true
1072
Humanoid.DisplayDistanceType = "None"
1073
Humanoid.MaxHealth = 800
1074
Humanoid.Health = 800
1075
1076
local STEP = CreateSound(131436155, Torso, 3, 1, true)
1077
STEP.Playing = false
1078
STEP.Looped = false
1079
local STEPPING = false
1080
Humanoid.Running:Connect(function(speed)
1081
	if STEPPING == false then
1082
		STEPPING = true
1083
		repeat
1084
			local TORSOVELOCITY = (RootPart.Velocity * VT(1, 0, 1)).magnitude
1085
			wait(8/TORSOVELOCITY)
1086
			local HITFLOOR = Raycast(RootPart.Position, (CF(RootPart.Position, RootPart.Position + VT(0, -1, 0))).lookVector, 4, Character)
1087
			if TORSOVELOCITY > 1 and Torso.Transparency ~= 1 and HITFLOOR ~= nil then
1088
				STEP.Parent = Torso
1089
				STEP.Pitch = MRANDOM(8,12)/10
1090
				STEP:Play()
1091
			end
1092
		until TORSOVELOCITY < 0.6
1093
		STEPPING = false
1094
	end
1095
end)
1096
1097
for _, c in pairs(Weapon:GetChildren()) do
1098
	if c.ClassName == "Part" then
1099
		c.CustomPhysicalProperties = PhysicalProperties.new(0, 0, 0, 0, 0)
1100
	end
1101
end
1102
1103
local SKILLTEXTCOLOR = C3(0,0,0)
1104
local SKILLFONT = "SciFi"
1105
local SKILLTEXTSIZE = 7
1106
1107
Weapon.Parent = Character
1108
1109
Humanoid.Died:connect(function()
1110
	ATTACK = true
1111
end)
1112
1113
--//=================================\\
1114
--||	     DAMAGE FUNCTIONS
1115
--\\=================================//
1116
1117
function StatLabel(CFRAME, TEXT, COLOR)
1118
	local STATPART = CreatePart(3, Effects, "SmoothPlastic", 0, 1, "Really black", "Effect", VT())
1119
	STATPART.CFrame = CF(CFRAME.p,CFRAME.p+VT(MRANDOM(-5,5),MRANDOM(0,5),MRANDOM(-5,5)))
1120
	local BODYGYRO = IT("BodyGyro", STATPART)
1121
	game:GetService("Debris"):AddItem(STATPART ,5)
1122
	local BILLBOARDGUI = Instance.new("BillboardGui", STATPART)
1123
	BILLBOARDGUI.Adornee = STATPART
1124
	BILLBOARDGUI.Size = UD2(2.5, 0, 2.5 ,0)
1125
	BILLBOARDGUI.StudsOffset = VT(-2, 2, 0)
1126
	BILLBOARDGUI.AlwaysOnTop = false
1127
	local TEXTLABEL = Instance.new("TextLabel", BILLBOARDGUI)
1128
	TEXTLABEL.BackgroundTransparency = 1
1129
	TEXTLABEL.Size = UD2(2.5, 0, 2.5, 0)
1130
	TEXTLABEL.Text = TEXT
1131
	TEXTLABEL.Font = SKILLFONT
1132
	TEXTLABEL.FontSize="Size42"
1133
	TEXTLABEL.TextColor3 = COLOR
1134
	TEXTLABEL.TextStrokeTransparency = 0
1135
	TEXTLABEL.TextScaled = true
1136
	TEXTLABEL.TextWrapped = true
1137
	coroutine.resume(coroutine.create(function(THEPART, THEBODYPOSITION, THETEXTLABEL)
1138
		for i = 1, 50 do
1139
			Swait()
1140
			STATPART.CFrame = STATPART.CFrame * CF(0,0,-0.2)
1141
			TEXTLABEL.TextTransparency = TEXTLABEL.TextTransparency + (1/50)
1142
			TEXTLABEL.TextStrokeTransparency = TEXTLABEL.TextTransparency
1143
		end
1144
		THEPART.Parent = nil
1145
	end),STATPART, TEXTLABEL)
1146
end
1147
1148
--//=================================\\
1149
--||			DAMAGING
1150
--\\=================================//
1151
1152
function CameraEnshaking(Length, Intensity)
1153
	coroutine.resume(coroutine.create(function()
1154
		local intensity = 1 * Intensity
1155
		local rotM = 0.01 * Intensity
1156
		for i = 0, Length, 0.1 do
1157
			Swait()
1158
			intensity = intensity - 0.05 * Intensity / Length
1159
			rotM = rotM - 5.0E-4 * Intensity / Length
1160
			hum.CameraOffset = Vector3.new(Rad(Mrandom(-intensity, intensity)), Rad(Mrandom(-intensity, intensity)), Rad(Mrandom(-intensity, intensity)))
1161
			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)
1162
		end
1163
		hum.CameraOffset = Vector3.new(0, 0, 0)
1164
	end))
1165
end
1166
1167
function ApplyDamage(Humanoid,Damage,TorsoPart)
1168
	local defence = Instance.new("BoolValue",Humanoid.Parent)
1169
	defence.Name = ("HitBy"..Player.Name)
1170
	game:GetService("Debris"):AddItem(defence, 0.001)
1171
	Damage = Damage * DAMAGEMULTIPLIER
1172
	if Humanoid.Health ~= 0 then
1173
		local CritChance = MRANDOM(1,100)
1174
		if Damage > Humanoid.Health then
1175
			Damage = math.ceil(Humanoid.Health)
1176
			if Damage == 0 then
1177
				Damage = 0.1
1178
			end
1179
		end
1180
		Humanoid.Health = Humanoid.Health - Damage
1181
		StatLabel(TorsoPart.CFrame * CF(0, 0 + (TorsoPart.Size.z - 1), 0), Damage, C3(0, 0, 0))
1182
	end
1183
end
1184
1185
function ApplyAoE(POSITION,RANGE,MINDMG,MAXDMG,FLING,INSTAKILL)
1186
	local CHILDREN = workspace:GetDescendants()
1187
	for index, CHILD in pairs(CHILDREN) do
1188
		if CHILD.ClassName == "Model" and CHILD ~= Character then
1189
			local HUM = CHILD:FindFirstChildOfClass("Humanoid")
1190
			if HUM then
1191
				local TORSO = CHILD:FindFirstChild("Torso") or CHILD:FindFirstChild("UpperTorso")
1192
				if TORSO then
1193
					if (TORSO.Position - POSITION).Magnitude <= RANGE then
1194
						if INSTAKILL == true then
1195
							CHILD:BreakJoints()
1196
						else
1197
							local DMG = MRANDOM(MINDMG,MAXDMG)
1198
							ApplyDamage(HUM,DMG,TORSO)
1199
						end
1200
						if FLING > 0 then
1201
							for _, c in pairs(CHILD:GetChildren()) do
1202
								if c:IsA("BasePart") then
1203
									local bv = Instance.new("BodyVelocity") 
1204
									bv.maxForce = Vector3.new(1e9, 1e9, 1e9)
1205
									bv.velocity = CF(POSITION,TORSO.Position).lookVector*FLING
1206
									bv.Parent = c
1207
									Debris:AddItem(bv,0.05)
1208
								end
1209
							end
1210
						end
1211
					end
1212
				end
1213
			end
1214
		end
1215
	end
1216
end
1217
1218
function ApplyDamages(Humanoid,Damage)
1219
	Damage = Damage * DAMAGEMULTIPLIER
1220
	local DEAD = false
1221
	if Humanoid.Health < 2000 then
1222
		if Humanoid.Health - Damage > 0 then
1223
			Humanoid.Health = Humanoid.Health - Damage
1224
		else
1225
			DEAD = true
1226
			Humanoid.Parent:BreakJoints()
1227
		end
1228
	else
1229
		DEAD = true
1230
		Humanoid.Parent:BreakJoints()
1231
	end
1232
end
1233
1234
--//=================================\\
1235
--||	ATTACK FUNCTIONS AND STUFF
1236
--\\=================================//
1237
1238
function Cloaked()
1239
	CLOAKED = true
1240
	Speed = 0
1241
	local POS = RootPart.Position
1242
	local DISTANCE = 99999
1243
	for i = 1, 15 do
1244
		wait()
1245
		for _, c in pairs(Character:GetChildren()) do
1246
			if c:IsA("BasePart") and c ~= RootPart then
1247
				c.Transparency = c.Transparency + 1/15
1248
			elseif c.ClassName == "Accessory" then
1249
				c.Handle.Transparency = c.Handle.Transparency + 1/15
1250
			end
1251
		end
1252
		Trail.Transparency = NumberSequence.new(0.5+((i/15)/2), 1)
1253
		Knife.Transparency = Knife.Transparency + 1/15
1254
	end
1255
	Speed = 5
1256
	repeat
1257
		wait()
1258
		DISTANCE = (RootPart.Position - POS).Magnitude
1259
	until DISTANCE > 45 or CLOAKED == false
1260
	Speed = 0
1261
	for i = 1, 15 do
1262
		wait()
1263
		for _, c in pairs(Character:GetChildren()) do
1264
			if c:IsA("BasePart") and c ~= RootPart then
1265
				c.Transparency = 1 - i/15
1266
			elseif c.ClassName == "Accessory" then
1267
				c.Handle.Transparency = 1 - i/15
1268
			end
1269
		end
1270
		Trail.Transparency = NumberSequence.new(1-((0.5/15)*i), 1)
1271
		Knife.Transparency = 1 - i/15
1272
	end
1273
	Speed = 12
1274
	CLOAKED = false
1275
end
1276
1277
function Attack()
1278
	PLAYANIMS = false
1279
	ATTACK = true
1280
	Rooted = false
1281
	local TARGET = nil
1282
	Knife.CanCollide = true
1283
	local HUMAN = nil
1284
	local TORSOPART = nil
1285
	local HIT = Knife.Touched:Connect(function(hit)
1286
		if hit.Parent:FindFirstChildOfClass("Humanoid") then
1287
			local HITBODY = hit.Parent
1288
			local HUM = hit.Parent:FindFirstChildOfClass("Humanoid")
1289
			local TORSO = HITBODY:FindFirstChild("Torso") or HITBODY:FindFirstChild("UpperTorso")
1290
			if TORSO and HUM.Health > 0 then
1291
				TARGET = HITBODY
1292
				TORSOPART = TORSO
1293
				HUMAN = HUM
1294
			end
1295
		end
1296
	end)
1297
	for i=0, 0.4, 0.1 / Animation_Speed do
1298
		Swait()
1299
		if TARGET then
1300
			break
1301
		end
1302
		RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(-15)), 1 / Animation_Speed)
1303
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(15)), 1 / Animation_Speed)
1304
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(90)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
1305
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(90), RAD(0), RAD(-15)) * LEFTSHOULDERC0, 1 / Animation_Speed)
1306
		RightHip.C0 = Clerp(RightHip.C0, CF(1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(75), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
1307
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
1308
	end
1309
	CreateSound(143501853,Knife,2,MRANDOM(8,13)/10,false)
1310
	for i=0, 0.5, 0.1 / Animation_Speed do
1311
		Swait()
1312
		if TARGET then
1313
			break
1314
		end
1315
		RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(35)), 1 / Animation_Speed)
1316
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(-35)), 1 / Animation_Speed)
1317
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.15, 0.5, -0.4) * ANGLES(RAD(90), RAD(0), RAD(35)) * ANGLES(RAD(0), RAD(90), RAD(0)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
1318
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.25, 0.5, -0.3) * ANGLES(RAD(90), RAD(0), RAD(35)) * LEFTSHOULDERC0, 1 / Animation_Speed)
1319
		RightHip.C0 = Clerp(RightHip.C0, CF(1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(75), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
1320
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
1321
	end
1322
	Knife.CanCollide = false
1323
	if TARGET then
1324
		CLOAKED = false
1325
		local DISPOSE = false
1326
		Rooted = true
1327
		coroutine.resume(coroutine.create(function()
1328
			repeat
1329
				Swait()
1330
				if TORSOPART then
1331
					TORSOPART.Anchored = true
1332
					TORSOPART.CFrame = RootPart.CFrame*CF(0,0,-2.2)
1333
				end
1334
			until DISPOSE == true
1335
			TORSOPART.Anchored = false
1336
		end))
1337
		for i=0, 0.5, 0.1 / Animation_Speed do
1338
			Swait()
1339
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(-15)), 1 / Animation_Speed)
1340
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(15)), 1 / Animation_Speed)
1341
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.15, 0.75, -1.3) * ANGLES(RAD(90), RAD(90), RAD(0)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
1342
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(90), RAD(0), RAD(-15)) * LEFTSHOULDERC0, 1 / Animation_Speed)
1343
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(75), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
1344
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
1345
		end
1346
		CreateSound(28144268,Knife,2,MRANDOM(8,13)/10,false)
1347
		CreateSound(180083298,TORSOPART,5,MRANDOM(8,13)/10,false)
1348
		coroutine.resume(coroutine.create(function()
1349
			for i = 1, 750 do
1350
				Swait()
1351
				if HUMAN and TORSOPART then
1352
					if HUMAN.Health > 0 then
1353
						SprayBlood(TORSOPART.CFrame*CF(0,TORSOPART.Size.Y/2,-TORSOPART.Size.Z/2).p,TORSOPART.CFrame*CF(MRANDOM(-3,3)/15,TORSOPART.Size.Y+MRANDOM(-3,3)/35,-TORSOPART.Size.Z*MRANDOM(8,25)/10).p,MRANDOM(15,35)/10)
1354
						HUMAN.Health = HUMAN.Health - 1
1355
						HUMAN.WalkSpeed = MRANDOM(5,45)
1356
					else
1357
						break
1358
					end
1359
				else
1360
					break
1361
				end
1362
			end
1363
			local SCREAMS = {160718677,337800380}
1364
			if HUMAN and TORSOPART then
1365
				if HUMAN.Health == 0 then
1366
					local HEAD = TORSOPART.Parent:FindFirstChild("Head")
1367
					if HEAD then
1368
						CreateSound(SCREAMS[MRANDOM(1,#SCREAMS)],HEAD,5,MRANDOM(13,15)/10,false)
1369
						local FACE = HEAD:FindFirstChild("face")
1370
						if FACE then
1371
							FACE.Texture = "http://www.roblox.com/asset/?id=145854465"
1372
						end
1373
					end
1374
					if TORSOPART.Name == "Torso" then
1375
						Ragdoll(TORSOPART.Parent,Torso)
1376
					elseif TORSOPART.Name == "UpperTorso" then
1377
						R15Ragdoll(TORSOPART.Parent)
1378
					end
1379
				end
1380
				HUMAN.WalkSpeed = 16
1381
			end
1382
		end))
1383
		for i=0, 0.2, 0.1 / Animation_Speed do
1384
			Swait()
1385
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(-15)), 1 / Animation_Speed)
1386
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(15)), 1 / Animation_Speed)
1387
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(2, 0.75, -1.3) * ANGLES(RAD(90), RAD(90), RAD(0)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
1388
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(90), RAD(0), RAD(-15)) * LEFTSHOULDERC0, 1 / Animation_Speed)
1389
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(75), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
1390
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
1391
		end
1392
		DISPOSE = true
1393
		local bv = Instance.new("BodyVelocity") 
1394
		bv.maxForce = Vector3.new(1e9, 1e9, 1e9)
1395
		bv.velocity = CF(TORSOPART.Position,TORSOPART.CFrame*CF(0,5,-15).p).lookVector*75
1396
		bv.Parent = TORSOPART
1397
		Debris:AddItem(bv,0.05)
1398
		for i=0, 0.5, 0.1 / Animation_Speed do
1399
			Swait()
1400
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(-35)), 1 / Animation_Speed)
1401
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(35)), 1 / Animation_Speed)
1402
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(0), RAD(-25), RAD(0)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
1403
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.15, 0.5, -0.5) * ANGLES(RAD(90), RAD(0), RAD(-35)) * LEFTSHOULDERC0, 1 / Animation_Speed)
1404
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(110), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
1405
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(-65), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
1406
		end
1407
	end
1408
	HIT:disconnect()
1409
	ATTACK = false
1410
	Rooted = false
1411
	PLAYANIMS = true
1412
end
1413
1414
function Taunt()
1415
	ATTACK = true
1416
	Rooted = true
1417
	PLAYANIMS = false
1418
	CreateSound(2062482384,Torso,5,MRANDOM(8,9)/10,false)
1419
	for i=0, 1.5, 0.1 / Animation_Speed do
1420
		Swait()
1421
		RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
1422
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0), RAD(35), RAD(0)), 1 / Animation_Speed)
1423
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(140)) * ANGLES(RAD(0), RAD(-90), RAD(0)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
1424
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(-140)) * ANGLES(RAD(0), RAD(90), RAD(0)) * LEFTSHOULDERC0, 1 / Animation_Speed)
1425
		RightHip.C0 = Clerp(RightHip.C0, CF(1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(80), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
1426
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(-80), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
1427
	end
1428
	PLAYANIMS = true
1429
	ATTACK = false
1430
	Rooted = false
1431
end
1432
1433
function Silence()
1434
	Speed = 6
1435
	ATTACK = true
1436
	Rooted = false
1437
	local GYRO = IT("BodyGyro",RootPart)
1438
	GYRO.D = 2
1439
	GYRO.P = 20000
1440
	GYRO.MaxTorque = VT(0,4000000,0)
1441
	coroutine.resume(coroutine.create(function()
1442
		repeat
1443
			Swait()
1444
			GYRO.CFrame = CF(RootPart.Position,Mouse.Hit.p)
1445
		until ATTACK == false
1446
		GYRO:Remove()
1447
	end))
1448
	for i=0, 0.2, 0.1 / Animation_Speed do
1449
		Swait()
1450
		RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
1451
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(25), RAD(0), RAD(15)), 1 / Animation_Speed)
1452
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(0)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
1453
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.525, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(5)) * LEFTSHOULDERC0, 1 / Animation_Speed)
1454
		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)
1455
		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)
1456
	end
1457
	local AMMO = 6
1458
	local FIRING = true
1459
	local SHOOTING = false
1460
	local TIMER = 70
1461
	CreateSound(147722227, GUN, 6, 1.3, false)
1462
	GUNWELD.Part0 = LeftArm
1463
	GUNWELD.C0 = CF(0,-1.5,0) * ANGLES(RAD(0), RAD(90), RAD(-90))
1464
	local MOUSE = Mouse.Button1Down:connect(function(NEWKEY)
1465
		if SHOOTING == false and AMMO > 0 then
1466
			SHOOTING = true
1467
			AMMO = AMMO - 1
1468
			local GUNPOS = GUN.CFrame*CF(1.2, 0.5, 0).p
1469
			local HIT,POS = CastProperRay(GUNPOS,Mouse.Hit.p,1000,Character)
1470
			local DISTANCE = (POS - GUNPOS).Magnitude
1471
			if HIT then
1472
				if HIT.Parent:FindFirstChildOfClass("Humanoid") then
1473
					if HIT.Parent:FindFirstChildOfClass("Humanoid").Health > 0 then
1474
						CreateSound(160432334, HIT, 10, 1, false)
1475
						ApplyDamages(HIT.Parent:FindFirstChildOfClass("Humanoid"),35)
1476
					end
1477
				end
1478
			end
1479
			TIMER = 55
1480
			WACKYEFFECT({Time = 15, EffectType = "Block", Size = VT(0,0,0), Size2 = VT(0.3,0.3,0.3), Transparency = 0, Transparency2 = 1, CFrame = CF(GUNPOS), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = C3(1,1,0), SoundID = 330704232, SoundPitch = 1, SoundVolume = 4})
1481
			WACKYEFFECT({Time = 6, EffectType = "Box", Size = VT(0,0,DISTANCE), Size2 = VT(0.1,0.1,DISTANCE), Transparency = 0, Transparency2 = 1, CFrame = CF(GUNPOS,POS)*CF(0,0,-DISTANCE/2), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = C3(1,1,0), SoundID = nil, SoundPitch = nil, SoundVolume = nil})
1482
			for i=0, 0.3, 0.1 / Animation_Speed do
1483
				Swait()
1484
				RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(-45)), 1 / Animation_Speed)
1485
				Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0), RAD(0), RAD(45)), 1 / Animation_Speed)
1486
				RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(0)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
1487
				LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(100), RAD(0), RAD(-45)) * LEFTSHOULDERC0, 1 / Animation_Speed)
1488
				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)
1489
				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)
1490
			end
1491
			if AMMO <= 0 then
1492
				FIRING = false
1493
			end
1494
			SHOOTING = false
1495
		end
1496
	end)
1497
	repeat
1498
		Swait()
1499
		if SHOOTING == false then
1500
			TIMER = TIMER - 1
1501
			if TIMER <= 0 then
1502
				FIRING = false
1503
			end
1504
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(-45)), 1 / Animation_Speed)
1505
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0), RAD(0), RAD(45)), 1 / Animation_Speed)
1506
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(0)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
1507
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(90), RAD(0), RAD(-45)) * LEFTSHOULDERC0, 1 / Animation_Speed)
1508
			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)
1509
			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)
1510
		end
1511
	until FIRING == false and SHOOTING == false
1512
	MOUSE:Disconnect()
1513
	for i=0, 0.3, 0.1 / Animation_Speed do
1514
		Swait()
1515
		RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
1516
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(25), RAD(0), RAD(15)), 1 / Animation_Speed)
1517
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(0)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
1518
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.525, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(5)) * LEFTSHOULDERC0, 1 / Animation_Speed)
1519
		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)
1520
		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)
1521
	end
1522
	GUNWELD.Part0 = Torso
1523
	GUNWELD.C0 = CF(-1.1,-1.1,0) * ANGLES(RAD(0), RAD(90), RAD(-90))
1524
	Speed = 20
1525
	ATTACK = false
1526
	Rooted = false
1527
end
1528
1529
function ee()
1530
	    ATTACK = true
1531
	    Rooted = true
1532
		for i=0, 1, 0.1 / Animation_Speed do
1533
			Swait()
1534
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
1535
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1.25*SIZE) - 1)) * ANGLES(RAD(35), RAD(0), RAD(0)), 1 / Animation_Speed)
1536
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.3*SIZE, 0.5*SIZE, 0) * ANGLES(RAD(0), RAD(0), RAD(200)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
1537
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.3*SIZE, 0.5*SIZE, 0) * ANGLES(RAD(0), RAD(0), RAD(-200)) * LEFTSHOULDERC0, 1 / Animation_Speed)
1538
			RightHip.C0 = Clerp(RightHip.C0, CF(1*SIZE, -1*SIZE - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(83), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
1539
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1*SIZE, -1*SIZE - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(-83), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
1540
		end
1541
		CameraEnshaking(1,45)
1542
		CreateSound(363808674, Torso, 6, 1, false)
1543
		for i=0, 0.5, 0.1 / Animation_Speed do
1544
			Swait()
1545
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
1546
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1.25*SIZE) - 1)) * ANGLES(RAD(35), RAD(0), RAD(25)), 1 / Animation_Speed)
1547
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.3*SIZE, 0.5*SIZE, 0) * ANGLES(RAD(-40), RAD(50), RAD(200)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
1548
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.3*SIZE, 0.5*SIZE, 0) * ANGLES(RAD(40), RAD(50), RAD(-200)) * LEFTSHOULDERC0, 1 / Animation_Speed)
1549
			RightHip.C0 = Clerp(RightHip.C0, CF(1*SIZE, -1*SIZE - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(83), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
1550
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1*SIZE, -1*SIZE - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(-83), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
1551
		end
1552
		CameraEnshaking(1,45)
1553
		CreateSound(363808674, Torso, 6, 1, false)
1554
		for i=0, 0.5, 0.1 / Animation_Speed do
1555
			Swait()
1556
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
1557
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1.25*SIZE) - 1)) * ANGLES(RAD(35), RAD(0), RAD(-25)), 1 / Animation_Speed)
1558
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.3*SIZE, 0.5*SIZE, 0) * ANGLES(RAD(40), RAD(-50), RAD(200)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
1559
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.3*SIZE, 0.5*SIZE, 0) * ANGLES(RAD(-40), RAD(-50), RAD(-200)) * LEFTSHOULDERC0, 1 / Animation_Speed)
1560
			RightHip.C0 = Clerp(RightHip.C0, CF(1*SIZE, -1*SIZE - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(83), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
1561
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1*SIZE, -1*SIZE - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(-83), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
1562
		end
1563
		ATTACK = false
1564
		Rooted = false
1565
end
1566
1567
--//=================================\\
1568
--||	  ASSIGN THINGS TO KEYS
1569
--\\=================================//
1570
1571
function MouseDown(Mouse)
1572
	HOLD = true
1573
	if ATTACK == false then
1574
		Attack()
1575
	end
1576
end
1577
1578
function MouseUp(Mouse)
1579
HOLD = false
1580
end
1581
1582
function KeyDown(Key)
1583
	KEYHOLD = true
1584
	if Key == "z" and ATTACK == false then
1585
		if CLOAKED == false then
1586
			Cloaked()
1587
		else
1588
			CLOAKED = false
1589
		end
1590
	end
1591
1592
	if Key == "t" and ATTACK == false then
1593
		Taunt()
1594
	end
1595
1596
	if Key == "y" and ATTACK == false then
1597
		ee()
1598
	end
1599
1600
	if Key == "q" and ATTACK == false then
1601
		Silence()
1602
	end
1603
1604
	if string.byte(Key) == 50 and ATTACK == false and CLOAKED == false then
1605
		if Speed == 12 then
1606
			Speed = 30
1607
		elseif Speed == 30 then
1608
			Speed = 12
1609
		end
1610
	end
1611
end
1612
1613
function KeyUp(Key)
1614
	KEYHOLD = false
1615
end
1616
1617
	Mouse.Button1Down:connect(function(NEWKEY)
1618
		MouseDown(NEWKEY)
1619
	end)
1620
	Mouse.Button1Up:connect(function(NEWKEY)
1621
		MouseUp(NEWKEY)
1622
	end)
1623
	Mouse.KeyDown:connect(function(NEWKEY)
1624
		KeyDown(NEWKEY)
1625
	end)
1626
	Mouse.KeyUp:connect(function(NEWKEY)
1627
		KeyUp(NEWKEY)
1628
	end)
1629
1630
--//=================================\\
1631
--\\=================================//
1632
1633
function unanchor()
1634
	if UNANCHOR == true then
1635
		g = Character:GetChildren()
1636
		for i = 1, #g do
1637
			if g[i].ClassName == "Part" then
1638
				g[i].Anchored = false
1639
			end
1640
		end
1641
	end
1642
end
1643
1644
--//=================================\\
1645
--||	WRAP THE WHOLE SCRIPT UP
1646
--\\=================================//
1647
1648
Humanoid.Changed:connect(function(Jump)
1649
	if Jump == "Jump" and (Disable_Jump == true) then
1650
		Humanoid.Jump = false
1651
	end
1652
end)
1653
1654
while true do
1655
	Swait()
1656
	script.Parent = WEAPONGUI
1657
	ANIMATE.Parent = nil
1658
	for _,v in next, Humanoid:GetPlayingAnimationTracks() do
1659
	    v:Stop();
1660
	end
1661
	SINE = SINE + CHANGE
1662
	local TORSOVELOCITY = (RootPart.Velocity * VT(1, 0, 1)).magnitude
1663
	local TORSOVERTICALVELOCITY = RootPart.Velocity.y
1664
	local HITFLOOR = Raycast(RootPart.Position, (CF(RootPart.Position, RootPart.Position + VT(0, -1, 0))).lookVector, 4, Character)
1665
	local WALKSPEEDVALUE = 6 / (Humanoid.WalkSpeed / 16)
1666
	if ANIM == "Walk" and TORSOVELOCITY > 1 then
1667
		RootJoint.C1 = Clerp(RootJoint.C1, ROOTC0 * CF(0, 0, -0.15 * COS(SINE / (WALKSPEEDVALUE / 2))) * ANGLES(RAD(0), RAD(0) - RootPart.RotVelocity.Y / 75, RAD(0)), 2 * (Humanoid.WalkSpeed / 16) / Animation_Speed)
1668
		Neck.C1 = Clerp(Neck.C1, CF(0, -0.5, 0) * ANGLES(RAD(-90), RAD(0), RAD(180)) * ANGLES(RAD(2.5 * SIN(SINE / (WALKSPEEDVALUE / 2))), RAD(0), RAD(0) - Head.RotVelocity.Y / 30), 0.2 * (Humanoid.WalkSpeed / 16) / Animation_Speed)
1669
		RightHip.C1 = Clerp(RightHip.C1, CF(0.5, 0.875 - 0.125 * SIN(SINE / WALKSPEEDVALUE) - 0.15 * COS(SINE / WALKSPEEDVALUE*2), -0.125 * COS(SINE / WALKSPEEDVALUE) +0.2+ 0.2 * COS(SINE / WALKSPEEDVALUE)) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0) - RightLeg.RotVelocity.Y / 75, RAD(0), RAD(76 * COS(SINE / WALKSPEEDVALUE))), 0.3 * (Humanoid.WalkSpeed / 16) / Animation_Speed)
1670
		LeftHip.C1 = Clerp(LeftHip.C1, CF(-0.5, 0.875 + 0.125 * SIN(SINE / WALKSPEEDVALUE) - 0.15 * COS(SINE / WALKSPEEDVALUE*2), 0.125 * COS(SINE / WALKSPEEDVALUE) +0.2+ -0.2 * COS(SINE / WALKSPEEDVALUE)) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0) + LeftLeg.RotVelocity.Y / 75, RAD(0), RAD(76 * COS(SINE / WALKSPEEDVALUE))), 0.3 * (Humanoid.WalkSpeed / 16) / Animation_Speed)
1671
	elseif (ANIM ~= "Walk") or (TORSOVELOCITY < 1) then
1672
		RootJoint.C1 = Clerp(RootJoint.C1, ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.2 / Animation_Speed)
1673
		Neck.C1 = Clerp(Neck.C1, CF(0, -0.5, 0) * ANGLES(RAD(-90), RAD(0), RAD(180)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.2 / Animation_Speed)
1674
		RightHip.C1 = Clerp(RightHip.C1, CF(0.5, 1, 0) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.2 / Animation_Speed)
1675
		LeftHip.C1 = Clerp(LeftHip.C1, CF(-0.5, 1, 0) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.2 / Animation_Speed)
1676
	end
1677
	if TORSOVERTICALVELOCITY > 1 and HITFLOOR == nil then
1678
		ANIM = "Jump"
1679
		if PLAYANIMS == true then
1680
			RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.2 / Animation_Speed)
1681
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(-20), RAD(0), RAD(0)), 0.2 / Animation_Speed)
1682
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(-40), RAD(0), RAD(20)) * RIGHTSHOULDERC0, 0.2 / Animation_Speed)
1683
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(-40), RAD(0), RAD(-20)) * LEFTSHOULDERC0, 0.2 / Animation_Speed)
1684
			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)
1685
			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)
1686
	    end
1687
	elseif TORSOVERTICALVELOCITY < -1 and HITFLOOR == nil then
1688
		ANIM = "Fall"
1689
		if PLAYANIMS == true then
1690
			RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0, 0, 0 ) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.2 / Animation_Speed)
1691
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0 , 0 + ((1) - 1)) * ANGLES(RAD(20), RAD(0), RAD(0)), 0.2 / Animation_Speed)
1692
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(60)) * RIGHTSHOULDERC0, 0.2 / Animation_Speed)
1693
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(-60)) * LEFTSHOULDERC0, 0.2 / Animation_Speed)
1694
			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)
1695
			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)
1696
		end
1697
	elseif TORSOVELOCITY < 1 and HITFLOOR ~= nil then
1698
		ANIM = "Idle"
1699
		if PLAYANIMS == true then
1700
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.15 / Animation_Speed)
1701
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 0.15 / Animation_Speed)
1702
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(15), RAD(35), RAD(12)) * RIGHTSHOULDERC0, 0.15 / Animation_Speed)
1703
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(0)) * LEFTSHOULDERC0, 0.15 / Animation_Speed)
1704
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(80), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.15 / Animation_Speed)
1705
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(-80), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.15 / Animation_Speed)
1706
		end
1707
	elseif TORSOVELOCITY > 1 and HITFLOOR ~= nil then
1708
		ANIM = "Walk"
1709
		if PLAYANIMS == true then
1710
			if Humanoid.WalkSpeed <= 17 then
1711
				RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, -0.1) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.15 / Animation_Speed)
1712
				Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.15 / Animation_Speed)
1713
				RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(20 * COS(SINE / WALKSPEEDVALUE)), RAD(0), RAD(5)) * RIGHTSHOULDERC0, 0.35 / Animation_Speed)
1714
				LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(-20 * COS(SINE / WALKSPEEDVALUE)), RAD(0), RAD(-5)) * LEFTSHOULDERC0, 0.35 / Animation_Speed)
1715
				RightHip.C0 = Clerp(RightHip.C0, CF(1 , -1, 0) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(-15)), 2 / Animation_Speed)
1716
				LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, 0) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(15)), 2 / Animation_Speed)
1717
			else
1718
				RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, -0.1) * ANGLES(RAD(35), RAD(0), RAD(5 * SIN(SINE / (WALKSPEEDVALUE / 2)))), 0.15 / Animation_Speed)
1719
				Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(-25 - 1 * SIN(SINE / (WALKSPEEDVALUE / 2))), RAD(0), RAD(-5 * SIN(SINE / (WALKSPEEDVALUE / 2)))), 0.15 / Animation_Speed)
1720
				RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, -0.2) * ANGLES(RAD(0), RAD(35), RAD(0)) * ANGLES(RAD(35+20 * COS(SINE / WALKSPEEDVALUE)), RAD(0), RAD(5)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
1721
				LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, -0.2) * ANGLES(RAD(0), RAD(-35), RAD(0)) * ANGLES(RAD(35-60 * COS(SINE / WALKSPEEDVALUE)), RAD(0), RAD(-5)) * LEFTSHOULDERC0, 1 / Animation_Speed)
1722
				RightHip.C0 = Clerp(RightHip.C0, CF(1 , -1, 0) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(5)), 2 / Animation_Speed)
1723
				LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, 0) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(-5)), 2 / Animation_Speed)
1724
			end
1725
		end
1726
	end
1727
	BMUSIC.SoundId = "rbxassetid://"..SONGID
1728
	BMUSIC.Looped = true
1729
	BMUSIC.Pitch = PITCH
1730
	BMUSIC.Volume = VOLUME
1731
	BMUSIC.Playing = true
1732
	if BMUSIC.Parent ~= RootPart then
1733
		BMUSIC = IT("Sound",RootPart)
1734
	end
1735
	unanchor()
1736
	if Rooted == false then
1737
		Disable_Jump = false
1738
		Humanoid.WalkSpeed = Speed
1739
	elseif Rooted == true then
1740
		Disable_Jump = true
1741
		Humanoid.WalkSpeed = 0
1742
	end
1743
	if Head:FindFirstChild("face") then
1744
		Head.face:remove()
1745
	elseif Head:FindFirstChildOfClass("Sound") then
1746
		Head:FindFirstChildOfClass("Sound"):remove()
1747
	end
1748
	Humanoid.Health = Humanoid.Health + 1
1749
end
1750
1751
--//=================================\\
1752
--\\=================================//
1753
1754
1755
1756
1757
1758
--//====================================================\\--
1759
--||			  		 END OF SCRIPT
1760
--\\====================================================//--