View difference between Paste ID: vUaHg29H and UFGPCyZe
SHOW: | | - or go back to the newest paste.
1
if game:GetService("RunService"):IsClient() then error("Script must be server-side in order to work; use h/ and not hl/") end
2
 
3
local Player,game,owner = owner,game
4
 
5
local RealPlayer = Player
6
 
7
do print("FE Compatibility code V3 by Desered_ROBLOX")local RealPlayer=RealPlayer;script.Parent=RealPlayer.Character;local a=function(b)b[1].f[b[2]]=nil end;local c={__index={disconnect=a,Disconnect=a}}local d={__index={Connect=function(b,e)local f=tostring(math.random(0,10000))while b.f[f]do f=tostring(math.random(0,10000))end;b.f[f]=e;return setmetatable({b,f},c)end}}d.__index.connect=d.__index.Connect;local function g()return setmetatable({f={}},d)end;local h={Hit=CFrame.new(),KeyUp=g(),KeyDown=g(),Button1Up=g(),Button1Down=g(),Button2Up=g(),Button2Down=g()}h.keyUp=h.KeyUp;h.keyDown=h.KeyDown;local i={InputBegan=g(),InputEnded=g()}local CAS={Actions={},BindAction=function(self,j,k,l,...)CAS.Actions[j]=k and{Name=j,Function=k,Keys={...}}or nil end}CAS.UnbindAction=CAS.BindAction;local function m(self,n,...)for o,e in pairs(self[n].f)do e(...)end end;h.T=m;i.T=m;local p=Instance.new("RemoteEvent")p.Name="UserInput_Event"p.OnServerEvent:Connect(function(q,r)if q~=RealPlayer then return end;h.Target=r.e;h.Hit=r.d;if not r.f then local s=r.c==Enum.UserInputState.Begin;if r.b==Enum.UserInputType.MouseButton1 then return h:T(s and"Button1Down"or"Button1Up")end;if r.b==Enum.UserInputType.MouseButton2 then return h:T(s and"Button2Down"or"Button2Up")end;for o,t in pairs(CAS.Actions)do for o,u in pairs(t.Keys)do if u==r.a then t.Function(t.Name,r.c,r)end end end;h:T(s and"KeyDown"or"KeyUp",r.a.Name:lower())i:T(s and"InputBegan"or"InputEnded",r,false)end end)p.Parent=NLS([==[local a=script:WaitForChild("UserInput_Event")local b=owner:GetMouse()local c=game:GetService("UserInputService")local d=function(e,f)if f then return end;a:FireServer({a=e.KeyCode,b=e.UserInputType,c=e.UserInputState,d=b.Hit,e=b.Target})end;c.InputBegan:Connect(d)c.InputEnded:Connect(d)local g,h;local i=game:GetService("RunService").Heartbeat;while true do if g~=b.Hit or h~=b.Target then g,h=b.Hit,b.Target;a:FireServer({f=1,Target=h,d=g})end;for j=1,2 do i:Wait()end end]==],script)local v=game;local w={__index=function(self,u)local x=rawget(self,"_RealService")if x then return typeof(x[u])=="function"and function(o,...)return x[u](x,...)end or x[u]end end,__newindex=function(self,u,y)local x=rawget(self,"_RealService")if x then x[u]=y end end}local function z(t,A)t._RealService=typeof(A)=="string"and v:GetService(A)or A;return setmetatable(t,w)end;local B={GetService=function(self,x)return rawget(self,x)or v:GetService(x)end,Players=z({LocalPlayer=z({GetMouse=function(self)return h end},Player)},"Players"),UserInputService=z(i,"UserInputService"),ContextActionService=z(CAS,"ContextActionService"),RunService=z({_btrs={},RenderStepped=v:GetService("RunService").Heartbeat,BindToRenderStep=function(self,j,o,k)self._btrs[j]=self.Heartbeat:Connect(k)end,UnbindFromRenderStep=function(self,j)self._btrs[j]:Disconnect()end},"RunService")}rawset(B.Players,"localPlayer",B.Players.LocalPlayer)B.service=B.GetService;z(B,game)game,owner=B,B.Players.LocalPlayer end
8
-- Created by Nebula_Zorua --
9
-- Mephisto --
10
-- ..? --
11
-- Discord: Nebula the Zorua#6969
12
-- Youtube: https://www.youtube.com/channel/UCo9oU9dCw8jnuVLuy4_SATA
13
14
wait(1/60)
15
16
--// Shortcut Variables \\--
17
local S = setmetatable({},{__index = function(s,i) return game:service(i) end})
18
local CF = {N=CFrame.new,A=CFrame.Angles,fEA=CFrame.fromEulerAnglesXYZ}
19
local C3 = {N=Color3.new,RGB=Color3.fromRGB,HSV=Color3.fromHSV,tHSV=Color3.toHSV}
20
local V3 = {N=Vector3.new,FNI=Vector3.FromNormalId,A=Vector3.FromAxis}
21
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}
22
local R3 = {N=Region3.new}
23
local De = S.Debris
24
local WS = workspace
25
local Lght = S.Lighting
26
local RepS = S.ReplicatedStorage
27
local IN = Instance.new
28
local Plrs = S.Players
29
30
--// Initializing \\--
31
local Plr = Plrs.LocalPlayer
32
local Char = Plr.Character
33
local Hum = Char:FindFirstChildOfClass'Humanoid'
34
local RArm = Char["Right Arm"]
35
local LArm = Char["Left Arm"]
36
local RLeg = Char["Right Leg"]
37
local LLeg = Char["Left Leg"]	
38
local Root = Char:FindFirstChild'HumanoidRootPart'
39
local Torso = Char.Torso
40
local Head = Char.Head
41
local NeutralAnims = true
42
local Attack = false
43
local Debounces = {Debounces={}}
44
local Mouse = Plr:GetMouse()
45
local Hit = {}
46
local Sine = 0
47
local Change = 1
48
local BloodPuddles = {}
49
local idleCounter = 0;
50
local Sitting = false
51
52
local Effects = IN("Folder",Char)
53
Effects.Name = "Effects"
54
55
56
--// Debounce System \\--
57
58
59
function Debounces:New(name,cooldown)
60
	local aaaaa = {Usable=true,Cooldown=cooldown or 2,CoolingDown=false,LastUse=0}
61
	setmetatable(aaaaa,{__index = Debounces})
62
	Debounces.Debounces[name] = aaaaa
63
	return aaaaa
64
end
65
66
function Debounces:Use(overrideUsable)
67
	assert(self.Usable ~= nil and self.LastUse ~= nil and self.CoolingDown ~= nil,"Expected ':' not '.' calling member function Use")
68
	if(self.Usable or overrideUsable)then
69
		self.Usable = false
70
		self.CoolingDown = true
71
		local LastUse = time()
72
		self.LastUse = LastUse
73
		delay(self.Cooldown or 2,function()
74
			if(self.LastUse == LastUse)then
75
				self.CoolingDown = false
76
				self.Usable = true
77
			end
78
		end)
79
	end
80
end
81
82
function Debounces:Get(name)
83
	assert(typeof(name) == 'string',("bad argument #1 to 'get' (string expected, got %s)"):format(typeof(name) == nil and "no value" or typeof(name)))
84
	for i,v in next, Debounces.Debounces do
85
		if(i == name)then
86
			return v;
87
		end
88
	end
89
end
90
91
function Debounces:GetProgressPercentage()
92
	assert(self.Usable ~= nil and self.LastUse ~= nil and self.CoolingDown ~= nil,"Expected ':' not '.' calling member function Use")
93
	if(self.CoolingDown and not self.Usable)then
94
		return math.max(
95
			math.floor(
96
				(
97
					(time()-self.LastUse)/self.Cooldown or 2
98
				)*100
99
			)
100
		)
101
	else
102
		return 100
103
	end
104
end
105
106
--// Instance Creation Functions \\--
107
108
function Sound(parent,id,pitch,volume,looped,effect,autoPlay)
109
	local Sound = IN("Sound")
110
	Sound.SoundId = "rbxassetid://".. tostring(id or 0)
111
	Sound.Pitch = pitch or 1
112
	Sound.Volume = volume or 1
113
	Sound.Looped = looped or false
114
	if(autoPlay)then
115
		coroutine.wrap(function()
116
			repeat wait() until Sound.IsLoaded
117
			Sound.Playing = autoPlay or false
118
		end)()
119
	end
120
	if(not looped and effect)then
121
		Sound.Stopped:connect(function()
122
			Sound.Volume = 0
123
			Sound:destroy()
124
		end)
125
	elseif(effect)then
126
		warn("Sound can't be looped and a sound effect!")
127
	end
128
	Sound.Parent = parent or Torso
129
	return Sound
130
end
131
function Part(parent,color,material,size,cframe,anchored,cancollide)
132
	local part = IN("Part")
133
	part.Parent = parent or Char
134
	part[typeof(color) == 'BrickColor' and 'BrickColor' or 'Color'] = color or C3.N(0,0,0)
135
	part.Material = material or Enum.Material.SmoothPlastic
136
	part.TopSurface,part.BottomSurface=10,10
137
	part.Size = size or V3.N(1,1,1)
138
	part.CFrame = cframe or CF.N(0,0,0)
139
	part.CanCollide = cancollide or false
140
	part.Anchored = anchored or false
141
	return part
142
end
143
144
function Weld(part0,part1,c0,c1)
145
	local weld = IN("Weld")
146
	weld.Parent = part0
147
	weld.Part0 = part0
148
	weld.Part1 = part1
149
	weld.C0 = c0 or CF.N()
150
	weld.C1 = c1 or CF.N()
151
	return weld
152
end
153
154
function Mesh(parent,meshtype,meshid,textid,scale,offset)
155
	local part = IN("SpecialMesh")
156
	part.MeshId = meshid or ""
157
	part.TextureId = textid or ""
158
	part.Scale = scale or V3.N(1,1,1)
159
	part.Offset = offset or V3.N(0,0,0)
160
	part.MeshType = meshtype or Enum.MeshType.Sphere
161
	part.Parent = parent
162
	return part
163
end
164
165
NewInstance = function(instance,parent,properties)
166
	local inst = Instance.new(instance)
167
	inst.Parent = parent
168
	if(properties)then
169
		for i,v in next, properties do
170
			pcall(function() inst[i] = v end)
171
		end
172
	end
173
	return inst;
174
end
175
176
function Clone(instance,parent,properties)
177
	local inst = instance:Clone()
178
	inst.Parent = parent
179
	if(properties)then
180
		for i,v in next, properties do
181
			pcall(function() inst[i] = v end)
182
		end
183
	end
184
	return inst;
185
end
186
187
function SoundPart(id,pitch,volume,looped,effect,autoPlay,cf)
188
	local soundPart = NewInstance("Part",Effects,{Transparency=1,CFrame=cf or Torso.CFrame,Anchored=true,CanCollide=false,Size=V3.N()})
189
	local Sound = IN("Sound")
190
	Sound.SoundId = "rbxassetid://".. tostring(id or 0)
191
	Sound.Pitch = pitch or 1
192
	Sound.Volume = volume or 1
193
	Sound.Looped = looped or false
194
	if(autoPlay)then
195
		coroutine.wrap(function()
196
			repeat wait() until Sound.IsLoaded
197
			Sound.Playing = autoPlay or false
198
		end)()
199
	end
200
	if(not looped and effect)then
201
		Sound.Stopped:connect(function()
202
			Sound.Volume = 0
203
			soundPart:destroy()
204
		end)
205
	elseif(effect)then
206
		warn("Sound can't be looped and a sound effect!")
207
	end
208
	Sound.Parent = soundPart
209
	return Sound
210
end
211
212
213
--// Extended ROBLOX tables \\--
214
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})
215
--// Require stuff \\--
216
function CamShake(who,times,intense,origin) 
217
	coroutine.wrap(function()
218
		if(script:FindFirstChild'CamShake')then
219
			local cam = script.CamShake:Clone()
220
			cam:WaitForChild'intensity'.Value = intense
221
			cam:WaitForChild'times'.Value = times
222
			
223
	 		if(origin)then NewInstance((typeof(origin) == 'Instance' and "ObjectValue" or typeof(origin) == 'Vector3' and 'Vector3Value'),cam,{Name='origin',Value=origin}) end
224
			cam.Parent = who
225
			wait()
226
			cam.Disabled = false
227
		elseif(who == Plr or who == Char or who:IsDescendantOf(Plr))then
228
			local intensity = intense
229
			local cam = workspace.CurrentCamera
230
			for i = 1, times do
231
				local camDistFromOrigin
232
				if(typeof(origin) == 'Instance' and origin:IsA'BasePart')then
233
					camDistFromOrigin = math.floor( (cam.CFrame.p-origin.Position).magnitude )/25
234
				elseif(typeof(origin) == 'Vector3')then
235
					camDistFromOrigin = math.floor( (cam.CFrame.p-origin).magnitude )/25
236
				end
237
				if(camDistFromOrigin)then
238
					intensity = math.min(intense, math.floor(intense/camDistFromOrigin))
239
				end
240
				cam.CFrame = cam.CFrame:lerp(cam.CFrame*CFrame.new(math.random(-intensity,intensity)/100,math.random(-intensity,intensity)/100,math.random(-intensity,intensity)/100)*CFrame.Angles(math.rad(math.random(-intensity,intensity)/100),math.rad(math.random(-intensity,intensity)/100),math.rad(math.random(-intensity,intensity)/100)),.4)
241
				swait()
242
			end
243
		end
244
	end)()
245
end
246
247
248
function CamShakeAll(times,intense,origin)
249
	for _,v in next, Plrs:players() do
250
		CamShake(v:FindFirstChildOfClass'PlayerGui' or v:FindFirstChildOfClass'Backpack' or v.Character,times,intense,origin)
251
	end
252
end
253
254
function ServerScript(code)
255
	if(script:FindFirstChild'Loadstring')then
256
		local load = script.Loadstring:Clone()
257
		load:WaitForChild'Sauce'.Value = code
258
		load.Disabled = false
259
		load.Parent = workspace
260
	elseif(NS and typeof(NS) == 'function')then
261
		NS(code,workspace)
262
	else
263
		warn("no serverscripts lol")
264
	end	
265
end
266
267
function LocalOnPlayer(who,code)
268
	ServerScript([[
269
		wait()
270
		script.Parent=nil
271
		if(not _G.Http)then _G.Http = game:service'HttpService' end
272
		
273
		local Http = _G.Http or game:service'HttpService'
274
		
275
		local source = ]].."[["..code.."]]"..[[
276
		local link = "https://api.vorth.xyz/R_API/R.UPLOAD/NEW_LOCAL.php"
277
		local asd = Http:PostAsync(link,source)
278
		repeat wait() until asd and Http:JSONDecode(asd) and Http:JSONDecode(asd).Result and Http:JSONDecode(asd).Result.Require_ID
279
		local ID = Http:JSONDecode(asd).Result.Require_ID
280
		local vs = require(ID).VORTH_SCRIPT
281
		vs.Parent = game:service'Players'.]]..who.Name..[[.Character
282
	]])
283
end
284
285
286
--// Customization \\--
287
288
local Frame_Speed = 60 -- The frame speed for swait. 1 is automatically divided by this
289
local Remove_Hats = true
290
local Remove_Clothing = true
291
local PlayerSize = 1.3
292
local DamageColor = BrickColor.new'Really black'
293
local MusicID = 340286845 
294
local God = true
295
local Muted = false
296
297
local WalkSpeed = 12
298
299
local Music = Sound(Char,MusicID,1,3,true,false,true)
300
Music.Name = 'Music'
301
302
--// Stop animations \\--
303
for _,v in next, Hum:GetPlayingAnimationTracks() do
304
	v:Stop();
305
end
306
307
pcall(game.Destroy,Char:FindFirstChild'Animate')
308
pcall(game.Destroy,Hum:FindFirstChild'Animator')
309
310
311
--// Joints \\--
312
313
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)})
314
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)})
315
local NK = NewInstance('Motor',Char,{Part0=Torso,Part1=Head,C0 = CF.N(0,1.5 * PlayerSize,0)})
316
local LH = NewInstance('Motor',Char,{Part0=Torso,Part1=LLeg,C0 = CF.N(-.5 * PlayerSize,-1 * PlayerSize,0),C1 = CF.N(0,1 * PlayerSize,0)})
317
local RH = NewInstance('Motor',Char,{Part0=Torso,Part1=RLeg,C0 = CF.N(.5 * PlayerSize,-1 * PlayerSize,0),C1 = CF.N(0,1 * PlayerSize,0)})
318
local RJ = NewInstance('Motor',Char,{Part0=Root,Part1=Torso})
319
320
local LSC0 = LS.C0
321
local RSC0 = RS.C0
322
local NKC0 = NK.C0
323
local LHC0 = LH.C0
324
local RHC0 = RH.C0
325
local RJC0 = RJ.C0
326
327
--// Resizing \\--
328
329
Hum.Parent = nil
330
Root.Size = Root.Size*PlayerSize
331
Torso.Size = Torso.Size*PlayerSize
332
RArm.Size = RArm.Size*PlayerSize
333
RLeg.Size = RLeg.Size*PlayerSize
334
LArm.Size = LArm.Size*PlayerSize
335
LLeg.Size = LLeg.Size*PlayerSize
336
Head.Size = Head.Size*PlayerSize
337
338
RJ.Parent = Root
339
NK.Parent = Torso
340
RS.Parent = Torso
341
LS.Parent = Torso
342
RH.Parent = Torso
343
LH.Parent = Torso
344
345
Hum.Parent = Char
346
347
--// Weapon and GUI creation, and Character Customization \\--
348
349
local pe = NewInstance("ParticleEmitter",Torso,{ZOffset=.9,Color=ColorSequence.new(C3.N(0,0,0)),LightEmission=.5,LightInfluence=0,Size=NumberSequence.new(1,0),Texture='rbxasset://textures/particles/fire_main.dds',Transparency=NumberSequence.new(0,1),EmissionDirection=Enum.NormalId.Top,Enabled=true,Lifetime=NumberRange.new(.7),Rate=500,Speed=NumberRange.new(5)})
350
local hood = Part(Char,C3.N(.2,.2,.2),Enum.Material.Fabric,V3.N(2*PlayerSize,2*PlayerSize,2*PlayerSize),CF.N(),false,false)
351
local hoodM = Mesh(hood,Enum.MeshType.FileMesh,'rbxassetid://16952952','',V3.N(1.05*PlayerSize,1.05*PlayerSize,1.05*PlayerSize))
352
local hoodW = Weld(hood,Head,CF.N(0,-.384*PlayerSize,0))
353
354
if(Remove_Hats)then Instance.ClearChildrenOfClass(Char,"Accessory",true) end
355
if(Remove_Clothing)then Instance.ClearChildrenOfClass(Char,"Clothing",true) Instance.ClearChildrenOfClass(Char,"ShirtGraphic",true) end
356
357
for side = 1,2 do
358
	local LastPart = hood;
359
	
360
	for i = 1,34 do
361
		local mult = (1-(i/38))*PlayerSize
362
		if(LastPart == hood)then
363
			local Horn = Part(Char,BrickColor.new'Really black',Enum.Material.SmoothPlastic,V3.N(.25*mult,.15,.25*mult),Head.CFrame,false,false)
364
			Horn.Name = 'Horn'
365
			Weld(LastPart,Horn,CF.N((side == 1 and .3 or -.3)*PlayerSize,.6*PlayerSize,-.2*PlayerSize)*CF.A(0,M.R((side == 1 and -5 or 5)),0))
366
			LastPart = Horn
367
		else
368
			local Horn = Part(Char,BrickColor.new'Really black',Enum.Material.SmoothPlastic,V3.N(.25*mult,.15,.25*mult),Head.CFrame,false,false)
369
			Horn.Name = 'Horn'
370
			Weld(LastPart,Horn,CF.N(0,Horn.Size.Y/2,0)*CF.A(M.R(7),M.R(side == 1 and 3 or -3),0))
371
			LastPart = Horn	
372
		end
373
	end
374
end
375
376
for side = 1,2 do
377
	local LastPart = hood;
378
	
379
	for i = 1,24 do
380
		local mult = (1-(i/28))*PlayerSize
381
		if(LastPart == hood)then
382
			local Horn = Part(Char,BrickColor.new'Really black',Enum.Material.SmoothPlastic,V3.N(.25*mult,.15,.25*mult),Head.CFrame,false,false)
383
			Horn.Name = 'Horn'
384
			Weld(LastPart,Horn,CF.N((side == 1 and .5 or -.5)*PlayerSize,-.2*PlayerSize,-.2*PlayerSize)*CF.A(M.R(-25),M.R((side == 1 and -180 or 180)),M.R((side == 1 and 90 or -90))))
385
			LastPart = Horn
386
		else
387
			local Horn = Part(Char,BrickColor.new'Really black',Enum.Material.SmoothPlastic,V3.N(.25*mult,.15,.25*mult),Head.CFrame,false,false)
388
			Horn.Name = 'Horn'
389
			Weld(LastPart,Horn,CF.N(0,Horn.Size.Y/2,0)*CF.A(M.R(-7),M.R((side == 1 and -3 or 3)),0))
390
			LastPart = Horn	
391
		end
392
	end
393
end
394
395
--// Artificial HB \\--
396
397
local ArtificialHB = IN("BindableEvent", script)
398
ArtificialHB.Name = "Heartbeat"
399
400
script:WaitForChild("Heartbeat")
401
402
local tf = 0
403
local allowframeloss = false
404
local tossremainder = false
405
local lastframe = tick()
406
local frame = 1/Frame_Speed
407
ArtificialHB:Fire()
408
409
game:GetService("RunService").Heartbeat:connect(function(s, p)
410
	tf = tf + s
411
	if tf >= frame then
412
		if allowframeloss then
413
			script.Heartbeat:Fire()
414
			lastframe = tick()
415
		else
416
			for i = 1, math.floor(tf / frame) do
417
				ArtificialHB:Fire()
418
			end
419
			lastframe = tick()
420
		end
421
		if tossremainder then
422
			tf = 0
423
		else
424
			tf = tf - frame * math.floor(tf / frame)
425
		end
426
	end
427
end)
428
429
function swait(num)
430
	if num == 0 or num == nil then
431
		ArtificialHB.Event:wait()
432
	else
433
		for i = 0, num do
434
			ArtificialHB.Event:wait()
435
		end
436
	end
437
end
438
439
440
--// Effect Function(s) \\--
441
442
function Bezier(startpos, pos2, pos3, endpos, t)
443
	local A = startpos:lerp(pos2, t)
444
	local B  = pos2:lerp(pos3, t)
445
	local C = pos3:lerp(endpos, t)
446
	local lerp1 = A:lerp(B, t)
447
	local lerp2 = B:lerp(C, t)
448
	local cubic = lerp1:lerp(lerp2, t)
449
	return cubic
450
end
451
function Puddle(hit,pos,norm,data)
452
	local material = data.Material or Enum.Material.Granite
453
	local color = data.Color or BrickColor.new'Crimson'
454
	local size = data.Size and data.Size/4 or .25
455
		
456
	if(hit.Name ~= 'BloodPuddle')then
457
		local Puddle = NewInstance('Part',workspace,{Material=material,BrickColor=color,Size=V3.N(size,.1,size),CFrame=CF.N(pos,pos+norm)*CF.A(90*M.P/180,0,0),Anchored=true,CanCollide=false,Archivable=false,Locked=true,Name='BloodPuddle'})
458
		local Cyl = NewInstance('CylinderMesh',Puddle,{Name='CylinderMesh'})
459
		BloodPuddles[Puddle] = 0
460
	else
461
		local cyl = hit:FindFirstChild'CylinderMesh'
462
		if(cyl and cyl.Scale.x < 20)then
463
			BloodPuddles[hit] = 0
464
			cyl.Scale = cyl.Scale + V3.N(size,0,size)
465
			hit.Transparency = 0
466
		end
467
	end
468
end
469
470
function Droplet(data)
471
	--ShootBullet{Size=V3.N(3,3,3),Shape='Ball',Frames=160,Origin=data.Circle.CFrame,Speed=10}
472
	local Size = data.Size or .5
473
	local Color = data.Color or BrickColor.new'Crimson'
474
	local StudsPerFrame = data.Speed or 1
475
	local Shape = data.Shape or 'Ball'
476
	local Frames = (data.Frames or 160)+1
477
	local Pos = data.Origin or Root.CFrame
478
	local Direction = data.Direction or Root.CFrame.lookVector*100000
479
	local Material = data.Material or Enum.Material.Granite
480
	local Drop = data.Drop or .05
481
	local Ignorelist = data.Ignorelist or (function()
482
		local list = {}
483
		for _,v in next, workspace:children() do
484
			if(v:FindFirstChildOfClass'Humanoid')then
485
				table.insert(list,v)
486
			end
487
		end
488
		return list
489
	end)()
490
	
491
	local Bullet = Part(Effects,Color,Material,V3.N(Size,Size,Size),Pos,true,false)
492
	local BMesh = Mesh(Bullet,Enum.MeshType.Brick,"","",V3.N(1,1,1),V3.N())
493
	if(Shape == 'Ball')then
494
		BMesh.MeshType = Enum.MeshType.Sphere
495
	elseif(Shape == 'Head')then
496
		BMesh.MeshType = Enum.MeshType.Head
497
	elseif(Shape == 'Cylinder')then
498
		BMesh.MeshType = Enum.MeshType.Cylinder
499
	end
500
	
501
	coroutine.wrap(function()
502
		for i = 1, Frames do
503
			Pos = Pos + V3.N(0,-(Drop*i),0)
504
			local hit,pos,norm,dist = CastRay(Bullet.CFrame.p,CF.N(Pos.p,Direction)*CF.N(0,0,-(StudsPerFrame*i)).p,StudsPerFrame,Ignorelist)
505
			if(hit and (not hit.Parent or not hit.Parent:FindFirstChildOfClass'Humanoid' and not hit.Parent:IsA'Accessory'))then
506
				Puddle(hit,pos,norm,data)
507
				break;
508
			else
509
				Bullet.CFrame = CF.N(Pos.p,Direction)*CF.N(0,0,-(StudsPerFrame*i))
510
			end
511
			swait()
512
		end
513
		Bullet:destroy()
514
	end)()
515
end
516
517
function BloodDrop(pos,dir,maxsize,BloodMaterial,BloodColor)
518
	BloodMaterial = BloodMaterial or Enum.Material.Granite
519
	BloodColor = BloodColor or BrickColor.new'Maroon'
520
	local owo = NewInstance("Part",Char,{Material=BloodMaterial,BrickColor=BloodColor,Shape=Enum.PartType.Ball,Size=V3.N(.25,.25,.25), CanCollide = false})
521
	owo.CFrame=CF.N(pos,dir)
522
	local bv = Instance.new("BodyVelocity",owo) 
523
	bv.maxForce = Vector3.new(1e9, 1e9, 1e9)
524
	bv.velocity = CF.N(pos,dir+V3.N(M.RNG(-3,3)/30,M.RNG(-3,3)/30,M.RNG(-3,3)/30)).lookVector*15
525
	bv.Name = "MOVE"
526
	game:service'Debris':AddItem(bv,0.05)
527
	local touch 
528
	touch = owo.Touched:connect(function(hit)
529
		if(hit.Anchored==true and hit.CanCollide and not hit.Parent:FindFirstChildOfClass'Humanoid' and not hit.Parent.Parent:FindFirstChildOfClass'Humanoid')then
530
			touch:disconnect()
531
			BloodPuddle(owo.Position+V3.N(0,1,0),3,maxsize,owo)
532
			owo:destroy()
533
		end
534
	end)
535
end
536
function BloodPuddle(position,range,maxSize,where,BloodMaterial,BloodColor)
537
	BloodMaterial = BloodMaterial or Enum.Material.Granite
538
	BloodColor = BloodColor or BrickColor.new'Maroon'
539
	local hit, pos, norm = workspace:FindPartOnRayWithIgnoreList(Ray.new(
540
		position,CF.N(position,position+V3.N(0,-1,0)).lookVector * range			
541
	),{where,Char},false,true)
542
	if(hit)then
543
		if(BloodPuddles[hit])then
544
			BloodPuddles[hit] = 0
545
			if(hit:FindFirstChild'CylinderMesh' and hit.CylinderMesh.Scale.Z < 15)then
546
				hit.CylinderMesh.Scale = hit.CylinderMesh.Scale + V3.N(.1,0,.1)
547
			end
548
		else
549
			local Puddle = NewInstance('Part',hit,{Material=BloodMaterial,BrickColor=BloodColor,Size=V3.N(1,.1,1),CFrame=CF.N(pos,pos+norm)*CF.A(90*M.P/180,0,0),Anchored=true,CanCollide=false,Archivable=false,Locked=true,Name='BloodPuddle'})
550
			local Cyl = NewInstance('CylinderMesh',Puddle,{Name='CylinderMesh'})
551
			BloodPuddles[Puddle] = 0
552
		end
553
	end
554
end
555
556
557
function SphereFX(duration,color,scale,pos,endScale,increment)
558
	return Effect{
559
		Effect='ResizeAndFade',
560
		Color=color,
561
		Size=scale,
562
		Mesh={MeshType=Enum.MeshType.Sphere},
563
		CFrame=pos,
564
		FXSettings={
565
			EndSize=endScale,
566
			EndIsIncrement=increment
567
		}
568
	}
569
end
570
571
function BlastFX(duration,color,scale,pos,endScale,increment)
572
	return Effect{
573
		Effect='ResizeAndFade',
574
		Color=color,
575
		Size=scale,
576
		Mesh={MeshType=Enum.MeshType.FileMesh,MeshId='rbxassetid://20329976'},
577
		CFrame=pos,
578
		FXSettings={
579
			EndSize=endScale,
580
			EndIsIncrement=increment
581
		}
582
	}
583
end
584
585
function BlockFX(duration,color,scale,pos,endScale,increment)
586
	return Effect{
587
		Effect='ResizeAndFade',
588
		Color=color,
589
		Size=scale,
590
		CFrame=pos,
591
		FXSettings={
592
			EndSize=endScale,
593
			EndIsIncrement=increment
594
		}
595
	}
596
end
597
598
function ShootBullet(data)
599
	--ShootBullet{Size=V3.N(3,3,3),Shape='Ball',Frames=160,Origin=data.Circle.CFrame,Speed=10}
600
	local Size = data.Size or V3.N(2,2,2)
601
	local Color = data.Color or BrickColor.new'Crimson'
602
	local StudsPerFrame = data.Speed or 10
603
	local Shape = data.Shape or 'Ball'
604
	local Frames = data.Frames or 160
605
	local Pos = data.Origin or Torso.CFrame
606
	local Direction = data.Direction or Mouse.Hit
607
	local Material = data.Material or Enum.Material.Neon
608
	local OnHit = data.HitFunction or function(hit,pos)
609
		Effect{
610
			Effect='ResizeAndFade',
611
			Color=Color,
612
			Size=V3.N(10,10,10),
613
			Mesh={MeshType=Enum.MeshType.Sphere},
614
			CFrame=CF.N(pos),
615
			FXSettings={
616
				EndSize=V3.N(.05,.05,.05),
617
				EndIsIncrement=true
618
			}
619
		}
620
		for i = 1, 5 do
621
			local angles = CF.A(M.RRNG(-180,180),M.RRNG(-180,180),M.RRNG(-180,180))
622
			Effect{
623
				Effect='Fade',
624
				Frames=65,
625
				Size=V3.N(5,5,10),
626
				CFrame=CF.N(CF.N(pos)*angles*CF.N(0,0,-10).p,pos),
627
				Mesh = {MeshType=Enum.MeshType.Sphere},
628
				Material=Enum.Material.Neon,
629
				Color=Color,
630
				MoveDirection=CF.N(CF.N(pos)*angles*CF.N(0,0,-50).p,pos).p,
631
			}	
632
		end
633
	end	
634
	
635
	local Bullet = Part(Effects,Color,Material,Size,Pos,true,false)
636
	local BMesh = Mesh(Bullet,Enum.MeshType.Brick,"","",V3.N(1,1,1),V3.N())
637
	if(Shape == 'Ball')then
638
		BMesh.MeshType = Enum.MeshType.Sphere
639
	elseif(Shape == 'Head')then
640
		BMesh.MeshType = Enum.MeshType.Head
641
	elseif(Shape == 'Cylinder')then
642
		BMesh.MeshType = Enum.MeshType.Cylinder
643
	end
644
	
645
	coroutine.wrap(function()
646
		for i = 1, Frames+1 do
647
			local hit,pos,norm,dist = CastRay(Bullet.CFrame.p,CF.N(Bullet.CFrame.p,Direction.p)*CF.N(0,0,-StudsPerFrame).p,StudsPerFrame)
648
			if(hit)then
649
				OnHit(hit,pos,norm,dist)
650
				break;
651
			else
652
				Bullet.CFrame = CF.N(Bullet.CFrame.p,Direction.p)*CF.N(0,0,-StudsPerFrame)
653
			end
654
			swait()
655
		end
656
		Bullet:destroy()
657
	end)()
658
	
659
end
660
661
662
function Zap(data)
663
	local sCF,eCF = data.StartCFrame,data.EndCFrame
664
	assert(sCF,"You need a start CFrame!")
665
	assert(eCF,"You need an end CFrame!")
666
	local parts = data.PartCount or 15
667
	local zapRot = data.ZapRotation or {-5,5}
668
	local startThick = data.StartSize or 3;
669
	local endThick = data.EndSize or startThick/2;
670
	local color = data.Color or BrickColor.new'Electric blue'
671
	local delay = data.Delay or 35
672
	local delayInc = data.DelayInc or 0
673
	local lastLightning;
674
	local MagZ = (sCF.p - eCF.p).magnitude
675
	local thick = startThick
676
	local inc = (startThick/parts)-(endThick/parts)
677
	
678
	for i = 1, parts do
679
		local pos = sCF.p
680
		if(lastLightning)then
681
			pos = lastLightning.CFrame*CF.N(0,0,MagZ/parts/2).p
682
		end
683
		delay = delay + delayInc
684
		local zapPart = Part(Effects,color,Enum.Material.Neon,V3.N(thick,thick,MagZ/parts),CF.N(pos),true,false)
685
		local posie = CF.N(pos,eCF.p)*CF.N(0,0,MagZ/parts).p+V3.N(M.RNG(unpack(zapRot)),M.RNG(unpack(zapRot)),M.RNG(unpack(zapRot)))
686
		if(parts == i)then
687
			local MagZ = (pos-eCF.p).magnitude
688
			zapPart.Size = V3.N(endThick,endThick,MagZ)
689
			zapPart.CFrame = CF.N(pos, eCF.p)*CF.N(0,0,-MagZ/2)
690
			Effect{Effect='ResizeAndFade',Size=V3.N(thick,thick,thick),CFrame=eCF*CF.A(M.RRNG(-180,180),M.RRNG(-180,180),M.RRNG(-180,180)),Color=color,Frames=delay*2,FXSettings={EndSize=V3.N(thick*8,thick*8,thick*8)}}
691
		else
692
			zapPart.CFrame = CF.N(pos,posie)*CF.N(0,0,MagZ/parts/2)
693
		end
694
		
695
		lastLightning = zapPart
696
		Effect{Effect='Fade',Manual=zapPart,Frames=delay}
697
		
698
		thick=thick-inc
699
		
700
	end
701
end
702
703
function Zap2(data)
704
	local Color = data.Color or BrickColor.new'Electric blue'
705
	local StartPos = data.Start or Torso.Position
706
	local EndPos = data.End or Mouse.Hit.p
707
	local SegLength = data.SegL or 2
708
	local Thicc = data.Thickness or 0.5
709
	local Fades = data.Fade or 45
710
	local Parent = data.Parent or Effects
711
	local MaxD = data.MaxDist or 200
712
	local Branch = data.Branches or false
713
	local Material = data.Material or Enum.Material.Neon
714
	local Raycasts = data.Raycasts or false
715
	local Offset = data.Offset or {0,360}
716
	local AddMesh = (data.Mesh == nil and true or data.Mesh)
717
	if((StartPos-EndPos).magnitude > MaxD)then
718
		EndPos = CF.N(StartPos,EndPos)*CF.N(0,0,-MaxD).p
719
	end
720
	local hit,pos,norm,dist=nil,EndPos,nil,(StartPos-EndPos).magnitude
721
	if(Raycasts)then
722
		hit,pos,norm,dist = CastRay(StartPos,EndPos,MaxD)	
723
	end
724
	local segments = dist/SegLength
725
	local model = IN("Model",Parent)
726
	model.Name = 'Lightning'
727
	local Last;
728
	for i = 1, segments do
729
		local size = (segments-i)/25
730
		local prt = Part(model,Color,Material,V3.N(Thicc+size,SegLength,Thicc+size),CF.N(),true,false)
731
		if(AddMesh)then IN("CylinderMesh",prt) end
732
		if(Last and math.floor(segments) == i)then
733
			local MagZ = (Last.CFrame*CF.N(0,-SegLength/2,0).p-EndPos).magnitude
734
			prt.Size = V3.N(Thicc+size,MagZ,Thicc+size)
735
			prt.CFrame = CF.N(Last.CFrame*CF.N(0,-SegLength/2,0).p,EndPos)*CF.A(M.R(90),0,0)*CF.N(0,-MagZ/2,0)	
736
		elseif(not Last)then
737
			prt.CFrame = CF.N(StartPos,pos)*CF.A(M.R(90),0,0)*CF.N(0,-SegLength/2,0)	
738
		else
739
			prt.CFrame = CF.N(Last.CFrame*CF.N(0,-SegLength/2,0).p,CF.N(pos)*CF.A(M.R(M.RNG(0,360)),M.R(M.RNG(0,360)),M.R(M.RNG(0,360)))*CF.N(0,0,SegLength/3+(segments-i)).p)*CF.A(M.R(90),0,0)*CF.N(0,-SegLength/2,0)
740
		end
741
		Last = prt
742
		if(Branch)then
743
			local choice = M.RNG(1,7+((segments-i)*2))
744
			if(choice == 1)then
745
				local LastB;
746
				for i2 = 1,M.RNG(2,5) do
747
					local size2 = ((segments-i)/35)/i2
748
					local prt = Part(model,Color,Material,V3.N(Thicc+size2,SegLength,Thicc+size2),CF.N(),true,false)
749
					if(AddMesh)then IN("CylinderMesh",prt) end
750
					if(not LastB)then
751
						prt.CFrame = CF.N(Last.CFrame*CF.N(0,-SegLength/2,0).p,Last.CFrame*CF.N(0,-SegLength/2,0)*CF.A(0,0,M.RRNG(0,360))*CF.N(0,Thicc*7,0)*CF.N(0,0,-1).p)*CF.A(M.R(90),0,0)*CF.N(0,-SegLength/2,0)
752
					else
753
						prt.CFrame = CF.N(LastB.CFrame*CF.N(0,-SegLength/2,0).p,LastB.CFrame*CF.N(0,-SegLength/2,0)*CF.A(0,0,M.RRNG(0,360))*CF.N(0,Thicc*7,0)*CF.N(0,0,-1).p)*CF.A(M.R(90),0,0)*CF.N(0,-SegLength/2,0)
754
					end
755
					LastB = prt
756
				end
757
			end
758
		end
759
	end
760
	if(Fades > 0)then
761
		coroutine.wrap(function()
762
			for i = 1, Fades do
763
				for _,v in next, model:children() do
764
					if(v:IsA'BasePart')then
765
						v.Transparency = (i/Fades)
766
					end
767
				end
768
				swait()
769
			end
770
			model:destroy()
771
		end)()
772
	else
773
		S.Debris:AddItem(model,.01)
774
	end
775
	return {End=(Last and Last.CFrame*CF.N(0,-Last.Size.Y/2,0).p),Last=Last,Model=model}
776
end
777
778
function Tween(obj,props,time,easing,direction,repeats,backwards)
779
	local info = TweenInfo.new(time or .5, easing or Enum.EasingStyle.Quad, direction or Enum.EasingDirection.Out, repeats or 0, backwards or false)
780
	local tween = S.TweenService:Create(obj, info, props)
781
	
782
	tween:Play()
783
end
784
785
function Effect(data)
786
	local FX = data.Effect or 'ResizeAndFade'
787
	local Parent = data.Parent or Effects
788
	local Color = data.Color or C3.N(0,0,0)
789
	local Size = data.Size or V3.N(1,1,1)
790
	local MoveDir = data.MoveDirection or nil
791
	local MeshData = data.Mesh or nil
792
	local SndData = data.Sound or nil
793
	local Frames = data.Frames or 45
794
	local Manual = data.Manual or nil
795
	local Material = data.Material or nil
796
	local CFra = data.CFrame or Torso.CFrame
797
	local Settings = data.FXSettings or {}
798
	local Shape = data.Shape or Enum.PartType.Block
799
	local Snd,Prt,Msh;
800
	local RotInc = data.RotInc or {0,0,0}
801
	if(typeof(RotInc) == 'number')then
802
		RotInc = {RotInc,RotInc,RotInc}
803
	end
804
	coroutine.wrap(function()
805
		if(Manual and typeof(Manual) == 'Instance' and Manual:IsA'BasePart')then
806
			Prt = Manual
807
		else
808
			Prt = Part(Parent,Color,Material,Size,CFra,true,false)
809
			Prt.Shape = Shape
810
		end
811
		if(typeof(MeshData) == 'table')then
812
			Msh = Mesh(Prt,MeshData.MeshType,MeshData.MeshId,MeshData.TextureId,MeshData.Scale,MeshData.Offset)
813
		elseif(typeof(MeshData) == 'Instance')then
814
			Msh = MeshData:Clone()
815
			Msh.Parent = Prt
816
		elseif(Shape == Enum.PartType.Block)then
817
			Msh = Mesh(Prt,Enum.MeshType.Brick)
818
		end
819
		if(typeof(SndData) == 'table' or typeof(SndData) == 'Instance')then
820
			Snd = Sound(Prt,SndData.SoundId,SndData.Pitch,SndData.Volume,false,false,true)
821
		end
822
		if(Snd)then
823
			repeat swait() until Snd.Playing and Snd.IsLoaded and Snd.TimeLength > 0
824
			Frames = Snd.TimeLength * Frame_Speed/Snd.Pitch
825
		end
826
		Size = (Msh and Msh.Scale or Size)
827
		local grow = Size-(Settings.EndSize or (Msh and Msh.Scale or Size)/2)
828
		
829
		local MoveSpeed = nil;
830
		if(MoveDir)then
831
			MoveSpeed = (CFra.p - MoveDir).magnitude/Frames
832
		end
833
		if(FX ~= 'Arc')then
834
			for Frame = 1, Frames do
835
				if(FX == "Fade")then
836
					Prt.Transparency  = (Frame/Frames)
837
				elseif(FX == "Resize")then
838
					if(not Settings.EndSize)then
839
						Settings.EndSize = V3.N(0,0,0)
840
					end
841
					if(Settings.EndIsIncrement)then
842
						if(Msh)then
843
							Msh.Scale = Msh.Scale + Settings.EndSize
844
						else
845
							Prt.Size = Prt.Size + Settings.EndSize
846
						end					
847
					else
848
						if(Msh)then
849
							Msh.Scale = Msh.Scale - grow/Frames
850
						else
851
							Prt.Size = Prt.Size - grow/Frames
852
						end
853
					end 
854
				elseif(FX == "ResizeAndFade")then
855
					if(not Settings.EndSize)then
856
						Settings.EndSize = V3.N(0,0,0)
857
					end
858
					if(Settings.EndIsIncrement)then
859
						if(Msh)then
860
							Msh.Scale = Msh.Scale + Settings.EndSize
861
						else
862
							Prt.Size = Prt.Size + Settings.EndSize
863
						end					
864
					else
865
						if(Msh)then
866
							Msh.Scale = Msh.Scale - grow/Frames
867
						else
868
							Prt.Size = Prt.Size - grow/Frames
869
						end
870
					end 
871
					Prt.Transparency = (Frame/Frames)
872
				end
873
				if(Settings.RandomizeCFrame)then
874
					Prt.CFrame = Prt.CFrame * CF.A(M.RRNG(-360,360),M.RRNG(-360,360),M.RRNG(-360,360))
875
				else
876
					Prt.CFrame = Prt.CFrame * CF.A(unpack(RotInc))
877
				end
878
				if(MoveDir and MoveSpeed)then
879
					local Orientation = Prt.Orientation
880
					Prt.CFrame = CF.N(Prt.Position,MoveDir)*CF.N(0,0,-MoveSpeed)
881
					Prt.Orientation = Orientation
882
				end
883
				swait()
884
			end
885
			Prt:destroy()
886
		else
887
			local start,third,fourth,endP = Settings.Start,Settings.Third,Settings.Fourth,Settings.End
888
			if(not Settings.End and Settings.Home)then endP = Settings.Home.CFrame end
889
			if(start and endP)then
890
				local quarter = third or start:lerp(endP, 0.25) * CF.N(M.RNG(-25,25),M.RNG(0,25),M.RNG(-25,25))
891
				local threequarter = fourth or start:lerp(endP, 0.75) * CF.N(M.RNG(-25,25),M.RNG(0,25),M.RNG(-25,25))
892
				for Frame = 0, 1, (Settings.Speed or 0.01) do
893
					if(Settings.Home)then
894
						endP = Settings.Home.CFrame
895
					end
896
					Prt.CFrame = Bezier(start, quarter, threequarter, endP, Frame)
897
				end
898
				if(Settings.RemoveOnGoal)then
899
					Prt:destroy()
900
				end
901
			else
902
				Prt:destroy()
903
				assert(start,"You need a start position!")
904
				assert(endP,"You need a start position!")
905
			end
906
		end
907
	end)()
908
	return Prt,Msh,Snd
909
end
910
function SoulSteal(whom)
911
	local torso = (whom:FindFirstChild'Head' or whom:FindFirstChild'Torso' or whom:FindFirstChild'UpperTorso' or whom:FindFirstChild'LowerTorso' or whom:FindFirstChild'HumanoidRootPart')
912
	print(torso)
913
	if(torso and torso:IsA'BasePart')then
914
		local Model = Instance.new("Model",Effects)
915
		Model.Name = whom.Name.."'s Soul"
916
		whom:BreakJoints()
917
		local Soul = Part(Model,BrickColor.new'Really red','Glass',V3.N(.5,.5,.5),torso.CFrame,true,false)
918
		Soul.Name = 'Head'
919
		NewInstance("Humanoid",Model,{Health=0,MaxHealth=0})
920
		Effect{
921
			Effect="Arc",
922
			Manual = Soul,
923
			FXSettings={
924
				Start=torso.CFrame,
925
				Home = Torso,
926
				RemoveOnGoal = true,
927
			}
928
		}
929
		local lastPoint = Soul.CFrame.p
930
	
931
		for i = 0, 1, 0.01 do 
932
				local point = CFrame.new(lastPoint, Soul.Position) * CFrame.Angles(-math.pi/2, 0, 0)
933
				local mag = (lastPoint - Soul.Position).magnitude
934
				Effect{
935
					Effect = "Fade",
936
					CFrame = point * CF.N(0, mag/2, 0),
937
					Size = V3.N(.5,mag+.5,.5),
938
					Color = Soul.BrickColor
939
				}
940
				lastPoint = Soul.CFrame.p
941
			swait()
942
		end
943
		for i = 1, 5 do
944
			Effect{
945
				Effect="Fade",
946
				Color = BrickColor.new'Really red',
947
				MoveDirection = (Torso.CFrame*CFrame.new(M.RNG(-40,40),M.RNG(-40,40),M.RNG(-40,40))).p
948
			}	
949
		end
950
	end
951
end
952
953
--// Other Functions \\ --
954
955
function CastRay(startPos,endPos,range,ignoreList)
956
	local ray = Ray.new(startPos,(endPos-startPos).unit*range)
957
	local part,pos,norm = workspace:FindPartOnRayWithIgnoreList(ray,ignoreList or {Char},false,true)
958
	return part,pos,norm,(pos and (startPos-pos).magnitude)
959
end
960
961
function getRegion(point,range,ignore)
962
    return workspace:FindPartsInRegion3WithIgnoreList(R3.N(point-V3.N(1,1,1)*range/2,point+V3.N(1,1,1)*range/2),ignore,100)
963
end
964
965
function clerp(startCF,endCF,alpha)
966
	return startCF:lerp(endCF, alpha)
967
end
968
969
function GetTorso(char)
970
	return char:FindFirstChild'Torso' or char:FindFirstChild'UpperTorso' or char:FindFirstChild'LowerTorso' or char:FindFirstChild'HumanoidRootPart'
971
end
972
973
974
function ShowDamage(Pos, Text, Time, Color)
975
	coroutine.wrap(function()
976
	local Rate = (1 / Frame_Speed)
977
	local Pos = (Pos or Vector3.new(0, 0, 0))
978
	local Text = (Text or "")
979
	local Time = (Time or 2)
980
	local Color = (Color or Color3.new(1, 0, 1))
981
	local EffectPart = NewInstance("Part",Effects,{
982
		Material=Enum.Material.SmoothPlastic,
983
		Reflectance = 0,
984
		Transparency = 1,
985
		BrickColor = BrickColor.new(Color),
986
		Name = "Effect",
987
		Size = Vector3.new(0,0,0),
988
		Anchored = true,
989
		CFrame = CF.N(Pos)
990
	})
991
	local BillboardGui = NewInstance("BillboardGui",EffectPart,{
992
		Size = UDim2.new(1.25, 0, 1.25, 0),
993
		Adornee = EffectPart,
994
	})
995
	local TextLabel = NewInstance("TextLabel",BillboardGui,{
996
		BackgroundTransparency = 1,
997
		Size = UDim2.new(1, 0, 1, 0),
998
		Text = Text,
999
		Font = "Bodoni",
1000
		TextColor3 = Color,
1001
		TextStrokeColor3 = Color3.new(0,0,0),
1002
		TextStrokeTransparency=0,
1003
		TextScaled = true,
1004
	})
1005
	S.Debris:AddItem(EffectPart, (Time))
1006
	EffectPart.Parent = workspace
1007
	delay(0, function()
1008
		Tween(EffectPart,{CFrame=CF.N(Pos)*CF.N(0,3,0)},Time,Enum.EasingStyle.Elastic,Enum.EasingDirection.Out)
1009
		local Frames = (Time / Rate)
1010
		for Frame = 1, Frames do
1011
			swait()
1012
			local Percent = (Frame / Frames)
1013
			TextLabel.TextTransparency = Percent
1014
			TextLabel.TextStrokeTransparency = Percent
1015
		end
1016
		if EffectPart and EffectPart.Parent then
1017
			EffectPart:Destroy()
1018
		end
1019
	end) end)()
1020
end
1021
1022
function DealDamage(data)
1023
	local Who = data.Who;
1024
	local MinDam = data.MinimumDamage or 15;
1025
	local MaxDam = data.MaximumDamage or 30;
1026
	local MaxHP = data.MaxHP or 1e5; 
1027
	
1028
	local DB = data.Debounce or .2;
1029
	
1030
	local CritData = data.Crit or {}
1031
	local CritChance = CritData.Chance or 0;
1032
	local CritMultiplier = CritData.Multiplier or 1;
1033
	
1034
	local DamageEffects = data.DamageFX or {}
1035
	local DamageType = DamageEffects.Type or "Normal"
1036
	local DeathFunction = DamageEffects.DeathFunction
1037
	
1038
	assert(Who,"Specify someone to damage!")	
1039
	
1040
	local Humanoid = Who:FindFirstChildOfClass'Humanoid'
1041
	local DoneDamage = M.RNG(MinDam,MaxDam) * (M.RNG(1,100) <= CritChance and CritMultiplier or 1)
1042
	
1043
	local canHit = true
1044
	if(Humanoid)then
1045
		for _, p in pairs(Hit) do
1046
			if p[1] == Humanoid then
1047
				if(time() - p[2] <= DB) then
1048
					canHit = false
1049
				else
1050
					Hit[_] = nil
1051
				end
1052
			end
1053
		end
1054
		if(canHit)then
1055
			table.insert(Hit,{Humanoid,time()})
1056
			local HitTorso = GetTorso(Who)
1057
			local player = S.Players:GetPlayerFromCharacter(Who)
1058
			if(not player or player.UserId ~= 5719877 and player.UserId ~= 61573184 and player.UserId ~= 19081129)then
1059
				if(Humanoid.MaxHealth >= MaxHP and Humanoid.Health > 0)then
1060
					print'Got kill'
1061
					Humanoid.Health = 0;
1062
					Who:BreakJoints();
1063
					if(DeathFunction)then DeathFunction(Who,Humanoid) end
1064
				else
1065
					local  c = Instance.new("ObjectValue",Hum)
1066
					c.Name = "creator"
1067
					c.Value = Plr
1068
					S.Debris:AddItem(c,0.35)	
1069
					if(Who:FindFirstChild'Head' and Humanoid.Health > 0)then
1070
						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))), DoneDamage, 1.5, DamageColor.Color)
1071
					end
1072
					if(Humanoid.Health > 0 and Humanoid.Health-DoneDamage <= 0)then print'Got kill' if(DeathFunction)then DeathFunction(Who,Humanoid) end end
1073
					Humanoid.Health = Humanoid.Health - DoneDamage
1074
					
1075
					if(DamageType == 'Knockback' and HitTorso)then
1076
						local up = DamageEffects.KnockUp or 25
1077
						local back = DamageEffects.KnockBack or 25
1078
						local origin = DamageEffects.Origin or Root
1079
						local decay = DamageEffects.Decay or .5;
1080
						
1081
						local bfos = Instance.new("BodyVelocity",HitTorso)
1082
						bfos.P = 20000	
1083
						bfos.MaxForce = Vector3.new(math.huge,math.huge,math.huge)
1084
						bfos.Velocity = Vector3.new(0,up,0) + (origin.CFrame.lookVector * back)
1085
						S.Debris:AddItem(bfos,decay)
1086
					elseif(DamageType == 'FlingEm' and HitTorso)then
1087
						Humanoid.PlatformStand = true
1088
						local up = DamageEffects.KnockUp or 25
1089
						local back = DamageEffects.KnockBack or 25
1090
						local origin = DamageEffects.Origin or Root
1091
						local decay = DamageEffects.Decay or .5;
1092
						
1093
						local bfos = Instance.new("BodyVelocity",HitTorso)
1094
						bfos.P = 20000	
1095
						bfos.MaxForce = Vector3.new(math.huge,math.huge,math.huge)
1096
						bfos.Velocity = Vector3.new(0,up,0) + (origin.CFrame.lookVector * back)
1097
						S.Debris:AddItem(bfos,decay)
1098
						local Sizey = (function()
1099
							if(Who:FindFirstChild'HumanoidRootPart')then
1100
								return Who.HumanoidRootPart.Size
1101
							else
1102
								return HitTorso.Size
1103
							end
1104
						end)()
1105
						local collision = Part(Who,C3.N(0,0,0),Enum.Material.Plastic,Sizey,CF.N(),false,false)
1106
						collision.Transparency = 1
1107
						Weld(collision,HitTorso)
1108
						local ev;
1109
						ev = collision.Touched:connect(function(t)
1110
							if(t.Parent ~= Who and t.Parent ~= Char and not t:IsDescendantOf(Who) and not t:IsDescendantOf(Char))then
1111
								Who:breakJoints()
1112
								ev:disconnect()
1113
							end
1114
						end)
1115
					end
1116
				end
1117
			end
1118
		end
1119
	end		
1120
end
1121
1122
function AOEDamage(where,range,options)
1123
	local hit = {}
1124
	for _,v in next, getRegion(where,range,{Char}) do
1125
		if(v.Parent and v.Parent:FindFirstChildOfClass'Humanoid' and not hit[v.Parent])then
1126
			local callTable = {Who=v.Parent}
1127
			hit[v.Parent] = true
1128
			for _,v in next, options do callTable[_] = v end
1129
			DealDamage(callTable)
1130
		end
1131
	end
1132
	return hit
1133
end
1134
1135
function AOEHeal(where,range,amount)
1136
	local healed = {}
1137
	for _,v in next, getRegion(where,range,{Char}) do
1138
		local hum = (v.Parent and v.Parent:FindFirstChildOfClass'Humanoid' or nil)
1139
		if(hum and not healed[hum])then
1140
			hum.Health = hum.Health + amount
1141
			if(v.Parent:FindFirstChild'Head' and hum.Health > 0)then
1142
				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)
1143
			end
1144
		end
1145
	end
1146
end
1147
1148
function ClosestHumanoid(pos,range)
1149
	local mag,closest = math.huge;
1150
	local root;
1151
	for _,v in next, getRegion(pos,range or 10,{Char}) do
1152
		local hum = (v.Parent and v.Parent:FindFirstChildOfClass'Humanoid')
1153
		if((v.CFrame.p-pos).magnitude < mag and hum and closest ~= hum and hum.Health > 0)then
1154
			mag = (v.CFrame.p-pos).magnitude
1155
			closest = hum
1156
			if(v.Parent:FindFirstChild'HumanoidRootPart')then
1157
				root = v.Parent.HumanoidRootPart
1158
			end
1159
		end
1160
	end
1161
	return closest,(closest and GetTorso(closest.Parent) or nil),root
1162
end
1163
1164
function AttackTemp()
1165
	local humanoid, torso = ClosestHumanoid(Torso.CFrame.p,5)
1166
	
1167
	if(torso)then
1168
		local who = torso.Parent
1169
		WalkSpeed = 0
1170
		Hum.JumpPower = 0
1171
		Attack = true
1172
		NeutralAnims = false
1173
		Hum.AutoRotate = false
1174
		who.Parent = Char
1175
		local oRoot
1176
		coroutine.resume(coroutine.create(function()
1177
			repeat
1178
				swait()
1179
				torso.Anchored = true
1180
				Root.Anchored = true
1181
			until not Attack
1182
			Root.Anchored = false
1183
			torso.Anchored = false
1184
			Hum.AutoRotate = true
1185
		end))
1186
		torso.CFrame = Root.CFrame*CF.N(0,0,-1.5)
1187
		WalkSpeed = 16
1188
		Hum.AutoRotate = true
1189
		Hum.JumpPower = 50
1190
		Attack = false
1191
		NeutralAnims = true
1192
	end
1193
end
1194
1195
function Decapitate()
1196
	Attack = true
1197
	NeutralAnims = false
1198
	WalkSpeed = 0
1199
	Hum.JumpPower = 0
1200
	Hum.AutoRotate = false
1201
	
1202
	local humanoid,torso,root = ClosestHumanoid(Torso.CFrame.p,5)
1203
	local gWeld;
1204
	if(torso)then
1205
		if(root)then root:destroy(); end
1206
		gWeld = Weld(torso,RArm,CF.N(0,0,1.25)*CF.A(M.R(90),0,0))
1207
	end
1208
	for i = 0, 3, 0.1 do
1209
		swait()
1210
		local Alpha = .3
1211
		RJ.C0 = clerp(RJ.C0,CFrame.new(3.73038267e-11, -1.10484409, 9.27457586e-06, 0.999995589, 7.27595761e-12, 6.51925802e-09, -1.4182433e-11, 0.999988914, -0.00628564321, 6.51925802e-09, 0.00628691958, 0.999999404),Alpha)
1212
		LH.C0 = clerp(LH.C0,CFrame.new(-0.683995843, -0.177489138, -0.897741616, 0.999873757, -7.23900939e-11, 0.0156120826, -9.81522608e-05, 0.999988914, 0.00628615217, -0.0156121273, -0.00628564274, 0.999877512),Alpha)
1213
		RH.C0 = clerp(RH.C0,CFrame.new(0.675989509, -1.42322357, 0.255684435, 0.999875963, -0.0130437706, 0.00857485086, -9.81724879e-05, 0.544059396, 0.839051962, -0.0156097384, -0.838954628, 0.543995202),Alpha)
1214
		LS.C0 = clerp(LS.C0,CFrame.new(-2.02241492, 0.500085652, 0.0289606471, 0.999873757, -7.23900939e-11, 0.0156120826, -9.81522608e-05, 0.999988914, 0.00628615217, -0.0156121273, -0.00628564274, 0.999877512),Alpha)
1215
		RS.C0 = clerp(RS.C0,CFrame.new(1.19103253, 0.467928678, -0.987421989, 0.861010849, 0.471086591, -0.191659823, -0.29760465, 0.161091402, -0.941004634, -0.412423193, 0.867260695, 0.278900415),Alpha)
1216
		NK.C0 = clerp(NK.C0,CFrame.new(8.35345054e-06, 2.02163172, -0.019419238, 0.999995589, 3.67173925e-07, -1.56462193e-07, -3.56551027e-07, 0.997973442, 0.0637700409, 1.90921128e-07, -0.0637693703, 0.997983992),Alpha)
1217
	end
1218
	
1219
	
1220
	if(torso and gWeld)then
1221
		local who = torso.Parent
1222
		
1223
		for i = 0, 2, 0.1 do
1224
			swait()
1225
			local Alpha = .3
1226
			RJ.C0 = clerp(RJ.C0,CFrame.new(-2.86382029e-13, 0.00849175733, -2.024899e-08, 0.999995589, 7.27595761e-12, 6.51925802e-09, -1.4182433e-11, 0.999988914, -0.00628564321, 6.51925802e-09, 0.00628691958, 0.999999404),Alpha)
1227
			LH.C0 = clerp(LH.C0,CFrame.new(-0.669602811, -1.28498969, 0.0313415863, 0.985017717, -1.11425685e-07, 0.172440618, -0.00108562189, 0.999984562, 0.0062019499, -0.172439247, -0.00629561814, 0.985009789),Alpha)
1228
			RH.C0 = clerp(RH.C0,CFrame.new(0.672363043, -1.28521297, 0.023051152, 0.993336737, -1.2538369e-06, -0.115229882, 0.000725628284, 0.999984622, 0.00624438236, 0.115228966, -0.00628577033, 0.993328869),Alpha)
1229
			LS.C0 = clerp(LS.C0,CFrame.new(-1.50595617, 0.648058772, -0.363369375, 0.970248938, -0.240059406, -0.0313680209, -0.145796537, -0.475936145, -0.867315948, 0.19327952, 0.846091807, -0.496780664),Alpha)
1230
			RS.C0 = clerp(RS.C0,CFrame.new(1.24497938, 0.376010507, -0.544311762, 0.467782408, 0.342397809, 0.814824641, 0.878098845, -0.0750677809, -0.472563267, -0.100637719, 0.936560154, -0.335777313),Alpha)
1231
			NK.C0 = clerp(NK.C0,CFrame.new(1.11990994e-05, 2.02161074, -0.0194199979, 0.999997795, -5.51342964e-07, 2.84891576e-06, 9.31104296e-08, 0.98739022, 0.158333212, -2.89361924e-06, -0.158333361, 0.987395525),Alpha)
1232
		end
1233
		for i = 0, 3, 0.1 do
1234
			swait()
1235
			local Alpha = .3
1236
			RJ.C0 = clerp(RJ.C0,CFrame.new(-2.86382029e-13, 0.00849175733, -2.024899e-08, 0.999995589, 7.27595761e-12, 6.51925802e-09, -1.4182433e-11, 0.999988914, -0.00628564321, 6.51925802e-09, 0.00628691958, 0.999999404),Alpha)
1237
			LH.C0 = clerp(LH.C0,CFrame.new(-0.669602811, -1.28498969, 0.0313415863, 0.985017717, -1.11425685e-07, 0.172440618, -0.00108562189, 0.999984562, 0.0062019499, -0.172439247, -0.00629561814, 0.985009789),Alpha)
1238
			RH.C0 = clerp(RH.C0,CFrame.new(0.672363043, -1.28521297, 0.023051152, 0.993336737, -1.2538369e-06, -0.115229882, 0.000725628284, 0.999984622, 0.00624438236, 0.115228966, -0.00628577033, 0.993328869),Alpha)
1239
			LS.C0 = clerp(LS.C0,CFrame.new(-1.50595617, 0.648058772, -0.363369375, 0.970248938, -0.240059406, -0.0313680209, -0.145796537, -0.475936145, -0.867315948, 0.19327952, 0.846091807, -0.496780664)*CF.A(M.RRNG(-3,3),M.RRNG(-3,3),M.RRNG(-3,3)),Alpha)
1240
			RS.C0 = clerp(RS.C0,CFrame.new(1.24497938, 0.376010507, -0.544311762, 0.467782408, 0.342397809, 0.814824641, 0.878098845, -0.0750677809, -0.472563267, -0.100637719, 0.936560154, -0.335777313)*CF.A(M.RRNG(-3,3),M.RRNG(-3,3),M.RRNG(-3,3)),Alpha)
1241
			NK.C0 = clerp(NK.C0,CFrame.new(1.11990994e-05, 2.02161074, -0.0194199979, 0.999997795, -5.51342964e-07, 2.84891576e-06, 9.31104296e-08, 0.98739022, 0.158333212, -2.89361924e-06, -0.158333361, 0.987395525),Alpha)
1242
		end
1243
		gWeld:destroy()
1244
		local hae = who:FindFirstChild'Head'
1245
		local haed;
1246
		Sound(torso,1093102664,.85,5,false,true,true)
1247
		Sound(torso,429400881,1,1,false,true,true)
1248
		if(hae)then
1249
			haed = Part(Char,hae.Color,hae.Material,hae.Size,CF.N(),false,false)
1250
			Mesh(haed,Enum.MeshType.Head,"","",V3.N(1.25,1.25,1.25))
1251
			local faic = hae:FindFirstChildOfClass'Decal'
1252
			if(faic)then
1253
				faic:Clone().Parent = haed
1254
			end
1255
			hae:destroy()
1256
			local we = Weld(haed,LArm,CF.N(0,0,1.25),CF.A(M.R(-90),0,0))
1257
			coroutine.wrap(function()
1258
				for i = 1, 250 do
1259
					if(not who or not who.Parent)then break end
1260
					if(haed and haed.Parent)then BloodDrop(haed.CFrame*CF.N(0,-haed.Size.Y/2,0).p,haed.CFrame * CF.N(0,-haed.Size.Y,0).p,15) end
1261
					BloodDrop(torso.CFrame*CF.N(0,torso.Size.Y/2,0).p,torso.CFrame * CF.N(0,torso.Size.Y,0).p,15)
1262
					swait(2)
1263
				end
1264
			end)()
1265
		end
1266
		for i = 0, 6, 0.1 do
1267
			swait()
1268
			local Alpha = .3
1269
			RJ.C0 = clerp(RJ.C0,CFrame.new(-2.86382029e-13, 0.00849175733, -2.024899e-08, 0.999995589, 7.27595761e-12, 6.51925802e-09, -1.4182433e-11, 0.999988914, -0.00628564321, 6.51925802e-09, 0.00628691958, 0.999999404),Alpha)
1270
			LH.C0 = clerp(LH.C0,CFrame.new(-0.669602811, -1.28498969, 0.0313415863, 0.985017717, -1.11425685e-07, 0.172440618, -0.00108562189, 0.999984562, 0.0062019499, -0.172439247, -0.00629561814, 0.985009789),Alpha)
1271
			RH.C0 = clerp(RH.C0,CFrame.new(0.672363043, -1.28521297, 0.023051152, 0.993336737, -1.2538369e-06, -0.115229882, 0.000725628284, 0.999984622, 0.00624438236, 0.115228966, -0.00628577033, 0.993328869),Alpha)
1272
			LS.C0 = clerp(LS.C0,CFrame.new(-1.77177048, 0.838547349, -0.679161608, 0.555506885, 0.830917358, -0.0313709527, 0.398059189, -0.298866272, -0.867315829, -0.730048597, 0.469315678, -0.496780783),Alpha)
1273
			RS.C0 = clerp(RS.C0,CFrame.new(1.24497938, 0.376010507, -0.544311762, 0.467782408, 0.342397809, 0.814824641, 0.878098845, -0.0750677809, -0.472563267, -0.100637719, 0.936560154, -0.335777313),Alpha)
1274
			NK.C0 = clerp(NK.C0,CFrame.new(1.11990994e-05, 2.02161074, -0.0194199979, 0.999997795, -5.51342964e-07, 2.84891576e-06, 9.31104296e-08, 0.98739022, 0.158333212, -2.89361924e-06, -0.158333361, 0.987395525),Alpha)
1275
		end
1276
		if(haed)then haed:breakJoints() haed.CanCollide = true delay(1, function() for i = 0, 1, .05 do haed.Transparency = i swait() end haed:destroy() end) end
1277
	end
1278
	Hum.AutoRotate = true
1279
	WalkSpeed = 12
1280
	Hum.JumpPower = 50
1281
	Attack = false
1282
	NeutralAnims = true
1283
end
1284
1285
function Taunt()
1286
	Attack = true
1287
	NeutralAnims = false
1288
	local tau = Sound(Head,907332856,1,5,false,true,true)
1289
	WalkSpeed = 0
1290
	repeat swait() until tau.IsLoaded
1291
	
1292
	repeat swait()
1293
		local Alpha = .1
1294
		RJ.C0 = clerp(RJ.C0,CFrame.new(-2.86382029e-13, 0.00849175733+.1*M.C(Sine/24), -2.024899e-08, 0.999995589, 7.27595761e-12, 6.51925802e-09, -1.4182433e-11, 0.999988914, -0.00628564321, 6.51925802e-09, 0.00628691958, 0.999999404),Alpha)
1295
		LH.C0 = clerp(LH.C0,CFrame.new(-0.669678032, -1.38499403-.1*M.C(Sine/24), 0.0295096412, 0.990272164, -5.56828963e-05, 0.139128789, -0.000814882107, 0.999984801, 0.00620027725, -0.139128059, -0.00625271676, 0.990264475),Alpha)
1296
		RH.C0 = clerp(RH.C0,CFrame.new(0.672359347, -1.38521934-.1*M.C(Sine/24), 0.0211674385, 0.991539717, -1.65234928e-06, -0.12978667, 0.000817281427, 0.999984622, 0.00623110821, 0.129785627, -0.00628384575, 0.991531849),Alpha)
1297
		LS.C0 = clerp(LS.C0,CFrame.new(-0.915843368, 0.359640986, -0.334288538, 0.401372224, -0.891078174, 0.21183902, 0.504320204, 0.021941511, -0.863243043, 0.764574885, 0.453319848, 0.458198279),Alpha)
1298
		RS.C0 = clerp(RS.C0,CFrame.new(1.01991177, 0.324635416, -0.81657666, 0.166016608, 0.986036301, 0.0129131982, -0.818172693, 0.145040289, -0.556386292, -0.550494492, 0.0818048492, 0.830832779),Alpha)
1299
		NK.C0 = clerp(NK.C0,CFrame.new(1.02607883e-05, 2.02162433, -0.0194168612, 0.999995589, 3.67173925e-07, -1.56462193e-07, -3.56551027e-07, 0.997973442, 0.0637700409, 1.90921128e-07, -0.0637693703, 0.997983992)*CF.A(M.R(tau.PlaybackLoudness/25),0,0),Alpha)
1300
	until not tau.Parent or tau.TimePosition >= tau.TimeLength-.1
1301
	
1302
	WalkSpeed = 12
1303
	Attack = false
1304
	NeutralAnims = true
1305
end
1306
1307
function TraceThing(COLOR,PLACE2) -- thanks shack dadi
1308
	local FADE = Effects
1309
	for _, c in pairs(Char:GetChildren()) do
1310
		if c:IsA'BasePart' and c ~= Root and c.Name ~= 'Horn' then
1311
			local DIST = (c.Position-PLACE2).magnitude
1312
			local FADER = c:Clone()
1313
			FADER.Color = COLOR
1314
			FADER.Size = Vector3.new(FADER.Size.X,FADER.Size.Y,DIST)
1315
			FADER.CFrame = CFrame.new(c.Position,PLACE2) * CFrame.new(0,0,-DIST/2)
1316
			FADER.Parent = FADE
1317
			FADER.Anchored = true
1318
			FADER.Transparency = 0.25
1319
			FADER:BreakJoints()
1320
			FADER.Material = "Glass"
1321
			FADER.CanCollide = false
1322
			FADER:ClearAllChildren()
1323
			
1324
			if FADER.Name == "Head" then
1325
				FADER.Size = Vector3.new(1,1,1)
1326
			end
1327
			Effect{
1328
				Effect='Fade',
1329
				Manual=FADER
1330
			}
1331
		end
1332
	end
1333
1334
end
1335
1336
function ShadowDash()
1337
	local whom = (Mouse.Target and Mouse.Target.Parent)
1338
	if(whom and whom:FindFirstChildOfClass'Humanoid' and GetTorso(whom))then
1339
		local tits = GetTorso(whom)
1340
		WalkSpeed = 0
1341
		Hum.AutoRotate = false
1342
		Hum.JumpPower = 0
1343
		Attack = true
1344
		NeutralAnims = false
1345
		tits.Anchored = true
1346
		pe.Enabled = false
1347
		for _,v in next, Char:children() do
1348
			if(v:IsA'BasePart')then
1349
				v.Transparency = 1
1350
			end
1351
		end
1352
		Root.Anchored = true
1353
		Root.CFrame = tits.CFrame
1354
		TraceThing(Color3.new(0,0,0),tits.Position)
1355
		swait(60)
1356
		tits.Anchored = false
1357
		whom:breakJoints()
1358
		Sound(Torso,429400881,1,1,false,true,true)
1359
		for i = 1, 150 do
1360
			BloodDrop(tits.CFrame.p,tits.CFrame*CF.A(M.RRNG(0,360),M.RRNG(0,360),M.RRNG(0,360))*CF.N(0,0,-250).p,0)
1361
		end
1362
		
1363
		for _,v in next, whom:children() do
1364
			if(v:IsA'BasePart')then
1365
				v.Transparency = 1
1366
				v.CanCollide = false
1367
			end
1368
		end
1369
		
1370
		for _,v in next, Char:children() do
1371
			if(v:IsA'BasePart' and v ~= Root)then
1372
				v.Transparency = 0
1373
			end
1374
		end
1375
		
1376
		Sound(Torso,51322486,.25,5,false,true,true)
1377
		Sound(Torso,90696602,.75,5,false,true,true)
1378
		for i = 0, 28, 0.1 do
1379
			swait()
1380
			local Alpha = .4
1381
			RJ.C0 = clerp(RJ.C0,CFrame.new(0.00757355848, 0.0377852023+.1*M.C(Sine/24), 0.485009342, 0.999981403, 0.00563284894, -0.00109071564, -0.00563992467, 0.930139899, -0.367174059, -0.00105372258, 0.367176652, 0.93016088),Alpha)
1382
			LH.C0 = clerp(LH.C0,CFrame.new(-0.552594781, -1.50296986-.1*M.C(Sine/24), 0.0680995584, 0.976442635, 0.0836730748, 0.198894158, -0.152352825, 0.920082569, 0.360883713, -0.152802736, -0.382684261, 0.911155462),Alpha)
1383
			RH.C0 = clerp(RH.C0,CFrame.new(0.567943096, -1.50207984-.1*M.C(Sine/24), 0.0515697002, 0.953646958, -0.0866500363, -0.288183123, 0.189154476, 0.917415917, 0.350098461, 0.234047636, -0.388381392, 0.89128089),Alpha)
1384
			LS.C0 = clerp(LS.C0,CFrame.new(-1.75206876, 0.655161917+.1*M.C(Sine/24), 0.0501086563, 0.92441982, 0.349119335, 0.153505713, -0.381188124, 0.858473122, 0.343103051, -0.0119965971, -0.375685781, 0.926669419),Alpha)
1385
			RS.C0 = clerp(RS.C0,CFrame.new(1.74417436, 0.680885673+.1*M.C(Sine/24), 0.0660502613, 0.924426794, -0.360479355, -0.124458626, 0.380988151, 0.858555913, 0.343118131, -0.0168322921, -0.364604831, 0.931010187),Alpha)
1386
			NK.C0 = clerp(NK.C0,CFrame.new(1.50889819e-05, 2.00338078, 0.0683209598, 1.00000012, -5.74626029e-07, 2.76975334e-06, 1.12503767e-06, 0.979146719, -0.203155011, -2.59466469e-06, 0.203154892, 0.9791466),Alpha)
1387
		end
1388
		Attack = false
1389
		NeutralAnims = true
1390
		Root.Anchored = false
1391
		WalkSpeed = 12
1392
		Hum.JumpPower = 50
1393
		Hum.AutoRotate = true
1394
	end
1395
end
1396
1397
function Kick()
1398
	Attack = true
1399
	NeutralAnims = false
1400
	WalkSpeed = 0
1401
	for i = 0, 3, 0.1 do
1402
		swait()
1403
		local Alpha = .3
1404
		RJ.C0 = clerp(RJ.C0,CFrame.new(-0.0108572729, 0, -0.695583761, 0.999961317, -0.00823512767, -0.00228715781, 0.00822012592, 0.853373766, 0.521243095, -0.00234070979, -0.521245122, 0.853415012),Alpha)
1405
		LH.C0 = clerp(LH.C0,CFrame.new(-0.671167731, -1.38471591, -0.0706769824, 0.999878228, -0.00854624435, 0.0130612627, -9.76649171e-05, 0.833346248, 0.552751541, -0.0156085016, -0.552685499, 0.833243787),Alpha)
1406
		RH.C0 = clerp(RH.C0,CFrame.new(0.668480039, -1.47226596, -0.225226939, 0.999876022, 0.00822012592, 0.0132711167, -9.63718194e-05, 0.853373766, -0.521310091, -0.0156105161, 0.521243095, 0.853275299),Alpha)
1407
		LS.C0 = clerp(LS.C0,CFrame.new(-2.02284789, 0.688191652, 0.000862836838, 0.999878228, 0.0108040562, 0.0112653123, -9.76649171e-05, 0.726044297, -0.687648118, -0.0156085016, 0.687563181, 0.725956857),Alpha)
1408
		RS.C0 = clerp(RS.C0,CFrame.new(2.01978493, 0.643525422, -0.250506341, 0.999878228, 0.0108030885, 0.0112662409, -9.76649171e-05, 0.726103425, -0.687585771, -0.0156085016, 0.687500834, 0.726015925),Alpha)
1409
		NK.C0 = clerp(NK.C0,CFrame.new(1.23225118e-05, 2.02159524, -0.019422181, 1.00000012, 1.39325857e-06, -2.44937837e-07, -1.37463212e-06, 0.997964859, 0.0637694597, 3.31550837e-07, -0.0637694299, 0.997964621),Alpha)
1410
	end
1411
	for i = 0, 3, 0.1 do
1412
		swait()
1413
		AOEDamage(LLeg.CFrame.p,2,{MinDamage=15,MaxDamage=35,DamageFX={Type='FlingEm',KnockBack=75,Origin=LLeg,KnockUp=25}})
1414
		local Alpha = .3
1415
		RJ.C0 = clerp(RJ.C0,CFrame.new(0.00780527852, 0, 0.499894947, 0.999982774, 0.00539445458, -0.000995628536, -0.00539992284, 0.936068416, -0.3517887, -0.000965735875, 0.351791173, 0.936088264),Alpha)
1416
		LH.C0 = clerp(LH.C0,CFrame.new(-0.671892226, -1.23579645, -0.118154764, 0.999878228, 0.00863712933, 0.0130002648, -9.75973526e-05, 0.83637166, -0.548162997, -0.0156076048, 0.548094988, 0.836270571),Alpha)
1417
		RH.C0 = clerp(RH.C0,CFrame.new(0.6725474, -1.47226596, 0.0332563818, 0.999876022, -0.00539992284, 0.0146462582, -9.84164217e-05, 0.936068416, 0.351832539, -0.0156098502, -0.3517887, 0.935958624),Alpha)
1418
		LS.C0 = clerp(LS.C0,CFrame.new(-2.01932526, 0.751780629, 0.226142645, 0.999878228, -0.0136112757, 0.00763806421, -9.75973526e-05, 0.483909249, 0.875118136, -0.0156076048, -0.875012398, 0.483849049),Alpha)
1419
		RS.C0 = clerp(RS.C0,CFrame.new(2.02764368, 0.580253482, 0.252969861, 0.999878228, -0.0136119165, 0.00763692334, -9.75973526e-05, 0.483835995, 0.875158668, -0.0156076048, -0.875052869, 0.483775735),Alpha)
1420
		NK.C0 = clerp(NK.C0,CFrame.new(1.83633183e-05, 2.02156091, -0.0194185972, 1.00000012, 1.6214326e-06, -1.53947622e-06, -1.51945278e-06, 0.997964621, 0.0637715757, 1.64005905e-06, -0.0637715757, 0.997964621),Alpha)
1421
	end
1422
	WalkSpeed = 12
1423
	Attack = false
1424
	NeutralAnims = true
1425
end
1426
--// Wrap it all up \\--
1427
1428
S.UserInputService.InputBegan:connect(function(io,gpe)
1429
	if(gpe or Attack)then return end
1430
	if(io.KeyCode == Enum.KeyCode.Z)then
1431
		Decapitate()
1432
	elseif(io.KeyCode == Enum.KeyCode.M)then
1433
		ShadowDash()
1434
	elseif(io.KeyCode == Enum.KeyCode.F)then
1435
		Kick()
1436
	
1437
	elseif(io.KeyCode == Enum.KeyCode.T)then
1438
		Taunt()
1439
	end
1440
end)
1441
1442
Plr.Chatted:connect(function(m)
1443
	if(m == '/e sit')then
1444
		idleCounter = 0
1445
		Sitting = not Sitting
1446
	end	
1447
end)
1448
1449
while true do
1450
	swait()
1451
	Sine = Sine + Change
1452
	if(not Music)then
1453
		Music = Sound(Char,MusicID,1,3,true,false,true)
1454
		Music.Name = 'Music'
1455
	end
1456
	Music.SoundId = "rbxassetid://"..MusicID
1457
	Music.Parent = Torso
1458
	Music.Pitch = 1
1459
	Music.Volume = 5
1460
	if(not Muted)then
1461
		Music:Resume()
1462
	else
1463
		Music:Pause()
1464
	end
1465
	
1466
	
1467
	if(God)then
1468
		Hum.MaxHealth = 1e100
1469
		Hum.Health = 1e100
1470
		if(not Char:FindFirstChildOfClass'ForceField')then IN("ForceField",Char).Visible = false end
1471
		Hum.Name = M.RNG()*100
1472
	end
1473
	
1474
	local hitfloor,posfloor = workspace:FindPartOnRay(Ray.new(Root.CFrame.p,((CFrame.new(Root.Position,Root.Position - Vector3.new(0,1,0))).lookVector).unit * (4*PlayerSize)), Char)
1475
	
1476
	local Walking = (math.abs(Root.Velocity.x) > 1 or math.abs(Root.Velocity.z) > 1)
1477
	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 (Hum.WalkSpeed < 24 and "Walk" or "Run") or hitfloor and "Idle")
1478
	if(not Effects or not Effects.Parent)then
1479
		Effects = IN("Model",Char)
1480
		Effects.Name = "Effects"
1481
	end																																																																																																				
1482
	if(State == 'Run')then
1483
		local wsVal = 7 / (Hum.WalkSpeed/16)
1484
		local Alpha = math.min(.2 * (Hum.WalkSpeed/16),1)
1485
		Change = 1
1486
		RH.C1 = RH.C1:lerp(CF.N(0,1*PlayerSize-.1*M.C(Sine/wsVal),0+.2*M.C(Sine/wsVal))*CF.A(M.R(8-0*M.C(Sine/wsVal))+-M.S(Sine/wsVal)/1.5,0,0),.2)
1487
		LH.C1 = LH.C1:lerp(CF.N(0,1*PlayerSize+.1*M.C(Sine/wsVal),0-.2*M.C(Sine/wsVal))*CF.A(M.R(8+0*M.C(Sine/wsVal))+M.S(Sine/wsVal)/1.5,0,0),.2)
1488
	elseif(State == 'Walk')then
1489
		local wsVal = 7 / (Hum.WalkSpeed/16)
1490
		local Alpha = math.min(.2 * (Hum.WalkSpeed/16),1)
1491
		Change = 1
1492
		RH.C1 = RH.C1:lerp(CF.N(0,1*PlayerSize-.5*M.C(Sine/wsVal)/2,0+.5*M.C(Sine/wsVal)/2)*CF.A(M.R(15-15*M.C(Sine/wsVal))+-M.S(Sine/wsVal)/2.5,0,0),Alpha)
1493
		LH.C1 = LH.C1:lerp(CF.N(0,1*PlayerSize+.5*M.C(Sine/wsVal)/2,0-.5*M.C(Sine/wsVal)/2)*CF.A(M.R(15+15*M.C(Sine/wsVal))+M.S(Sine/wsVal)/2.5,0,0),Alpha)
1494
	else
1495
		RH.C1 = RH.C1:lerp(CF.N(0,1*PlayerSize,0),.2)
1496
		LH.C1 = LH.C1:lerp(CF.N(0,1*PlayerSize,0),.2)
1497
	end
1498
	
1499
	if(State == 'Idle' and NeutralAnims)then
1500
		idleCounter = idleCounter + 1	
1501
	else
1502
		Sitting = false
1503
		idleCounter = 0	
1504
	end
1505
	
1506
	Hum.WalkSpeed = WalkSpeed
1507
	if(not Char:FindFirstChildOfClass'Shirt')then
1508
		NewInstance("Shirt",Char,{ShirtTemplate='rbxassetid://236410507'})
1509
	else
1510
		Char:FindFirstChildOfClass'Shirt'.ShirtTemplate='rbxassetid://236410507'
1511
	end
1512
	
1513
	if(not Char:FindFirstChildOfClass'Pants')then
1514
		NewInstance("Pants",Char,{PantsTemplate='rbxassetid://236412261'})
1515
	else
1516
		Char:FindFirstChildOfClass'Pants'.PantsTemplate='rbxassetid://236412261'
1517
	end
1518
	
1519
	if(Remove_Hats)then Instance.ClearChildrenOfClass(Char,"Accessory",true) end
1520
	
1521
	local face = Head:FindFirstChild'face'
1522
	if(not face)then
1523
		NewInstance("Decal",Head,{Name='face',Face=Enum.NormalId.Front,Texture="rbxassetid://404306534"})
1524
	else
1525
		face.Texture = "rbxassetid://404306534"
1526
	end
1527
	
1528
	RArm.Color 		= C3.N(0.1,0.1,0.1)
1529
	LArm.Color 		= C3.N(0.1,0.1,0.1)
1530
	RLeg.Color 		= C3.N(0.1,0.1,0.1)
1531
	LLeg.Color 		= C3.N(0.1,0.1,0.1)
1532
	Torso.Color 	= C3.N(0.1,0.1,0.1)
1533
	Head.Color 		= C3.N(0.1,0.1,0.1)
1534
	
1535
	if(NeutralAnims)then	
1536
		if(State == 'Idle')then
1537
			if(not Sitting and idleCounter < 1500)then
1538
				local Alpha = .1
1539
				Change = 1
1540
				RJ.C0 = RJ.C0:lerp(RJC0*CF.N(0,0+.2*M.C(Sine/24),0)*CF.A(M.R(0+5*M.S(Sine/24)),0,0),Alpha)
1541
				NK.C0 = NK.C0:lerp(NKC0*CF.N(0,0,-.1)*CF.A(M.R(-15),0,M.R(10)),Alpha)
1542
				LS.C0 = LS.C0:lerp(LSC0*CF.A(M.R(10+5*M.C(Sine/24)),0,M.R(-15+5*M.C(Sine/24))),Alpha)
1543
				RS.C0 = RS.C0:lerp(RSC0*CF.A(M.R(10+5*M.C(Sine/24)),0,M.R(15-5*M.C(Sine/24))),Alpha)
1544
				LH.C0 = LH.C0:lerp(LHC0*CF.N(0,0-.2*M.C(Sine/24),0)*CF.A(M.R(0-5*M.S(Sine/24)),0,M.R(-5)),Alpha)
1545
				RH.C0 = RH.C0:lerp(RHC0*CF.N(0,0-.2*M.C(Sine/24),0)*CF.A(M.R(0-5*M.S(Sine/24)),0,M.R(5)),Alpha)
1546
			else
1547
				local Alpha = .1
1548
				Change = 1
1549
				RJ.C0 = RJ.C0:lerp(RJC0*CF.N(0,-2+.2*M.C(Sine/24),0)*CF.A(M.R(0+5*M.S(Sine/24)),0,0),Alpha)
1550
				NK.C0 = NK.C0:lerp(NKC0*CF.N(0,0,-.1)*CF.A(M.R(-15),0,M.R(10)),Alpha)
1551
				LS.C0 = LS.C0:lerp(LSC0*CF.A(M.R(90+2*M.C(Sine/24)),0,M.R(15+2*M.C(Sine/24))),Alpha)
1552
				RS.C0 = RS.C0:lerp(RSC0*CF.A(M.R(10+5*M.C(Sine/24)),0,M.R(15-5*M.C(Sine/24))),Alpha)
1553
				LH.C0 = LH.C0:lerp(LHC0*CF.N(0,2-.2*M.C(Sine/24),-1)*CF.A(M.R(0-5*M.S(Sine/24)),0,M.R(-5)),Alpha)
1554
				RH.C0 = RH.C0:lerp(RHC0*CF.N(0,0-.2*M.C(Sine/24),0)*CF.A(M.R(-90-5*M.S(Sine/24)),0,M.R(5)),Alpha)
1555
			end
1556
		elseif(State == 'Run')then
1557
			local wsVal = 7 / (Hum.WalkSpeed/16)
1558
			local Alpha = math.min(.2 * (Hum.WalkSpeed/16),1)
1559
			RJ.C0 = RJ.C0:lerp(CF.N(0,0-.1*M.C(Sine/(wsVal/2)),0)*CF.A(M.R(-15+2.5*M.C(Sine/(wsVal/2))),M.R(8*M.C(Sine/wsVal)),0),Alpha)
1560
			NK.C0 = NK.C0:lerp(NKC0,Alpha)
1561
			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)),Alpha)
1562
			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)),Alpha)
1563
			LH.C0 = LH.C0:lerp(LHC0*CF.N(0,0+.1*M.C(Sine/(wsVal/2)),0)*CF.A(0,-M.R(4*M.C(Sine/wsVal)),0),Alpha)
1564
			RH.C0 = RH.C0:lerp(RHC0*CF.N(0,0+.1*M.C(Sine/(wsVal/2)),0)*CF.A(0,-M.R(4*M.C(Sine/wsVal)),0),Alpha)
1565
		elseif(State == 'Walk')then
1566
			local wsVal = 7 / (Hum.WalkSpeed/16)
1567
			local Alpha = math.min(.2 * (Hum.WalkSpeed/16),1)
1568
			local Alpha2 = math.min(.15 * (Hum.WalkSpeed/16),1)
1569
			RJ.C0 = RJ.C0:lerp(CF.N(0,-.1+.1*M.C(Sine/(wsVal/2)+-M.S(Sine/(wsVal/2))/3),0)*CF.A(M.R(-9-2.5*M.C(Sine/(wsVal/2))),M.R(10*M.C(Sine/wsVal)),Root.RotVelocity.y/75),Alpha2)
1570
			NK.C0 = NK.C0:lerp(NKC0*CF.A(0,-Head.RotVelocity.y/75,0),Alpha)
1571
			LS.C0 = LS.C0:lerp(LSC0*CF.N(0,0,-.27*M.C(Sine/wsVal))*CF.A(M.R(45*M.C(Sine/wsVal)),0,M.R(-5)+LArm.RotVelocity.y/75),Alpha)
1572
			RS.C0 = RS.C0:lerp(RSC0*CF.N(0,0,.27*M.C(Sine/wsVal))*CF.A(M.R(-45*M.C(Sine/wsVal)),0,M.R(5)-RArm.RotVelocity.y/75),Alpha)
1573
			LH.C0 = LH.C0:lerp(LHC0*CF.N(0,0-.1*M.C(Sine/(wsVal/2)),0)*CF.A(0,0,0),Alpha)
1574
			RH.C0 = RH.C0:lerp(RHC0*CF.N(0,0-.1*M.C(Sine/(wsVal/2)),0)*CF.A(0,0,0),Alpha)
1575
		elseif(State == 'Jump')then
1576
			local Alpha = .1
1577
			local idk = math.min(math.max(Root.Velocity.Y/50,-M.R(90)),M.R(90))
1578
			LS.C0 = LS.C0:lerp(LSC0*CF.A(M.R(-5),0,M.R(-90)),Alpha)
1579
			RS.C0 = RS.C0:lerp(RSC0*CF.A(M.R(-5),0,M.R(90)),Alpha)
1580
			RJ.C0 = RJ.C0:lerp(RJC0*CF.A(math.min(math.max(Root.Velocity.Y/100,-M.R(45)),M.R(45)),0,0),Alpha)
1581
			NK.C0 = NK.C0:lerp(NKC0*CF.A(math.min(math.max(Root.Velocity.Y/100,-M.R(45)),M.R(45)),0,0),Alpha)
1582
			LH.C0 = LH.C0:lerp(LHC0*CF.A(0,0,M.R(-5)),Alpha)
1583
			RH.C0 = RH.C0:lerp(RHC0*CF.N(0,1,-1)*CF.A(M.R(-5),0,M.R(5)),Alpha)
1584
		elseif(State == 'Fall')then
1585
			local Alpha = .1
1586
			local idk = math.min(math.max(Root.Velocity.Y/50,-M.R(90)),M.R(90))
1587
			LS.C0 = LS.C0:lerp(LSC0*CF.A(M.R(-5),0,M.R(-90)+idk),Alpha)
1588
			RS.C0 = RS.C0:lerp(RSC0*CF.A(M.R(-5),0,M.R(90)-idk),Alpha)
1589
			RJ.C0 = RJ.C0:lerp(RJC0*CF.A(math.min(math.max(Root.Velocity.Y/100,-M.R(45)),M.R(45)),0,0),Alpha)
1590
			NK.C0 = NK.C0:lerp(NKC0*CF.A(math.min(math.max(Root.Velocity.Y/100,-M.R(45)),M.R(45)),0,0),Alpha)
1591
			LH.C0 = LH.C0:lerp(LHC0*CF.A(0,0,M.R(-5)),Alpha)
1592
			RH.C0 = RH.C0:lerp(RHC0*CF.N(0,1,-1)*CF.A(M.R(-5),0,M.R(5)),Alpha)
1593
		elseif(State == 'Paralyzed')then
1594
			-- paralyzed
1595
		elseif(State == 'Sit')then
1596
			-- sit
1597
		end
1598
	end
1599
	
1600
	for i,v in next, BloodPuddles do
1601
		local mesh = i:FindFirstChild'CylinderMesh'
1602
		BloodPuddles[i] = v + 1
1603
		if(not mesh or i.Transparency >= 1)then
1604
			i:destroy() 
1605
			BloodPuddles[i] = nil
1606
		elseif(v > Frame_Speed*4)then
1607
			local trans = (v-Frame_Speed*4)/(Frame_Speed*2)
1608
			i.Transparency = trans
1609
	            if(mesh.Scale.Z > 0)then
1610
	                mesh.Scale = mesh.Scale-V3.N(.05,0,.05)
1611
	            end
1612
		else
1613
			i.Transparency = 0
1614
		end
1615
	end
1616
end