View difference between Paste ID: CL7FYSjP and KcrFmSPW
SHOW: | | - or go back to the newest paste.
1
-- Created by Nebula_Zorua --
2
-- Your DeTERMINATION --
3
-- Y o u  a c t  l i k e  y o u  h a v e  a  c h o i c e. =) --
4
--Edited by SHYIMe (Please Support :D--
5
-- Discord: Nebula the Zorua#6969
6
-- Youtube: https://www.youtube.com/channel/UCo9oU9dCw8jnuVLuy4_SATA
7
-- This script has been converted to FE by iPxter
8
9
10
if game:GetService("RunService"):IsClient() then error("Script must be server-side in order to work; use h/ and not hl/") end
11
local Player,Mouse,mouse,UserInputService,ContextActionService = owner
12-
local Plr = Plrs.LocalPlayer
12+
do
13
	print("FE Compatibility code by Mokiros | Translated to FE by iPxter")
14
	script.Parent = Player.Character
15
16
	--RemoteEvent for communicating
17
	local Event = Instance.new("RemoteEvent")
18
	Event.Name = "UserInput_Event"
19
20
	--Fake event to make stuff like Mouse.KeyDown work
21
	local function fakeEvent()
22
		local t = {_fakeEvent=true,Connect=function(self,f)self.Function=f end}
23
		t.connect = t.Connect
24
		return t
25
	end
26
27-
local Mouse = Plr:GetMouse()
27+
	--Creating fake input objects with fake variables
28
    local m = {Target=nil,Hit=CFrame.new(),KeyUp=fakeEvent(),KeyDown=fakeEvent(),Button1Up=fakeEvent(),Button1Down=fakeEvent()}
29
	local UIS = {InputBegan=fakeEvent(),InputEnded=fakeEvent()}
30
	local CAS = {Actions={},BindAction=function(self,name,fun,touch,...)
31
		CAS.Actions[name] = fun and {Name=name,Function=fun,Keys={...}} or nil
32
	end}
33
	--Merged 2 functions into one by checking amount of arguments
34
	CAS.UnbindAction = CAS.BindAction
35
36
	--This function will trigger the events that have been :Connect()'ed
37
	local function te(self,ev,...)
38
		local t = m[ev]
39
		if t and t._fakeEvent and t.Function then
40
			t.Function(...)
41
		end
42
	end
43
	m.TrigEvent = te
44
	UIS.TrigEvent = te
45
46
	Event.OnServerEvent:Connect(function(plr,io)
47
	    if plr~=Player then return end
48
		if io.isMouse then
49
			m.Target = io.Target
50
			m.Hit = io.Hit
51
		else
52
			local b = io.UserInputState == Enum.UserInputState.Begin
53
			if io.UserInputType == Enum.UserInputType.MouseButton1 then
54
				return m:TrigEvent(b and "Button1Down" or "Button1Up")
55
			end
56
			for _,t in pairs(CAS.Actions) do
57
				for _,k in pairs(t.Keys) do
58
					if k==io.KeyCode then
59
						t.Function(t.Name,io.UserInputState,io)
60
					end
61
				end
62
			end
63
			m:TrigEvent(b and "KeyDown" or "KeyUp",io.KeyCode.Name:lower())
64
			UIS:TrigEvent(b and "InputBegan" or "InputEnded",io,false)
65
	    end
66
	end)
67
	Event.Parent = NLS([==[
68
	local Player = game:GetService("Players").LocalPlayer
69
	local Event = script:WaitForChild("UserInput_Event")
70
71
	local UIS = game:GetService("UserInputService")
72
	local input = function(io,a)
73
		if a then return end
74
		--Since InputObject is a client-side instance, we create and pass table instead
75
		Event:FireServer({KeyCode=io.KeyCode,UserInputType=io.UserInputType,UserInputState=io.UserInputState})
76
	end
77
	UIS.InputBegan:Connect(input)
78
	UIS.InputEnded:Connect(input)
79
80
	local Mouse = Player:GetMouse()
81
	local h,t
82
	--Give the server mouse data 30 times every second, but only if the values changed
83
	--If player is not moving their mouse, client won't fire events
84
	while wait(1/30) do
85
		if h~=Mouse.Hit or t~=Mouse.Target then
86
			h,t=Mouse.Hit,Mouse.Target
87
			Event:FireServer({isMouse=true,Target=t,Hit=h})
88
		end
89
	end]==],Player.Character)
90
	Mouse,mouse,UserInputService,ContextActionService = m,m,UIS,CAS
91
end
92
93
--// Initializing \\--
94
local S = setmetatable({},{__index = function(s,i) return game:service(i) end})
95
local Plrs = S.Players
96
local Plr = owner
97
local Char = Plr.Character
98
local Hum = Char:FindFirstChildOfClass'Humanoid'
99
local RArm = Char["Right Arm"]
100
local LArm = Char["Left Arm"]
101
local RLeg = Char["Right Leg"]
102
local LLeg = Char["Left Leg"]	
103
local Root = Char:FindFirstChild'HumanoidRootPart'
104
local Torso = Char.Torso
105
local Head = Char.Head
106
local NeutralAnims = true
107
local Attack = false
108
local BloodPuddles = {}
109
local Effects = {}
110
local Debounces = {Debounces={}}
111
local Hit = {}
112
local Sine = 0
113
local Change = 1
114
local Souls = 0
115
--// Debounce System \\--
116
117
118
function Debounces:New(name,cooldown)
119
	local aaaaa = {Usable=true,Cooldown=cooldown or 2,CoolingDown=false,LastUse=0}
120
	setmetatable(aaaaa,{__index = Debounces})
121
	Debounces.Debounces[name] = aaaaa
122
	return aaaaa
123
end
124
125
function Debounces:Use(overrideUsable)
126
	assert(self.Usable ~= nil and self.LastUse ~= nil and self.CoolingDown ~= nil,"Expected ':' not '.' calling member function Use")
127
	if(self.Usable or overrideUsable)then
128
		self.Usable = false
129
		self.CoolingDown = true
130
		local LastUse = time()
131
		self.LastUse = LastUse
132
		delay(self.Cooldown or 2,function()
133
			if(self.LastUse == LastUse)then
134
				self.CoolingDown = false
135
				self.Usable = true
136
			end
137
		end)
138
	end
139
end
140
141
function Debounces:Get(name)
142
	assert(typeof(name) == 'string',("bad argument #1 to 'get' (string expected, got %s)"):format(typeof(name) == nil and "no value" or typeof(name)))
143
	for i,v in next, Debounces.Debounces do
144
		if(i == name)then
145
			return v;
146
		end
147
	end
148
end
149
150
function Debounces:GetProgressPercentage()
151
	assert(self.Usable ~= nil and self.LastUse ~= nil and self.CoolingDown ~= nil,"Expected ':' not '.' calling member function Use")
152
	if(self.CoolingDown and not self.Usable)then
153
		return math.max(
154
			math.floor(
155
				(
156
					(time()-self.LastUse)/self.Cooldown or 2
157
				)*100
158
			)
159
		)
160
	else
161
		return 100
162
	end
163
end
164
165
--// Shortcut Variables \\--
166
local CF = {N=CFrame.new,A=CFrame.Angles,fEA=CFrame.fromEulerAnglesXYZ}
167
local C3 = {N=Color3.new,RGB=Color3.fromRGB,HSV=Color3.fromHSV,tHSV=Color3.toHSV}
168
local V3 = {N=Vector3.new,FNI=Vector3.FromNormalId,A=Vector3.FromAxis}
169
local M = {C=math.cos,R=math.rad,S=math.sin,P=math.pi,RNG=math.random,MRS=math.randomseed,H=math.huge,RRNG = function(min,max,div) return math.rad(math.random(min,max)/(div or 1)) end}
170
local R3 = {N=Region3.new}
171
local De = S.Debris
172
local WS = workspace
173
local Lght = S.Lighting
174
local RepS = S.ReplicatedStorage
175
local IN = Instance.new
176
local CSK = ColorSequenceKeypoint.new
177
local CS = ColorSequence.new
178
--// Instance Creation Functions \\--
179
180
function Sound(parent,id,pitch,volume,looped,effect,autoPlay)
181
	local Sound = IN("Sound")
182
	Sound.SoundId = "rbxassetid://".. tostring(id or 0)
183
	Sound.Pitch = pitch or 1
184
	Sound.Volume = volume or 1
185
	Sound.Looped = looped or false
186
	if(autoPlay)then
187
		coroutine.wrap(function()
188
			repeat wait() until Sound.IsLoaded
189
			Sound.Playing = autoPlay or false
190
		end)()
191
	end
192
	if(not looped and effect)then
193
		Sound.Stopped:connect(function()
194
			Sound.Volume = 0
195
			Sound:destroy()
196
		end)
197
	elseif(effect)then
198
		warn("Sound can't be looped and a sound effect!")
199
	end
200
	Sound.Parent =parent or Torso
201
	return Sound
202
end
203
function Part(parent,color,material,size,cframe,anchored,cancollide)
204
	local part = IN("Part")
205
	part[typeof(color) == 'BrickColor' and 'BrickColor' or 'Color'] = color or C3.N(0,0,0)
206
	part.Material = (material or Enum.Material.SmoothPlastic)
207
	part.TopSurface,part.BottomSurface=10,10
208
	part.Size = (size or V3.N(1,1,1))
209
	part.CFrame = (cframe or CF.N(0,0,0))
210
	part.Anchored = (anchored or false)
211
	part.CanCollide = (cancollide or false)
212
	part.Parent = (parent or Char)
213
	return part
214
end
215
function Mesh(parent,meshtype,meshid,textid,scale,offset)
216
	local part = IN("SpecialMesh")
217
	part.MeshId = meshid or ""
218
	part.TextureId = textid or ""
219
	part.Scale = scale or V3.N(1,1,1)
220
	part.Offset = offset or V3.N(0,0,0)
221
	part.MeshType = meshtype or Enum.MeshType.Sphere
222
	part.Parent = parent
223
	return part
224
end
225
226
NewInstance = function(instance,parent,properties)
227
	local inst = Instance.new(instance,parent)
228
	if(properties)then
229
		for i,v in next, properties do
230
			pcall(function() inst[i] = v end)
231
		end
232
	end
233
	return inst;
234
end
235
236
237
238
--// Extended ROBLOX tables \\--
239
local Instance = setmetatable({ClearChildrenOfClass = function(where,class,recursive) local children = (recursive and where:GetDescendants() or where:GetChildren()) for _,v in next, children do if(v:IsA(class))then v:destroy();end;end;end},{__index = Instance})
240
--// Customization \\--
241
242
local Frame_Speed = 60 -- The frame speed for swait. 1 is automatically divided by this
243
local Remove_Hats = false
244
local Remove_Clothing = true
245
local PlayerSize = 1
246
local DamageColor = BrickColor.new'Really red'
247
local MusicID = 1195813975
248
local WalkSpeed = 8
249
local MaxSouls = 100
250
local MaxHealth = 500
251
252
253
if(_G.RefusedAnimation == nil) then _G.RefusedAnimation = false end
254
255
--// Weapon and GUI creation, and Character Customization \\--
256
257
if(Remove_Hats)then Instance.ClearChildrenOfClass(Char,"Accessory",true) end
258
if(Remove_Clothing)then Instance.ClearChildrenOfClass(Char,"Clothing",true) Instance.ClearChildrenOfClass(Char,"ShirtGraphic",true) end
259
local Effects = IN("Folder",Char)
260
Effects.Name = "Effects"
261
262
Hum.MaxHealth = MaxHealth
263
Hum.Health = MaxHealth
264
265
local Knife = NewInstance("Part",Char,{Name='Knife',Size=V3.N(.4,3,.7),Anchored=false,CanCollide=false,Locked=true,Archivable=false,Reflectance=.01,Color=C3.N(0,0,0)})
266
local KnifeMesh = Mesh(Knife,Enum.MeshType.FileMesh,"rbxassetid://305826272","rbxassetid://305826226",V3.N(1,1,1),V3.N())
267
local AuraEmitter = NewInstance("ParticleEmitter",Knife,{EmissionDirection='Back',Color=CS{CSK(0,C3.N(1,0,0)),CSK(0.5,C3.N(1,1,0)),CSK(1,C3.RGB(255,191,0))},LightEmission=.5,LightInfluence=0,Size=NumberSequence.new(0.3),Texture="rbxassetid://141116476",Transparency=NumberSequence.new(0,1),LockedToPart=true,Lifetime=NumberRange.new(1),Rate=150,Speed=NumberRange.new(0)})
268
local FireEmitter = NewInstance("ParticleEmitter",Knife,{EmissionDirection='Back',Color=CS(C3.N(1,0,0),C3.N(1,0,0)),LightEmission=.5,LightInfluence=0,Size=NumberSequence.new{NumberSequenceKeypoint.new(0,.5,0),NumberSequenceKeypoint.new(0.755,0,0),NumberSequenceKeypoint.new(1,0,0)},Texture="rbxassetid://141116476",Transparency=NumberSequence.new(0.35,1),Lifetime=NumberRange.new(1,2),Rate=150,Speed=NumberRange.new(3)})
269
270
local KTrail = NewInstance("Trail",Knife,{
271
	Attachment0=NewInstance("Attachment",Knife,{Position=V3.N(0,-.4,0)}),
272
	Attachment1=NewInstance("Attachment",Knife,{Position=V3.N(0,1.2,0)}),
273
	Color=CS(C3.N(1,0,0)),
274
	Enabled=false,
275
	Transparency=NumberSequence.new(0,1),
276
	Lifetime=1.25,
277
})
278
local Hair = Part(Char,C3.N(0,0,0),Enum.Material.SmoothPlastic,V3.N(1,1,1),CF.N(),false,false)
279
local HairMesh = Mesh(Hair,Enum.MeshType.FileMesh,"rbxassetid://62246019","rbxassetid://62246077",V3.N(1.05,1.05,1.05),V3.N())
280
281
NewInstance("PointLight",Knife,{Color=C3.N(1,0,0),Range=10,Brightness=3})
282
283
284
Hum.DisplayDistanceType = 'None'
285
286
local naeeym2 = IN("BillboardGui",Char)
287
naeeym2.AlwaysOnTop = true
288
naeeym2.Size = UDim2.new(5,35,2,15)
289
naeeym2.StudsOffset = V3.N(0,2.5,0)
290
naeeym2.Adornee = Char.Head
291
naeeym2.Name = "Name"
292
naeeym2.PlayerToHideFrom = Plr
293
local tecks2 = IN("TextLabel",naeeym2)
294
tecks2.BackgroundTransparency = 1
295
tecks2.TextScaled = true
296
tecks2.BorderSizePixel = 0
297
tecks2.Text = "The Ghost Of Lavender"
298
tecks2.Font = Enum.Font.Bodoni
299
tecks2.TextSize = 30
300
tecks2.TextStrokeTransparency = 0
301
tecks2.TextColor3 = C3.N(0,0,0)
302
tecks2.TextStrokeColor3 = C3.N(.7,0,0)
303
tecks2.Size = UDim2.new(1,0,0.5,0)
304
tecks2.Parent = naeeym2
305
306
307
IN("Shirt",Char)
308
IN("Pants",Char)
309
310
Hum.WalkSpeed = WalkSpeed
311
if(PlayerSize ~= 1)then
312
	for _,v in next, Char:GetDescendats() do
313
		if(v:IsA'BasePart')then
314
			v.Size = v.Size * PlayerSize
315
		end
316
	end
317
end
318
319
320
for i = 1, 35 do
321
	local FACE = Part(Char,C3.N(0,0,0),Enum.Material.Neon,V3.N(1.01,.5,1.01),CF.N(),false,false)
322
	FACE.Transparency = 0+(i-1)/35.2
323
	FACE.Name = 'ShadowFace'
324
	Head:FindFirstChildOfClass("SpecialMesh"):Clone().Parent = FACE
325
	NewInstance("Weld",Head,{Part0=Head,Part1=FACE,C0=CF.N(0,.35-(i-1)/75,0)})
326
	--CreateWeldOrSnapOrMotor("Weld", Head, Head, FACE, CF(0,0.35-(i-1)/75,0), CF(0, 0, 0))
327
end
328
329
local LEye = Part(Char,C3.N(1,0,0),Enum.Material.Neon,V3.N(.15,.25,.2),CF.N(),false,false)
330
local LEyeM = Mesh(LEye,Enum.MeshType.Sphere,"","",V3.N(1,1,1),V3.N())
331
local LEyeW = NewInstance("Weld",LEye,{Part0=Head,Part1=LEye,C0=CF.N(-.2,.2,-.49)})
332
333
334
335
pcall(function()
336
	Char.LeftWing:destroy()
337
	Char.ReaperShadowHead:destroy()
338
end)
339
340
341
local Music = Sound(Torso,MusicID,1,3,true,false,true)
342
Music.Name = 'Music'
343
344
--// Stop animations \\--
345
for _,v in next, Hum:GetPlayingAnimationTracks() do
346
	v:Stop();
347
end
348
349
pcall(game.Destroy,Char:FindFirstChild'Animate')
350
pcall(game.Destroy,Hum:FindFirstChild'Animator')
351
352
--// Joints \\--
353
354
local LS = NewInstance('Motor',Char,{Part0=Torso,Part1=LArm,C0 = CF.N(-1.5 * PlayerSize,0.5 * PlayerSize,0),C1 = CF.N(0,.5 * PlayerSize,0)})
355
local RS = NewInstance('Motor',Char,{Part0=Torso,Part1=RArm,C0 = CF.N(1.5 * PlayerSize,0.5 * PlayerSize,0),C1 = CF.N(0,.5 * PlayerSize,0)})
356
local NK = NewInstance('Motor',Char,{Part0=Torso,Part1=Head,C0 = CF.N(0,1.5 * PlayerSize,0)})
357
local LH = NewInstance('Motor',Char,{Part0=Torso,Part1=LLeg,C0 = CF.N(-.5 * PlayerSize,-1 * PlayerSize,0),C1 = CF.N(0,1 * PlayerSize,0)})
358
local RH = NewInstance('Motor',Char,{Part0=Torso,Part1=RLeg,C0 = CF.N(.5 * PlayerSize,-1 * PlayerSize,0),C1 = CF.N(0,1 * PlayerSize,0)})
359
local RJ = NewInstance('Motor',Char,{Part0=Root,Part1=Torso})
360
local HW = NewInstance('Motor',Char,{Part0=RArm,Part1=Knife,C0=CF.N(0,-1,-1)*CF.A(M.R(-90),0,0)})
361
local HW2 = NewInstance('Motor',Char,{Part0=Head,Part1=Hair,C0=CF.N(0,.25,0)})
362
363
local LSC0 = LS.C0
364
local RSC0 = RS.C0
365
local NKC0 = NK.C0
366
local LHC0 = LH.C0
367
local RHC0 = RH.C0
368
local RJC0 = RJ.C0
369
370
--// Artificial HB \\--
371
372
local ArtificialHB = IN("BindableEvent", script)
373
ArtificialHB.Name = "Heartbeat"
374
375
script:WaitForChild("Heartbeat")
376
377
local tf = 0
378
local allowframeloss = false
379
local tossremainder = false
380
local lastframe = tick()
381
local frame = 1/Frame_Speed
382
ArtificialHB:Fire()
383
384
game:GetService("RunService").Heartbeat:connect(function(s, p)
385
	tf = tf + s
386
	if tf >= frame then
387
		if allowframeloss then
388
			script.Heartbeat:Fire()
389
			lastframe = tick()
390
		else
391
			for i = 1, math.floor(tf / frame) do
392
				ArtificialHB:Fire()
393
			end
394
			lastframe = tick()
395
		end
396
		if tossremainder then
397
			tf = 0
398
		else
399
			tf = tf - frame * math.floor(tf / frame)
400
		end
401
	end
402
end)
403
404
function swait(num)
405
	if num == 0 or num == nil then
406
		ArtificialHB.Event:wait()
407
	else
408
		for i = 0, num do
409
			ArtificialHB.Event:wait()
410
		end
411
	end
412
end
413
414
415
--// Effect Function(s) \\--
416
417
function Bezier(startpos, pos2, pos3, endpos, t)
418
	local A = startpos:lerp(pos2, t)
419
	local B  = pos2:lerp(pos3, t)
420
	local C = pos3:lerp(endpos, t)
421
	local lerp1 = A:lerp(B, t)
422
	local lerp2 = B:lerp(C, t)
423
	local cubic = lerp1:lerp(lerp2, t)
424
	return cubic
425
end
426
427
function Tween(obj,props,time,easing,direction,repeats,backwards)
428
	local info = TweenInfo.new(time or .5, easing or Enum.EasingStyle.Quad, direction or Enum.EasingDirection.Out, repeats or 0, backwards or false)
429
	local tween = S.TweenService:Create(obj, info, props)
430
	
431
	tween:Play()
432
end
433
434
local FXTable = {}
435
436
coroutine.resume(coroutine.create(function()
437
	while true do
438
		for i = 1, #FXTable do
439
			local data = FXTable[i]
440
			if(data)then
441
				local Frame = data.Frame
442
				local FX = data.Effect or 'ResizeAndFade'
443
				local Parent = data.Parent or Effects
444
				local Color = data.Color or C3.N(0,0,0)
445
				local Size = data.Size or V3.N(1,1,1)
446
				local MoveDir = data.MoveDirection or nil
447
				local MeshData = data.Mesh or nil
448
				local SndData = data.Sound or nil
449
				local Frames = data.Frames or 45
450
				local CFra = data.CFrame or Torso.CFrame
451
				local Settings = data.FXSettings or {}
452
				local Prt,Msh,Snd = data.Part,data.Mesh,data.Sound
453
				local grow = data.Grow
454
				
455
				local MoveSpeed = nil;
456
				if(MoveDir)then
457
					MoveSpeed = (CFra.p - MoveDir).magnitude/Frames
458
				end
459
				if(FX ~= 'Arc')then
460
					Frame = Frame + 1
461
					if(FX == "Fade")then
462
						Prt.Transparency  = (Frame/Frames)
463
					elseif(FX == "Resize")then
464
						if(not Settings.EndSize)then
465
							Settings.EndSize = V3.N(0,0,0)
466
						end
467
						if(Settings.EndIsIncrement)then
468
							if(Msh)then
469
								Msh.Scale = Msh.Scale + Settings.EndSize
470
							else
471
								Prt.Size = Prt.Size + Settings.EndSize
472
							end					
473
						else
474
							if(Msh)then
475
								Msh.Scale = Msh.Scale - grow/Frames
476
							else
477
								Prt.Size = Prt.Size - grow/Frames
478
							end
479
						end 
480
					elseif(FX == "ResizeAndFade")then
481
						if(not Settings.EndSize)then
482
							Settings.EndSize = V3.N(0,0,0)
483
						end
484
						if(Settings.EndIsIncrement)then
485
							if(Msh)then
486
								Msh.Scale = Msh.Scale + Settings.EndSize
487
							else
488
								Prt.Size = Prt.Size + Settings.EndSize
489
							end					
490
						else
491
							if(Msh)then
492
								Msh.Scale = Msh.Scale - grow/Frames
493
							else
494
								Prt.Size = Prt.Size - grow/Frames
495
							end
496
						end 
497
						Prt.Transparency = (Frame/Frames)
498
					end
499
					if(Settings.RandomizeCFrame)then
500
						Prt.CFrame = Prt.CFrame * CF.A(M.RRNG(-360,360),M.RRNG(-360,360),M.RRNG(-360,360))
501
					end
502
					if(MoveDir and MoveSpeed)then
503
						local Orientation = Prt.Orientation
504
						Prt.CFrame = CF.N(Prt.Position,MoveDir)*CF.N(0,0,-MoveSpeed)
505
						Prt.Orientation = Orientation
506
					end
507
					if(Prt.Transparency >= 1 or Frame >= Frames)then
508
						Prt:destroy()
509
						table.remove(FXTable,i)
510
					else
511
						data.Frame = Frame
512
					end
513
				else
514
					local start,third,fourth,endP = Settings.Start,Settings.Third,Settings.Fourth,Settings.End
515
					if(not Settings.End and Settings.Home)then endP = Settings.Home.CFrame end
516
					if(start and endP)then
517
						local quarter = third or start:lerp(endP, 0.25) * CF.N(M.RNG(-25,25),M.RNG(0,25),M.RNG(-25,25))
518
						local threequarter = fourth or start:lerp(endP, 0.75) * CF.N(M.RNG(-25,25),M.RNG(0,25),M.RNG(-25,25))
519
						Frame = Frame + (Settings.Speed or 0.01)
520
						if(Settings.Home)then
521
							endP = Settings.Home.CFrame
522
						end
523
						Prt.CFrame = Bezier(start, quarter, threequarter, endP, Frame)
524
						if(Prt.Transparency >= 1 or Frame >= Frames)then
525
							if(Settings.RemoveOnGoal)then
526
								Prt:destroy()
527
							end
528
						end
529
					else
530
						Prt:destroy()
531
					end
532
				end
533
			end
534
		end
535
		swait()
536
	end
537
end))
538
539
function Effect(data)
540
	local FX = data.Effect or 'ResizeAndFade'
541
	local Parent = data.Parent or Effects
542
	local Color = data.Color or C3.N(0,0,0)
543
	local Size = data.Size or V3.N(1,1,1)
544
	local MoveDir = data.MoveDirection or nil
545
	local MeshData = data.Mesh or nil
546
	local SndData = data.Sound or nil
547
	local Frames = data.Frames or 45
548
	local Manual = data.Manual or nil
549
	local Material = data.Material or nil
550
	local CFra = data.CFrame or Torso.CFrame
551
	local Settings = data.FXSettings or {}
552
	local Shape = data.Shape or Enum.PartType.Block
553
	local Snd,Prt,Msh;
554
	coroutine.wrap(function()
555
		if(Manual and typeof(Manual) == 'Instance' and Manual:IsA'BasePart')then
556
			Prt = Manual
557
		else
558
			Prt = Part(Parent,Color,Material,Size,CFra,true,false)
559
			Prt.Shape = Shape
560
		end
561
		if(typeof(MeshData) == 'table')then
562
			Msh = Mesh(Prt,MeshData.MeshType,MeshData.MeshId,MeshData.TextureId,MeshData.Scale,MeshData.Offset)
563
		elseif(typeof(MeshData) == 'Instance')then
564
			Msh = MeshData:Clone()
565
			Msh.Parent = Prt
566
		elseif(Shape == Enum.PartType.Block)then
567
			Msh = Mesh(Prt,Enum.MeshType.Brick)
568
		end
569
		if(typeof(SndData) == 'table' or typeof(SndData) == 'Instance')then
570
			Snd = Sound(Prt,SndData.SoundId,SndData.Pitch,SndData.Volume,false,false,true)
571
		end
572
		if(Snd)then
573
			repeat swait() until Snd.Playing and Snd.IsLoaded and Snd.TimeLength > 0
574
			Frames = Snd.TimeLength * Frame_Speed/Snd.Pitch
575
		end
576
		Size = (Msh and Msh.Scale or Size)
577
		local grow = Size-(Settings.EndSize or (Msh and Msh.Scale or Size)/2)
578
		
579
		local MoveSpeed = nil;
580
		if(MoveDir)then
581
			MoveSpeed = (CFra.p - MoveDir).magnitude/Frames
582
		end
583
		if(FX ~= 'Arc')then
584
			for Frame = 1, Frames do
585
				if(FX == "Fade")then
586
					Prt.Transparency  = (Frame/Frames)
587
				elseif(FX == "Resize")then
588
					if(not Settings.EndSize)then
589
						Settings.EndSize = V3.N(0,0,0)
590
					end
591
					if(Settings.EndIsIncrement)then
592
						if(Msh)then
593
							Msh.Scale = Msh.Scale + Settings.EndSize
594
						else
595
							Prt.Size = Prt.Size + Settings.EndSize
596
						end					
597
					else
598
						if(Msh)then
599
							Msh.Scale = Msh.Scale - grow/Frames
600
						else
601
							Prt.Size = Prt.Size - grow/Frames
602
						end
603
					end 
604
				elseif(FX == "ResizeAndFade")then
605
					if(not Settings.EndSize)then
606
						Settings.EndSize = V3.N(0,0,0)
607
					end
608
					if(Settings.EndIsIncrement)then
609
						if(Msh)then
610
							Msh.Scale = Msh.Scale + Settings.EndSize
611
						else
612
							Prt.Size = Prt.Size + Settings.EndSize
613
						end					
614
					else
615
						if(Msh)then
616
							Msh.Scale = Msh.Scale - grow/Frames
617
						else
618
							Prt.Size = Prt.Size - grow/Frames
619
						end
620
					end 
621
					Prt.Transparency = (Frame/Frames)
622
				end
623
				if(Settings.RandomizeCFrame)then
624
					Prt.CFrame = Prt.CFrame * CF.A(M.RRNG(-360,360),M.RRNG(-360,360),M.RRNG(-360,360))
625
				end
626
				if(MoveDir and MoveSpeed)then
627
					local Orientation = Prt.Orientation
628
					Prt.CFrame = CF.N(Prt.Position,MoveDir)*CF.N(0,0,-MoveSpeed)
629
					Prt.Orientation = Orientation
630
				end
631
				swait()
632
			end
633
			Prt:destroy()
634
		else
635
			local start,third,fourth,endP = Settings.Start,Settings.Third,Settings.Fourth,Settings.End
636
			if(not Settings.End and Settings.Home)then endP = Settings.Home.CFrame end
637
			if(start and endP)then
638
				local quarter = third or start:lerp(endP, 0.25) * CF.N(M.RNG(-25,25),M.RNG(0,25),M.RNG(-25,25))
639
				local threequarter = fourth or start:lerp(endP, 0.75) * CF.N(M.RNG(-25,25),M.RNG(0,25),M.RNG(-25,25))
640
				for Frame = 0, 1, (Settings.Speed or 0.01) do
641
					if(Settings.Home)then
642
						endP = Settings.Home.CFrame
643
					end
644
					Prt.CFrame = Bezier(start, quarter, threequarter, endP, Frame)
645
				end
646
				if(Settings.RemoveOnGoal)then
647
					Prt:destroy()
648
				end
649
			else
650
				Prt:destroy()
651
				assert(start,"You need a start position!")
652
				assert(endP,"You need a start position!")
653
			end
654
		end
655
	end)()
656
	return Prt,Msh,Snd
657
end
658
659
660
661
function SoulSteal(whom,human)
662
	local torso = (whom:FindFirstChild'Torso' or whom:FindFirstChild'UpperTorso' or whom:FindFirstChild'LowerTorso' or whom:FindFirstChild'HumanoidRootPart' or whom:FindFirstChild'Torso')
663
	local succ, health, alive = pcall(function() return whom:FindFirstChildOfClass'Humanoid'.Health, whom:FindFirstChildOfClass'Humanoid'.Health > 0 end)
664
	if(torso and torso:IsA'BasePart' and alive == true)then
665
		whom:FindFirstChildOfClass'Humanoid'.Health = 0
666
		whom:BreakJoints()
667
		local Model = IN("Model",Effects)
668
		warn('Soul stolen from '..whom.Name)
669
		Model.Name = whom.Name.."'s Soul"
670
		local Soul = Part(Model,(human and BrickColor.new'Really red' or BrickColor.new(C3.N(1,1,1))),'Glass',V3.N(1,1,1),torso.CFrame,true,false)
671
		Soul.CanCollide=false
672
		Mesh(Soul,Enum.MeshType.Sphere)
673
		Soul.Name = 'Head'
674
		if(whom.Name == 'CKbackup')then
675
			Soul.Color = C3.N(1,1,1)
676
			local DripEmitter = NewInstance("ParticleEmitter",Soul,{EmissionDirection='Bottom',Color=CS(Soul.Color),LightEmission=.5,LightInfluence=0,Size=NumberSequence.new(0.3),Texture="rbxassetid://243132757",Transparency=NumberSequence.new(0,1),LockedToPart=false,Lifetime=NumberRange.new(1),Rate=150,Speed=NumberRange.new(5)})
677
		end
678
		local Hoom = NewInstance("Humanoid",Model,{MaxHealth=(health <= 10000 and health/2 or 10000),Health=(health <= 10000 and health/2 or 10000)})
679
		local AT0 = NewInstance("Attachment",Soul,{Position=V3.N(0,.5,0)})
680
		local AT1 = NewInstance("Attachment",Soul,{Position=V3.N(0,-.5,0)})
681
		local Trail = NewInstance("Trail",Soul,{Attachment0=AT0,Attachment1=AT1,Transparency=NumberSequence.new(0),FaceCamera = true,Texture="rbxassetid://945758042",LightEmission=.3,Color=CS(Soul.Color),Lifetime=.5,MinLength=0})
682
		NewInstance("PointLight",Soul,{Color=Soul.Color,Range=10,Brightness=(human and 3 or .5)})
683
		
684
		local turdso = Soul:Clone()
685
		turdso.Name = "Torso"
686
		turdso.CanCollide = false
687
		turdso.Anchored = true
688
		turdso.CFrame = Soul.CFrame
689
		turdso.Parent = Model
690
		turdso.Size = V3.N()
691
		turdso.Transparency=1
692
		local Distance = math.huge
693
		repeat
694
			Soul.CFrame = CF.N(Soul.Position,Torso.Position)*CF.N(0,0,-1)
695
			turdso.CFrame = Soul.CFrame
696
			Distance = (Soul.CFrame.p-Torso.CFrame.p).magnitude
697
			swait()
698
		until Hoom.Health <= 0 or not Soul.Parent or Distance <= 1.2
699
		if(Soul.Parent and Hoom.Health > 0)then
700
			Model:destroy()
701
			Effect{
702
				Effect="ResizeAndFade",
703
				Mesh={Enum.MeshType.Sphere},
704
				Color = Soul.Color,
705
				CFrame=Torso.CFrame,
706
				Size=V3.N(3,3,3),
707
				Material=Enum.Material.Neon,
708
				Sound={SoundId=444667859,Pitch=1,Volume=2.5},
709
				FXSettings={
710
					EndSize=V3.N(6,6,6),
711
				}
712
			}
713
			Souls = Souls + (human and 1 or .1)
714
			warn("Souls: "..Souls)
715
			MaxHealth = MaxHealth + Hoom.Health
716
			Hum.Health = Hum.Health + Hoom.Health
717
			for i = 1, 5 do
718
				Effect{
719
					Effect="Fade",
720
					Color = Soul.Color,
721
					MoveDirection = (Torso.CFrame*CFrame.new(M.RNG(-40,40),M.RNG(-40,40),M.RNG(-40,40))).p
722
				}	
723
			end
724
		else
725
			
726
			warn("Soul destroyed!")
727
			for i = 1, 5 do
728
				Effect{
729
					Effect="Fade",
730
					Color = Soul.Color,
731
					CFrame=Soul.CFrame,
732
					MoveDirection = (Soul.CFrame*CFrame.new(M.RNG(-40,40),M.RNG(-40,40),M.RNG(-40,40))).p
733
				}	
734
			end
735
			Effect{
736
				Effect="ResizeAndFade",
737
				Mesh={Enum.MeshType.Sphere},
738
				Sound={SoundId=444667859,Pitch=1,Volume=5},
739
				Color = Soul.Color,
740
				CFrame=Soul.CFrame,
741
				Size=V3.N(3,3,3),
742
				Material=Enum.Material.Neon,
743
				FXSettings={
744
					EndSize=V3.N(6,6,6),
745
				}
746
			}
747
			Model:destroy()
748
		end
749
	end
750
end
751
752
--// Other Functions \\ --
753
754
function getRegion(point,range,ignore)
755
    return workspace:FindPartsInRegion3WithIgnoreList(R3.N(point-V3.N(1,1,1)*range/2,point+V3.N(1,1,1)*range/2),ignore,100)
756
end
757
758
function clerp(startCF,endCF,alpha)
759
	return startCF:lerp(endCF, alpha)
760
end
761
762
function GetTorso(char)
763
	return char:FindFirstChild'Torso' or char:FindFirstChild'UpperTorso' or char:FindFirstChild'LowerTorso' or char:FindFirstChild'HumanoidRootPart'
764
end
765
766
function ShowDamage(Pos, Text, Time, Color)
767
	coroutine.wrap(function()
768
	local Rate = (1 / Frame_Speed)
769
	local Pos = (Pos or Vector3.new(0, 0, 0))
770
	local Text = (Text or "")
771
	local Time = (Time or 2)
772
	local Color = (Color or Color3.new(1, 0, 1))
773
	local EffectPart = NewInstance("Part",Effects,{
774
		Material=Enum.Material.SmoothPlastic,
775
		Reflectance = 0,
776
		Transparency = 1,
777
		BrickColor = BrickColor.new(Color),
778
		Name = "Effect",
779
		Size = Vector3.new(0,0,0),
780
		Anchored = true,
781
		CFrame = CF.N(Pos)
782
	})
783
	local BillboardGui = NewInstance("BillboardGui",EffectPart,{
784
		Size = UDim2.new(1.25, 0, 1.25, 0),
785
		Adornee = EffectPart,
786
	})
787
	local TextLabel = NewInstance("TextLabel",BillboardGui,{
788
		BackgroundTransparency = 1,
789
		Size = UDim2.new(1, 0, 1, 0),
790
		Text = Text,
791
		Font = "Arcade",
792
		TextColor3 = Color,
793
		TextStrokeColor3 = Color3.new(0,0,0),
794
		TextStrokeTransparency=0,
795
		TextScaled = true,
796
	})
797
	S.Debris:AddItem(EffectPart, (Time))
798
	EffectPart.Parent = workspace
799
	delay(0, function()
800
		Tween(EffectPart,{CFrame=CF.N(Pos)*CF.N(0,3,0)},Time,Enum.EasingStyle.Elastic,Enum.EasingDirection.Out)
801
		local Frames = (Time / Rate)
802
		for Frame = 1, Frames do
803
			swait()
804
			local Percent = (Frame / Frames)
805
			TextLabel.TextTransparency = Percent
806
			TextLabel.TextStrokeTransparency = Percent
807
		end
808
		if EffectPart and EffectPart.Parent then
809
			EffectPart:Destroy()
810
		end
811
	end) end)()
812
end
813
814
function Kill(whom)
815
	if(whom.Name ~= 'SHYIME')then
816
		local isPlr = Plrs:GetPlayerFromCharacter(whom) ~= nil
817
		coroutine.wrap(SoulSteal)(whom,isPlr)
818
		for _,v in next, whom:children() do
819
			if(v:IsA'BasePart')then
820
				v.Parent = Effects
821
				v:ClearAllChildren()
822
				v.Anchored = true
823
				v.CanCollide = false
824
				v.Transparency = 1
825
				local dust = NewInstance("ParticleEmitter",v,{
826
					Color = ColorSequence.new(C3.N(1,1,1)),
827
					LightEmission=0,
828
					LightInfluence=1,
829
					Size=NumberSequence.new{NumberSequenceKeypoint.new(0,1,0),NumberSequenceKeypoint.new(1,0,0)},
830
					Texture="rbxassetid://284205403",
831
					Transparency=NumberSequence.new{NumberSequenceKeypoint.new(0,0,0),NumberSequenceKeypoint.new(1,1,0)},
832
					Lifetime = NumberRange.new(1),
833
					Rate=150,
834
					Acceleration = V3.N(0,10,0),
835
					Speed = NumberRange.new(5),
836
					Enabled = true
837
				})
838
				delay(1, function()
839
					dust.Enabled = false
840
					S.Debris:AddItem(v,2)
841
				end)
842
			end
843
		end
844
	else
845
		warn"nope. nawt happenin'"
846
	end
847
end
848
849
function DealDamage(who,minDam,maxDam,Knock,Type,critChance,critMult)
850
	if(who)then
851
		local hum = who:FindFirstChildOfClass'Humanoid'
852
		local Damage = M.RNG(minDam,maxDam)
853
		local canHit = true
854
		if(hum)then
855
			for _, p in pairs(Hit) do
856
				if p[1] == hum then
857
					if(time() - p[2] < 0.4) then
858
						canHit = false
859
					else
860
						Hit[_] = nil
861
					end
862
				end
863
			end
864
			if(canHit)then
865
				table.insert(Hit,{hum,time()})
866
				if(GetTorso(who))then
867
					Sound(GetTorso(who),406913243,1,10,false,true,true)
868
				end
869
				if(hum.Health >= math.huge)then
870
					Kill(who)
871
					if(who:FindFirstChild'Head' and hum.Health > 0)then
872
						ShowDamage((who.Head.CFrame * CF.N(0, 0, (who.Head.Size.Z / 2)).p+V3.N(0,1.5,0)+V3.N(M.RNG(-2,2),0,M.RNG(-2,2))), "INSTANT", 3, DamageColor.Color)
873
					end
874
				else
875
					local player = S.Players:GetPlayerFromCharacter(who)
876
					if(Type == "Fire")then
877
						--idk..
878
					else
879
						local  c = Instance.new("ObjectValue",hum)
880
						c.Name = "creator"
881
						c.Value = Plr
882
						game:service'Debris':AddItem(c,0.35)
883
						local Crit = false
884
						if(M.RNG(1,100) <= (critChance or 0) and critMult > 1)then
885
							Crit = true
886
							Damage = Damage*(critMult or 2)
887
						end
888
						Damage = Damage*((Souls/5)+1)
889
						if(who:FindFirstChild'Head' and hum.Health > 0)then
890
							ShowDamage((who.Head.CFrame * CF.N(0, 0, (who.Head.Size.Z / 2)).p+V3.N(0,1.5,0)+V3.N(M.RNG(-2,2),0,M.RNG(-2,2))), (Crit and "[CRIT] " or "").. math.floor(Damage), 3, (Crit and BrickColor.new'New Yeller'.Color or DamageColor.Color))
891
						end
892
						
893
						if(hum.Health - Damage <= 0)then
894
							Kill(who)
895
						else
896
							hum.Health = hum.Health - Damage
897
							if(Type == 'Knockback' and GetTorso(who))then
898
								local angle = GetTorso(who).Position - Root.Position + Vector3.new(0, 0, 0).unit
899
								local body = NewInstance('BodyVelocity',GetTorso(who),{
900
									P = 500,
901
									maxForce = V3.N(math.huge,0,math.huge),
902
									velocity = Root.CFrame.lookVector * Knock + Root.Velocity / 1.05
903
								})
904
								game:service'Debris':AddItem(body,.5)
905
							elseif(Type == "Electric")then
906
								if(M.RNG(1,100) >= critChance)then
907
									if(who:FindFirstChild'Head' and hum.Health > 0)then
908
										ShowDamage((who.Head.CFrame * CF.N(0, 0, (who.Head.Size.Z / 2)).p+V3.N(0,1.5,0)+V3.N(M.RNG(-2,2),0,M.RNG(-2,2))), "[PARALYZED]", 3, BrickColor.new"New Yeller".Color)
909
									end
910
									local asd = hum.WalkSpeed/2
911
									hum.WalkSpeed = asd
912
									local paralyzed = true
913
									coroutine.wrap(function()
914
										while paralyzed do
915
											swait(25)
916
											if(M.RNG(1,25) == 1)then
917
												if(who:FindFirstChild'Head' and hum.Health > 0)then
918
													ShowDamage((who.Head.CFrame * CF.N(0, 0, (who.Head.Size.Z / 2)).p+V3.N(0,1.5,0)+V3.N(M.RNG(-2,2),0,M.RNG(-2,2))), "[STATIC]", 3, BrickColor.new"New Yeller".Color)
919
												end
920
												hum.PlatformStand = true
921
											end
922
										end
923
									end)()
924
									delay(4, function()
925
										paralyzed = false
926
										hum.WalkSpeed = hum.WalkSpeed + asd
927
									end)
928
								end
929
								
930
							elseif(Type == 'Knockdown' and GetTorso(who))then
931
								local rek = GetTorso(who)
932
								hum.PlatformStand = true
933
								delay(1,function()
934
									hum.PlatformStand = false
935
								end)
936
								local angle = (GetTorso(who).Position - (Root.Position + Vector3.new(0, 0, 0))).unit
937
								local bodvol = NewInstance("BodyVelocity",rek,{
938
									velocity = angle * Knock,
939
									P = 5000,
940
									maxForce = Vector3.new(8e+003, 8e+003, 8e+003),
941
								})
942
								local rl = NewInstance("BodyAngularVelocity",rek,{
943
									P = 3000,
944
									maxTorque = Vector3.new(500000, 500000, 500000) * 50000000000000,
945
									angularvelocity = Vector3.new(math.random(-10, 10), math.random(-10, 10), math.random(-10, 10)),
946
								})
947
								game:GetService("Debris"):AddItem(bodvol, .5)
948
								game:GetService("Debris"):AddItem(rl, .5)
949
							end
950
						end
951
					end
952
				end
953
			end
954
		end
955
	end
956
end
957
958
959
function AOEDamage(where,range,minDam,maxDam,Knock,Type,critChance,critMult)
960
	for _,v in next, getRegion(where,range,{Char}) do
961
		if(v.Name ~= 'SHYIME')then
962
			if(v.Parent and v.Parent:FindFirstChildOfClass'Humanoid')then
963
				DealDamage(v.Parent,minDam,maxDam,Knock,Type,critChance,critMult)
964
			end
965
		end
966
	end
967
end
968
969
function AOEKill(where,range)
970
	for _,v in next, getRegion(where,range,{Char,Effects}) do
971
		local succ,alive = pcall(function() return v.Parent:FindFirstChildOfClass'Humanoid'.Health > 0 end)
972
		if(v.Name ~= 'SHYIME')then
973
			if(v.Parent and alive == true)then
974
				coroutine.wrap(Kill)(v.Parent)
975
			end
976
		end
977
	end
978
end
979
980
function AOEHeal(where,range,amount)
981
	local healed = {}
982
	for _,v in next, getRegion(where,range,{Char}) do
983
		local hum = (v.Parent and v.Parent:FindFirstChildOfClass'Humanoid' or nil)
984
		if(hum and not healed[hum])then
985
			hum.Health = hum.Health + amount
986
			if(v.Parent:FindFirstChild'Head' and hum.Health > 0)then
987
				ShowDamage((v.Parent.Head.CFrame * CF.N(0, 0, (v.Parent.Head.Size.Z / 2)).p+V3.N(0,1.5,0)), "+"..amount, 1.5, BrickColor.new'Lime green'.Color)
988
			end
989
		end
990
	end
991
end
992
993
994
--// Attack Functions \\--
995
996
997
function Slash()
998
	Attack = true
999
	NeutralAnims = false
1000
	local sound = Sound(Knife,615910787,1,5,false,true,false)
1001
	for i = 0, 2, 0.1 do
1002
		swait()
1003
		local Alpha = .2
1004
		RJ.C0 = clerp(RJ.C0,CFrame.new(0.0343287587, 0.00629056804, 0.0572580174, 0.943793893, 0.00207689893, 0.330528289, 1.0000764e-06, 0.99998033, -0.00628630351, -0.330534875, 0.00593330665, 0.943775296),Alpha)
1005
		LH.C0 = clerp(LH.C0,CFrame.new(-0.496478021, -0.990818381, 0.021652732, 0.999878168, 0, 0.0156089365, -9.80779296e-05, 0.99998033, 0.00628268253, -0.0156086385, -0.00628344761, 0.999858379),Alpha)
1006
		RH.C0 = clerp(RH.C0,CFrame.new(0.498511612, -0.990985274, 0.0154910646, 0.999878168, 0, 0.0156089365, -9.80779296e-05, 0.99998033, 0.00628268253, -0.0156086385, -0.00628344761, 0.999858379),Alpha)
1007
		LS.C0 = clerp(LS.C0,CFrame.new(-1.32692134, 0.474511296, -0.0055731535, 0.934981823, 0.354351997, 0.0156129003, -0.354479939, 0.93504262, 0.00628374517, -0.0123721063, -0.0114096552, 0.999858379),Alpha)
1008
		RS.C0 = clerp(RS.C0,CFrame.new(1.12629449, 0.369358033, -0.486052871, 0.490151912, 0.65154773, 0.57899636, 0.721657813, 0.0691910982, -0.688783586, -0.488836735, 0.755445719, -0.436280251),Alpha)
1009
		NK.C0 = clerp(NK.C0,CFrame.new(-0.0118216109, 1.49854016, -0.0795068145, 0.943793833, 0.0190048125, -0.329988182, 0.00207654224, 0.997985244, 0.0634154305, 0.330528468, -0.0605363287, 0.94185257),Alpha)
1010
		HW.C0 = HW.C0:lerp(CF.N(0,-1,-1)*CF.A(M.R(-90),0,0),Alpha)
1011
	end
1012
	KTrail.Enabled = true
1013
	sound:Play()
1014
	for i = 0, 2.5, 0.1 do
1015
		swait()
1016
		AOEDamage(Knife.CFrame.p,1,15,30,0,"Normal",0,1)
1017
		local Alpha = .25
1018
		RJ.C0 = clerp(RJ.C0,CFrame.new(-0.0352100767, 0.00629066909, -0.0097481478, 0.817972422, -0.00361463916, -0.575246274, -1.74103582e-06, 0.99998033, -0.00628598873, 0.575257719, 0.00514276745, 0.817956269),Alpha)
1019
		LH.C0 = clerp(LH.C0,CFrame.new(-0.496478021, -0.990818381, 0.0216572341, 0.999878287, 0, 0.015610218, -9.80866607e-05, 0.99998033, 0.00628274865, -0.0156098902, -0.00628351374, 0.999858499),Alpha)
1020
		RH.C0 = clerp(RH.C0,CFrame.new(0.498511702, -0.990985274, 0.0154905058, 0.999878287, 0, 0.015610218, -9.80866607e-05, 0.99998033, 0.00628274865, -0.0156098902, -0.00628351374, 0.999858499),Alpha)
1021
		LS.C0 = clerp(LS.C0,CFrame.new(-1.32694602, 0.474510223, -0.00555660389, 0.934981823, 0.354351729, 0.0156157613, -0.354479671, 0.935042739, 0.00628153514, -0.012375474, -0.0114085823, 0.999858379),Alpha)
1022
		RS.C0 = clerp(RS.C0,CFrame.new(1.23906493, 0.406229913, 0.00231830776, 0.49015066, -0.849889755, 0.193494052, 0.721655607, 0.520183682, 0.456752002, -0.488841236, -0.0842411816, 0.868295968),Alpha)
1023
		NK.C0 = clerp(NK.C0,CFrame.new(0.0315471888, 1.49887729, -0.0257819965, 0.817972481, -0.0330747738, 0.574305832, -0.00361499586, 0.998030663, 0.0626262054, -0.575246155, -0.0533026271, 0.81624186),Alpha)
1024
		HW.C0 = HW.C0:lerp(CF.N(0,-1,-1)*CF.A(M.R(-90),0,0),Alpha)
1025
	end
1026
	KTrail.Enabled = false
1027
	Attack = false
1028
	NeutralAnims = true
1029
end
1030
1031
Mouse.Button1Down:connect(function()
1032
	if(Attack)then return end
1033
	Slash()	
1034
end)
1035
1036
Mouse.KeyDown:connect(function(k)
1037
	if(Attack)then return end
1038
	if(k == 'z')then AOEKill(Root.CFrame.p,25) end -- TODO: Animation and effects
1039
	if(k == 'q')then WalkSpeed = (WalkSpeed == 8 and 48 or 8) end	
1040
end)
1041
1042
1043
function Refuse()
1044
	Attack = true
1045
	warn("B u t  i t  r e f u s e d.")
1046
	local oMH = MaxHealth
1047
	MaxHealth = "inf"
1048
	Hum.MaxHealth = "inf"
1049
	Hum.Health = "inf"
1050
	Char.Parent = nil
1051
	Hum:destroy()
1052
	if(not _G.RefusedAnimation)then
1053
		_G.RefusedAnimation = true
1054
coroutine.resume(coroutine.create(function(Part,Weld)
1055
while Part.Parent~=nil do
1056
wait(2)
1057
for i=0,1,0.2 do
1058
wait()
1059
m.Scale = Vector3.new(.9,.9-.8*i,.5)
1060
end
1061
for i=0,1,0.2 do
1062
wait()
1063
m.Scale = Vector3.new(.9,.9+.8*i,.5)
1064
end
1065
end
1066
end),leye,weld)
1067
	
1068
		
1069
wait(1)
1070
char.Head.face:Destroy()
1071
1072
local leye = Instance.new("Part", char)
1073
leye.CanCollide = false
1074
leye.BrickColor = BrickColor.new(righteyebrickcolor)
1075
leye.Material = "Neon"
1076
leye.Size = Vector3.new(.15,.15,.15)
1077
weld(leye, char.Head, CFrame.new(-0.15,-0.2,0.55), CFrame.new(1,0,0))
1078
local m = Instance.new("SpecialMesh", leye)
1079
m.MeshType = "Sphere"
1080
m.Scale = Vector3.new(0.9,0.9,0.9)
1081
leye.Locked = true
1082
leye.Name = "le"		
1083
		
1084
		
1085
		
1086
		
1087
		
1088
		
1089
		
1090
		
1091
		
1092
		
1093
		
1094
		
1095
		
1096
		
1097
		
1098
		
1099
		
1100
		
1101
		
1102
		
1103
		
1104
		
1105
		
1106
		
1107
		
1108
		
1109
		
1110
		
1111
		
1112
		local Soul;
1113
		function Soul(where,decalId)
1114
			local destroy = false	
1115
			local soul = NewInstance("Part",workspace)
1116
			soul.Name = "Soul"
1117
			soul.Transparency=1
1118
			soul.Size = V3.N(2,2,.05)
1119
			soul.Anchored=true
1120
			soul.CanCollide=false
1121
			soul.CFrame = where
1122
			local heartF = NewInstance("Decal",soul,{Face=Enum.NormalId.Front,Texture="rbxassetid://"..decalId})
1123
			local heartB = NewInstance("Decal",soul,{Face=Enum.NormalId.Back,Texture="rbxassetid://"..decalId})
1124
			return soul,heartF,heartB
1125
		end
1126
		local owo = Root.CFrame
1127
		local s,f,b = Soul(owo,1569347904)
1128
		swait(60)
1129
		local snd = Sound(s,862552636,1,5,false,false,false)
1130
		snd:Play()
1131
		f.Texture = "rbxassetid://1569348344"
1132
		b.Texture = "rbxassetid://1569348344"
1133
		swait(15)
1134
		snd:Stop()
1135
		swait(60)
1136
		print'lol'
1137
		for i = 0, 6, .1 do
1138
			swait()
1139
			s.CFrame = owo * CF.N(M.RNG(-50,50)/100,M.RNG(-50,50)/100,M.RNG(-50,50)/100)
1140
		end
1141
		local snd = Sound(s,862552636,1,5,false,false,false)
1142
		snd:Play()
1143
		s.CFrame = owo
1144
		f.Texture = "rbxassetid://1569347904"
1145
		b.Texture = "rbxassetid://1569347904"
1146
		swait(15)
1147
		snd:Stop()
1148
		swait(60)
1149
	
1150
		s:destroy()
1151
	end
1152
	
1153
	RJ.Parent = Char
1154
	LS.Parent = Char
1155
	RS.Parent = Char
1156
	LH.Parent = Char
1157
	RH.Parent = Char
1158
	NK.Parent = Char
1159
	
1160
	LArm.Parent = Char
1161
	RArm.Parent = Char
1162
	LLeg.Parent = Char
1163
	LArm.Parent = Char
1164
	Root.Parent = Char
1165
	Torso.Parent = Char
1166
	Head.Parent = Char
1167
	
1168
	Knife.Parent = Char
1169
	Hair.Parent = Char
1170
	
1171
	HW.Parent = Char
1172
	HW2.Parent = Char
1173
	
1174
1175
	LEye:destroy()
1176
	
1177
	for _,v in next, Char:children() do
1178
		if(v.Name == 'ShadowFace')then v:destroy() end
1179
	end
1180
	LEye = Part(Char,C3.N(1,0,0),Enum.Material.Neon,V3.N(.15,.25,.2),CF.N(),false,false)
1181
	LEyeM = Mesh(LEye,Enum.MeshType.Sphere,"","",V3.N(1,1,1),V3.N())
1182
	LEyeW = NewInstance("Weld",LEye,{Part0=Head,Part1=LEye,C0=CF.N(-.2,.2,-.49)})
1183
	for i = 1, 35 do
1184
		local FACE = Part(Char,C3.N(0,0,0),Enum.Material.Neon,V3.N(1.01,.5,1.01),CF.N(),false,false)
1185
		FACE.Transparency = 0+(i-1)/35.2
1186
		FACE.Name = 'ShadowFace'
1187
		Head:FindFirstChildOfClass("SpecialMesh"):Clone().Parent = FACE
1188
		NewInstance("Weld",Head,{Part0=Head,Part1=FACE,C0=CF.N(0,.35-(i-1)/75,0)})
1189
		--CreateWeldOrSnapOrMotor("Weld", Head, Head, FACE, CF(0,0.35-(i-1)/75,0), CF(0, 0, 0))
1190
	end
1191
	Hum = NewInstance("Humanoid",Char,{DisplayDistanceType='None'})
1192
	ConnectHum()
1193
	MaxHealth = oMH
1194
	Hum.MaxHealth = MaxHealth
1195
	Hum.Health = MaxHealth
1196
	swait(5)
1197
	Char.Parent = workspace
1198
	
1199
	Attack = false
1200
end
1201
1202
function ConnectHum()
1203
	Hum.Died:connect(Refuse)
1204
end
1205
ConnectHum()
1206
1207
1208
--// Wrap it all up \\--
1209
while true do
1210
	swait()
1211
	Sine = Sine + Change
1212
	if(not Music)then
1213
		Music = Sound(Torso,MusicID,1,3,true,false,true)
1214
		Music.Name = 'Music'
1215
	end
1216
	Music.Pitch = 1
1217
	Music.Volume = 5
1218
	Music.SoundId = "rbxassetid://"..MusicID
1219
	Music.Parent = Torso
1220
	Music:Resume()
1221
	local hitfloor,posfloor = workspace:FindPartOnRay(Ray.new(Root.CFrame.p,((CFrame.new(Root.Position,Root.Position - Vector3.new(0,1,0))).lookVector).unit * 4), Char)
1222
	local Walking = (math.abs(Root.Velocity.x) > 1 or math.abs(Root.Velocity.z) > 1)
1223
	local State = (Hum.PlatformStand and 'Paralyzed' or Hum.Sit and 'Sit' or not hitfloor and Root.Velocity.y < -1 and "Fall" or not hitfloor and Root.Velocity.y > 1 and "Jump" or hitfloor and Walking and "Walk" or hitfloor and "Idle")
1224
	if(not Effects or not Effects.Parent)then
1225
		Effects = IN("Model",Char)
1226
		Effects.Name = "Effects"
1227
	end
1228
	Hum.WalkSpeed = WalkSpeed
1229
	if(State == 'Walk')then
1230
		if(Hum.WalkSpeed >= 24)then
1231
			local wsVal = 22 / (Hum.WalkSpeed/16)
1232
			local Alpha = math.min(.1 * (Hum.WalkSpeed/16),1)
1233
			Change = 2
1234
			RH.C1 = RH.C1:lerp(CF.N(0,1,0)*CF.N(0,0-.2*M.C(Sine/wsVal),0+.4*M.C(Sine/wsVal))*CF.A(M.R(25+45*M.C(Sine/wsVal))+-M.S(Sine/wsVal),0,0),Alpha)
1235
			LH.C1 = LH.C1:lerp(CF.N(0,1,0)*CF.N(0,0+.2*M.C(Sine/wsVal),0-.4*M.C(Sine/wsVal))*CF.A(M.R(25-45*M.C(Sine/wsVal))+M.S(Sine/wsVal),0,0),Alpha)
1236
		else
1237
			Change = .9
1238
			local wsVal = 8 / (Hum.WalkSpeed/8)
1239
			local Alpha = math.min(.2 * (Hum.WalkSpeed/8),1)
1240
			LH.C1 = LH.C1:lerp(CF.N(0,1-.2*M.C(Sine/wsVal)/2,.4*M.C(Sine/wsVal)/2)*CF.A(M.R(15-2*M.C(Sine/wsVal))-M.S(Sine/wsVal)/2.5,0,0)*CF.A(M.R(0-3*M.C(Sine/wsVal)),0,0),Alpha)
1241
			RH.C1 = RH.C1:lerp(CF.N(0,1+.2*M.C(Sine/wsVal)/2,-.4*M.C(Sine/wsVal)/2)*CF.A(M.R(15+2*M.C(Sine/wsVal))+M.S(Sine/wsVal)/2.5,0,0)*CF.A(M.R(0+3*M.C(Sine/wsVal)),0,0),Alpha)
1242
		end
1243
	else
1244
		RH.C1 = RH.C1:lerp(CF.N(0,1,0),.1)
1245
		LH.C1 = LH.C1:lerp(CF.N(0,1,0),.1)
1246
	end	
1247
	for _,v in next, Char:children() do
1248
		if(v:IsA'Accessory')then
1249
			v:destroy()
1250
		elseif(v:IsA'Shirt')then
1251
			v.ShirtTemplate = "rbxassetid://164863650"
1252
		elseif(v:IsA'Pants')then
1253
			v.PantsTemplate = "rbxassetid://178874868" --1049387572
1254
		elseif(v:IsA'CharacterMesh')then
1255
			v:destroy()
1256
		elseif(v:FindFirstChildOfClass'ShirtGraphic')then
1257
			v:FindFirstChildOfClass'ShirtGraphic':destroy()
1258
		end
1259
	end
1260
	local face = Head:FindFirstChild'face'
1261
	if(not face)then
1262
		NewInstance("Decal",Head,{Name='face',Face=Enum.NormalId.Front,Texture="rbxassetid://1102142750"})
1263
	else
1264
		face.Texture = "rbxassetid://1102142750"
1265
	end
1266
	RArm.BrickColor = BrickColor.new'Pastel brown'
1267
	LArm.BrickColor = BrickColor.new'Pastel brown'
1268
	RLeg.BrickColor = BrickColor.new'Pastel brown'
1269
	LLeg.BrickColor = BrickColor.new'Pastel brown'
1270
	Torso.BrickColor = BrickColor.new'Pastel brown'
1271
	Head.BrickColor = BrickColor.new'Pastel brown'
1272
	Hum.Name = 'Chara'
1273
	if(Hum.MaxHealth ~= MaxHealth)then
1274
		Hum.MaxHealth = MaxHealth
1275
	end
1276
	Hum.DisplayDistanceType='None'
1277
	if(NeutralAnims)then	
1278
		if(State == 'Idle')then
1279
			Change = 1
1280
			local Alpha = .1
1281
			RJ.C0 = clerp(RJ.C0,CFrame.new(-0.0999571308, 0+.05*M.C(Sine/16), -0.237876296, 0.857335567, -0.00323621999, -0.514731407, 0, 0.99998033, -0.00628707698, 0.51474154, 0.00539013464, 0.85731858),Alpha)
1282
			LH.C0 = clerp(LH.C0,CFrame.new(-0.536091685, -0.991042495-.05*M.C(Sine/16), -0.0134909991, 0.849195242, 0, 0.528063774, -0.00331997755, 0.99998033, 0.00533895614, -0.528053343, -0.00628707698, 0.849178433),Alpha)
1283
			RH.C0 = clerp(RH.C0,CFrame.new(0.529067397, -0.991597891-.05*M.C(Sine/16), -0.0818087086, 0.849195242, 0, 0.528063774, -0.00331997755, 0.99998033, 0.00533895614, -0.528053343, -0.00628707698, 0.849178433),Alpha)
1284
			LS.C0 = clerp(LS.C0,CFrame.new(-1.32175505, 0.156236127+.15*M.C(Sine/16), 0.233877867, 0.877554953, -0.456876248, 0.145469457, 0.259513229, 0.707695842, 0.657129884, -0.403175086, -0.538916171, 0.739607573),Alpha)
1285
			RS.C0 = clerp(RS.C0,CFrame.new(1.2516855, 0.604915917+.15*M.C(Sine/16), -0.0189059302, 0.915104508, -0.287113011, -0.283108115, 0.301054537, 0.953587949, 0.00603589695, 0.268235415, -0.0907544345, 0.959069014),Alpha)
1286
			NK.C0 = clerp(NK.C0,CFrame.new(1.79447234e-05, 1.49895597, -0.0143749639, 0.769539058, -0.360377938, 0.527197778, 0.387706369, 0.919646919, 0.0627188534, -0.507438183, 0.156133309, 0.847424924),Alpha)
1287
			HW.C0 = HW.C0:lerp(CF.N(0,-1,-1)*CF.A(M.R(-90),0,0),Alpha)
1288
			-- idle
1289
		elseif(State == 'Walk')then
1290
			if(Hum.WalkSpeed >= 24)then
1291
				local wsVal = 22 / (Hum.WalkSpeed/16)
1292
				local Alpha = math.min(.2 * (Hum.WalkSpeed/16),1)
1293
				RJ.C0 = RJ.C0:lerp(CF.N(0,0-.15*M.C(Sine/(wsVal/2)),0)*CF.A(M.R(-15),M.R(0-15*M.S(Sine/wsVal)/2),0),Alpha)
1294
				LS.C0 = LS.C0:lerp(LSC0*CF.N(0,0,0-.3*M.S(Sine/wsVal))*CF.A(M.R(0+45*M.S(Sine/wsVal)),0,M.R(-5+15*M.S(Sine/wsVal))),Alpha)
1295
				RS.C0 = RS.C0:lerp(RSC0*CF.N(0,0,0+.3*M.S(Sine/wsVal))*CF.A(M.R(0-45*M.S(Sine/wsVal)),0,M.R(5+15*M.S(Sine/wsVal))),Alpha)
1296
				NK.C0 = NK.C0:lerp(NKC0*CF.A(M.R(15),0,0),Alpha)
1297
				LH.C0 = LH.C0:lerp(LHC0*CF.N(0,0+.15*M.C(Sine/(wsVal/2)),0)*CF.A(M.R(15),0,0),Alpha)
1298
				RH.C0 = RH.C0:lerp(RHC0*CF.N(0,0+.15*M.C(Sine/(wsVal/2)),0)*CF.A(M.R(15),0,0),Alpha)
1299
				HW.C0 = HW.C0:lerp(CF.N(0,-1,-1)*CF.A(M.R(-90),0,0),Alpha)
1300
			else
1301
				local wsVal = 8 / (Hum.WalkSpeed/8)
1302
				local Alpha = math.min(.2 * (Hum.WalkSpeed/8),1)
1303
				RJ.C0 = RJ.C0:lerp(CF.N(0,0-.05*M.C(Sine/(wsVal/2)),0)*CF.A(0,M.R(0-5*M.S(Sine/wsVal)/2),0),Alpha)
1304
				LS.C0 = LS.C0:lerp(LSC0*CF.N(0,0,0+.3*M.S(Sine/wsVal))*CF.A(M.R(0-25*M.S(Sine/wsVal)),0,M.R(5-5*M.S(Sine/wsVal))),Alpha)
1305
				RS.C0 = RS.C0:lerp(RSC0*CF.N(0,0,0-.3*M.S(Sine/wsVal))*CF.A(M.R(0+25*M.S(Sine/wsVal)),0,M.R(-5-5*M.S(Sine/wsVal))),Alpha)
1306
				NK.C0 = NK.C0:lerp(NKC0,Alpha)
1307
				LH.C0 = LH.C0:lerp(LHC0*CF.N(0,0+.05*M.C(Sine/(wsVal/2)),0),Alpha)
1308
				RH.C0 = RH.C0:lerp(RHC0*CF.N(0,0+.05*M.C(Sine/(wsVal/2)),0),Alpha)
1309
				HW.C0 = HW.C0:lerp(CF.N(0,-1,-1)*CF.A(M.R(-90),0,0),Alpha)
1310
			end
1311
		elseif(State == 'Jump' or State == 'Fall')then
1312
			if(Walking)then
1313
				local Alpha = .2
1314
				RJ.C0 = clerp(RJ.C0,RJC0*CF.A(math.min(math.max(Root.Velocity.Y/100,-M.R(65)),M.R(65)),0,0),Alpha)
1315
				LH.C0 = clerp(LH.C0,CFrame.new(-0.497912645, -1.0987643, -0.0683324337, 0.999878228, 0.00860835519, 0.0130246133, -0.00010142161, 0.837816596, -0.545952022, -0.015611981, 0.545884132, 0.837715328),Alpha)
1316
				RH.C0 = clerp(RH.C0,CFrame.new(0.499978393, -1.16382337, 0.109293163, 0.999878228, -0.0120433727, 0.00993486121, -0.00010142161, 0.631323814, 0.775519371, -0.015611981, -0.775425911, 0.631245613),Alpha)
1317
				LS.C0 = clerp(LS.C0,CFrame.new(-1.55211556, 0.576563478, -0.00269976072, 0.976067662, 0.216906726, 0.0156116467, -0.217024669, 0.976145923, 0.00628317893, -0.0138763804, -0.00952091813, 0.999858499),Alpha)
1318
				RS.C0 = clerp(RS.C0,CFrame.new(1.50182188, 0.636661649, 0.00632623257, 0.977592707, -0.209926367, 0.0156121543, 0.209851891, 0.977713108, 0.00628198683, -0.016582964, -0.00286500831, 0.999858439),Alpha)
1319
				NK.C0 = clerp(NK.C0,CFrame.new(1.14440072e-05, 1.49924362, -0.0143961608, 1.00000024, -5.82076609e-11, 0, 1.23691279e-10, 0.997964919, 0.0637660474, 0, -0.0637660623, 0.997965038),Alpha)
1320
				HW.C0 = HW.C0:lerp(CF.N(0,-1,-1)*CF.A(M.R(-90),0,0),Alpha)
1321
			else
1322
				local Alpha = .2
1323
				RJ.C0 = clerp(RJ.C0,RJC0*CF.A(math.min(math.max(Root.Velocity.Y/100,-M.R(65)),M.R(65)),0,0),Alpha)
1324
				LH.C0 = clerp(LH.C0,CFrame.new(-0.504374504, -0.291219354, -0.487436086, 0.999878228, -0.00438931212, 0.0149825988, -0.00010142161, 0.957819223, 0.287371844, -0.015611981, -0.287338346, 0.957701981),Alpha)
1325
				RH.C0 = clerp(RH.C0,CFrame.new(0.453094482, -0.871358454, 0.0898642987, 0.985589385, -0.168456957, 0.0153662469, 0.162863791, 0.969548643, 0.182895929, -0.0457084104, -0.177757636, 0.983012319),Alpha)
1326
				LS.C0 = clerp(LS.C0,CFrame.new(-1.55211556, 0.576563478, -0.00269976072, 0.976067662, 0.216906726, 0.0156116467, -0.217024669, 0.976145923, 0.00628317893, -0.0138763804, -0.00952091813, 0.999858499),Alpha)
1327
				RS.C0 = clerp(RS.C0,CFrame.new(1.50182188, 0.636661649, 0.00632623257, 0.977592707, -0.209926367, 0.0156121543, 0.209851891, 0.977713108, 0.00628198683, -0.016582964, -0.00286500831, 0.999858439),Alpha)
1328
				NK.C0 = clerp(NK.C0,CFrame.new(1.14440072e-05, 1.49924362, -0.0143961608, 1.00000024, -5.82076609e-11, 0, 1.23691279e-10, 0.997964919, 0.0637660474, 0, -0.0637660623, 0.997965038),Alpha)
1329
				HW.C0 = HW.C0:lerp(CF.N(0,-1,-1)*CF.A(M.R(-90),0,0),Alpha)
1330
			end
1331
		elseif(State == 'Paralyzed')then
1332
			-- paralyzed
1333
		elseif(State == 'Sit')then
1334
			-- sit
1335
		end
1336
	end
1337
end