View difference between Paste ID: NgaZsHd3 and db2HmW53
SHOW: | | - or go back to the newest paste.
1
-- This script has been converted to FE by iPxter
2
3
4-
local Player = game:GetService("Players").LocalPlayer
4+
if game:GetService("RunService"):IsClient() then error("Script must be server-side in order to work; use h/ and not hl/") end
5
local Player,Mouse,mouse,UserInputService,ContextActionService = owner
6
do
7
	print("FE Compatibility code by Mokiros | Translated to FE by iPxter")
8
	script.Parent = Player.Character
9
10
	--RemoteEvent for communicating
11
	local Event = Instance.new("RemoteEvent")
12
	Event.Name = "UserInput_Event"
13
14-
local Mouse = Player:GetMouse()
14+
	--Fake event to make stuff like Mouse.KeyDown work
15
	local function fakeEvent()
16
		local t = {_fakeEvent=true,Connect=function(self,f)self.Function=f end}
17
		t.connect = t.Connect
18
		return t
19
	end
20
21
	--Creating fake input objects with fake variables
22
    local m = {Target=nil,Hit=CFrame.new(),KeyUp=fakeEvent(),KeyDown=fakeEvent(),Button1Up=fakeEvent(),Button1Down=fakeEvent()}
23
	local UIS = {InputBegan=fakeEvent(),InputEnded=fakeEvent()}
24
	local CAS = {Actions={},BindAction=function(self,name,fun,touch,...)
25
		CAS.Actions[name] = fun and {Name=name,Function=fun,Keys={...}} or nil
26
	end}
27
	--Merged 2 functions into one by checking amount of arguments
28
	CAS.UnbindAction = CAS.BindAction
29
30
	--This function will trigger the events that have been :Connect()'ed
31
	local function te(self,ev,...)
32
		local t = m[ev]
33
		if t and t._fakeEvent and t.Function then
34
			t.Function(...)
35
		end
36
	end
37
	m.TrigEvent = te
38
	UIS.TrigEvent = te
39
40
	Event.OnServerEvent:Connect(function(plr,io)
41
	    if plr~=Player then return end
42
		if io.isMouse then
43
			m.Target = io.Target
44
			m.Hit = io.Hit
45
		else
46
			local b = io.UserInputState == Enum.UserInputState.Begin
47
			if io.UserInputType == Enum.UserInputType.MouseButton1 then
48
				return m:TrigEvent(b and "Button1Down" or "Button1Up")
49
			end
50
			for _,t in pairs(CAS.Actions) do
51
				for _,k in pairs(t.Keys) do
52
					if k==io.KeyCode then
53
						t.Function(t.Name,io.UserInputState,io)
54
					end
55
				end
56
			end
57
			m:TrigEvent(b and "KeyDown" or "KeyUp",io.KeyCode.Name:lower())
58
			UIS:TrigEvent(b and "InputBegan" or "InputEnded",io,false)
59
	    end
60
	end)
61
	Event.Parent = NLS([==[
62
	local Player = game:GetService("Players").LocalPlayer
63
	local Event = script:WaitForChild("UserInput_Event")
64
65
	local UIS = game:GetService("UserInputService")
66
	local input = function(io,a)
67
		if a then return end
68
		--Since InputObject is a client-side instance, we create and pass table instead
69
		Event:FireServer({KeyCode=io.KeyCode,UserInputType=io.UserInputType,UserInputState=io.UserInputState})
70
	end
71
	UIS.InputBegan:Connect(input)
72
	UIS.InputEnded:Connect(input)
73
74
	local Mouse = Player:GetMouse()
75
	local h,t
76
	--Give the server mouse data 30 times every second, but only if the values changed
77
	--If player is not moving their mouse, client won't fire events
78
	while wait(1/30) do
79
		if h~=Mouse.Hit or t~=Mouse.Target then
80
			h,t=Mouse.Hit,Mouse.Target
81
			Event:FireServer({isMouse=true,Target=t,Hit=h})
82
		end
83
	end]==],Player.Character)
84
	Mouse,mouse,UserInputService,ContextActionService = m,m,UIS,CAS
85
end
86
87
--[[ World eater Script ]]--
88
--[[ Declarations ]]--
89
wait(.0000000000000000000001)
90
local Player = game:GetService("Players").hsdfsfsdfds
91
local Character = Player.Character
92
local Head = Character.Head
93
local Torso = Character.Torso
94
local Right_Arm = Character["Right Arm"]
95
local Right_Leg = Character["Right Leg"]
96
local Left_Arm = Character["Left Arm"]
97
local Left_Leg = Character["Left Leg"]
98
local Humanoid = Character.Humanoid
99
local Animation = "Idle"
100
local LeftShoulder = Torso["Left Shoulder"] 
101
local Left_Hip = Torso["Left Hip"] 
102
local RightShoulder = Torso["Right Shoulder"] 
103
local Right_Hip = Torso["Right Hip"] 
104
local Root = Character.HumanoidRootPart
105
local RootJoint = Root.RootJoint
106
local Attacking = false
107
local CanAttack = true
108
local Anim = "Idle"
109
local Combo = 1 
110
local Blocking = false
111
local MaxDestruction = 1000
112
local Destruction = 0
113
local MaxBlock = 100
114
local Effects = {}
115
local Color = "Bright yellow"
116
local Invert = false
117
local Idle = 0
118
local Equipped = false
119
local Running = false
120
local Unseathed = false
121
local Shard = "None"
122
123
Humanoid.MaxHealth = 3000
124
Humanoid.Health = 3000
125
126
local WorldEaterTheme = Instance.new("Sound",Character)
127
WorldEaterTheme.Name = "WorldEaterTheme"
128
WorldEaterTheme.Looped = true
129
WorldEaterTheme.SoundId = "http://www.roblox.com/asset?id=149981769"
130
WorldEaterTheme:Play()
131
132
Left_Shoulder = Instance.new("Weld", Torso)
133
Left_Shoulder.Part0 = Torso
134
Left_Shoulder.Part1 = Left_Arm
135
Left_Shoulder.Name = "Left Shoulder"
136
Left_Shoulder.C0 = CFrame.new(-1.5,0,0)
137
138
Right_Shoulder = Instance.new("Weld", Torso)
139
Right_Shoulder.Part0 = Torso
140
Right_Shoulder.Part1 = Right_Arm
141
Right_Shoulder.Name = "Right Shoulder"
142
Right_Shoulder.C0 = CFrame.new(1.5,0,0)
143
144
LeftShoulder.Parent = nil
145
RightShoulder.Parent = nil
146
Humanoid.WalkSpeed = 10
147
148
local RootCFrame = CFrame.fromEulerAnglesXYZ(-1.57,0,3.14)
149
Necko = CFrame.new(0, 1, 0, -1, -0, -0, 0, 0, 1, 0, 1, 0)
150
Necko2 = CFrame.new(0, -0.5, 0, -1, -0, -0, 0, 0, 1, 0, 1, 0)
151
Right_Hip_C1 = CFrame.new(0.5, 1, 0, 0, 0, 1, 0, 1, 0, -1, 0, 0)
152
Left_Hip_C1 = CFrame.new(-0.5, 1, 0, 0, 0, -1, 0, 1, 0, 1, 0, 0)
153
154
155
Movemment = 1
156
Walk = 0
157
158
Animator = Humanoid.Animator
159
--Animate = Character.Animate
160
161
Animator.Parent = nil
162
--Animate.Parent = nil
163
164
local Services = {
165
166
SoundService = game:GetService("SoundService");
167
Players = game:GetService("Players");
168
Debris = game:GetService("Debris");
169
Workspace = game:GetService("Workspace");
170
Lighting = game:GetService("Lighting");
171
HttpService = game:GetService("HttpService");
172
InsertService = game:GetService("InsertService");
173
	
174
}
175
176
local ManaBarGUI = Instance.new("ScreenGui", Player.PlayerGui)
177
ManaBarGUI.Name = "ManaBarGUI"
178
179
local ManaBarP1 = Instance.new("Frame", ManaBarGUI)
180
ManaBarP1.Name = "ManaBarPart1"
181
ManaBarP1.Size = UDim2.new(0,300,0,20)
182
ManaBarP1.Position = UDim2.new(0,350,0.1,0)
183
ManaBarP1.BackgroundColor3 = BrickColor.Black().Color
184
185
local ManaBarP2 = Instance.new("Frame", ManaBarP1)
186
ManaBarP2.Name = "ManaBarPart2"
187
ManaBarP2.Size = UDim2.new(0,300,0,20)
188
ManaBarP2.Position = UDim2.new(0,0,0,0)
189
ManaBarP2.BackgroundColor3 = BrickColor.new("Black").Color
190
191
local ManaBarText = Instance.new("TextLabel", ManaBarP1)
192
ManaBarText.Name = "ManaBarText"
193
ManaBarText.Size = UDim2.new(0,300,0,20)
194
ManaBarText.Position = UDim2.new(0,0,-1.5,0)	
195
ManaBarText.TextScaled = true
196
ManaBarText.Text = "<{[ Destruction ]}> 0 <{[ Destruction ]}>"
197
ManaBarText.BackgroundTransparency = 1
198
ManaBarText.TextStrokeTransparency = 0
199
ManaBarText.TextStrokeColor3 = Color3.new(1,1,1)
200
ManaBarText.TextColor3 = Color3.new(0,0,0)
201
ManaBarText.Font = "Garamond"
202
203
local WorldEaterGui = Instance.new("BillboardGui", Head)
204
WorldEaterGui.ExtentsOffset = Vector3.new(0,5,0)
205
WorldEaterGui.Adornee = Head
206
WorldEaterGui.AlwaysOnTop = true
207
WorldEaterGui.Enabled = true
208
WorldEaterGui.Size = UDim2.new(0, 200,0, 50)
209
210
local WorldEaterText = Instance.new("TextLabel", WorldEaterGui)
211
WorldEaterText.BackgroundTransparency = 1
212
WorldEaterText.Font = "Garamond"
213
WorldEaterText.Size = UDim2.new(0, 200,0, 50)
214
WorldEaterText.TextStrokeColor3 = BrickColor.Red().Color
215
WorldEaterText.TextStrokeTransparency = 0
216
WorldEaterText.TextColor3 = BrickColor.Black().Color
217
WorldEaterText.TextScaled = true
218
WorldEaterText.Text = "World Eater"
219
220
--------[[ Mesh Ids ]]--------
221
222
SpikeMeshId = 1033714
223
SpikeBallId = 9982590
224
StarMeshId = 45428961
225
CrystalMeshId = 9756362
226
227
--[[ Essential Functions ]]--
228
function NoOutlines(Part)
229
		Part.TopSurface,Part.BottomSurface,Part.LeftSurface,Part.RightSurface,Part.FrontSurface,Part.BackSurface = 10,10,10,10,10,10
230
end
231
	
232
233
local CreatePart = function(Parent, Name, Color, Size, Material, Transparency, Shape)
234
235
local Part = Instance.new("Part", Parent)
236
Part.Name = Name
237
Part.BrickColor = BrickColor.new(Color)
238
Part.Size = Size
239
Part.Material = Material
240
Part.Transparency = Transparency
241
Part.Shape = Shape
242
Part.CanCollide = false
243
NoOutlines(Part)
244
245
return Part
246
247
end
248
249
local CreateMesh = function(Parent, Scale, Shape)
250
251
252
local Mesh = Instance.new("BlockMesh", Parent)
253
Mesh.Scale = Scale
254
255
return Mesh
256
257
end
258
259
local CreateWedge = function(Parent, Name, Color, Size, Material, Transparency)
260
261
local WedgePart = Instance.new("WedgePart", Parent)
262
WedgePart.Name = Name
263
WedgePart.BrickColor = BrickColor.new(Color)
264
WedgePart.Size = Size
265
WedgePart.Material = Material
266
WedgePart.Transparency = Transparency
267
WedgePart.CanCollide = false
268
NoOutlines(WedgePart)
269
270
return WedgePart
271
272
end
273
274
local CreateWeld = function(Parent, Cframe, P1 , P0)
275
	
276
local Weld = Instance.new("Weld", Parent)
277
Weld.Part0 = P0
278
Weld.Part1 = P1
279
Weld.Name = P0.Name .. "To" .. P1.Name
280
Weld.C0 = Cframe
281
282
return Weld	
283
	
284
end
285
286
local CreateVelocity = function(Parent,Velocity,Force)
287
	
288
local BodyVelocity = Instance.new("BodyVelocity", Parent)
289
BodyVelocity.Velocity = Velocity
290
BodyVelocity.MaxForce = Force	
291
292
	
293
	
294
return BodyVelocity	
295
	
296
end
297
298
299
local CreateCrystal = function(Parent, Name, Color, Size, Material, Transparency, Scale)
300
301
302
local Part = Instance.new("Part", Parent)
303
Part.Name = Name
304
Part.BrickColor = BrickColor.new(Color)
305
Part.Size = Size
306
Part.Material = Material
307
Part.Transparency = Transparency
308
Part.CanCollide = false
309
NoOutlines(Part)
310
311
local Mesh = Instance.new("SpecialMesh", Part)
312
Mesh.MeshId = "http://www.roblox.com/asset?id=" .. CrystalMeshId
313
Mesh.Scale = Scale
314
315
return Mesh and Part
316
317
end
318
319
local MakeSFX = function(Parent, Id, Volume, Pitch, Type)
320
	
321
local SFX = Instance.new("Sound", Parent)
322
SFX.SoundId = "http://www.roblox.com/asset?id=" .. Id
323
SFX.Name = "SFX"
324
SFX:Play()
325
SFX.Volume = Volume
326
SFX.Pitch = Pitch
327
SFX.PlayOnRemove = true
328
SFX:Remove()
329
	
330
if Type == "Echo" then
331
	
332
Instance.new("EchoSoundEffect", SFX)	
333
	
334
end	
335
	
336
end
337
338
local CreateSpike = function(Parent, Name, Color, Size, Material, Transparency, Scale)
339
340
341
local Part = Instance.new("Part", Parent)
342
Part.Name = Name
343
Part.BrickColor = BrickColor.new(Color)
344
Part.Size = Size
345
Part.Material = Material
346
Part.Transparency = Transparency
347
Part.CanCollide = false
348
NoOutlines(Part)
349
350
local Mesh = Instance.new("SpecialMesh", Part)
351
Mesh.MeshId = "http://www.roblox.com/asset?id=" .. SpikeMeshId
352
Mesh.Scale = Scale
353
354
return Mesh and Part
355
356
end
357
358
CircleEffect = function(Position, Parent, DSX, DSY, DSZ, SX, SY, SZ, Time, Brickcolor, Material, Transparency)
359
	
360
local Part = Instance.new("Part", Parent)
361
Part.Transparency = Transparency
362
Part.Name = "CircleEffect"
363
Part.Size = Vector3.new()
364
Part.Anchored = true
365
Part.CanCollide = false
366
Part.Position = Position
367
Part.BrickColor = BrickColor.new(Brickcolor)
368
Part.Material = Material
369
NoOutlines(Part)
370
371
local Mesh = Instance.new("SpecialMesh", Part)
372
Mesh.MeshType = "Sphere"
373
Mesh.Scale = Vector3.new(DSX, DSY, DSZ)
374
375
Services.Debris:AddItem(Part, Time)
376
377
378
table.insert(Effects, {Part, "Circle", Time, SX, SY, SZ})
379
380
381
end
382
383
BlockEffect = function(Position, Parent, DSX, DSY, DSZ, SX, SY, SZ, Time, Brickcolor, Material, Transparency)
384
	
385
local Part = Instance.new("Part", Parent)
386
Part.Transparency = Transparency
387
Part.Name = "BlockEffect"
388
Part.Size = Vector3.new()
389
Part.Anchored = true
390
Part.Position = Position
391
Part.CanCollide = false
392
Part.BrickColor = BrickColor.new(Brickcolor)
393
Part.Material = Material
394
NoOutlines(Part)
395
396
local Mesh = Instance.new("BlockMesh", Part)
397
Mesh.Scale = Vector3.new(DSX, DSY, DSZ)
398
399
Services.Debris:AddItem(Part, Time)
400
401
table.insert(Effects, {Part, "Block", Time, SX, SY, SZ})
402
403
404
end
405
406
--[[ Damage function ]]--
407
408
409
function DamageFunction(Hit, Part, Type, HitSFX, Knockback, Min, Max)
410
	
411
local HitHumanoid = Hit.Parent.Humanoid
412
413
414
local Damage = math.random(Min, Max)
415
416
417
coroutine.resume(coroutine.create(function()
418
HitHumanoid:TakeDamage(Damage)
419
end))
420
	
421
if Type == "Shrink" then
422
MakeSFX(Hit.Parent.Torso, 209527235, 1, 1)	
423
for i,v in pairs(Hit.Parent:children()) do
424
if v:IsA("Part") then
425
coroutine.resume(coroutine.create(function()		
426
for i = 1,100 do
427
wait()	
428
v.Size = v.Size - Vector3.new(0.05,0.05,0.05)
429
v.Transparency = v.Transparency + 0.05
430
	
431
end		
432
end))
433
end	
434
end
435
	
436
end	
437
	
438
	
439
	
440
if Type == "Normal" then
441
	
442
local Push = CreateVelocity(Hit.Parent.Torso, Torso.CFrame.lookVector * Knockback, Vector3.new(math.huge,math.huge,math.huge))
443
Services.Debris:AddItem(Push, 0)	
444
DamageLabel(Hit.Parent, Damage, Hit)
445
446
elseif Type == "Ranged" then
447
local Push = CreateVelocity(Hit.Parent.Torso, Part.CFrame.lookVector * Knockback, Vector3.new(math.huge,math.huge,math.huge))
448
Services.Debris:AddItem(Push, 0)	
449
DamageLabel(Hit.Parent, Damage, Hit)
450
451
elseif Type == "Impale" then
452
453
local Spike = CreateSpike(Services.Workspace, "D e a t h", "Black", Vector3.new(), "SmoothPlastic", 0, Vector3.new(1,20,1))	
454
Spike.Anchored = true
455
Spike.Rotation = Vector3.new(math.random(-50,50), 0 , math.random(-50,50))
456
Spike.Position = Hit.Parent.Torso.Position
457
458
459
Services.Debris:AddItem(Spike, 30)
460
461
Hit.Parent:BreakJoints()
462
Hit.Parent.Torso.Position = Spike.Position + Vector3.new(0,5,0)
463
Hit.Parent.Torso.Anchored = true
464
	
465
MakeSFX(Spike, 306247724, 1,1)	
466
MakeSFX(Hit.Parent.Torso, 209527175, 10,1)
467
elseif Type == "Knockdown" then
468
	
469
		
470
local Push = CreateVelocity(Hit.Parent.Torso, Part.CFrame.lookVector * Knockback, Vector3.new(math.huge,math.huge,math.huge))
471
DamageLabel(Hit.Parent, Damage, Hit)
472
Services.Debris:AddItem(Push, 0.3)
473
474
coroutine.resume(coroutine.create(function()
475
	
476
HitHumanoid.PlatformStand = true
477
wait(1)
478
HitHumanoid.PlatformStand = false	
479
	
480
	
481
end))	
482
end
483
484
if HitSFX == "Penetration" then
485
	
486
MakeSFX(Hit, 199149269, 1 , 1)
487
488
elseif HitSFX == "Punch" then
489
	
490
MakeSFX(Hit, 278062209, 1 , 1)
491
	
492
	
493
	
494
	
495
end
496
end
497
498
function DamageLabel(HitCharacter, DamageDealt, Hit)
499
	
500
local DamageShowingPart = CreatePart(Services.Workspace, "ShowDamage", "Bright yellow", Vector3.new(0.8,0.8,0.8), "Neon", 1, "Block")
501
DamageShowingPart.Position = HitCharacter.Head.Position
502
503
local DamageGui = Instance.new("BillboardGui", DamageShowingPart)
504
DamageGui.Name = "Damage"
505
DamageGui.AlwaysOnTop = true
506
DamageGui.Size = UDim2.new(5, 0, 5, 0)
507
508
local DamageNumber = Instance.new("TextLabel", DamageGui)
509
DamageNumber.Size = UDim2.new(1,0,1,0)
510
if Hit.Parent:FindFirstChild("Head") then
511
DamageNumber.TextStrokeColor3 = Hit.Parent.Head.BrickColor.Color
512
DamageNumber.TextColor3 = Hit.BrickColor.Color
513
end
514
DamageNumber.TextStrokeTransparency = 0
515
DamageNumber.BackgroundTransparency = 1
516
DamageNumber.Font = "SourceSansBold"
517
DamageNumber.TextScaled = true
518
DamageNumber.Text = DamageDealt
519
	
520
local BodyVelocity = Instance.new("BodyVelocity", DamageShowingPart)
521
BodyVelocity.MaxForce = Vector3.new(math.huge,math.huge,math.huge)
522
BodyVelocity.Velocity = Vector3.new(0,2,0)	
523
	
524
Services.Debris:AddItem(DamageShowingPart, 3)
525
	
526
	
527
end 
528
529
function ValidateDamage(Part, Distance ,Min , Max, Type, HitSFX, Knockback)
530
for _,WorkspaceChildren in pairs(workspace:children()) do
531
	
532
local HitHumanoid = WorkspaceChildren:findFirstChild("Humanoid")
533
534
if HitHumanoid ~= nil then
535
local Hit = WorkspaceChildren:findFirstChild("Torso")
536
537
if Hit ~= nil then
538
	
539
local Target = Hit.Position - Part.Position
540
541
local Magnitude = Target.magnitude
542
543
if Magnitude <= Distance and WorkspaceChildren.Name ~= Player.Name then
544
	
545
local HitBlock = Hit.Parent:FindFirstChild("Block")	
546
	
547
if HitBlock ~= nil and HitBlock:FindFirstChild("BlockDurability") and HitBlock.Value == true then
548
549
local HitBlock2 = Hit.Parent.Block.BlockDurability	
550
	
551
if HitBlock2.Value > 15 then
552
	
553
local HitN = math.random(1,5)
554
	
555
HitBlock2.Value = HitBlock2.Value - 15	
556
	
557
	
558
if HitN == 1 then
559
MakeSFX(Hit ,199148971, 0.5, 1)	
560
end
561
562
if HitN == 2 then
563
MakeSFX(Hit ,199149025, 0.5, 1)	
564
end
565
566
if HitN == 3 then
567
MakeSFX(Hit ,199149072, 0.5, 1)	
568
end
569
570
if HitN == 4 then
571
MakeSFX(Hit ,199149109, 0.5, 1)	
572
end
573
574
if HitN == 5 then
575
MakeSFX(Hit ,199149119, 0.5, 1)	
576
end
577
return
578
end	
579
end
580
581
DamageFunction(Hit, Part, Type, HitSFX, Knockback, Min, Max)
582
583
	
584
585
end
586
end
587
end
588
end
589
end
590
 
591
592
593
local Cloak = Instance.new("Part", Character)
594
Cloak.Name = "Cloak"
595
Cloak.CanCollide = false
596
Cloak.BrickColor = BrickColor.new("Institutional white")
597
598
local CloakMesh = Instance.new("SpecialMesh", Cloak)
599
CloakMesh.MeshId = "http://www.roblox.com/asset?id=16150814"
600
CloakMesh.TextureId = "http://www.roblox.com/asset?id=16150799"
601
602
local CloakWeld = CreateWeld(Cloak, CFrame.new(0,0,0) * CFrame.Angles(0,0,0), Head , Cloak, "ArkusToCharacter")
603
604
for i,v in pairs(Character:children()) do
605
if v:IsA("Accessory") then
606
	v:Remove()
607
elseif v:IsA("Shirt") then
608
	v:Remove()
609
elseif v:IsA("Pants") then
610
	v:Remove()	
611
elseif v:IsA("BodyColors") then
612
613
Head.BrickColor =BrickColor.new("Really black")
614
Torso.BrickColor = BrickColor.new("Really black")
615
Right_Arm.BrickColor = BrickColor.new("Really black")
616
Right_Leg.BrickColor = BrickColor.new("Really black")
617
Left_Arm.BrickColor = BrickColor.new("Really black")
618
Left_Leg.BrickColor = BrickColor.new("Really black")
619
620
v.HeadColor = BrickColor.new("Really black")
621
v.TorsoColor = BrickColor.new("Really black")
622
v.RightArmColor = BrickColor.new("Really black")
623
v.LeftArmColor = BrickColor.new("Really black")
624
v.RightLegColor = BrickColor.new("Really black")
625
v.LeftLegColor = BrickColor.new("Really black")
626
	
627
end	
628
end
629
630
631
632
--[[ CLerp Declarations ]]--
633
634
function clerp(a,b,t)
635
	local qa = {QuaternionFromCFrame(a)}
636
	local qb = {QuaternionFromCFrame(b)} 
637
	local ax, ay, az = a.x, a.y, a.z 
638
	local bx, by, bz = b.x, b.y, b.z
639
	local _t = 1-t
640
	return QuaternionToCFrame(_t*ax + t*bx, _t*ay + t*by, _t*az + t*bz,QuaternionSlerp(qa, qb, t)) 
641
end 
642
 
643
function QuaternionFromCFrame(cf) -- dis one
644
	local mx, my, mz, m00, m01, m02, m10, m11, m12, m20, m21, m22 = cf:components() 
645
	local trace = m00 + m11 + m22 
646
	if trace > 0 then 
647
		local s = math.sqrt(1 + trace) 
648
		local recip = 0.5/s 
649
		return (m21-m12)*recip, (m02-m20)*recip, (m10-m01)*recip, s*0.5 
650
	else 
651
		local i = 0 
652
		if m11 > m00 then
653
			i = 1
654
		end
655
		if m22 > (i == 0 and m00 or m11) then 
656
			i = 2 
657
		end 
658
		if i == 0 then 
659
			local s = math.sqrt(m00-m11-m22+1) 
660
			local recip = 0.5/s 
661
			return 0.5*s, (m10+m01)*recip, (m20+m02)*recip, (m21-m12)*recip 
662
		elseif i == 1 then 
663
			local s = math.sqrt(m11-m22-m00+1) 
664
			local recip = 0.5/s 
665
			return (m01+m10)*recip, 0.5*s, (m21+m12)*recip, (m02-m20)*recip 
666
		elseif i == 2 then 
667
			local s = math.sqrt(m22-m00-m11+1) 
668
			local recip = 0.5/s return (m02+m20)*recip, (m12+m21)*recip, 0.5*s, (m10-m01)*recip 
669
		end 
670
	end 
671
end
672
 
673
function QuaternionToCFrame(px, py, pz, x, y, z, w) 
674
	local xs, ys, zs = x + x, y + y, z + z 
675
	local wx, wy, wz = w*xs, w*ys, w*zs 
676
	local xx = x*xs 
677
	local xy = x*ys 
678
	local xz = x*zs 
679
	local yy = y*ys 
680
	local yz = y*zs 
681
	local zz = z*zs 
682
	return CFrame.new(px, py, pz,1-(yy+zz), xy - wz, xz + wy,xy + wz, 1-(xx+zz), yz - wx, xz - wy, yz + wx, 1-(xx+yy)) 
683
end
684
 
685
function QuaternionSlerp(a, b, t) 
686
	local cosTheta = a[1]*b[1] + a[2]*b[2] + a[3]*b[3] + a[4]*b[4] 
687
	local startInterp, finishInterp; 
688
	if cosTheta >= 0.0001 then 
689
		if (1 - cosTheta) > 0.0001 then 
690
			local theta = math.acos(cosTheta) 
691
			local invSinTheta = 1/math.sin(theta) 
692
			startInterp = math.sin((1-t)*theta)*invSinTheta 
693
			finishInterp = math.sin(t*theta)*invSinTheta  
694
		else 
695
			startInterp = 1-t 
696
			finishInterp = t 
697
		end 
698
	else 
699
		if (1+cosTheta) > 0.0001 then 
700
			local theta = math.acos(-cosTheta) 
701
			local invSinTheta = 1/math.sin(theta) 
702
			startInterp = math.sin((t-1)*theta)*invSinTheta 
703
			finishInterp = math.sin(t*theta)*invSinTheta 
704
		else 
705
			startInterp = t-1 
706
			finishInterp = t 
707
		end 
708
	end 
709
	return a[1]*startInterp + b[1]*finishInterp, a[2]*startInterp + b[2]*finishInterp, a[3]*startInterp + b[3]*finishInterp, a[4]*startInterp + b[4]*finishInterp 
710
end
711
712
function RayCast(Pos, Dir, Max, Ignore)
713
	return game:service("Workspace"):FindPartOnRay(Ray.new(Pos, Dir.unit * (Max or 999.999)), Ignore) 
714
end 
715
716
717
function Bars()
718
	
719
--[[ Mana Bar ]]--	
720
if Destruction ~= MaxDestruction then
721
	
722
Destruction = Destruction + 1
723
724
end
725
726
if Destruction >= MaxDestruction then
727
	
728
Destruction = Destruction
729
	
730
end
731
732
733
ManaBarText.Text = "<{[ Destruction ]}> <|"..Destruction.."|> <{[ Destruction ]}>"
734
735
ManaBarP2.Size = UDim2.new(Destruction / Destruction,0,0,20)	
736
	
737
end
738
local EyeReference = CreatePart(Character, "Reference", "Dark stone grey", Vector3.new(), "SmoothPlastic", 1, "Block")
739
local EyeReferenceWeld = CreateWeld(EyeReference,  CFrame.new(0.15,-0.1,-0.7), EyeReference, Head)
740
741
coroutine.resume(coroutine.create(function()
742
	
743
while wait(3) do
744
745
	
746
CircleEffect(EyeReference.Position, Services.Workspace,  1, 1, 1, 1, 1, 1, 0.5, "Bright red", "Neon", 0.5)
747
	
748
	
749
end
750
	
751
end))
752
--[[ Attacks ]]--
753
754
function Attack1()
755
Attacking = true
756
MakeSFX(EyeReference, 341336274, 1,1)
757
wait(0.3)
758
local Reference = CreatePart(Services.Workspace, "Reference", "Dark stone grey", Vector3.new(), "SmoothPlastic", 1, "Block")
759
local ReferenceWeld = CreateWeld(Reference,  CFrame.new(0,0.5,-5), Reference, Root)
760
761
local Reference2 = CreatePart(Services.Workspace, "Reference", "Dark stone grey", Vector3.new(), "SmoothPlastic", 1, "Block")
762
local Reference2Weld = CreateWeld(Reference2,  CFrame.new(0,0.5,-2), Reference2, Root)
763
764
765
for i = 1,10 do
766
767
wait()
768
RootJoint.C0 = clerp(RootJoint.C0,RootCFrame*CFrame.new(0,0,0)* CFrame.Angles(0,0,-1.6),0.5)
769
Torso.Neck.C0 = clerp(Torso.Neck.C0,Necko * CFrame.Angles(0,0,1.3),0.2)
770
Right_Shoulder.C0 = clerp(Right_Shoulder.C0, CFrame.new(1.5, 0.1, 0) * CFrame.Angles(0,0,0.2), 0.3)
771
Left_Shoulder.C0 = clerp(Left_Shoulder.C0,  CFrame.new(-1.5, 0.5, 0) * CFrame.Angles(0,0,-1.6), 0.4)
772
Right_Hip.C0=clerp(Right_Hip.C0,CFrame.new(1,-1,0) * CFrame.Angles(0,1.6,0),0.3)
773
Left_Hip.C0=clerp(Left_Hip.C0,CFrame.new(-1,-1,0) * CFrame.Angles(0,-1.6,0),0.3) 
774
775
end
776
777
CircleEffect(Reference2.Position, Services.Workspace,  50, 50, 50, -5, -5, -5, 5, "Bright red", "Neon", 0.5)
778
wait(0.5)
779
CircleEffect(Reference2.Position, Services.Workspace,  50, 50, 50, -5, -5, -5, 5, "Bright red", "Neon", 0.5)
780
wait(0.5)
781
CircleEffect(Reference2.Position, Services.Workspace,  50, 50, 50, -5, -5, -5, 5, "Bright red", "Neon", 0.5)
782
wait(0.5)
783
CircleEffect(Reference2.Position, Services.Workspace,  50, 50, 50, -5, -5, -5, 5, "Bright red", "Neon", 0.5)
784
wait(0.5)
785
MakeSFX(Reference, 306247724, 1,1)	
786
CircleEffect(Reference.Position, Services.Workspace,  1, 1, 1, 5, 5, 5, 5, "Bright red", "Neon", 0.5)
787
ValidateDamage(Reference, 10 ,10 , 14, "Shrink", "Penetration", 5)
788
Attacking = false
789
end
790
791
function Attack2()
792
	
793
Attacking = true
794
Humanoid.WalkSpeed = 0
795
Humanoid.JumpPower = 0
796
797
798
for i = 1,25 do
799
wait()
800
801
RootJoint.C0 = clerp(RootJoint.C0,RootCFrame*CFrame.new(0,0,0)* CFrame.Angles(-0.5,0,0),0.2)
802
Torso.Neck.C0 = clerp(Torso.Neck.C0,Necko * CFrame.Angles(-0.5,0,0),0.3)
803
Right_Shoulder.C0 = clerp(Right_Shoulder.C0, CFrame.new(1, 1, 0) * CFrame.Angles(3.2,0,-0.6), 0.3)
804
Left_Shoulder.C0 = clerp(Left_Shoulder.C0, CFrame.new(-1, 1, 0) * CFrame.Angles(3.2,0,0.6), 0.3)
805
Right_Hip.C0=clerp(Right_Hip.C0,CFrame.new(1,-1,0)*CFrame.Angles(0,1.6,-0.3),0.2)
806
Left_Hip.C0=clerp(Left_Hip.C0,CFrame.new(-1,-1,-0.5)*CFrame.Angles(0,-1.6,0),0.2)
807
	
808
end
809
810
MakeSFX(Torso, 142070127, 1, 1)
811
ValidateDamage(Torso, 60 ,23, 26, "Knockdown", "Penetration", 15)
812
local Hit, Position = RayCast(Torso.Position,(CFrame.new(Root.Position,Root.Position - Vector3.new(0,1,0))).lookVector,100,Character)
813
if Hit ~= nil then
814
local Reference = CreatePart(Services.Workspace, "Reference", "Dark stone grey", Vector3.new(), "SmoothPlastic", 1, "Block")
815
Reference.Anchored = true
816
Reference.CFrame = CFrame.new(Position)
817
818
CircleEffect(Reference.Position, Services.Workspace,  1, 1, 1, 5, 5, 5, 5, "Bright red", "Neon", 0.5)
819
820
game:GetService("Debris"):AddItem(Reference,0.1)
821
for i=1,50 do
822
	
823
local Ground = CreatePart(Services.Workspace, "Ground", Hit.BrickColor.Color, Vector3.new(math.random(1,3), math.random(1,3), math.random(1,3)), Hit.Material, 0, "Block")
824
Ground.Anchored = true
825
Ground.CanCollide = true
826
Ground.CFrame = CFrame.new(Position) * CFrame.new(math.random(-30,30), 0, math.random(-30,30)) * CFrame.Angles(math.random(-50,50),math.random(-50,50), math.random(-50,50))
827
828
game:GetService("Debris"):AddItem(Ground,10)
829
830
end
831
end
832
	
833
for i = 1,25 do
834
wait()
835
836
RootJoint.C0 = clerp(RootJoint.C0,RootCFrame*CFrame.new(0,0,0)* CFrame.Angles(0,0,0),0.5)
837
Torso.Neck.C0 = clerp(Torso.Neck.C0,Necko * CFrame.Angles(0.5,0,0),0.3)
838
Right_Shoulder.C0 = clerp(Right_Shoulder.C0, CFrame.new(1.5, 0, 0.1) * CFrame.Angles(-0.2,0,0), 0.3)
839
Left_Shoulder.C0 = clerp(Left_Shoulder.C0, CFrame.new(-1.5, 0, 0.1) * CFrame.Angles(-0.2,0,0), 0.3)
840
Right_Hip.C0=clerp(Right_Hip.C0,CFrame.new(1,-1,0)*CFrame.Angles(0,1.6,-0.3),0.2)
841
Left_Hip.C0=clerp(Left_Hip.C0,CFrame.new(-1,-1,-0.5)*CFrame.Angles(0,-1.6,0),0.2)
842
	
843
end
844
845
Attacking = false
846
Humanoid.WalkSpeed = 16
847
Humanoid.JumpPower = 50
848
	
849
	
850
	
851
end
852
853
854
function Attack3()
855
Humanoid.WalkSpeed = 0
856
Humanoid.JumpPower = 0
857
Attacking = true
858
wait(1)
859
MakeSFX(Torso, 341336274, 1, 1.2)
860
CircleEffect(Torso.Position, Services.Workspace,  1, 1, 1, 20, 20, 20, 5, "Black", "Neon", 0.5)
861
wait(1)
862
MakeSFX(Torso, 341336274, 1, 1.2)
863
CircleEffect(Torso.Position, Services.Workspace,  1, 1, 1, 20, 20, 20, 5, "Black", "Neon", 0.5)
864
wait(1)
865
MakeSFX(Torso, 341336274, 1, 1.2)
866
CircleEffect(Torso.Position, Services.Workspace,  1, 1, 1, 20, 20, 20, 5, "Black", "Neon", 0.5)
867
ValidateDamage(Torso, 60 ,0, 0, "Impale", "Penetration", 15)
868
Humanoid.WalkSpeed = 16
869
Humanoid.JumpPower = 50
870
Attacking = false
871
end
872
873
Mouse.Button1Down:connect(function()
874
if not Attacking then
875
if Combo == 1 then
876
877
Combo = 2
878
Attack1()
879
880
881
elseif Combo == 2 then
882
883
Attack2()
884
Combo = 3
885
886
elseif Combo == 3 then
887
	
888
Attack3()
889
Combo = 1
890
891
end	
892
end
893
end)
894
895
--[[ CLerp Animations ]]--
896
Change1 = 0
897
Change2 = 0
898
Change3 = 0
899
Change4 = 0
900
901
while true do
902
wait()
903
904
local Torvel = (Root.Velocity*Vector3.new(1,0,1)).magnitude 
905
local Velderp = Root.Velocity.y
906
HitFloor,PosFloor = RayCast(Root.Position,(CFrame.new(Root.Position,Root.Position - Vector3.new(0,1,0))).lookVector,4,Character)	
907
908
Bars()
909
910
911
if Torvel < 1 and HitFloor ~= nil and Attacking == false then
912
Anim = "Idle"
913
	
914
RootJoint.C0 = clerp(RootJoint.C0,RootCFrame*CFrame.new(0,0,0)* CFrame.Angles(0,0,0),0.2)
915
Torso.Neck.C0 = clerp(Torso.Neck.C0,Necko * CFrame.Angles(0,-0.3,0),0.3)
916
Right_Shoulder.C0 = clerp(Right_Shoulder.C0, CFrame.new(1.5, 0.1, 0) * CFrame.Angles(0,0,0.2), 0.3)
917
Left_Shoulder.C0 = clerp(Left_Shoulder.C0, CFrame.new(-1.5, 0.1, 0) * CFrame.Angles(0,0,-0.2), 0.3)
918
Right_Hip.C0=clerp(Right_Hip.C0,CFrame.new(1,-1,0)*CFrame.Angles(0,1.6,0) * CFrame.Angles(-0.1,0,0),0.2)
919
Left_Hip.C0=clerp(Left_Hip.C0,CFrame.new(-1,-1,0)*CFrame.Angles(0,-1.6,0) * CFrame.Angles(-0.1,0,0),0.2)
920
921
end
922
923
924
if 2 < Torvel and Torvel < 22 and HitFloor ~= nil and Attacking == false then
925
Anim = "Walking"
926
927
if Invert == false then
928
Change1 = Change1 + 0.1
929
930
elseif Invert == true then
931
	
932
Change1 = Change1 - 0.1
933
934
end
935
936
if Change1 > 0.5 then
937
	
938
Invert = true
939
940
elseif Change1 < -0.5 then
941
942
Invert  = false
943
944
end
945
946
if Attacking == false then
947
948
RootJoint.C0 = clerp(RootJoint.C0,RootCFrame*CFrame.new(0,0,0)* CFrame.Angles(0,0,0),0.2)
949
Torso.Neck.C0 = clerp(Torso.Neck.C0,Necko * CFrame.Angles(0,-0.3,0),0.3)
950
Right_Shoulder.C0 = clerp(Right_Shoulder.C0, CFrame.new(1.5, 0, -Change1) * CFrame.Angles(Change1,0,0), 0.3)
951
Left_Shoulder.C0 = clerp(Left_Shoulder.C0, CFrame.new(-1.5, 0, Change1) * CFrame.Angles(-Change1,0,0), 0.3)
952
Right_Hip.C0=clerp(Right_Hip.C0,CFrame.new(1,-1,-Change1 / 4)*CFrame.Angles(Change1,1.6,0),0.2)
953
Left_Hip.C0=clerp(Left_Hip.C0,CFrame.new(-1,-1,Change1 / 4)*CFrame.Angles(-Change1,-1.6,0),0.2)
954
955
end
956
end
957
958
if Root.Velocity.y > 1 and HitFloor == nil and Attacking == false then 
959
Anim = "Jump"
960
	
961
RootJoint.C0 = clerp(RootJoint.C0,RootCFrame*CFrame.new(0,0,0)* CFrame.Angles(0,0,0),0.2)
962
Torso.Neck.C0 = clerp(Torso.Neck.C0,Necko * CFrame.Angles(-0.5,0,0),0.3)
963
Right_Shoulder.C0 = clerp(Right_Shoulder.C0, CFrame.new(1.5, 0, 0.2) * CFrame.Angles(-0.4,0,0.2), 0.3)
964
Left_Shoulder.C0 = clerp(Left_Shoulder.C0, CFrame.new(-1.5, 0, 0.2) * CFrame.Angles(-0.4,0,-0.2), 0.3)
965
Right_Hip.C0=clerp(Right_Hip.C0,CFrame.new(1,-1,-0.2)*CFrame.Angles(-0.2,1.6,0),0.2)
966
Left_Hip.C0=clerp(Left_Hip.C0,CFrame.new(-1,-1,0)*CFrame.Angles(0,-1.6,0),0.2)
967
968
end
969
970
if Root.Velocity.y < -1 and HitFloor == nil and Attacking == false then 
971
Anim = "Fall"
972
	
973
RootJoint.C0 = clerp(RootJoint.C0,RootCFrame*CFrame.new(0,0,0)* CFrame.Angles(0,0,0),0.2)
974
Torso.Neck.C0 = clerp(Torso.Neck.C0,Necko * CFrame.Angles(0.5,0,0),0.3)
975
Right_Shoulder.C0 = clerp(Right_Shoulder.C0, CFrame.new(1.5, 0, -0.2) * CFrame.Angles(0.4,0,0.2), 0.3)
976
Left_Shoulder.C0 = clerp(Left_Shoulder.C0, CFrame.new(-1.5, 0, -0.2) * CFrame.Angles(0.4,0,-0.2), 0.3)
977
Right_Hip.C0=clerp(Right_Hip.C0,CFrame.new(1,-1,-0.2)*CFrame.Angles(-0.2,1.6,0),0.2)
978
Left_Hip.C0=clerp(Left_Hip.C0,CFrame.new(-1,-1,0)*CFrame.Angles(0,-1.6,0),0.2)
979
980
end
981
982
983
if #Effects > 0 then
984
for E = 1, #Effects do
985
if Effects[E]~=nil then
986
local Effect = Effects[E]
987
988
if Effect ~= nil then
989
	
990
local Part = Effect[1]
991
local Mode = Effect[2]
992
local Time = Effect[3]
993
local SizeX = Effect[4]
994
local SizeY = Effect[5]
995
local SizeZ = Effect[6]
996
997
if Effect[1].Transparency <= 1 then
998
if Effect[2] == "Block" then
999
Effect[1].CFrame = Effect[1].CFrame * CFrame.Angles(math.random(-50,50),math.random(-50,50),math.random(-50,50))
1000
1001
Mesh = Effect[1]:FindFirstChild("Mesh")
1002
if Mesh ~= nil then
1003
Mesh.Scale = Mesh.Scale + Vector3.new(Effect[4],Effect[5],Effect[6])
1004
end
1005
1006
elseif Effect[2] == "Circle" then
1007
	
1008
if Effect[1]:FindFirstChild("Mesh") ~= nil then
1009
Mesh=Effect[1].Mesh
1010
Mesh.Scale = Mesh.Scale + Vector3.new(Effect[4],Effect[5],Effect[6])
1011
end
1012
1013
Effect[1].Transparency = Effect[1].Transparency + 0.05
1014
1015
else
1016
	
1017
Part.Parent=nil
1018
1019
table.remove(Effects, E)
1020
1021
end
1022
end
1023
end
1024
end
1025
end
1026
end
1027
end