View difference between Paste ID: GB5AJNzj and 1Ls1KQLZ
SHOW: | | - or go back to the newest paste.
1
-- The Murderer
2
-- Created by Nebula_Zorua
3
-- Youtube channel: https://www.youtube.com/channel/UCo9oU9dCw8jnuVLuy4_SATA
4
-- Discord account: Nebula the Zorua#6666
5
6
-- Credit to Shackluster for the inspiration for this
7
-- I might update this in the future.
8
9
--[[
10
	CONTROLS:
11
		Left Mouse Button Click - Attack
12
		Left Mouse Button Click - Get knife back once thrown (You must be near the thrown knife)
13
		T - Throw (You cant attack until you get it back with the above control)
14
		; - Machete
15
	TO BECOME BLOODLUSTFUL:
16
		Kill 12 people/dummies quickly. You must keep killing to keep the bloodlust.
17
		Once you're bloodlustful, you charge forward when you attack
18
]]
19
20
--[[
21
TO EDITORS/RESKINNERS:
22
	You can edit BloodColor, BloodMaterial, and BloodlustBlood to change the color of the blood, material of the blood, and the 
23
	number of blood you need to become bloodlustful. You get 30 blood with each kill. 
24
]]
25
if game:GetService("RunService"):IsClient()then error("Please run as a server script. Use h/ instead of hl/.")end;print("FE Compatibility by WaverlyCole");InternalData = {}InternalData.RealOwner = owner;InternalData.Version = "v1.0.0"
26
do
27
    script.Parent = InternalData.RealOwner.Character
28
    local Event = Instance.new("RemoteEvent");Event.Name = "UserInput"
29
    local function createObject (connections, index)
30
        local proxy = newproxy (true);local meta = getmetatable (proxy);
31
        local runbind = function (self, i, ...) connections[i]:Fire (...); end;
32
        while (#connections > 0) do connections [table.remove (connections, 1)] = Instance.new ('BindableEvent');end;
33
        meta.__index = function (self, i)
34
            if (i == 'TriggerEvent') then return runbind end;
35
            return connections[i] and connections[i].Event or index[i];
36
        end;
37
        meta.__newindex = index;meta.__metatable = false;return proxy
38
    end;
39
    local Mouse = createObject({"KeyUp","KeyDown","Button1Down","Button1Up"},{["Target"] = nil;["Hit"] = CFrame.new()})
40
    local UserInputService = createObject({"InputBegan","InputEnded"},{})
41
    local ContextActionService = {Actions={},BindAction = function(self,actionName,Func,touch,...)
42
        self.Actions[actionName] = Func and {Name=actionName,Function=Func,Keys={...}} or nil
43
    end};ContextActionService.UnBindAction = ContextActionService.BindAction
44
    Event.OnServerEvent:Connect(function(FiredBy,Input)
45
        if FiredBy.Name ~= InternalData.RealOwner.Name then return end
46
        if Input.MouseEvent then
47
            Mouse.Target = Input.Target;Mouse.Hit = Input.Hit
48
        else
49
            local Begin = Input.UserInputState == Enum.UserInputState.Begin
50
            if Input.UserInputType == Enum.UserInputType.MouseButton1 then return Mouse:TriggerEvent(Begin and "Button1Down" or "Button1Up") end
51
            for _,Action in pairs(ContextActionService.Actions) do
52
                for _,Key in pairs(Action.Keys) do if Key==Input.KeyCode then Action.Function(Action.Name,Input.UserInputState,Input) end end
53
            end
54
            Mouse:TriggerEvent(Begin and "KeyDown" or "KeyUp",Input.KeyCode.Name:lower());UserInputService:TriggerEvent(Begin and "InputBegan" or "InputEnded",Input,false)
55
        end
56
    end)
57
    InternalData["Mouse"] = Mouse;InternalData["ContextActionService"] = ContextActionService;InternalData["UserInputService"] = UserInputService
58
    Event.Parent = NLS([[
59
        local Player = owner;
60
        local Event = script:WaitForChild("UserInput");
61
        local UserInputService = game:GetService("UserInputService");
62
        local Mouse = Player:GetMouse();
63
        local Input = function(Input,gameProcessedEvent)
64
            if gameProcessedEvent then return end
65
            Event:FireServer({KeyCode=Input.KeyCode,UserInputType=Input.UserInputType,UserInputState=Input.UserInputState})
66
        end
67
        UserInputService.InputBegan:Connect(Input);UserInputService.InputEnded:Connect(Input)
68
        local Hit,Target
69
        while wait(1/60) do
70
            if Hit ~= Mouse.Hit or Target ~= Mouse.Target then
71
                Hit = Mouse.Hit;Target = Mouse.Target;
72
                Event:FireServer({["MouseEvent"]=true,["Target"]=Target,["Hit"]=Hit})
73
            end
74
        end
75
    ]],InternalData.RealOwner.Character)
76
end
77
InternalData.RealInstance = Instance;Instance = setmetatable({},{
78
    __index = function (self,Index)
79
        if Index:lower() == 'new' then
80
            return function (Type, Parent)
81
                local Real = InternalData.RealInstance.new(Type,Parent)
82
                if not Type then return end
83
                if Type == "BillboardGui" then
84
                    return setmetatable({},{
85
                        __index = function (self,Index)
86
                            return Real[Index]
87
                        end;
88
                        __newindex = function (self,Index,Value)
89
                            if Index:lower() == "playertohidefrom" then
90
                                if Value.Name == owner.Name then Real[Index] = InternalData.RealOwner else Real[Index] = Value end
91
                            else
92
                                Real[Index] = Value
93
                            end
94
                        end;
95
                        __tostring = function(self) return tostring(Real) end;
96
                    })
97
                end
98
                return Real
99
            end
100
        end
101
        return InternalData.RealInstance[Index]
102
    end;
103
    __tostring = function(self) return tostring(InternalData.RealInstance) end;
104
});
105
InternalData.RealGame = game;game = setmetatable({},{
106
    __index = function (self,Index)
107
        local Sandbox = function (Thing)
108
            if Thing:IsA("Player") then
109
                local RealPlayer = Thing
110
                return setmetatable({},{
111
                    __index = function (self,Index)
112
                        local Type = type(RealPlayer[Index])
113
                        if Type == "function" then
114
                            if Index:lower() == "getmouse" or Index:lower() == "mouse" then
115
                                return function (self)return InternalData["Mouse"] end
116
                            end
117
                            return function (self,...)return RealPlayer[Index](RealPlayer,...) end
118
                        elseif Index == "FakePlayer" then
119
                            return true
120
                        end
121
                        return RealPlayer[Index]
122
                    end;
123
                    __tostring = function(self) return tostring(RealPlayer) end
124
                })
125
            end
126
        end
127
        if InternalData.RealGame[Index] then
128
            local Type = type(InternalData.RealGame[Index])
129
            if Type == "function" then
130
                if Index:lower() == "getservice" or Index:lower() == "service" then
131
                    return function (self,Service)
132
                        local FakeServices = {
133
                            ["players"] = function()
134
                                return setmetatable({},{
135
                                    __index = function (self2,Index2)
136
                                        local RealService = InternalData.RealGame:GetService(Service)
137
                                        local Type2 = type(Index2)
138
                                        if Type2 == "function" then
139
                                            return function (self,...) return RealService[Index2](RealService,...)end
140
                                        else
141
                                            if Index2:lower() == "localplayer" then return Sandbox(InternalData.RealOwner) end
142
                                            return RealService[Index2]
143
                                        end
144
                                    end;
145
                                    __tostring = function(self) return tostring(InternalData.RealGame:GetService(Service)) end
146
                                })
147
                            end;
148
                            ["contextactionservice"] = function() return InternalData["ContextActionService"] end;
149
                            ["userinputservice"] = function() return InternalData["UserInputService"] end;
150
                            ["runservice"] = function()
151
                                return setmetatable({},{
152
                                    __index = function(self2,Index2)
153
                                        local RealService = InternalData.RealGame:GetService(Service)
154
                                        local Type2 = type(Index2)
155
                                        if Type2 == "function" then
156
                                            return function (self,...) return RealService[Index2](RealService,...) end
157
                                        else
158
                                            local RunServices = {
159
                                                ["bindtorenderstep"] = function() return function (self,Name,Priority,Function) return InternalData.RealGame:GetService("RunService").Stepped:Connect(Function) end end;
160
                                                ["renderstepped"] = function() return RealService["Stepped"] end
161
                                            }
162
                                            if RunServices[Index2:lower()] then return RunServices[Index2:lower()]() end
163
                                            return RealService[Index2]
164
                                        end
165
                                    end;
166
                                    __tostring = function(self) return tostring(InternalData.RealGame:GetService("RunService")) end
167
                                })
168
                            end
169
                        }
170
                        if FakeServices[Service:lower()] then return FakeServices[Service:lower()]() end
171
                        return InternalData.RealGame:GetService(Service)
172
                    end
173
                end
174
                return function (self,...) return InternalData.RealGame[Index](InternalData.RealGame,...) end
175
            else
176
                if game:GetService(Index) then return game:GetService(Index) end
177
                return InternalData.RealGame[Index]
178
            end
179
        end
180
        return nil
181
    end;
182
    __tostring = function(self) return tostring(InternalData.game) end
183
});Game = game;owner = game:GetService("Players").LocalPlayer;script = Instance.new("Script");print("Complete!")
184
 
185
--//Paste script below this line.
186
187
wait()
188
script.Parent = nil
189
local S = setmetatable({},{
190
	__index = function(self,index)
191
		local service = game:GetService(index)
192
		if(service)then
193
			self[index] = service
194
			return service
195
		end
196
	end
197
})
198
199
200
local plr = S.Players.yurixc
201
local char = plr.Character
202
local hum = char.Humanoid
203
local rarm = char["Right Arm"]
204
local larm= char["Left Arm"]
205
local rleg= char["Right Leg"]
206
local lleg = char["Left Leg"]	
207
local root = char:FindFirstChild'HumanoidRootPart'
208
local torso = char.Torso
209
local head = char.Head
210
local sine = 0;
211
local lastTwitch = 0;
212
local combo = 1;
213
local ThrownKnife = false
214
local KnifePosition = CFrame.new(0,0,0)
215
local lastClick = time()
216
local change = 1;
217
local runService = S.RunService
218
local mouse = plr:GetMouse()
219
local Attack = false
220
local neutralAnims = true
221
local WalkSine = 0
222
local Debounces = {Debounces={}}
223
local Hit = {}
224
local BloodPuddles = {}
225
local Bloodied = 0
226
local Teamed = {}
227
local WalkSpeed = 6
228
hum.WalkSpeed = WalkSpeed
229
local BloodColor = BrickColor.new'Turquoise'
230
local BloodMaterial = Enum.Material.Sand
231
local BloodTime = time()
232
local Twitch = false
233
local BloodlustBlood = 350
234
hum.DisplayDistanceType = "None"
235
hum.MaxHealth = 3000
236
hum.Health = 3000
237
238
function Debounces:New(name,cooldown)
239
	local aaaaa = {Usable=true,Cooldown=cooldown or 2,CoolingDown=false,LastUse=0}
240
	setmetatable(aaaaa,{__index = Debounces})
241
	Debounces.Debounces[name] = aaaaa
242
	return aaaaa
243
end
244
245
function Debounces:Use(overrideUsable)
246
	assert(self.Usable ~= nil and self.LastUse ~= nil and self.CoolingDown ~= nil,"Expected ':' not '.' calling member function Use")
247
	if(self.Usable or overrideUsable)then
248
		self.Usable = false
249
		self.CoolingDown = true
250
		local LastUse = time()
251
		self.LastUse = LastUse
252
		delay(self.Cooldown or 2,function()
253
			if(self.LastUse == LastUse)then
254
				self.CoolingDown = false
255
				self.Usable = true
256
			end
257
		end)
258
	end
259
end
260
261
function Debounces:Get(name)
262
	assert(typeof(name) == 'string',("bad argument #1 to 'get' (string expected, got %s)"):format(typeof(name) == nil and "no value" or typeof(name)))
263
	for i,v in next, Debounces.Debounces do
264
		if(i == name)then
265
			return v;
266
		end
267
	end
268
end
269
270
function Debounces:GetProgressPercentage()
271
	assert(self.Usable ~= nil and self.LastUse ~= nil and self.CoolingDown ~= nil,"Expected ':' not '.' calling member function Use")
272
	if(self.CoolingDown and not self.Usable)then
273
		return math.max(
274
			math.floor(
275
				(
276
					(time()-self.LastUse)/self.Cooldown or 2
277
				)*100
278
			)
279
		)
280
	else
281
		return 100
282
	end
283
end
284
285
local CF = {N=CFrame.new,A=CFrame.Angles,fEA=CFrame.fromEulerAnglesXYZ}
286
local V3 = {N=Vector3.new}
287
local M = {C=math.cos,R=math.rad,S=math.sin,P=math.pi,RNG=math.random,MRS=math.randomseed,H=math.huge}
288
289
local Hold = CF.N(0,-1,-1)*CF.A(M.R(-90),M.R(90),0)
290
local BeheadHold =  CF.A(0,0,0)
291
local Effects,Sounds = {},{};
292
--Stop animations
293
for _,v in next, hum:GetPlayingAnimationTracks() do
294
	v:Stop();
295
end
296
297
pcall(game.Destroy,char:FindFirstChild'Animate')
298
pcall(game.Destroy,hum:FindFirstChild'Animator')
299
300
-- Sounds
301
Sounds['Wet'] = {Id=256738023,Loop=false,Pitch=1}
302
Sounds['Swoosh1'] = {Id=320557353,Loop=false,Pitch=1,Volume=6}
303
Sounds['Swoosh2'] = {Id=320557382,Loop=false,Pitch=1,Volume=6}
304
Sounds['Swoosh3'] = {Id=320557413,Loop=false,Pitch=1,Volume=6}
305
Sounds['Swoosh4'] = {Id=320557453,Loop=false,Pitch=1,Volume=6}
306
Sounds['Swoosh5'] = {Id=320557487,Loop=false,Pitch=1,Volume=6}
307
Sounds['Swoosh6'] = {Id=320557537,Loop=false,Pitch=1,Volume=6}
308
Sounds['Swoosh7'] = {Id=320557563,Loop=false,Pitch=1,Volume=6}
309
Sounds['Swoosh8'] = {Id=320557518,Loop=false,Pitch=1,Volume=6}
310
Sounds['SmallBoom'] = {Id=341336485,Loop=false,Volume=5,Pitch=1}
311
Sounds['ChaosBuster'] = {Id=333534812,Loop=false,Volume=5,Pitch=0.75}
312
Sounds['Magic'] = {Id=315743350,Loop=false,Volume=5,Pitch=1}
313
Sounds['ShrekRemix'] = {Id=163306929,Loop=true,Pitch=1,Volume = 4}
314
Sounds['CreoDimension'] = {Id=927529620,Loop=true,Pitch=1,Volume=4}
315
Sounds['BlackBlizzard'] = {Id=657626121,Loop=true,Pitch=1,Volume=4}
316
Sounds['ColbreakzFantasy'] = {Id=876981900,Loop=true,Pitch=1,Volume=4}
317
Sounds['NeflCrystals'] = {Id=340106355,Loop=true,Pitch=1,Volume=4}
318
Sounds['EvilMortyRemix'] = {Id=1057401232,Loop=true,Pitch=1,Volume=10}
319
Sounds['Psycho'] = {Id=579524490,Loop=true,Pitch=1,Volume=10}
320
-- Functions
321
local NewInstance = function(instance,parent,properties)
322
	local inst = Instance.new(instance,parent)
323
	if(properties)then
324
		for i,v in next, properties do
325
			pcall(function() inst[i] = v end)
326
		end
327
	end
328
	return inst;
329
end
330
331
ArtificialHB = NewInstance("BindableEvent", script,{
332
	Parent = script,
333
	Name = "Heartbeat",
334
})
335
336
script:WaitForChild("Heartbeat")
337
338
frame = 1 / 60
339
tf = 0
340
allowframeloss = false
341
tossremainder = false
342
lastframe = tick()
343
script.Heartbeat:Fire()
344
345
game:GetService("RunService").Heartbeat:connect(function(s, p)
346
	tf = tf + s
347
	if tf >= frame then
348
		if allowframeloss then
349
			script.Heartbeat:Fire()
350
			lastframe = tick()
351
		else
352
			for i = 1, math.floor(tf / frame) do
353
				script.Heartbeat:Fire()
354
			end
355
			lastframe = tick()
356
		end
357
		if tossremainder then
358
			tf = 0
359
		else
360
			tf = tf - frame * math.floor(tf / frame)
361
		end
362
	end
363
end)
364
365
function swait(num)
366
	if num == 0 or num == nil then
367
		ArtificialHB.Event:wait()
368
	else
369
		for i = 0, num do
370
			ArtificialHB.Event:wait()
371
		end
372
	end
373
end
374
375
376
function clerp(startCF,endCF,alpha)
377
	return startCF:lerp(endCF, alpha)
378
end
379
local sndFromData = function(data,parent)
380
	assert(typeof(data) == 'table',"sndFromData's first argument must be a table!")
381
	local snd = NewInstance("Sound",parent or char,{SoundId = "rbxassetid://"..data.Id,Looped=data.Loop or false,Pitch = data.Pitch or 1,Volume = data.Volume or 1})
382
	return snd;
383
end
384
385
local FX = function(ID,vol,pitch,parent)
386
	local snd = NewInstance("Sound",parent or torso, {Pitch=pitch or 1, Volume = vol or 1,SoundId = "rbxassetid://"..ID})
387
	snd:Play()
388
	repeat wait() until snd.IsLoaded and snd.IsPlaying
389
	delay(snd.TimePosition+.5,function()
390
		snd:Stop()
391
		snd:Destroy()
392
	end)
393
end
394
function UnbindLoops()
395
	pcall(runService.UnbindFromRenderStep,runService,"N_Effects")
396
	pcall(runService.UnbindFromRenderStep,runService,"N_Animations")
397
end;
398
399
UnbindLoops() -- Just so if the loops already exist from previously running a script using this template, there's no errors
400
401
-- Model
402
403
local Music = sndFromData(Sounds.Psycho,torso)
404
Music:Play()
405
Music.MaxDistance = 500
406
407
local Handle = NewInstance('Part',char,{CanCollide=false,Size=V3.N(0.46,3.82,0.37),Name='Handle'})
408
local Mesh = NewInstance('SpecialMesh',Handle,{MeshId='rbxassetid://471401475',TextureId='rbxassetid://471401476',Scale=V3.N(.01,.01,.01)})
409
local Decal = NewInstance('Decal',Handle,{Transparency=1,Texture='rbxassetid://116830967'})
410
-- Joints and Lerp
411
local LS = NewInstance('Motor',char,{Part0=torso,Part1=larm,C0 = CF.N(-1.5,0.5,0),C1 = CF.N(0,.5,0)})
412
local RS = NewInstance('Motor',char,{Part0=torso,Part1=rarm,C0 = CF.N(1.5,0.5,0),C1 = CF.N(0,.5,0)})
413
local NK = NewInstance('Motor',char,{Part0=torso,Part1=head,C0 = CF.N(0,1.5,0)})
414
local LH = NewInstance('Motor',char,{Part0=torso,Part1=lleg,C0 = CF.N(-.5,-1,0),C1 = CF.N(0,1,0)})
415
local RH = NewInstance('Motor',char,{Part0=torso,Part1=rleg,C0 = CF.N(.5,-1,0),C1 = CF.N(0,1,0)})
416
local RJ = NewInstance('Motor',char,{Part0=root,Part1=torso})
417
local HW = NewInstance('Motor',char,{Part0=rarm,Part1=Handle,C0 = CF.N(0,-1,-1)*CF.A(M.R(-90),M.R(90),0)})
418
419
-- watevr
420
421
-- Default C0s
422
local LSD=LS.C0
423
local RSD=RS.C0	
424
local HD=NK.C0
425
local TD=RJ.C0
426
local LHD=LH.C0
427
local RHD=RH.C0
428
429
-- Check State
430
function CheckState(rPart)
431
	if(rPart.Velocity.y > .35 and hum:GetState() == Enum.HumanoidStateType.Freefall)then
432
		return 'Jump';		
433
	elseif(rPart.Velocity.y < -.35 and hum:GetState() == Enum.HumanoidStateType.Freefall)then
434
		return 'Fall';
435
	elseif(math.abs(rPart.Velocity.x) > 2 or math.abs(rPart.Velocity.z) > 2 and hum:GetState() ~= Enum.HumanoidStateType.Freefall)then
436
		return 'Walk';
437
	end
438
	return 'Idle';
439
end
440
441
-- Effect Functions
442
function SphereFX(duration,color,scale,pos,endScale)
443
	local rng = Instance.new("Part", char)
444
	rng.Anchored = true
445
	rng.BrickColor = color
446
	rng.CanCollide = false
447
	rng.FormFactor = 3
448
	rng.Name = "Ring"
449
	rng.Size = Vector3.new(1,1,1)
450
	rng.Transparency = 0
451
	rng.TopSurface = 0
452
	rng.BottomSurface = 0
453
	rng.CFrame = pos
454
	local rngm = Instance.new("SpecialMesh", rng)
455
	rngm.MeshType = "Sphere"
456
	rngm.Scale = scale
457
	table.insert(Effects, {Frame = 0, Effect="Sphere", Duration = duration or 30, Part=rng, Mesh = rngm, Scale = scale, EndScale = endScale or scale*2, Position = pos})
458
	return rng
459
end
460
461
function BlastFX(duration,color,scale,pos,endScale)
462
	local rng = Instance.new("Part", char)
463
	rng.Anchored = true
464
	rng.BrickColor = color
465
	rng.CanCollide = false
466
	rng.FormFactor = 3
467
	rng.Name = "Ring"
468
	rng.Size = Vector3.new(1,1,1)
469
	rng.Transparency = 0
470
	rng.TopSurface = 0
471
	rng.BottomSurface = 0
472
	rng.CFrame = pos
473
	local rngm = Instance.new("SpecialMesh", rng)
474
	rngm.MeshType = "FileMesh"
475
	rngm.MeshId = 'rbxassetid://20329976'
476
	rngm.Scale = scale
477
	table.insert(Effects, {Frame = 0, Effect="Sphere", Duration = duration or 30, Part=rng, Mesh = rngm, Scale = scale, EndScale = endScale or scale*2, Position = pos})
478
	return rng
479
end
480
481
function BlockFX(duration,color,scale,pos,endScale)
482
	local rng = Instance.new("Part", char)
483
	rng.Anchored = true
484
	rng.BrickColor = color
485
	rng.CanCollide = false
486
	rng.FormFactor = 3
487
	rng.Name = "Ring"
488
	rng.Size = Vector3.new(1,1,1)
489
	rng.Transparency = 0
490
	rng.TopSurface = 0
491
	rng.BottomSurface = 0
492
	rng.CFrame = pos
493
	local rngm = Instance.new("BlockMesh", rng)
494
	rngm.Scale = scale
495
	table.insert(Effects, {Frame = 0, Effect="Block", Duration = duration or 30, Part=rng, Mesh = rngm, Scale = scale, EndScale = endScale or scale*2, Position = pos})
496
	return rng
497
end
498
499
function LaserFX(duration,color,cframe,scale,endScale)
500
	local rng = Instance.new("Part", char)
501
	rng.Anchored = true
502
	rng.BrickColor = color
503
	rng.CanCollide = false
504
	rng.FormFactor = 3
505
	rng.Material = Enum.Material.Neon
506
	rng.Name = "Laser"
507
	rng.Size = Vector3.new(.5,.5,.5)
508
	rng.Transparency = 0
509
	rng.TopSurface = 0
510
	rng.BottomSurface = 0
511
	rng.CFrame = cframe
512
	local rngm = Instance.new("CylinderMesh", rng)
513
	rngm.Scale = scale
514
	table.insert(Effects, {Frame = 0, Effect="Sphere", Duration = duration or 30, Part=rng, Mesh = rngm, Scale = scale, EndScale = endScale or scale*2, Position = cframe})
515
	return rng
516
end
517
518
function BloodDrop(pos,dir,maxsize)
519
	local owo = NewInstance("Part",char,{Material=BloodMaterial,BrickColor=BloodColor,Shape=Enum.PartType.Ball,Size=V3.N(.25,.25,.25), CanCollide = false})
520
	owo.CFrame=CF.N(pos,dir)
521
	local bv = Instance.new("BodyVelocity",owo) 
522
	bv.maxForce = Vector3.new(1e9, 1e9, 1e9)
523
	bv.velocity = CF.N(pos,dir+V3.N(M.RNG(-3,3)/30,M.RNG(-3,3)/30,M.RNG(-3,3)/30)).lookVector*15
524
	bv.Name = "MOVE"
525
	game:service'Debris':AddItem(bv,0.05)
526
	local touch 
527
	touch = owo.Touched:connect(function(hit)
528
		if(hit.Anchored==true)then
529
			touch:disconnect()
530
			BloodPuddle(owo.Position+V3.N(0,1,0),10,maxsize,owo)
531
			owo:destroy()
532
		end
533
	end)
534
end
535
function BloodPuddle(position,range,maxSize,where)
536
	local hit, pos, norm = workspace:FindPartOnRayWithIgnoreList(Ray.new(
537
		position,CF.N(position,position+V3.N(0,-1,0)).lookVector * range			
538
	),{where,char},false,true)
539
	if(hit)then
540
		if(BloodPuddles[hit])then
541
			BloodPuddles[hit].Frame = 0
542
			if(hit:FindFirstChild'CylinderMesh' and hit.CylinderMesh.Scale.Z < BloodPuddles[hit].MaxSize)then
543
				hit.CylinderMesh.Scale = hit.CylinderMesh.Scale + V3.N(.1,0,.1)
544
			end
545
		else
546
			local Puddle = NewInstance('Part',workspace,{Material=BloodMaterial,BrickColor=BloodColor,Size=V3.N(1,.1,1),CFrame=CF.N(pos,pos+norm)*CF.A(90*M.P/180,0,0),Anchored=true,CanCollide=false,Archivable=false,Locked=true,Name='BloodPuddle'})
547
			local Cyl = NewInstance('CylinderMesh',Puddle,{Name='CylinderMesh'})
548
			BloodPuddles[Puddle] = {MaxSize=maxSize or 7,Frame=0}
549
		end
550
	end
551
end
552
553
function ShatterFX(duration,color,scale,cframe)
554
	local rng = Instance.new("Part", char)
555
	rng.Anchored = true
556
	rng.BrickColor = color
557
	rng.CanCollide = false
558
	rng.FormFactor = 3
559
	rng.Name = "Ring"
560
	rng.Size = Vector3.new(1,1,1)
561
	rng.Transparency = 0
562
	rng.TopSurface = 0
563
	rng.BottomSurface = 0
564
	rng.CFrame = cframe * CF.fEA(M.RNG(-50, 50), M.RNG(-50, 50), M.RNG(-50, 50))
565
	local rngm = Instance.new("SpecialMesh", rng)
566
	rngm.Scale = scale
567
	rngm.MeshType = "Sphere"
568
	table.insert(Effects, {Frame = 0, Effect="Shatter", Duration = duration or 30, Part=rng, Mesh = rngm, Scale = scale,Position=rng.CFrame})
569
end
570
571
function RingFX(duration,color,scale,pos,endScale)
572
	local type = type
573
	local rng = Instance.new("Part", char)
574
	rng.Anchored = true
575
	rng.BrickColor = color
576
	rng.CanCollide = false
577
	rng.FormFactor = 3
578
	rng.Name = "Ring"
579
	rng.Size = Vector3.new(1,1,1)
580
	rng.Transparency = 0
581
	rng.TopSurface = 0
582
	rng.BottomSurface = 0
583
	rng.CFrame = pos
584
	local rngm = Instance.new("SpecialMesh", rng)
585
	rngm.MeshId = "rbxassetid://3270017"
586
	rngm.Scale = scale
587
	table.insert(Effects, {Frame = 0, Effect="Sphere", Duration = duration or 30, Part=rng, Mesh = rngm, Scale = scale, EndScale = endScale or scale*2, Position = pos})
588
	return rng
589
end
590
591
function Shoot(StartCF,EndCF,Spread,Speed,Num,Color,Drop,MinDamage,MaxDamage)
592
	local Spread = V3.N(M.RNG(-Spread,Spread),M.RNG(-Spread,Spread),M.RNG(-Spread,Spread))
593
	local Start = StartCF.p
594
	local End = EndCF.p
595
	local SpreadPos = End + Spread
596
	local Look = CF.N((Start + SpreadPos) / 2, SpreadPos)
597
	local Count = Num
598
	spawn(function()
599
		repeat
600
			wait()
601
			local hit, pos = workspace:findPartOnRay(Ray.new(
602
				Start,(Look.lookVector).unit * Speed		
603
			),char,false,true)
604
			local dist = (Start-pos).magnitude
605
			local yScale = dist * (Speed / (Speed/2))
606
			local aa = CF.N((Start + pos) / 2, pos) * CFrame.Angles(1.57, 0, 0)
607
			LaserFX(25,Color,aa,Vector3.new(1,yScale,1),Vector3.new(-1,yScale,-1))
608
			Start = Start + Look.lookVector	* Speed
609
			Look = Look * CF.A(M.R(Drop or -1),0,0)
610
			Count = Count - 1
611
			
612
			if(hit)then
613
				Count = 0
614
				MagniDamage(pos,10,MinDamage,MaxDamage,0,'Normal')
615
			end
616
			if(Count <= 0)then
617
				local sphere = SphereFX(25,Color,Vector3.new(5,5,5),CF.N(pos),Vector3.new(15,15,15))
618
				local ring = RingFX(25,Color,Vector3.new(6,6,6),CF.N(pos) * CF.A(0,M.R(90),0)  * CF.A(M.R(M.RNG(-360,360)),M.R(M.RNG(-360,360)),M.R(M.RNG(-360,360))),Vector3.new(16,16,16))
619
			end
620
		until Count <= 0
621
	end)
622
end
623
624
-- Effect Loop
625
626
runService:BindToRenderStep("N_Effects",Enum.RenderPriority.Character.Value + 2,function()
627
	for _,data in next, Effects do
628
		local frame,effect,duration = data.Frame,data.Effect,data.Duration
629
		local transparency = (frame / duration)
630
		local opacity = 1 - transparency
631
		if(frame > duration)then
632
			Effects[_] = nil
633
		end
634
		frame = frame + 1
635
		data.Frame = frame	
636
		if(effect == 'Sphere')then
637
			local Part,Mesh,Scale,CF,eScale = data.Part,data.Mesh,data.Scale,data.Position,data.EndScale 
638
			Mesh.Scale = Mesh.Scale:lerp(eScale, transparency/6)
639
			Part.Transparency = transparency
640
			if(frame > duration)then
641
				Part:destroy()
642
			end
643
		elseif(effect == 'Shatter')then	
644
			local Part,Mesh,Scale,Position,Thingie,Thingie2,Inc = data.Part,
645
																data.Mesh,
646
																data.Scale,
647
																data.Position,
648
																(data.Thingie or 0),
649
																(data.Thingie2 or M.RNG(50, 100) / 100),
650
																(data.Inc or M.RNG() - M.RNG())
651
			Part.Transparency = transparency
652
			Position = Position * CF.N(0,Thingie2,0)
653
			Part.CFrame = Position * CF.fEA(Thingie,0,0)
654
			Thingie = Thingie + Inc
655
			
656
			data.Position = Position
657
			data.Thingie = Thingie
658
			data.Thingie2 = Thingie2
659
			data.Inc = Inc
660
		elseif(effect == 'Block')then
661
			local Part,Mesh,Scale,CF,eScale = data.Part,data.Mesh,data.Scale,data.Position,data.EndScale 
662
			Mesh.Scale = Mesh.Scale:lerp(eScale, transparency/6)
663
			Part.Transparency = transparency
664
			Part.CFrame = CF * CFrame.Angles(M.R(M.RNG(-360,360)),M.R(M.RNG(-360,360)),M.R(M.RNG(-360,360)))
665
			if(frame > duration)then
666
				Part:destroy()
667
			end
668
		end
669
	end
670
	for puddle,data in next, BloodPuddles do
671
		if(puddle.Transparency > 0.9)then
672
			BloodPuddles[puddle] = nil
673
			puddle:destroy()
674
		end
675
		data.Frame = data.Frame + 1
676
		if(data.Frame > 105)then
677
			local trans = (data.Frame-105)/30
678
			puddle.Transparency = trans
679
			if(puddle:FindFirstChild'CylinderMesh' and puddle.CylinderMesh.Scale.Z > 0)then
680
				puddle.CylinderMesh.Scale = puddle.CylinderMesh.Scale-V3.N(.1,0,.1)
681
			end
682
		else
683
			puddle.Transparency = 0
684
		end
685
	end
686
end)
687
688
689
-- Nametag
690-
local naeeym2 = Instance.new("BillboardGui",char)
690+
691-
naeeym2.AlwaysOnTop = true
691+
692-
naeeym2.Size = UDim2.new(5,35,2,35)
692+
693-
naeeym2.StudsOffset = Vector3.new(0,1,0)
693+
694-
naeeym2.Adornee = head
694+
695-
naeeym2.Name = "Name"
695+
696-
naeeym2.PlayerToHideFrom = plr
696+
697-
local tecks2 = Instance.new("TextLabel",naeeym2)
697+
698-
tecks2.BackgroundTransparency = 1
698+
699-
tecks2.TextScaled = true
699+
700-
tecks2.BorderSizePixel = 0
700+
701-
tecks2.Text = "Psychopathic Murderer"
701+
702-
tecks2.Font = "Antique"
702+
703-
tecks2.TextSize = 30
703+
704-
tecks2.TextStrokeTransparency = 0
704+
705-
tecks2.TextColor3 = Color3.new(0.8,0,0)
705+
706-
tecks2.TextStrokeColor3 = Color3.new(0,0,0)
706+
707-
tecks2.Size = UDim2.new(1,0,0.5,0)
707+
708-
tecks2.Parent = naeeym2
708+
709
		local twitchVal = M.RNG(1,100)
710
	end
711
	if(twitchVal == 1 and not Twitch and time()-lastTwitch > 1.5)then
712
		Twitch = true
713
		lastTwitch = time()
714
	end
715
	if(time()-lastTwitch > M.RNG(50,100)/100)then
716
		Twitch = false
717
	end
718
	if(Decal.Transparency <= 0.7)then
719
		if(time()-BloodTime > .25)then
720-
		local name = M.RNG(1,45)
720+
721-
		if(name == 1)then
721+
722-
			tecks2.Text = "M#rd@r3r"
722+
723-
		elseif(name == 2)then
723+
724-
			tecks2.Text = "Murder"
724+
725-
		elseif(name == 3)then
725+
726-
			tecks2.Text = "Murderrrrrrrr"
726+
727-
		elseif(M.RNG(1,chance) == math.ceil(chance/2))then
727+
728-
			tecks2.Text = "Hahahaahahhahahahahahahahaaha"
728+
729
			Music.Pitch = 0.85
730-
			tecks2.Text = "Murderer"
730+
731
		WalkSpeed = 16
732-
		if(tecks2.Text~="Hahahaahahhahahahahahahahaaha")then
732+
733-
			if(Bloodied > BloodlustBlood)then
733+
734-
				tecks2.Text = "Bloodlustful "..tecks2.Text
734+
735
		end
736-
				tecks2.Text = "Psychopathic "..tecks2.Text
736+
737
	end
738
	hum.WalkSpeed = WalkSpeed
739-
		if(Twitch)then
739+
740-
			tecks2.Text = tecks2.Text:gsub("",string.char(M.RNG(1,127)))
740+
741
		Music.Pitch = 0.65
742
		NK.C1 = clerp(NK.C1,CF.A(-M.R(15+M.RNG(0,25)),-M.R(25+M.RNG(-15,15)/15),0),.5)
743
	else
744
		NK.C1 = clerp(NK.C1,CF.N(),.3)
745
	end
746
747
	local wsVal = 5 / (hum.WalkSpeed / 16)
748
	if(CheckState(root) == 'Walk')then
749
		-- Walk anim
750
		change = 2/3
751
		RH.C1 = clerp(RH.C1,CF.N(0,.975-.1*M.S(sine/wsVal),-.1*M.C(sine/9))	*CF.A(M.R(25+35*M.C(sine/wsVal)),0,0),.6)
752
		LH.C1 = clerp(LH.C1,CF.N(0,.975+.1*M.S(sine/wsVal),.1*M.C(sine/9))*CF.A(M.R(25+35*-M.C(sine/wsVal)),0,0),.6)
753
	else
754
		RH.C1 = clerp(RH.C1,CF.N(0,1,0),.3)
755
		LH.C1 = clerp(LH.C1,CF.N(0,1,0),.3)
756
	end
757
	if(neutralAnims)then
758
		if(CheckState(root) == 'Idle')then
759
			-- Idle anim
760
			NK.C0 = clerp(NK.C0,HD*CF.N(0,.1,-.25)*CF.A(M.R(-25),0,0),.1)
761
			RH.C0 = clerp(RH.C0,CF.N(.5,-1-.1*M.C(time()),0),.1)
762
			LH.C0 = clerp(LH.C0,CF.N(-.5,-1-.1*M.C(time()),0),.1)
763
			RJ.C0 = clerp(RJ.C0,CF.N(0,0+.1*M.C(time()),0),.1)
764
			LS.C0 = clerp(LS.C0,CF.N(-1.5,.5,0)*CF.A(0,0,M.R(-12)-.1*M.C(time())),.1)
765
			RS.C0 = clerp(RS.C0,CF.N(1.5,.5,0)*CF.A(0,0,M.R(6+6*M.C(time()))),.1)
766
		elseif(CheckState(root) == 'Walk')then
767
			NK.C0 = clerp(NK.C0,HD*CF.N(0,.1,-.25)*CF.A(M.R(-25),0,0),.1)
768
			RJ.C0 = clerp(RJ.C0,CF.N(0,0+.1*M.C(sine/(wsVal/2)),0),.3)
769
			RH.C0 = clerp(RH.C0,RHD*CF.N(0,0-.1*M.C(sine/(wsVal/2)),0),.3)
770
			LH.C0 = clerp(LH.C0,LHD*CF.N(0,0-.1*M.C(sine/(wsVal/2)),0),.3)
771
			RS.C0 = clerp(RS.C0,RSD*CF.A(M.R(0+25*M.C(sine/wsVal)),0,0),.3)
772
			LS.C0 = clerp(LS.C0,LSD*CF.A(M.R(0+25*-M.C(sine/wsVal)),0,0),.3)
773
		elseif(CheckState(root) == 'Jump')then
774
			RJ.C0 = clerp(RJ.C0,CFrame.new(3.20309751e-13, 0.00628912123, 1.38760515e-06, 0.999999225, 5.09317033e-11, 0, -4.38656264e-11, 0.999980271, -0.00628618058, 0, 0.00628617639, 0.999979496),0.1)
775
			LH.C0 = clerp(LH.C0,CFrame.new(-0.496501386, -0.990816772, 0.0216115266, 0.999877751, -4.38656264e-11, 0.0156119959, -9.81397825e-05, 0.999980271, 0.0062854127, -0.0156116877, -0.00628618058, 0.999858022),0.1)
776
			RH.C0 = clerp(RH.C0,CFrame.new(0.951985836, -0.878642321, 0.00768248737, 0.807899356, 0.589113057, 0.0156119959, -0.58925271, 0.80792439, 0.0062854127, -0.0089104902, -0.0142773949, 0.999858022),0.1)
777
			LS.C0 = clerp(LS.C0,CFrame.new(-1.46314824, 0.504732132, -0.0780580789, 0.996319413, 0.084279716, 0.0156119959, -0.0843861476, 0.996413291, 0.0062854127, -0.0150262676, -0.00757971918, 0.999858022),0.1)
778
			RS.C0 = clerp(RS.C0,CFrame.new(1.41746354, 0.490631759, 0.0355827622, 0.983217537, -0.181765735, 0.0156119959, 0.181687862, 0.98333621, 0.0062854127, -0.0164943133, -0.0033434222, 0.999858022),0.1)
779
			NK.C0 = clerp(NK.C0,HD*CF.N(0,.1,-.25)*CF.A(M.R(-25),0,0),.1)
780
		elseif(CheckState(root) == 'Fall')then
781
			RJ.C0 = clerp(RJ.C0,CFrame.new(3.20309751e-13, 0.00628912123, 1.38760515e-06, 0.999999225, 5.09317033e-11, 0, -4.38656264e-11, 0.999980271, -0.00628618058, 0, 0.00628617639, 0.999979496),0.1)
782
			LH.C0 = clerp(LH.C0,CFrame.new(-0.496501386, -0.990816772, 0.0216115266, 0.999877751, -4.38656264e-11, 0.0156119959, -9.81397825e-05, 0.999980271, 0.0062854127, -0.0156116877, -0.00628618058, 0.999858022),0.1)
783
			RH.C0 = clerp(RH.C0,CFrame.new(0.951985836, -0.878642321, 0.00768248737, 0.807899356, 0.589113057, 0.0156119959, -0.58925271, 0.80792439, 0.0062854127, -0.0089104902, -0.0142773949, 0.999858022),0.1)
784
			LS.C0 = clerp(LS.C0,CFrame.new(-1.39294851, 0.589963198, 0.0808894783, 0.976439953, 0.21526964, 0.0149493031, -0.210034028, 0.932227492, 0.294682175, 0.0494999699, -0.29087922, 0.955478072),0.1)
785
			RS.C0 = clerp(RS.C0,CFrame.new(1.29713261, 0.551729858, 0.0523524433, 0.920970082, -0.389345646, 0.0149465948, 0.368037164, 0.88187921, 0.294682831, -0.127914533, -0.265893161, 0.955477953),0.1)
786
			NK.C0 = clerp(NK.C0,HD*CF.N(0,.1,-.25)*CF.A(M.R(-25),0,0),.1)
787
		end
788
	end
789
end)
790
791
-- Died event
792
793
hum.Died:connect(function() -- When the player dies
794
	UnbindLoops() -- Unbind all of the loops used
795
end)
796
797
798
-- Everything else
799
800
801
function GetTorso(char)
802
	return char:FindFirstChild'Torso' or char:FindFirstChild'UpperTorso' or char:FindFirstChild'LowerTorso' or char:FindFirstChild'HumanoidRootPart'
803
end
804
805
function Projectile(what)
806
	what.Archivable = true
807
	local projectile = what:Clone()
808
	projectile.Parent = char
809
	projectile.Transparency = 0
810
	projectile.Name = "Projectile"
811
	projectile.CFrame = CFrame.new(head.CFrame.p,mouse.Hit.p)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(-90))
812
	projectile.Anchored = true
813
	projectile.Velocity = Vector3.new(0,0,0)
814
	projectile.RotVelocity = Vector3.new(0,0,0)
815
	projectile.Anchored = false
816
	--character.Head.Position).unit
817
	local Velocity = (mouse.Hit.p-head.CFrame.p).unit
818
	projectile.Velocity = Velocity*160
819
	local force = Instance.new("BodyForce")
820
	force.force = Vector3.new(0, 196.2, 0) * projectile:GetMass() * .8
821
	force.Parent = projectile
822
	local touchie
823
	coroutine.wrap(function()
824
		repeat wait() KnifePosition = projectile.CFrame until not projectile or not projectile.Parent or not ThrownKnife
825
		projectile:destroy()
826
		print'knifu'
827
		ThrownKnife = false
828
		Attack = false
829
		Handle.Transparency = 0
830
		KnifePosition = CF.N(0,0,0)
831
	end)()
832
	touchie = projectile.Touched:connect(function(h)
833
		if(not char:IsAncestorOf(h))then
834
			force:destroy()
835
			projectile.Velocity = V3.N(0,0,0)
836
			touchie:disconnect()
837
			local rag = Ragdoll(h.Parent)
838
			swait()
839
			local name = (h.Name == 'Head' and 'FakeHead' or h.Name)
840
			local asd = CF.N((projectile.CFrame.p + h.CFrame.p) * .5)
841
			
842
			if(not h.Parent and rag and rag:FindFirstChild(name,true))then h = rag:FindFirstChild(name,true)  end
843
			local C0 = projectile.CFrame:inverse() * asd
844
			if(not h.Anchored)then
845
				local w = NewInstance('Weld',char,{Part0=projectile,Part1=h,C0 = C0,C1=h.CFrame:inverse() * asd})
846
			else
847
				projectile.Anchored = true
848
			end
849
			if(rag)then
850
				Bloodied = Bloodied + 30
851
				local bloodie = NewInstance('Part',rag,{Anchored = false,CanCollide=false,Size=V3.N(.02,.02,.02),Transparency=1})
852
				local w = NewInstance('Weld',rag,{Part0=bloodie,Part1=h,C0 = C0,C1=h.CFrame:inverse() * asd})
853
				coroutine.wrap(function() repeat wait(M.RNG(2,10)/100)
854
					local spread = V3.N(M.RNG(-85,85)/100,M.RNG(-85,85)/100,M.RNG(-85,85)/100)
855
					BloodDrop(bloodie.CFrame*CF.N(0,.02,0).p,bloodie.CFrame * CF.N(0,100,0).p+spread,10)
856
				until not bloodie or not bloodie.Parent or not rag or not rag.Parent end)()
857
				repeat wait() until not ThrownKnife
858
				delay(5, function()
859
					if(rag)then
860
						rag:destroy()
861
					end
862
				end)
863
			end
864
		end
865
	end)
866
end
867
function Decapitate(target)
868
	if(target and target ~= char and GetTorso(target) and target:FindFirstChildOfClass'Humanoid' and target:FindFirstChildOfClass'Humanoid'.Name ~= 'Corpse' and target:FindFirstChildOfClass'Humanoid'.Health > 0 and target:FindFirstChild'Head')then
869
		--BloodPuddle(start,direction,range,maxSize)
870
		Bloodied = Bloodied + 60
871
		target.Archivable = true
872
		local Clone = target:Clone()
873
		target:destroy()	
874
		Clone.Parent = workspace
875
		local FakeHead = Clone.Head:Clone()
876
		Clone.Head:destroy()
877
		Clone:FindFirstChildOfClass'Humanoid'.PlatformStand = true
878
		Clone.Name = 'Ragdoll of '..target.Name
879
		FakeHead.Name = 'FakeHead'
880
		FakeHead.Parent = Clone
881
		Clone:FindFirstChildOfClass'Humanoid'.Name = 'Corpse'
882
		local head = FakeHead
883
		local torso = GetTorso(Clone)
884
		local cut = FX(756072587)
885
		local bv = Instance.new("BodyVelocity",torso) 
886
		bv.maxForce = Vector3.new(1e9, 1e9, 1e9)
887
		bv.velocity = CF.N(Handle.Position,torso.Position).lookVector*20
888
		bv.Name = "MOVE"
889
		game:service'Debris':AddItem(bv,0.2)
890
		local bv = Instance.new("BodyVelocity",FakeHead) 
891
		bv.maxForce = Vector3.new(1e9, 1e9, 1e9)
892
		bv.velocity = CF.N(Handle.Position,FakeHead.Position).lookVector*20
893
		bv.Name = "MOVE"
894
		game:service'Debris':AddItem(bv,0.2)
895
		
896
		game:service'Debris':AddItem(Clone,10)
897
		for i = 1, 500 do
898
			wait(M.RNG(2,10)/100)
899
			BloodDrop(torso.CFrame * CF.N(0,torso.Size.Y/2,0).p,(torso.CFrame * CF.N(0,torso.Size.Y,0)).p,10)
900
			BloodDrop(head.CFrame * CF.N(0,-.25,0).p,(head.CFrame * CF.N(0,-.7,0)).p,5)
901
			if not head or not torso or not Clone or not Clone.Parent or not Clone.Parent.Parent then break end
902
		end
903
	end
904
end
905
906
function Ragdoll(target,bloodPos)
907
	if(target and target ~= char and GetTorso(target) and target:FindFirstChildOfClass'Humanoid' and target:FindFirstChildOfClass'Humanoid'.Name ~= 'Corpse' and target:FindFirstChildOfClass'Humanoid'.Health > 0 and target:FindFirstChild'Head')then
908
		--BloodPuddle(start,direction,range,maxSize)
909
		target.Archivable = true
910
		local Clone = target:Clone()
911
		local torso = GetTorso(Clone)
912
		target:destroy()	
913
		Clone.Parent = workspace
914
		Clone:FindFirstChildOfClass'Humanoid'.PlatformStand = true
915
		Clone.Name = 'Ragdoll of '..target.Name
916
		Clone:FindFirstChildOfClass'Humanoid'.Name = 'Corpse'
917
		local fHead = Clone.Head:Clone()
918
		Clone.Head:destroy()
919
		fHead.Name = 'FakeHead'
920
		fHead.Parent = Clone
921
		NewInstance("Motor6D",torso,{Name='Neck',Part0=torso,Part1=fHead,C0 = HD})
922
		return Clone;
923
	end
924
end
925
926
function DealDamage(who,minDam,maxDam,Knock,Type)
927
	if(who)then
928
		local hum = who:FindFirstChildOfClass'Humanoid'
929
		local Damage = M.RNG(minDam,maxDam)
930
		local canHit = true
931
		if(hum)then
932
			for _, p in pairs(Hit) do
933
				if p[1] == hum then
934
					if(time() - p[2] < 0.1) then
935
						canHit = false
936
					else
937
						Hit[_] = nil
938
					end
939
				end
940
			end
941
			if(canHit)then
942
				if(hum.Health >= math.huge)then
943
					who:BreakJoints()
944
				else
945
					local player = S.Players:GetPlayerFromCharacter(who)
946
					if(not player or not Teamed[player])then
947
						if(Type == "Fire")then
948
							--idk..
949
						else
950
							local  c = Instance.new("ObjectValue",hum)
951
							c.Name = "creator"
952
							c.Value = plr
953
							game:service'Debris':AddItem(c,0.35)
954
							hum.Health = hum.Health - Damage
955
							if(Type == 'Knockback' and GetTorso(who))then
956
								local angle = GetTorso(who).Position - root.Position + Vector3.new(0, 0, 0).unit
957
								local body = NewInstance('BodyVelocity',GetTorso(who),{
958
									P = 500,
959
									maxForce = V3.N(math.huge,0,math.huge),
960
									velocity = root.CFrame.lookVector * Knock + root.Velocity / 1.05
961
								})
962
								game:service'Debris':AddItem(body,.5)	
963
							elseif(Type == 'Knockdown' and GetTorso(who))then
964
								local rek = GetTorso(who)
965
								print(rek)
966
								hum.PlatformStand = true
967
								delay(1,function()
968
									hum.PlatformStand = false
969
								end)
970
								local angle = (GetTorso(who).Position - (root.Position + Vector3.new(0, 0, 0))).unit
971
								local bodvol = NewInstance("BodyVelocity",rek,{
972
									velocity = angle * Knock,
973
									P = 5000,
974
									maxForce = Vector3.new(8e+003, 8e+003, 8e+003),
975
								})
976
								local rl = NewInstance("BodyAngularVelocity",rek,{
977
									P = 3000,
978
									maxTorque = Vector3.new(500000, 500000, 500000) * 50000000000000,
979
									angularvelocity = Vector3.new(math.random(-10, 10), math.random(-10, 10), math.random(-10, 10)),
980
								})
981
								game:GetService("Debris"):AddItem(bodvol, .5)
982
								game:GetService("Debris"):AddItem(rl, .5)
983
							end
984
						end
985
					end
986
				end
987
				table.insert(Hit,{hum,time()})
988
			end
989
		end
990
	end
991
end
992
993
function MagniDamage(pos,radius,mindamage,maxdamage,knockback,damagetype)
994
	local Recursive
995
	Recursive = function(whom)	
996
		for _,c in next, whom:children() do
997
			local hum = c:FindFirstChildOfClass'Humanoid'
998
			local hed = c:FindFirstChild'Torso' or c:FindFirstChild'UpperTorso' or c:FindFirstChild'LowerTorso'
999
			if(hum and hed)then
1000
				local mag = (hed.CFrame.p - pos).magnitude
1001
				if(mag <= radius and c ~= char)then
1002
					DealDamage(c,mindamage,maxdamage,knockback,damagetype)
1003
				end
1004
			end
1005
			Recursive(c)
1006
		end
1007
	end
1008
	Recursive(workspace)
1009
end
1010
1011
function MagniHeal(pos,radius,heal,needsTeamed)
1012
	for _,v in next, workspace:GetDescendants() do
1013
		local player = S.Players:GetPlayerFromCharacter(v)
1014
		local hum = v:FindFirstChildOfClass'Humanoid'
1015
		if(hum and v:IsA'Model')then
1016
			if(not needsTeamed or player and (not plr.Neutral and player.TeamColor == plr.TeamColor))then
1017
				local pp = v.PrimaryPart or v:FindFirstChild'Torso' or v:FindFirstChild'UpperTorso' or v:FindFirstChild'LowerTorso'
1018
				if(pp and (pp.CFrame.p-pos).magnitude <= radius)then
1019
					hum.Health = hum.Health + heal
1020
				end
1021
			end
1022
		end
1023
	end	
1024
end
1025
1026
1027
Debounces:New('how2use',1) -- name, cooldown
1028
1029
function TestDebounce()
1030
	if(Debounces:Get('how2use').Usable)then
1031
		-- code
1032
		Debounces:Get('how2use'):Use() -- use it up
1033
	end
1034
end
1035
1036
function Throw()
1037
	Attack = true
1038
	neutralAnims = false	
1039
	for i = 0, 0.5, 0.01 do
1040
		swait()
1041
		RJ.C0 = clerp(RJ.C0,CFrame.new(3.20297608e-13, 0.00628888281, 1.38610631e-06, 0.999999225, 5.09317033e-11, 0, -4.38656264e-11, 0.999980271, -0.00628618058, 0, 0.00628617639, 0.999979496),i)
1042
		LH.C0 = clerp(LH.C0,CFrame.new(-0.496501386, -0.990817726, 0.0216115303, 0.999877751, -4.38656264e-11, 0.0156119959, -9.81397825e-05, 0.999980271, 0.0062854127, -0.0156116877, -0.00628618058, 0.999858022),i)
1043
		RH.C0 = clerp(RH.C0,CFrame.new(0.498532087, -0.990986288, 0.0154690417, 0.999877751, -4.38656264e-11, 0.0156119959, -9.81397825e-05, 0.999980271, 0.0062854127, -0.0156116877, -0.00628618058, 0.999858022),i)
1044
		LS.C0 = clerp(LS.C0,CFrame.new(-1.46255744, 0.505245924, -0.00366198737, 0.996415496, 0.083136864, 0.0156119959, -0.0832431838, 0.996509492, 0.0062854127, -0.0150349522, -0.007562479, 0.999858022),i)
1045
		RS.C0 = clerp(RS.C0,CFrame.new(1.45461845, 0.798322797, -0.0251020491, 0.992853343, 0.114112578, -0.0349269882, 0.119324632, -0.944872856, 0.304921478, 0.00179381669, -0.306909949, -0.951736629),i)
1046
		NK.C0 = clerp(NK.C0,HD*CF.N(0,.1,-.25)*CF.A(M.R(-25),0,0),i)
1047
	end
1048
	wait(.25)
1049
	for i = 0, 0.5, 0.1 do
1050
		swait()
1051
		RJ.C0 = clerp(RJ.C0,CFrame.new(3.20297608e-13, 0.00628888281, 1.38610631e-06, 0.999999225, 5.09317033e-11, 0, -4.38656264e-11, 0.999980271, -0.00628618058, 0, 0.00628617639, 0.999979496),i)
1052
		LH.C0 = clerp(LH.C0,CFrame.new(-0.496501386, -0.990817726, 0.0216115303, 0.999877751, -4.38656264e-11, 0.0156119959, -9.81397825e-05, 0.999980271, 0.0062854127, -0.0156116877, -0.00628618058, 0.999858022),i)
1053
		RH.C0 = clerp(RH.C0,CFrame.new(0.498532087, -0.990986288, 0.0154690417, 0.999877751, -4.38656264e-11, 0.0156119959, -9.81397825e-05, 0.999980271, 0.0062854127, -0.0156116877, -0.00628618058, 0.999858022),i)
1054
		LS.C0 = clerp(LS.C0,CFrame.new(-1.46255744, 0.505245924, -0.00366198737, 0.996415496, 0.083136864, 0.0156119959, -0.0832431838, 0.996509492, 0.0062854127, -0.0150349522, -0.007562479, 0.999858022),i)
1055
		RS.C0 = clerp(RS.C0,CFrame.new(1.47101879, 0.662136793, -0.0487503409, 0.99285394, -0.0636505187, 0.100939959, 0.119318806, 0.516643643, -0.847845852, 0.00181584992, 0.853831172, 0.520546317),i)
1056
		NK.C0 = clerp(NK.C0,HD*CF.N(0,.1,-.25)*CF.A(M.R(-25),0,0),i)
1057
	end
1058
	ThrownKnife = true
1059
	Handle.Transparency = 1
1060
	Projectile(Handle)
1061
	Decal.Transparency = 1
1062
	wait(.5)
1063
	neutralAnims = true
1064
end
1065
1066
function ClickCombo()
1067
	Attack = true
1068
	neutralAnims = false
1069
	for i = 0, 1, 0.1 do
1070
		swait()
1071
		RJ.C0 = clerp(RJ.C0,CFrame.new(-0.0288643427, 0.00628663553, 0.0650177076, 0.795387626, -0.00380940945, -0.606089413, 0, 0.99998033, -0.0062851035, 0.606101394, 0.00499909231, 0.79537189),0.3)
1072
		LH.C0 = clerp(LH.C0,CFrame.new(-0.636930108, -0.990812421, 0.0222794991, 0.785828114, 0, 0.618445039, -0.00388699071, 0.99998033, 0.00493901037, -0.61843282, -0.0062851035, 0.785812557),0.3)
1073
		RH.C0 = clerp(RH.C0,CFrame.new(0.52050519, -0.991459012, -0.0594233908, 0.785828114, 0, 0.618445039, -0.00388699071, 0.99998033, 0.00493901037, -0.61843282, -0.0062851035, 0.785812557),0.3)
1074
		LS.C0 = clerp(LS.C0,CFrame.new(-1.3529017, 0.445256352, -0.140841246, 0.946949303, 0.32137382, 0.00244083256, -0.0499903522, 0.154793665, -0.986681402, -0.317471415, 0.934215069, 0.162647352),0.3)
1075
		RS.C0 = clerp(RS.C0,CFrame.new(1.27564776, 0.466243029, 0.284559131, 0.129886121, -0.885094404, -0.446920156, 0.991494656, 0.112184346, 0.0659796819, -0.00826080143, -0.451688766, 0.892137289),0.3)
1076
		NK.C0 = clerp(NK.C0,CFrame.new(-0.0194674022, 1.49851632, -0.0826113448, 0.795387626, -0.0348471925, 0.605098784, -0.00380940945, 0.998038769, 0.0624837019, -0.606089413, -0.0520038158, 0.793694794),0.3)	
1077
	end
1078
	local swoosh = coroutine.wrap(FX)(1306070008,1,M.RNG(95,125)/100)
1079
	Handle.CanCollide = true
1080
	local touched = Handle.Touched:connect(function(t)
1081
		Decapitate(t.Parent)
1082
	end)
1083
	for i = 0, 1, 0.05 do
1084
		swait()
1085
		if((root.Velocity * V3.N(1, 0, 1)).magnitude > 0.3 and WalkSpeed == 16)then
1086
			root.CFrame = root.CFrame*CF.N(0,0,-1)
1087
		end
1088
		RJ.C0 = clerp(RJ.C0,CFrame.new(-0.0220096968, 0.00628673984, -0.0231647622, 0.894043028, 0.00281593157, 0.447972536, 0, 0.99998033, -0.00628582342, -0.447981387, 0.00561979692, 0.894025445),0.3)
1089
		LH.C0 = clerp(LH.C0,CFrame.new(-0.526260316, -0.99155879, -0.0964359194, 0.900927901, 0, -0.433968931, 0.00272785197, 0.99998033, 0.00566307362, 0.433960348, -0.00628582342, 0.900910139),0.3)
1090
		RH.C0 = clerp(RH.C0,CFrame.new(0.494664222, -0.99110806, -0.00358221633, 0.900927901, 0, -0.433968931, 0.00272785197, 0.99998033, 0.00566307362, 0.433960348, -0.00628582342, 0.900910139),0.3)
1091
		LS.C0 = clerp(LS.C0,CFrame.new(-1.35400736, 0.608840644, 0.230960667, 0.920430303, 0.226487458, 0.318608999, -0.244053409, 0.969633698, 0.0157693904, -0.305362433, -0.092272222, 0.947755098),0.3)
1092
		RS.C0 = clerp(RS.C0,CFrame.new(1.13865554, 0.477464586, -0.481917799, 0.129889846, 0.658138037, 0.7416085, 0.99149406, -0.0799742565, -0.102683425, -0.0082702823, 0.748637795, -0.662927747),0.3)
1093
		NK.C0 = clerp(NK.C0,CFrame.new(0.0115462095, 1.49914026, 0.0166844055, 0.894043028, 0.0257562418, -0.447240323, 0.00281593157, 0.998003125, 0.0631033778, 0.447972536, -0.0576765276, 0.892185211),0.3)
1094
		HW.C0 = clerp(HW.C0,CFrame.new(0.0201188885, -1.41869056, -0.559928358, -1.8030405e-06, -3.1888485e-06, 1.00000012, -0.698006153, -0.716091871, -3.54647636e-06, 0.716091871, -0.698006153, -9.38773155e-07)*BeheadHold,0.3)
1095
	end
1096
	wait(.1)
1097
	Handle.CanCollide = false
1098
	touched:disconnect()
1099
	coroutine.wrap(function()
1100
		for i = 0, 1, 0.1 do
1101
			swait()
1102
			HW.C0 = Hold
1103
		end
1104
	end)()
1105
	neutralAnims = true
1106
	Attack = false
1107
end
1108
function AttemptGetKnife()
1109
	if((torso.CFrame.p-KnifePosition.p).magnitude < 6)then
1110
		ThrownKnife = false
1111
	end
1112
end
1113
mouse.Button1Down:connect(function()
1114
	if(not ThrownKnife)then 
1115
		if(Attack)then return end
1116
		ClickCombo() 
1117
	else
1118
		AttemptGetKnife()
1119
	end
1120
end)
1121
mouse.KeyDown:connect(function(k)
1122
	if(Attack)then return end	
1123
	if(k == "t")then
1124
		Throw()
1125
	elseif(k == 'm')then
1126
		if(Music.Volume ~= 0)then
1127
			Music.Volume =0
1128
		else
1129
			Music.Volume = Sounds.Psycho.Volume
1130
		end
1131
	elseif(k == ';')then
1132
		if(Mesh.MeshId ~= 'http://www.roblox.com/asset/?id=123248347')then
1133
			Mesh.MeshId = 'http://www.roblox.com/asset/?id=123248347'
1134
			Mesh.TextureId = 'http://www.roblox.com/asset/?id=123248449'
1135
			Mesh.Scale = V3.N(.4,.4,.4)
1136
			Hold = CF.N(0,-1,-1.35)*CF.A(M.R(-90),0,0)
1137
			BeheadHold = CF.N(0,.5,0)*CF.A(0,M.R(-90),0)
1138
		else
1139
			Mesh.MeshId='rbxassetid://471401475'
1140
			Mesh.TextureId='rbxassetid://471401476'
1141
			Mesh.Scale = V3.N(.01,.01,.01)
1142
			Hold = CF.N(0,-1,-1)*CF.A(M.R(-90),M.R(90),0)
1143
			BeheadHold = CF.A(0,0,0)
1144
		end
1145
		HW.C0 = Hold
1146
	end
1147
end)