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