View difference between Paste ID: 1Ls1KQLZ and Jfb27M5e
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 plr = S.Players.LocalPlayer
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 BloodColor = BrickColor.new'Maroon'
68+
        local Hit,Target
69-
local BloodMaterial = Enum.Material.Granite
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)
691
naeeym2.AlwaysOnTop = true
692
naeeym2.Size = UDim2.new(5,35,2,35)
693
naeeym2.StudsOffset = Vector3.new(0,1,0)
694
naeeym2.Adornee = head
695
naeeym2.Name = "Name"
696
naeeym2.PlayerToHideFrom = plr
697
local tecks2 = Instance.new("TextLabel",naeeym2)
698
tecks2.BackgroundTransparency = 1
699
tecks2.TextScaled = true
700
tecks2.BorderSizePixel = 0
701
tecks2.Text = "Psychopathic Murderer"
702
tecks2.Font = "Antique"
703
tecks2.TextSize = 30
704
tecks2.TextStrokeTransparency = 0
705
tecks2.TextColor3 = Color3.new(0.8,0,0)
706
tecks2.TextStrokeColor3 = Color3.new(0,0,0)
707
tecks2.Size = UDim2.new(1,0,0.5,0)
708
tecks2.Parent = naeeym2
709
710
coroutine.wrap(function()
711
	while true do
712
		swait(15)
713
		hum.Health = hum.Health + 15
714
		local chance = 200
715
		if(Bloodied/4 > 25)then
716
			chance = Bloodied/4
717
		elseif(Bloodied/2 ~= 0)then
718
			chance = 25
719
		end
720
		local name = M.RNG(1,45)
721
		if(name == 1)then
722
			tecks2.Text = "M#rd@r3r"
723
		elseif(name == 2)then
724
			tecks2.Text = "Murder"
725
		elseif(name == 3)then
726
			tecks2.Text = "Murderrrrrrrr"
727
		elseif(M.RNG(1,chance) == math.ceil(chance/2))then
728
			tecks2.Text = "Hahahaahahhahahahahahahahaaha"
729
		else
730
			tecks2.Text = "Murderer"
731
		end
732
		if(tecks2.Text~="Hahahaahahhahahahahahahahaaha")then
733
			if(Bloodied > BloodlustBlood)then
734
				tecks2.Text = "Bloodlustful "..tecks2.Text
735
			else
736
				tecks2.Text = "Psychopathic "..tecks2.Text
737
			end
738
		end
739
		if(Twitch)then
740
			tecks2.Text = tecks2.Text:gsub("",string.char(M.RNG(1,127)))
741
		end
742
	end
743
end)()
744
-- Animation Loop
745
runService:BindToRenderStep("N_Animations",Enum.RenderPriority.Character.Value + 1,function()
746
	sine=sine+change
747
	if(not ThrownKnife)then Decal.Transparency = 1-(Bloodied/150) end
748
	local twitchVal = M.RNG(1,400)
749
	if(Bloodied >= BloodlustBlood)then
750
		local twitchVal = M.RNG(1,100)
751
	end
752
	if(twitchVal == 1 and not Twitch and time()-lastTwitch > 1.5)then
753
		Twitch = true
754
		lastTwitch = time()
755
	end
756
	if(time()-lastTwitch > M.RNG(50,100)/100)then
757
		Twitch = false
758
	end
759
	if(Decal.Transparency <= 0.7)then
760
		if(time()-BloodTime > .25)then
761
			if(not ThrownKnife)then
762
				BloodDrop((Handle.CFrame*CF.N(0,1.5,0)).p,(CF.N(Handle.CFrame.p)*CF.N(0,-25,0)).p,8)
763
				BloodTime = time()
764
				Bloodied = Bloodied-1
765
			end
766
		end
767
	end
768
	if(Bloodied > BloodlustBlood)then
769
		if(not Twitch)then
770
			Music.Pitch = 0.85
771
		end
772
		WalkSpeed = 16
773
	else
774
		if(not Twitch)then
775
			Music.Pitch = 1
776
		end
777
		WalkSpeed = 6
778
	end
779
	hum.WalkSpeed = WalkSpeed
780
781
	if(Twitch)then
782
		Music.Pitch = 0.65
783
		NK.C1 = clerp(NK.C1,CF.A(-M.R(15+M.RNG(0,25)),-M.R(25+M.RNG(-15,15)/15),0),.5)
784
	else
785
		NK.C1 = clerp(NK.C1,CF.N(),.3)
786
	end
787
788
	local wsVal = 5 / (hum.WalkSpeed / 16)
789
	if(CheckState(root) == 'Walk')then
790
		-- Walk anim
791
		change = 2/3
792
		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)
793
		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)
794
	else
795
		RH.C1 = clerp(RH.C1,CF.N(0,1,0),.3)
796
		LH.C1 = clerp(LH.C1,CF.N(0,1,0),.3)
797
	end
798
	if(neutralAnims)then
799
		if(CheckState(root) == 'Idle')then
800
			-- Idle anim
801
			NK.C0 = clerp(NK.C0,HD*CF.N(0,.1,-.25)*CF.A(M.R(-25),0,0),.1)
802
			RH.C0 = clerp(RH.C0,CF.N(.5,-1-.1*M.C(time()),0),.1)
803
			LH.C0 = clerp(LH.C0,CF.N(-.5,-1-.1*M.C(time()),0),.1)
804
			RJ.C0 = clerp(RJ.C0,CF.N(0,0+.1*M.C(time()),0),.1)
805
			LS.C0 = clerp(LS.C0,CF.N(-1.5,.5,0)*CF.A(0,0,M.R(-12)-.1*M.C(time())),.1)
806
			RS.C0 = clerp(RS.C0,CF.N(1.5,.5,0)*CF.A(0,0,M.R(6+6*M.C(time()))),.1)
807
		elseif(CheckState(root) == 'Walk')then
808
			NK.C0 = clerp(NK.C0,HD*CF.N(0,.1,-.25)*CF.A(M.R(-25),0,0),.1)
809
			RJ.C0 = clerp(RJ.C0,CF.N(0,0+.1*M.C(sine/(wsVal/2)),0),.3)
810
			RH.C0 = clerp(RH.C0,RHD*CF.N(0,0-.1*M.C(sine/(wsVal/2)),0),.3)
811
			LH.C0 = clerp(LH.C0,LHD*CF.N(0,0-.1*M.C(sine/(wsVal/2)),0),.3)
812
			RS.C0 = clerp(RS.C0,RSD*CF.A(M.R(0+25*M.C(sine/wsVal)),0,0),.3)
813
			LS.C0 = clerp(LS.C0,LSD*CF.A(M.R(0+25*-M.C(sine/wsVal)),0,0),.3)
814
		elseif(CheckState(root) == 'Jump')then
815
			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)
816
			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)
817
			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)
818
			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)
819
			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)
820
			NK.C0 = clerp(NK.C0,HD*CF.N(0,.1,-.25)*CF.A(M.R(-25),0,0),.1)
821
		elseif(CheckState(root) == 'Fall')then
822
			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)
823
			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)
824
			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)
825
			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)
826
			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)
827
			NK.C0 = clerp(NK.C0,HD*CF.N(0,.1,-.25)*CF.A(M.R(-25),0,0),.1)
828
		end
829
	end
830
end)
831
832
-- Died event
833
834
hum.Died:connect(function() -- When the player dies
835
	UnbindLoops() -- Unbind all of the loops used
836
end)
837
838
839
-- Everything else
840
841
842
function GetTorso(char)
843
	return char:FindFirstChild'Torso' or char:FindFirstChild'UpperTorso' or char:FindFirstChild'LowerTorso' or char:FindFirstChild'HumanoidRootPart'
844
end
845
846
function Projectile(what)
847
	what.Archivable = true
848
	local projectile = what:Clone()
849
	projectile.Parent = char
850
	projectile.Transparency = 0
851
	projectile.Name = "Projectile"
852
	projectile.CFrame = CFrame.new(head.CFrame.p,mouse.Hit.p)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(-90))
853
	projectile.Anchored = true
854
	projectile.Velocity = Vector3.new(0,0,0)
855
	projectile.RotVelocity = Vector3.new(0,0,0)
856
	projectile.Anchored = false
857
	--character.Head.Position).unit
858
	local Velocity = (mouse.Hit.p-head.CFrame.p).unit
859
	projectile.Velocity = Velocity*160
860
	local force = Instance.new("BodyForce")
861
	force.force = Vector3.new(0, 196.2, 0) * projectile:GetMass() * .8
862
	force.Parent = projectile
863
	local touchie
864
	coroutine.wrap(function()
865
		repeat wait() KnifePosition = projectile.CFrame until not projectile or not projectile.Parent or not ThrownKnife
866
		projectile:destroy()
867
		print'knifu'
868
		ThrownKnife = false
869
		Attack = false
870
		Handle.Transparency = 0
871
		KnifePosition = CF.N(0,0,0)
872
	end)()
873
	touchie = projectile.Touched:connect(function(h)
874
		if(not char:IsAncestorOf(h))then
875
			force:destroy()
876
			projectile.Velocity = V3.N(0,0,0)
877
			touchie:disconnect()
878
			local rag = Ragdoll(h.Parent)
879
			swait()
880
			local name = (h.Name == 'Head' and 'FakeHead' or h.Name)
881
			local asd = CF.N((projectile.CFrame.p + h.CFrame.p) * .5)
882
			
883
			if(not h.Parent and rag and rag:FindFirstChild(name,true))then h = rag:FindFirstChild(name,true)  end
884
			local C0 = projectile.CFrame:inverse() * asd
885
			if(not h.Anchored)then
886
				local w = NewInstance('Weld',char,{Part0=projectile,Part1=h,C0 = C0,C1=h.CFrame:inverse() * asd})
887
			else
888
				projectile.Anchored = true
889
			end
890
			if(rag)then
891
				Bloodied = Bloodied + 30
892
				local bloodie = NewInstance('Part',rag,{Anchored = false,CanCollide=false,Size=V3.N(.02,.02,.02),Transparency=1})
893
				local w = NewInstance('Weld',rag,{Part0=bloodie,Part1=h,C0 = C0,C1=h.CFrame:inverse() * asd})
894
				coroutine.wrap(function() repeat wait(M.RNG(2,10)/100)
895
					local spread = V3.N(M.RNG(-85,85)/100,M.RNG(-85,85)/100,M.RNG(-85,85)/100)
896
					BloodDrop(bloodie.CFrame*CF.N(0,.02,0).p,bloodie.CFrame * CF.N(0,100,0).p+spread,10)
897
				until not bloodie or not bloodie.Parent or not rag or not rag.Parent end)()
898
				repeat wait() until not ThrownKnife
899
				delay(5, function()
900
					if(rag)then
901
						rag:destroy()
902
					end
903
				end)
904
			end
905
		end
906
	end)
907
end
908
function Decapitate(target)
909
	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
910
		--BloodPuddle(start,direction,range,maxSize)
911
		Bloodied = Bloodied + 60
912
		target.Archivable = true
913
		local Clone = target:Clone()
914
		target:destroy()	
915
		Clone.Parent = workspace
916
		local FakeHead = Clone.Head:Clone()
917
		Clone.Head:destroy()
918
		Clone:FindFirstChildOfClass'Humanoid'.PlatformStand = true
919
		Clone.Name = 'Ragdoll of '..target.Name
920
		FakeHead.Name = 'FakeHead'
921
		FakeHead.Parent = Clone
922
		Clone:FindFirstChildOfClass'Humanoid'.Name = 'Corpse'
923
		local head = FakeHead
924
		local torso = GetTorso(Clone)
925
		local cut = FX(756072587)
926
		local bv = Instance.new("BodyVelocity",torso) 
927
		bv.maxForce = Vector3.new(1e9, 1e9, 1e9)
928
		bv.velocity = CF.N(Handle.Position,torso.Position).lookVector*20
929
		bv.Name = "MOVE"
930
		game:service'Debris':AddItem(bv,0.2)
931
		local bv = Instance.new("BodyVelocity",FakeHead) 
932
		bv.maxForce = Vector3.new(1e9, 1e9, 1e9)
933
		bv.velocity = CF.N(Handle.Position,FakeHead.Position).lookVector*20
934
		bv.Name = "MOVE"
935
		game:service'Debris':AddItem(bv,0.2)
936
		
937
		game:service'Debris':AddItem(Clone,10)
938
		for i = 1, 500 do
939
			wait(M.RNG(2,10)/100)
940
			BloodDrop(torso.CFrame * CF.N(0,torso.Size.Y/2,0).p,(torso.CFrame * CF.N(0,torso.Size.Y,0)).p,10)
941
			BloodDrop(head.CFrame * CF.N(0,-.25,0).p,(head.CFrame * CF.N(0,-.7,0)).p,5)
942
			if not head or not torso or not Clone or not Clone.Parent or not Clone.Parent.Parent then break end
943
		end
944
	end
945
end
946
947
function Ragdoll(target,bloodPos)
948
	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
949
		--BloodPuddle(start,direction,range,maxSize)
950
		target.Archivable = true
951
		local Clone = target:Clone()
952
		local torso = GetTorso(Clone)
953
		target:destroy()	
954
		Clone.Parent = workspace
955
		Clone:FindFirstChildOfClass'Humanoid'.PlatformStand = true
956
		Clone.Name = 'Ragdoll of '..target.Name
957
		Clone:FindFirstChildOfClass'Humanoid'.Name = 'Corpse'
958
		local fHead = Clone.Head:Clone()
959
		Clone.Head:destroy()
960
		fHead.Name = 'FakeHead'
961
		fHead.Parent = Clone
962
		NewInstance("Motor6D",torso,{Name='Neck',Part0=torso,Part1=fHead,C0 = HD})
963
		return Clone;
964
	end
965
end
966
967
function DealDamage(who,minDam,maxDam,Knock,Type)
968
	if(who)then
969
		local hum = who:FindFirstChildOfClass'Humanoid'
970
		local Damage = M.RNG(minDam,maxDam)
971
		local canHit = true
972
		if(hum)then
973
			for _, p in pairs(Hit) do
974
				if p[1] == hum then
975
					if(time() - p[2] < 0.1) then
976
						canHit = false
977
					else
978
						Hit[_] = nil
979
					end
980
				end
981
			end
982
			if(canHit)then
983
				if(hum.Health >= math.huge)then
984
					who:BreakJoints()
985
				else
986
					local player = S.Players:GetPlayerFromCharacter(who)
987
					if(not player or not Teamed[player])then
988
						if(Type == "Fire")then
989
							--idk..
990
						else
991
							local  c = Instance.new("ObjectValue",hum)
992
							c.Name = "creator"
993
							c.Value = plr
994
							game:service'Debris':AddItem(c,0.35)
995
							hum.Health = hum.Health - Damage
996
							if(Type == 'Knockback' and GetTorso(who))then
997
								local angle = GetTorso(who).Position - root.Position + Vector3.new(0, 0, 0).unit
998
								local body = NewInstance('BodyVelocity',GetTorso(who),{
999
									P = 500,
1000
									maxForce = V3.N(math.huge,0,math.huge),
1001
									velocity = root.CFrame.lookVector * Knock + root.Velocity / 1.05
1002
								})
1003
								game:service'Debris':AddItem(body,.5)	
1004
							elseif(Type == 'Knockdown' and GetTorso(who))then
1005
								local rek = GetTorso(who)
1006
								print(rek)
1007
								hum.PlatformStand = true
1008
								delay(1,function()
1009
									hum.PlatformStand = false
1010
								end)
1011
								local angle = (GetTorso(who).Position - (root.Position + Vector3.new(0, 0, 0))).unit
1012
								local bodvol = NewInstance("BodyVelocity",rek,{
1013
									velocity = angle * Knock,
1014
									P = 5000,
1015
									maxForce = Vector3.new(8e+003, 8e+003, 8e+003),
1016
								})
1017
								local rl = NewInstance("BodyAngularVelocity",rek,{
1018
									P = 3000,
1019
									maxTorque = Vector3.new(500000, 500000, 500000) * 50000000000000,
1020
									angularvelocity = Vector3.new(math.random(-10, 10), math.random(-10, 10), math.random(-10, 10)),
1021
								})
1022
								game:GetService("Debris"):AddItem(bodvol, .5)
1023
								game:GetService("Debris"):AddItem(rl, .5)
1024
							end
1025
						end
1026
					end
1027
				end
1028
				table.insert(Hit,{hum,time()})
1029
			end
1030
		end
1031
	end
1032
end
1033
1034
function MagniDamage(pos,radius,mindamage,maxdamage,knockback,damagetype)
1035
	local Recursive
1036
	Recursive = function(whom)	
1037
		for _,c in next, whom:children() do
1038
			local hum = c:FindFirstChildOfClass'Humanoid'
1039
			local hed = c:FindFirstChild'Torso' or c:FindFirstChild'UpperTorso' or c:FindFirstChild'LowerTorso'
1040
			if(hum and hed)then
1041
				local mag = (hed.CFrame.p - pos).magnitude
1042
				if(mag <= radius and c ~= char)then
1043
					DealDamage(c,mindamage,maxdamage,knockback,damagetype)
1044
				end
1045
			end
1046
			Recursive(c)
1047
		end
1048
	end
1049
	Recursive(workspace)
1050
end
1051
1052
function MagniHeal(pos,radius,heal,needsTeamed)
1053
	for _,v in next, workspace:GetDescendants() do
1054
		local player = S.Players:GetPlayerFromCharacter(v)
1055
		local hum = v:FindFirstChildOfClass'Humanoid'
1056
		if(hum and v:IsA'Model')then
1057
			if(not needsTeamed or player and (not plr.Neutral and player.TeamColor == plr.TeamColor))then
1058
				local pp = v.PrimaryPart or v:FindFirstChild'Torso' or v:FindFirstChild'UpperTorso' or v:FindFirstChild'LowerTorso'
1059
				if(pp and (pp.CFrame.p-pos).magnitude <= radius)then
1060
					hum.Health = hum.Health + heal
1061
				end
1062
			end
1063
		end
1064
	end	
1065
end
1066
1067
1068
Debounces:New('how2use',1) -- name, cooldown
1069
1070
function TestDebounce()
1071
	if(Debounces:Get('how2use').Usable)then
1072
		-- code
1073
		Debounces:Get('how2use'):Use() -- use it up
1074
	end
1075
end
1076
1077
function Throw()
1078
	Attack = true
1079
	neutralAnims = false	
1080
	for i = 0, 0.5, 0.01 do
1081
		swait()
1082
		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)
1083
		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)
1084
		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)
1085
		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)
1086
		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)
1087
		NK.C0 = clerp(NK.C0,HD*CF.N(0,.1,-.25)*CF.A(M.R(-25),0,0),i)
1088
	end
1089
	wait(.25)
1090
	for i = 0, 0.5, 0.1 do
1091
		swait()
1092
		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)
1093
		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)
1094
		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)
1095
		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)
1096
		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)
1097
		NK.C0 = clerp(NK.C0,HD*CF.N(0,.1,-.25)*CF.A(M.R(-25),0,0),i)
1098
	end
1099
	ThrownKnife = true
1100
	Handle.Transparency = 1
1101
	Projectile(Handle)
1102
	Decal.Transparency = 1
1103
	wait(.5)
1104
	neutralAnims = true
1105
end
1106
1107
function ClickCombo()
1108
	Attack = true
1109
	neutralAnims = false
1110
	for i = 0, 1, 0.1 do
1111
		swait()
1112
		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)
1113
		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)
1114
		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)
1115
		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)
1116
		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)
1117
		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)	
1118
	end
1119
	local swoosh = coroutine.wrap(FX)(1306070008,1,M.RNG(95,125)/100)
1120
	Handle.CanCollide = true
1121
	local touched = Handle.Touched:connect(function(t)
1122
		Decapitate(t.Parent)
1123
	end)
1124
	for i = 0, 1, 0.05 do
1125
		swait()
1126
		if((root.Velocity * V3.N(1, 0, 1)).magnitude > 0.3 and WalkSpeed == 16)then
1127
			root.CFrame = root.CFrame*CF.N(0,0,-1)
1128
		end
1129
		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)
1130
		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)
1131
		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)
1132
		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)
1133
		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)
1134
		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)
1135
		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)
1136
	end
1137
	wait(.1)
1138
	Handle.CanCollide = false
1139
	touched:disconnect()
1140
	coroutine.wrap(function()
1141
		for i = 0, 1, 0.1 do
1142
			swait()
1143
			HW.C0 = Hold
1144
		end
1145
	end)()
1146
	neutralAnims = true
1147
	Attack = false
1148
end
1149
function AttemptGetKnife()
1150
	if((torso.CFrame.p-KnifePosition.p).magnitude < 6)then
1151
		ThrownKnife = false
1152
	end
1153
end
1154
mouse.Button1Down:connect(function()
1155
	if(not ThrownKnife)then 
1156
		if(Attack)then return end
1157
		ClickCombo() 
1158
	else
1159
		AttemptGetKnife()
1160
	end
1161
end)
1162
mouse.KeyDown:connect(function(k)
1163
	if(Attack)then return end	
1164
	if(k == "t")then
1165
		Throw()
1166
	elseif(k == 'm')then
1167
		if(Music.Volume ~= 0)then
1168
			Music.Volume =0
1169
		else
1170
			Music.Volume = Sounds.Psycho.Volume
1171
		end
1172
	elseif(k == ';')then
1173
		if(Mesh.MeshId ~= 'http://www.roblox.com/asset/?id=123248347')then
1174
			Mesh.MeshId = 'http://www.roblox.com/asset/?id=123248347'
1175
			Mesh.TextureId = 'http://www.roblox.com/asset/?id=123248449'
1176
			Mesh.Scale = V3.N(.4,.4,.4)
1177
			Hold = CF.N(0,-1,-1.35)*CF.A(M.R(-90),0,0)
1178
			BeheadHold = CF.N(0,.5,0)*CF.A(0,M.R(-90),0)
1179
		else
1180
			Mesh.MeshId='rbxassetid://471401475'
1181
			Mesh.TextureId='rbxassetid://471401476'
1182
			Mesh.Scale = V3.N(.01,.01,.01)
1183
			Hold = CF.N(0,-1,-1)*CF.A(M.R(-90),M.R(90),0)
1184
			BeheadHold = CF.A(0,0,0)
1185
		end
1186
		HW.C0 = Hold
1187
	end
1188
end)