View difference between Paste ID: rriHSNH7 and Yw3t6zYi
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
local Player,Mouse,mouse,UserInputService,ContextActionService = owner
3
do
4
	print("FE Compatibility code by Mokiros")
5
	script.Parent = Player.Character
6
7
	--RemoteEvent for communicating
8
	local Event = Instance.new("RemoteEvent")
9
	Event.Name = "UserInput_Event"
10
11-
Player = game:GetService("Players").LocalPlayer
11+
	--Fake event to make stuff like Mouse.KeyDown work
12
	local function fakeEvent()
13
		local t = {_fakeEvent=true,Connect=function(self,f)self.Function=f end}
14
		t.connect = t.Connect
15
		return t
16
	end
17-
Mouse = Player:GetMouse()
17+
18
	--Creating fake input objects with fake variables
19
    local m = {Target=nil,Hit=CFrame.new(),KeyUp=fakeEvent(),KeyDown=fakeEvent(),Button1Up=fakeEvent(),Button1Down=fakeEvent()}
20
	local UIS = {InputBegan=fakeEvent(),InputEnded=fakeEvent()}
21
	local CAS = {Actions={},BindAction=function(self,name,fun,touch,...)
22
		CAS.Actions[name] = fun and {Name=name,Function=fun,Keys={...}} or nil
23
	end}
24
	--Merged 2 functions into one by checking amount of arguments
25
	CAS.UnbindAction = CAS.BindAction
26
27
	--This function will trigger the events that have been :Connect()'ed
28
	local function te(self,ev,...)
29
		local t = m[ev]
30
		if t and t._fakeEvent and t.Function then
31
			t.Function(...)
32
		end
33
	end
34
	m.TrigEvent = te
35
	UIS.TrigEvent = te
36
37
	Event.OnServerEvent:Connect(function(plr,io)
38
	    if plr~=Player then return end
39
		if io.isMouse then
40
			m.Target = io.Target
41
			m.Hit = io.Hit
42
		else
43
			local b = io.UserInputState == Enum.UserInputState.Begin
44
			if io.UserInputType == Enum.UserInputType.MouseButton1 then
45
				return m:TrigEvent(b and "Button1Down" or "Button1Up")
46
			end
47
			for _,t in pairs(CAS.Actions) do
48
				for _,k in pairs(t.Keys) do
49
					if k==io.KeyCode then
50
						t.Function(t.Name,io.UserInputState,io)
51
					end
52
				end
53
			end
54
			m:TrigEvent(b and "KeyDown" or "KeyUp",io.KeyCode.Name:lower())
55
			UIS:TrigEvent(b and "InputBegan" or "InputEnded",io,false)
56
	    end
57
	end)
58
	Event.Parent = NLS([==[
59
	local Player = game:GetService("Players").LocalPlayer
60
	local Event = script:WaitForChild("UserInput_Event")
61
62
	local UIS = game:GetService("UserInputService")
63
	local input = function(io,a)
64
		if a then return end
65
		--Since InputObject is a client-side instance, we create and pass table instead
66
		Event:FireServer({KeyCode=io.KeyCode,UserInputType=io.UserInputType,UserInputState=io.UserInputState})
67
	end
68
	UIS.InputBegan:Connect(input)
69
	UIS.InputEnded:Connect(input)
70
71
	local Mouse = Player:GetMouse()
72
	local h,t
73
	--Give the server mouse data 30 times every second, but only if the values changed
74
	--If player is not moving their mouse, client won't fire events
75
	while wait(1/30) do
76
		if h~=Mouse.Hit or t~=Mouse.Target then
77
			h,t=Mouse.Hit,Mouse.Target
78
			Event:FireServer({isMouse=true,Target=t,Hit=h})
79
		end
80
	end]==],Player.Character)
81
	Mouse,mouse,UserInputService,ContextActionService = m,m,UIS,CAS
82
end
83
84
--//====================================================\\--
85
--||               CREATED BY SHACKLUSTER
86
--\\====================================================//--
87
 
88
 
89
 
90
wait(0.2)
91
 
92
 
93
 
94
Player = owner
95
PlayerGui = Player.PlayerGui
96
Cam = workspace.CurrentCamera
97
Backpack = Player.Backpack
98
Character = Player.Character
99
Humanoid = Character.Humanoid
100
RootPart = Character["HumanoidRootPart"]
101
Torso = Character["Torso"]
102
Head = Character["Head"]
103
RightArm = Character["Right Arm"]
104
LeftArm = Character["Left Arm"]
105
RightLeg = Character["Right Leg"]
106
LeftLeg = Character["Left Leg"]
107
RootJoint = RootPart["RootJoint"]
108
Neck = Torso["Neck"]
109
RightShoulder = Torso["Right Shoulder"]
110
LeftShoulder = Torso["Left Shoulder"]
111
RightHip = Torso["Right Hip"]
112
LeftHip = Torso["Left Hip"]
113
local sick = Instance.new("Sound",Character)
114
sick.SoundId = "rbxassetid://195900687"
115
sick.Looped = true
116
sick.Pitch = 1
117
sick.Volume = 3
118
sick:Play()
119
 
120
IT = Instance.new
121
CF = CFrame.new
122
VT = Vector3.new
123
RAD = math.rad
124
C3 = Color3.new
125
UD2 = UDim2.new
126
BRICKC = BrickColor.new
127
ANGLES = CFrame.Angles
128
EULER = CFrame.fromEulerAnglesXYZ
129
COS = math.cos
130
ACOS = math.acos
131
SIN = math.sin
132
ASIN = math.asin
133
ABS = math.abs
134
MRANDOM = math.random
135
FLOOR = math.floor
136
 
137
function CreateMesh(MESH, PARENT, MESHTYPE, MESHID, TEXTUREID, SCALE, OFFSET)
138
    local NEWMESH = IT(MESH)
139
    if MESH == "SpecialMesh" then
140
        NEWMESH.MeshType = MESHTYPE
141
        if MESHID ~= "nil" and MESHID ~= "" then
142
            NEWMESH.MeshId = "http://www.roblox.com/asset/?id="..MESHID
143
        end
144
        if TEXTUREID ~= "nil" and TEXTUREID ~= "" then
145
            NEWMESH.TextureId = "http://www.roblox.com/asset/?id="..TEXTUREID
146
        end
147
    end
148
    NEWMESH.Offset = OFFSET or VT(0, 0, 0)
149
    NEWMESH.Scale = SCALE
150
    NEWMESH.Parent = PARENT
151
    return NEWMESH
152
end
153
 
154
function CreatePart(FORMFACTOR, PARENT, MATERIAL, REFLECTANCE, TRANSPARENCY, BRICKCOLOR, NAME, SIZE, ANCHOR)
155
    local NEWPART = IT("Part")
156
    NEWPART.formFactor = FORMFACTOR
157
    NEWPART.Reflectance = REFLECTANCE
158
    NEWPART.Transparency = TRANSPARENCY
159
    NEWPART.CanCollide = false
160
    NEWPART.Locked = true
161
    NEWPART.Anchored = true
162
    if ANCHOR == false then
163
        NEWPART.Anchored = false
164
    end
165
    NEWPART.BrickColor = BRICKC(tostring(BRICKCOLOR))
166
    NEWPART.Name = NAME
167
    NEWPART.Size = SIZE
168
    NEWPART.Position = Torso.Position
169
    NEWPART.Material = MATERIAL
170
    NEWPART:BreakJoints()
171
    NEWPART.Parent = PARENT
172
    return NEWPART
173
end
174
 
175
--//=================================\\
176
--||          CUSTOMIZATION
177
--\\=================================//
178
 
179
Player_Size = 1 --Size of the player.
180
Animation_Speed = 3
181
Frame_Speed = 1 / 60 -- (1 / 30) OR (1 / 60)
182
 
183
local Speed = 16
184
local Effects2 = {}
185
 
186
--//=================================\\
187
--||      END OF CUSTOMIZATION
188
--\\=================================//
189
 
190
    local function weldBetween(a, b)
191
        local weldd = Instance.new("ManualWeld")
192
        weldd.Part0 = a
193
        weldd.Part1 = b
194
        weldd.C0 = CFrame.new()
195
        weldd.C1 = b.CFrame:inverse() * a.CFrame
196
        weldd.Parent = a
197
        return weldd
198
    end
199
 
200
--//=================================\\
201
--||          USEFUL VALUES
202
--\\=================================//
203
 
204
local ROOTC0 = CF(0, 0, 0) * ANGLES(RAD(-90), RAD(0), RAD(180))
205
local NECKC0 = CF(0, 1, 0) * ANGLES(RAD(-90), RAD(0), RAD(180))
206
local RIGHTSHOULDERC0 = CF(-0.5, 0, 0) * ANGLES(RAD(0), RAD(90), RAD(0))
207
local LEFTSHOULDERC0 = CF(0.5, 0, 0) * ANGLES(RAD(0), RAD(-90), RAD(0))
208
local CHANGEDEFENSE = 0
209
local CHANGEDAMAGE = 0
210
local CHANGEMOVEMENT = 0
211
local ANIM = "Idle"
212
local ATTACK = false
213
local EQUIPPED = false
214
local HOLD = false
215
local COMBO = 1
216
local Rooted = false
217
local SINE = 0
218
local KEYHOLD = false
219
local CHANGE = 2 / Animation_Speed
220
local WALKINGANIM = false
221
local WALK = 0
222
local VALUE1 = false
223
local VALUE2 = false
224
local ROBLOXIDLEANIMATION = IT("Animation")
225
ROBLOXIDLEANIMATION.Name = "Roblox Idle Animation"
226
ROBLOXIDLEANIMATION.AnimationId = "http://www.roblox.com/asset/?id=180435571"
227
--ROBLOXIDLEANIMATION.Parent = Humanoid
228
local WEAPONGUI = IT("ScreenGui", PlayerGui)
229
WEAPONGUI.Name = "Weapon GUI"
230
local Effects = IT("Folder", Character)
231
Effects.Name = "Effects"
232
local ANIMATOR = Humanoid.Animator
233
local ANIMATE = Character.Animate
234
local HITPLAYERSOUNDS = {--[["199149137", "199149186", "199149221", "199149235", "199149269", "199149297"--]]"263032172", "263032182", "263032200", "263032221", "263032252", "263033191"}
235
local HITARMORSOUNDS = {"199149321", "199149338", "199149367", "199149409", "199149452"}
236
local HITWEAPONSOUNDS = {"199148971", "199149025", "199149072", "199149109", "199149119"}
237
local HITBLOCKSOUNDS = {"199148933", "199148947"}
238
local UNANCHOR = true
239
 
240
local SKILLTEXTCOLOR = C3(0.05,0.05,0.15)
241
 
242
--//=================================\\
243
--\\=================================//
244
 
245
 
246
--//=================================\\
247
--|| SAZERENOS' ARTIFICIAL HEARTBEAT
248
--\\=================================//
249
 
250
ArtificialHB = Instance.new("BindableEvent", script)
251
ArtificialHB.Name = "ArtificialHB"
252
 
253
script:WaitForChild("ArtificialHB")
254
 
255
frame = Frame_Speed
256
tf = 0
257
allowframeloss = false
258
tossremainder = false
259
lastframe = tick()
260
script.ArtificialHB:Fire()
261
 
262
game:GetService("RunService").Heartbeat:connect(function(s, p)
263
    tf = tf + s
264
    if tf >= frame then
265
        if allowframeloss then
266
            script.ArtificialHB:Fire()
267
            lastframe = tick()
268
        else
269
            for i = 1, math.floor(tf / frame) do
270
                script.ArtificialHB:Fire()
271
            end
272
        lastframe = tick()
273
        end
274
        if tossremainder then
275
            tf = 0
276
        else
277
            tf = tf - frame * math.floor(tf / frame)
278
        end
279
    end
280
end)
281
 
282
--//=================================\\
283
--\\=================================//
284
 
285
 
286
 
287
 
288
 
289
--//=================================\\
290
--||          SOME FUNCTIONS
291
--\\=================================//
292
 
293
function Raycast(POSITION, DIRECTION, RANGE, IGNOREDECENDANTS)
294
    return workspace:FindPartOnRay(Ray.new(POSITION, DIRECTION.unit * RANGE), IGNOREDECENDANTS)
295
end
296
 
297
function PositiveAngle(NUMBER)
298
    if NUMBER >= 0 then
299
        NUMBER = 0
300
    end
301
    return NUMBER
302
end
303
 
304
function NegativeAngle(NUMBER)
305
    if NUMBER <= 0 then
306
        NUMBER = 0
307
    end
308
    return NUMBER
309
end
310
 
311
function Swait(NUMBER)
312
    if NUMBER == 0 or NUMBER == nil then
313
        ArtificialHB.Event:wait()
314
    else
315
        for i = 1, NUMBER do
316
            ArtificialHB.Event:wait()
317
        end
318
    end
319
end
320
 
321
function QuaternionFromCFrame(cf)
322
    local mx, my, mz, m00, m01, m02, m10, m11, m12, m20, m21, m22 = cf:components()
323
    local trace = m00 + m11 + m22
324
    if trace > 0 then
325
        local s = math.sqrt(1 + trace)
326
        local recip = 0.5 / s
327
        return (m21 - m12) * recip, (m02 - m20) * recip, (m10 - m01) * recip, s * 0.5
328
    else
329
        local i = 0
330
        if m11 > m00 then
331
            i = 1
332
        end
333
        if m22 > (i == 0 and m00 or m11) then
334
            i = 2
335
        end
336
        if i == 0 then
337
            local s = math.sqrt(m00 - m11 - m22 + 1)
338
            local recip = 0.5 / s
339
            return 0.5 * s, (m10 + m01) * recip, (m20 + m02) * recip, (m21 - m12) * recip
340
        elseif i == 1 then
341
            local s = math.sqrt(m11 - m22 - m00 + 1)
342
            local recip = 0.5 / s
343
            return (m01 + m10) * recip, 0.5 * s, (m21 + m12) * recip, (m02 - m20) * recip
344
        elseif i == 2 then
345
            local s = math.sqrt(m22 - m00 - m11 + 1)
346
            local recip = 0.5 / s return (m02 + m20) * recip, (m12 + m21) * recip, 0.5 * s, (m10 - m01) * recip
347
        end
348
    end
349
end
350
 
351
function QuaternionToCFrame(px, py, pz, x, y, z, w)
352
    local xs, ys, zs = x + x, y + y, z + z
353
    local wx, wy, wz = w * xs, w * ys, w * zs
354
    local xx = x * xs
355
    local xy = x * ys
356
    local xz = x * zs
357
    local yy = y * ys
358
    local yz = y * zs
359
    local zz = z * zs
360
    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))
361
end
362
 
363
function QuaternionSlerp(a, b, t)
364
    local cosTheta = a[1] * b[1] + a[2] * b[2] + a[3] * b[3] + a[4] * b[4]
365
    local startInterp, finishInterp;
366
    if cosTheta >= 0.0001 then
367
        if (1 - cosTheta) > 0.0001 then
368
            local theta = ACOS(cosTheta)
369
            local invSinTheta = 1 / SIN(theta)
370
            startInterp = SIN((1 - t) * theta) * invSinTheta
371
            finishInterp = SIN(t * theta) * invSinTheta
372
        else
373
            startInterp = 1 - t
374
            finishInterp = t
375
        end
376
    else
377
        if (1 + cosTheta) > 0.0001 then
378
            local theta = ACOS(-cosTheta)
379
            local invSinTheta = 1 / SIN(theta)
380
            startInterp = SIN((t - 1) * theta) * invSinTheta
381
            finishInterp = SIN(t * theta) * invSinTheta
382
        else
383
            startInterp = t - 1
384
            finishInterp = t
385
        end
386
    end
387
    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
388
end
389
 
390
function Clerp(a, b, t)
391
    local qa = {QuaternionFromCFrame(a)}
392
    local qb = {QuaternionFromCFrame(b)}
393
    local ax, ay, az = a.x, a.y, a.z
394
    local bx, by, bz = b.x, b.y, b.z
395
    local _t = 1 - t
396
    return QuaternionToCFrame(_t * ax + t * bx, _t * ay + t * by, _t * az + t * bz, QuaternionSlerp(qa, qb, t))
397
end
398
 
399
function CreateFrame(PARENT, TRANSPARENCY, BORDERSIZEPIXEL, POSITION, SIZE, COLOR, BORDERCOLOR, NAME)
400
    local frame = IT("Frame")
401
    frame.BackgroundTransparency = TRANSPARENCY
402
    frame.BorderSizePixel = BORDERSIZEPIXEL
403
    frame.Position = POSITION
404
    frame.Size = SIZE
405
    frame.BackgroundColor3 = COLOR
406
    frame.BorderColor3 = BORDERCOLOR
407
    frame.Name = NAME
408
    frame.Parent = PARENT
409
    return frame
410
end
411
 
412
function CreateLabel(PARENT, TEXT, TEXTCOLOR, TEXTFONTSIZE, TEXTFONT, TRANSPARENCY, BORDERSIZEPIXEL, STROKETRANSPARENCY, NAME)
413
    local label = IT("TextLabel")
414
    label.BackgroundTransparency = 1
415
    label.Size = UD2(1, 0, 1, 0)
416
    label.Position = UD2(0, 0, 0, 0)
417
    label.TextColor3 = TEXTCOLOR
418
    label.TextStrokeTransparency = STROKETRANSPARENCY
419
    label.TextTransparency = TRANSPARENCY
420
    label.FontSize = TEXTFONTSIZE
421
    label.Font = TEXTFONT
422
    label.BorderSizePixel = BORDERSIZEPIXEL
423
    label.TextScaled = false
424
    label.Text = TEXT
425
    label.Name = NAME
426
    label.Parent = PARENT
427
    return label
428
end
429
 
430
function NoOutlines(PART)
431
    PART.TopSurface, PART.BottomSurface, PART.LeftSurface, PART.RightSurface, PART.FrontSurface, PART.BackSurface = 10, 10, 10, 10, 10, 10
432
end
433
 
434
 
435
function CreateWeldOrSnapOrMotor(TYPE, PARENT, PART0, PART1, C0, C1)
436
    local NEWWELD = IT(TYPE)
437
    NEWWELD.Part0 = PART0
438
    NEWWELD.Part1 = PART1
439
    NEWWELD.C0 = C0
440
    NEWWELD.C1 = C1
441
    NEWWELD.Parent = PARENT
442
    return NEWWELD
443
end
444
 
445
function CreateSound(ID, PARENT, VOLUME, PITCH)
446
    local NEWSOUND = nil
447
    coroutine.resume(coroutine.create(function()
448
        NEWSOUND = IT("Sound", PARENT)
449
        NEWSOUND.Volume = VOLUME
450
        NEWSOUND.Pitch = PITCH
451
        NEWSOUND.SoundId = "http://www.roblox.com/asset/?id="..ID
452
        Swait()
453
        NEWSOUND:play()
454
        game:GetService("Debris"):AddItem(NEWSOUND, 10)
455
    end))
456
    return NEWSOUND
457
end
458
 
459
function CFrameFromTopBack(at, top, back)
460
    local right = top:Cross(back)
461
    return CF(at.x, at.y, at.z, right.x, top.x, back.x, right.y, top.y, back.y, right.z, top.z, back.z)
462
end
463
 
464
function CreateSwirl(SIZE,WAIT,CFRAME,DOESROT,ROT,COLOR,GROW)
465
    local wave = CreatePart(3, Effects, "Neon", 0, 0.5, BRICKC(COLOR), "Effect", VT(0,0,0))
466
    wave.Color = COLOR
467
    local mesh = CreateMesh("SpecialMesh", wave, "FileMesh", "1051557", "", SIZE, VT(0,0,0))
468
    wave.CFrame = CFRAME
469
    coroutine.resume(coroutine.create(function(PART)
470
        for i = 1, WAIT do
471
            Swait()
472
            mesh.Scale = mesh.Scale + GROW
473
            mesh.Offset = VT(0,0,-(mesh.Scale.X/8))
474
            if DOESROT == true then
475
                wave.CFrame = wave.CFrame * CFrame.fromEulerAnglesXYZ(0,ROT,0)
476
            end
477
            wave.Transparency = wave.Transparency + (0.5/WAIT)
478
            if wave.Transparency > 0.99 then
479
                wave:remove()
480
            end
481
        end
482
    end))
483
end
484
485
function MagicSphere(SIZE,WAIT,CFRAME,COLOR,GROW)
486
    local wave = CreatePart(3, Effects, "Neon", 0, 0, BRICKC(COLOR), "Effect", VT(1,1,1), true)
487
    wave.Color = COLOR
488
    local mesh = CreateMesh("SpecialMesh", wave, "Sphere", "", "", SIZE, VT(0,0,0))
489
    wave.CFrame = CFRAME
490
    coroutine.resume(coroutine.create(function(PART)
491
        for i = 1, WAIT do
492
            Swait()
493
            mesh.Scale = mesh.Scale + GROW
494
            wave.Transparency = wave.Transparency + (1/WAIT)
495
            if wave.Transparency > 0.99 then
496
                wave:remove()
497
            end
498
        end
499
    end))
500
end
501
 
502
function Slice(KIND,SIZE,WAIT,CFRAME,COLOR,GROW)
503
    local wave = CreatePart(3, Effects, "Neon", 0, 0.5, BRICKC(COLOR), "Effect", VT(1,1,1), true)
504
    local mesh = nil
505
    if KIND == "Base" then
506
        mesh = CreateMesh("SpecialMesh", wave, "FileMesh", "448386996", "", VT(0,SIZE/10,SIZE/10), VT(0,0,0))
507
    elseif KIND == "Thin" then
508
        mesh = CreateMesh("SpecialMesh", wave, "FileMesh", "662586858", "", VT(SIZE/10,0,SIZE/10), VT(0,0,0))
509
    elseif KIND == "Round" then
510
        mesh = CreateMesh("SpecialMesh", wave, "FileMesh", "662585058", "", VT(SIZE/10,0,SIZE/10), VT(0,0,0))
511
    end
512
    wave.CFrame = CFRAME
513
    coroutine.resume(coroutine.create(function(PART)
514
        for i = 1, WAIT do
515
            Swait()
516
            mesh.Scale = mesh.Scale + GROW/10
517
            wave.Transparency = wave.Transparency + (0.5/WAIT)
518
            if wave.Transparency > 0.99 then
519
                wave:remove()
520
            end
521
        end
522
    end))
523
end
524
 
525
function MakeForm(PART,TYPE)
526
    if TYPE == "Cyl" then
527
        local MSH = IT("CylinderMesh",PART)
528
    elseif TYPE == "Ball" then
529
        local MSH = IT("SpecialMesh",PART)
530
        MSH.MeshType = "Sphere"
531
    elseif TYPE == "Wedge" then
532
        local MSH = IT("SpecialMesh",PART)
533
        MSH.MeshType = "Wedge"
534
    end
535
end
536
 
537
function CheckTableForString(Table, String)
538
    for i, v in pairs(Table) do
539
        if string.find(string.lower(String), string.lower(v)) then
540
            return true
541
        end
542
    end
543
    return false
544
end
545
 
546
function CheckIntangible(Hit)
547
    local ProjectileNames = {"Water", "Arrow", "Projectile", "Effect", "Rail", "Lightning", "Bullet"}
548
    if Hit and Hit.Parent then
549
        if ((not Hit.CanCollide or CheckTableForString(ProjectileNames, Hit.Name)) and not Hit.Parent:FindFirstChild("Humanoid")) then
550
            return true
551
        end
552
    end
553
    return false
554
end
555
 
556
Debris = game:GetService("Debris")
557
 
558
function CastZapRay(StartPos, Vec, Length, Ignore, DelayIfHit)
559
    local Direction = CFrame.new(StartPos, Vec).lookVector
560
    local Ignore = ((type(Ignore) == "table" and Ignore) or {Ignore})
561
    local RayHit, RayPos, RayNormal = game:GetService("Workspace"):FindPartOnRayWithIgnoreList(Ray.new(StartPos, Direction * Length), Ignore)
562
    if RayHit and CheckIntangible(RayHit) then
563
        if DelayIfHit then
564
            wait()
565
        end
566
        RayHit, RayPos, RayNormal = CastZapRay((RayPos + (Vec * 0.01)), Vec, (Length - ((StartPos - RayPos).magnitude)), Ignore, DelayIfHit)
567
    end
568
    return RayHit, RayPos, RayNormal
569
end
570
 
571
function FireArc(Part,ToLocation,AmountOfTime,Height,DoesCourontine)
572
    if DoesCourontine == false then
573
        local Direction = CF(Part.Position,ToLocation)
574
        local Distance = (Part.Position - ToLocation).magnitude
575
        for i = 1, AmountOfTime do
576
            Swait()
577
            Part.CFrame = Direction*CF(0,(AmountOfTime/200)+((AmountOfTime/Height)-((i*2)/Height)),-Distance/AmountOfTime)
578
            Direction = Part.CFrame
579
        end
580
        Part:remove()
581
    elseif DoesCourontine == true then
582
        coroutine.resume(coroutine.create(function()
583
            local Direction = CF(Part.Position,ToLocation)
584
            local Distance = (Part.Position - ToLocation).magnitude
585
            for i = 1, AmountOfTime do
586
                Swait()
587
                Part.CFrame = Direction*CF(0,(AmountOfTime/200)+((AmountOfTime/Height)-((i*2)/Height)),-Distance/AmountOfTime)
588
                Direction = Part.CFrame
589
            end
590
            Part:remove()
591
        end))
592
    end
593
end
594
 
595
function turnto(position)
596
    RootPart.CFrame=CFrame.new(RootPart.CFrame.p,VT(position.X,RootPart.Position.Y,position.Z)) * CFrame.new(0, 0, 0)
597
end
598
 
599
--//=================================\\
600
--||         WEAPON CREATION
601
--\\=================================//
602
 
603
local naeeym2 = Instance.new("BillboardGui",Character)
604
naeeym2.AlwaysOnTop = true
605
naeeym2.Size = UDim2.new(5,35,2,15)
606
naeeym2.StudsOffset = Vector3.new(0,3,0)
607
naeeym2.Adornee = Character.Head
608
naeeym2.Name = "Name"
609
naeeym2.PlayerToHideFrom = Player
610
local tecks2 = Instance.new("TextLabel",naeeym2)
611
tecks2.BackgroundTransparency = 1
612
tecks2.TextScaled = true
613
tecks2.BorderSizePixel = 0
614
tecks2.Text = "Dominus Astra"
615
tecks2.Font = "Fantasy"
616
tecks2.TextSize = 30
617
tecks2.TextStrokeTransparency = 0
618
tecks2.TextColor3 = Color3.new(0.05,0.05,0.15)
619
tecks2.TextStrokeColor3 = Color3.new(0,0,0)
620
tecks2.Size = UDim2.new(1,0,0.5,0)
621
tecks2.Parent = naeeym2
622
 
623
function Transparency(TRANS)
624
    tecks2.TextTransparency = TRANS
625
    tecks2.TextStrokeTransparency = TRANS
626
    for _, c in pairs(Character:GetChildren()) do
627
        if c.ClassName == "Part" and c ~= RootPart then
628
            c.Transparency = TRANS
629
            if c:FindFirstChildOfClass("Decal") then
630
                c:FindFirstChildOfClass("Decal").Transparency = TRANS
631
            end
632
        elseif c.ClassName == "Accessory" then
633
            c.Handle.Transparency = TRANS
634
        elseif c.ClassName == "Model" then
635
            for _, q in pairs(c:GetChildren()) do
636
                if q.ClassName == "Part" then
637
                    q.Transparency = TRANS
638
                    if q:FindFirstChildOfClass("Decal") then
639
                        q:FindFirstChildOfClass("Decal").Transparency = TRANS
640
                    end
641
                end
642
            end
643
        end
644
    end
645
end
646
 
647
Humanoid.Died:connect(function()
648
    Humanoid.Parent = nil
649
    Humanoid.MaxHealth = "inf"
650
    Humanoid.Health = "inf"
651
    refit()
652
    Humanoid.Parent = Character
653
    CreateSound("907330011", Head, 10, 1.2)
654
end)
655
 
656
local SKILL1FRAME = CreateFrame(WEAPONGUI, 1, 2, UD2(0.23, 0, 0.80, 0), UD2(0.26, 0, 0.07, 0), C3(0,0,0), C3(0, 0, 0), "Skill 1 Frame")
657
local SKILL2FRAME = CreateFrame(WEAPONGUI, 1, 2, UD2(0.50, 0, 0.80, 0), UD2(0.26, 0, 0.07, 0), C3(0,0,0), C3(0, 0, 0), "Skill 2 Frame")
658
local SKILL3FRAME = CreateFrame(WEAPONGUI, 1, 2, UD2(0.365, 0, 0.1, 0), UD2(0.26, 0, 0.07, 0), C3(0,0,0), C3(0, 0, 0), "Skill 3 Frame")
659
local SKILLEFRAME = CreateFrame(WEAPONGUI, 1, 2, UD2(0.365, 0, 0.9, 0), UD2(0.26, 0, 0.07, 0), C3(0,0,0), C3(0, 0, 0), "Skill Warp Frame")
660
 
661
local SKILL1TEXT = CreateLabel(SKILL1FRAME, "[Z] Lunar Blast", SKILLTEXTCOLOR, 7, "Fantasy", 0, 2, 0, "Text 1")
662
local SKILL2TEXT = CreateLabel(SKILL2FRAME, "[B] Star Cutter", SKILLTEXTCOLOR, 7, "Fantasy", 0, 2, 0, "Text 2")
663
local SKILL3TEXT = CreateLabel(SKILL3FRAME, "[C] Supernova", SKILLTEXTCOLOR, 10, "Fantasy", 0, 2, 0, "Text 3")
664
local SKILLETEXT = CreateLabel(SKILLEFRAME, "[Q] Astral Hop", SKILLTEXTCOLOR, 7, "Fantasy", 0, 2, 0, "Text Warp")
665
 
666
--//=================================\\
667
--||            DAMAGING
668
--\\=================================//
669
 
670
function killnearest(position,range,maxstrength)
671
    for i,v in ipairs(workspace:GetChildren()) do
672
    local body = v:GetChildren()
673
        for part = 1, #body do
674
            if((body[part].ClassName == "Part" or body[part].ClassName == "MeshPart") and v ~= Character) then
675
                if(body[part].Position - position).Magnitude < range then
676
                    if v.ClassName == "Model" then
677
                        v:BreakJoints()
678
                    end
679
                    --table.insert(Effects2,{body[part],"Disappear",0.02,2,2,2,2})
680
                    local bv = Instance.new("BodyVelocity")
681
                    bv.maxForce = Vector3.new(1e9, 1e9, 1e9)
682
                    bv.velocity = CF(position,body[part].Position).lookVector*maxstrength
683
                    bv.Parent = body[part]
684
                    Debris:AddItem(bv,0.2)
685
                end
686
            end
687
        end
688
        if v.ClassName == "Part" then
689
            if v.Anchored == false and (v.Position - position).Magnitude < range then
690
                --table.insert(Effects2,{v,"Disappear",0.02,2,2,2,2})
691
                v.Velocity = CFrame.new(position,v.Position).lookVector*5*maxstrength
692
            end
693
        end
694
    end
695
end
696
 
697
--//=================================\\
698
--||    ATTACK FUNCTIONS AND STUFF
699
--\\=================================//
700
 
701
function Lunar_Blast()
702
    local HITBODIES = {}
703
    local CENTER = CreatePart(3, Effects, "SmoothPlastic", 0, 1, "Relly red", "CenterPart", VT(0,0,0))
704
    local HITFLOOR,ECH,NORMAL = Raycast(Mouse.Hit.p+VT(0,2,0), (CF(Mouse.Hit.p, Mouse.Hit.p + VT(0, -1, 0))).lookVector, 10000000, Character)
705
    CENTER.CFrame = CF(ECH)
706
    local RAY = CreatePart(3, Effects, "Neon", 0, 1, "Relly red", "Laser01", VT(25,99999,25))
707
    RAY.Color = C3(0.05,0.05,0.15)
708
    MakeForm(RAY,"Cyl")
709
    RAY.CFrame = CF(ECH)
710
    for i = 1, 75 do
711
        Swait()
712
        RAY.Transparency = RAY.Transparency - 1/75
713
        RAY.Size = RAY.Size - VT(25/75,0,25/75)
714
        MagicSphere(VT(1,1,1),15,CF(ECH)*CF(MRANDOM(-15,15),MRANDOM(0,100),MRANDOM(-15,15)),C3(1,1,1),VT(0,0,0))
715
    end
716
    killnearest(ECH,25,25)
717
    MagicSphere(VT(0,0,0),55,CF(ECH),C3(0.05,0.05,0.15),VT(2,2,2))
718
    for i = 1, 25 do
719
        MagicSphere(VT(1,1,1),i*3,CF(ECH)*CF(MRANDOM(-45,45),MRANDOM(-45,45),MRANDOM(-45,45)),C3(1,1,1),VT(0,0,0))
720
    end
721
    CreateSound("168586621", CENTER, 10, 0.8)
722
    RAY:remove()
723
    Debris:AddItem(CENTER,5)
724
end
725
 
726
function Star_Cutter()
727
    local HITFLOOR,HITPOS,NORMAL = Raycast(RootPart.Position, (CF(RootPart.Position, RootPart.Position + VT(0, -1, 0))).lookVector, 7 * Player_Size, Character)
728
    if HITFLOOR ~= nil then
729
        ATTACK = true
730
        Rooted = true
731
        local GYRO = IT("BodyGyro",RootPart)
732
        GYRO.D = 100
733
        GYRO.P = 2000
734
        GYRO.MaxTorque = VT(0,4000000,0)
735
        GYRO.cframe = CF(RootPart.Position,Mouse.Hit.p)
736
        CreateSound("429459101", RightArm, 10, 0.8)
737
        for i=0, 3.5, 0.1 / Animation_Speed do
738
            Swait()
739
            GYRO.cframe = CF(RootPart.Position,Mouse.Hit.p)
740
            Slice("Thin",0.3,5,RightArm.CFrame * CF(0,-1.1,0) * ANGLES(RAD(MRANDOM(-180,180)),RAD(MRANDOM(-180,180)),RAD(MRANDOM(-180,180))),"Really red",VT(-0.01,0,-0.01))
741
            RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.25 * COS(SINE / 12)) * ANGLES(RAD(4 + 2.5 * SIN(SINE / 12)), RAD(0), RAD(-15 + 2.5 * SIN(SINE / 12))), 1 / Animation_Speed)
742
            Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0 + 4.5 * SIN(SINE / 12)), RAD(0), RAD(15 - 2.5 * SIN(SINE / 12))), 1 / Animation_Speed)
743
            RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5 + 0.25 * COS(SINE / 12), 0) * ANGLES(RAD(-45), RAD(0 - 7.5 * SIN(SINE / 12)), RAD(32 + 7.5 * SIN(SINE / 12))) * RIGHTSHOULDERC0, 1 / Animation_Speed)
744
            LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5 + 0.25 * COS(SINE / 12), 0) * ANGLES(RAD(5), RAD(0 + 7.5 * SIN(SINE / 12)), RAD(-12 - 7.5 * SIN(SINE / 12))) * LEFTSHOULDERC0, 1 / Animation_Speed)
745
            RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, -0.01) * ANGLES(RAD(-7.5 * SIN(SINE / 12)), RAD(75), RAD(0)) * ANGLES(RAD(-8 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
746
            LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -0.5, -0.5) * ANGLES(RAD(-7.5 * SIN(SINE / 12)), RAD(-90), RAD(0)) * ANGLES(RAD(-8 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
747
        end
748
        GYRO:remove()
749
        for i=0, 0.15, 0.1 / Animation_Speed do
750
            Swait()
751
            GYRO.cframe = CF(RootPart.Position,Mouse.Hit.p)
752
            Slice("Thin",0.3,5,RightArm.CFrame * CF(0,-1.1,0) * ANGLES(RAD(MRANDOM(-180,180)),RAD(MRANDOM(-180,180)),RAD(MRANDOM(-180,180))),"Really red",VT(-0.01,0,-0.01))
753
            RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.25 * COS(SINE / 12)) * ANGLES(RAD(4 + 2.5 * SIN(SINE / 12)), RAD(0), RAD(85 + 2.5 * SIN(SINE / 12))), 1 / Animation_Speed)
754
            Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0 + 4.5 * SIN(SINE / 12)), RAD(0), RAD(-85 - 2.5 * SIN(SINE / 12))), 1 / Animation_Speed)
755
            RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5 + 0.25 * COS(SINE / 12), 0) * ANGLES(RAD(0), RAD(0 - 7.5 * SIN(SINE / 12)), RAD(90 + 7.5 * SIN(SINE / 12))) * RIGHTSHOULDERC0, 1 / Animation_Speed)
756
            LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5 + 0.25 * COS(SINE / 12), 0) * ANGLES(RAD(5), RAD(0 + 7.5 * SIN(SINE / 12)), RAD(-12 - 7.5 * SIN(SINE / 12))) * LEFTSHOULDERC0, 1 / Animation_Speed)
757
            RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, -0.01) * ANGLES(RAD(-7.5 * SIN(SINE / 12)), RAD(75), RAD(0)) * ANGLES(RAD(-8 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
758
            LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -0.5, -0.5) * ANGLES(RAD(-7.5 * SIN(SINE / 12)), RAD(-90), RAD(0)) * ANGLES(RAD(-8 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
759
        end
760
        local BOMBSPOTS = {}
761
        for i = 1, 25 do
762
            local SPOT = CreatePart(3, Effects, "Neon", 0, 0, "Relly blue", "Blade", VT(8,1,8))
763
            SPOT.Color = SKILLTEXTCOLOR
764
            SPOT.CFrame = RootPart.CFrame*CF((MRANDOM(-15,15)/40)*i,-5,-i*5)
765
            table.insert(BOMBSPOTS,SPOT)
766
            MakeForm(SPOT,"Cyl")
767
        end
768
        for i=0, 0.2, 0.1 / Animation_Speed do
769
            Swait()
770
            RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.25 * COS(SINE / 12)) * ANGLES(RAD(4 + 2.5 * SIN(SINE / 12)), RAD(0), RAD(85 + 2.5 * SIN(SINE / 12))), 1 / Animation_Speed)
771
            Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0 + 4.5 * SIN(SINE / 12)), RAD(0), RAD(-85 - 2.5 * SIN(SINE / 12))), 1 / Animation_Speed)
772
            RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5 + 0.25 * COS(SINE / 12), 0) * ANGLES(RAD(145), RAD(0 - 7.5 * SIN(SINE / 12)), RAD(-15 + 7.5 * SIN(SINE / 12))) * RIGHTSHOULDERC0, 1 / Animation_Speed)
773
            LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5 + 0.25 * COS(SINE / 12), 0) * ANGLES(RAD(-25), RAD(0 + 7.5 * SIN(SINE / 12)), RAD(-12 - 7.5 * SIN(SINE / 12))) * LEFTSHOULDERC0, 1 / Animation_Speed)
774
            RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, -0.01) * ANGLES(RAD(-7.5 * SIN(SINE / 12)), RAD(75), RAD(0)) * ANGLES(RAD(-8 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
775
            LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -0.5, -0.5) * ANGLES(RAD(-7.5 * SIN(SINE / 12)), RAD(-90), RAD(0)) * ANGLES(RAD(-8 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
776
        end
777
        ATTACK = false
778
        Rooted = false
779
        coroutine.resume(coroutine.create(function()
780
            Swait(3)
781
            for i = 1, #BOMBSPOTS do
782
                if BOMBSPOTS[i] ~= nil then
783
                    local E = BOMBSPOTS[i]
784
                    coroutine.resume(coroutine.create(function()
785
                        local BLADE = CreatePart(3, Effects, "SmoothPlastic", 0, 1, "Relly blue", "Blade", VT(0,0,0))
786
                        BLADE.Color = SKILLTEXTCOLOR
787
                        CreateMesh("SpecialMesh", BLADE, "FileMesh", "93108071", "", VT(0.6,1,0.4)*3, VT(0,0,0))
788
                        CreateSound(HITWEAPONSOUNDS[MRANDOM(1,#HITWEAPONSOUNDS)], BLADE, 4, 0.6)
789
                        BLADE.CFrame = E.CFrame*CF(0,-3,0)*ANGLES(RAD(MRANDOM(-15,15)),RAD(90),RAD(MRANDOM(-15,15)))
790
                        for i = 1, 10 do
791
                            Swait()
792
                            MagicSphere(VT(1,1,1)/5,65,CF(E.Position)*ANGLES(RAD(MRANDOM(-180,180)),RAD(MRANDOM(-180,180)),RAD(MRANDOM(-180,180)))*CF(0,MRANDOM(3,6),0),C3(1,1,1),VT(0,0,0))
793
                            killnearest(BLADE.Position,6,80)
794
                            BLADE.CFrame = BLADE.CFrame*CF(0,0.3,0)
795
                            BLADE.Transparency = BLADE.Transparency - 0.1
796
                        end
797
                        Swait(45)
798
                        for i = 1, 100 do
799
                            Swait()
800
                            BLADE.Transparency = BLADE.Transparency + 0.01
801
                            E.Transparency = E.Transparency + 0.01
802
                        end
803
                        BLADE:remove()
804
                        E:remove()
805
                    end))
806
                end
807
            end
808
        end))
809
    end
810
end
811
 
812
function Supernova()
813
    local HITFLOOR,HITPOS,NORMAL = Raycast(RootPart.Position, (CF(RootPart.Position, RootPart.Position + VT(0, -1, 0))).lookVector, 7 * Player_Size, Character)
814
    if HITFLOOR ~= nil then
815
        local HITBODIES = {}
816
        ATTACK = true
817
        Rooted = true
818
        local ABSOLUTE = CreatePart(3, Effects, "Neon", 0, 1, "Relly red", "Star", VT(0,0,0))
819
        MakeForm(ABSOLUTE,"Ball")
820
        CreateSound("429459101", ABSOLUTE, 10, 1)
821
        for i=0, 4, 0.1 / Animation_Speed do
822
            Swait()
823
            ABSOLUTE.Size = ABSOLUTE.Size + VT(0.2,0.2,0.2)
824
            ABSOLUTE.CFrame = RootPart.CFrame*CF(0,5+(ABSOLUTE.Size.Y/2),0)
825
            ABSOLUTE.Transparency = ABSOLUTE.Transparency - 0.01
826
            local CHARGE = CreatePart(3, Effects, "Neon", 0, 0, "Really red", "Star", VT(1,1,1))
827
            MakeForm(CHARGE,"Ball")
828
            CHARGE.Color = C3(1,1,1)
829
            CHARGE.CFrame = CF(RootPart.Position) * CF(MRANDOM(-15,15),-6,MRANDOM(-15,15))
830
            FireArc(CHARGE,ABSOLUTE.Position,45,45,true)
831
            RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.25 * COS(SINE / 12)) * ANGLES(RAD(4 + 2.5 * SIN(SINE / 12)), RAD(0), RAD(15 + 2.5 * SIN(SINE / 12))), 1 / Animation_Speed)
832
            Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(-25 + 4.5 * SIN(SINE / 12)), RAD(25), RAD(-15 - 2.5 * SIN(SINE / 12))), 1 / Animation_Speed)
833
            RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.25, 1.5 + 0.25 * COS(SINE / 12), 0) * ANGLES(RAD(170), RAD(0 - 7.5 * SIN(SINE / 12)), RAD(-12 + 7.5 * SIN(SINE / 12))) * RIGHTSHOULDERC0, 1 / Animation_Speed)
834
            LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5 + 0.25 * COS(SINE / 12), 0) * ANGLES(RAD(0), RAD(0 + 7.5 * SIN(SINE / 12)), RAD(-12 - 7.5 * SIN(SINE / 12))) * LEFTSHOULDERC0, 1 / Animation_Speed)
835
            RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, -0.01) * ANGLES(RAD(-7.5 * SIN(SINE / 12)), RAD(75), RAD(0)) * ANGLES(RAD(-8 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
836
            LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -0.5, -0.5) * ANGLES(RAD(-7.5 * SIN(SINE / 12)), RAD(-90), RAD(0)) * ANGLES(RAD(-8 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
837
        end
838
        CreateSound("907330103", Head, 10, 1.2)
839
        for i = 1, 75 do
840
            Swait()
841
            RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.25 * COS(SINE / 12)) * ANGLES(RAD(4 + 2.5 * SIN(SINE / 12)), RAD(0), RAD(15 + 2.5 * SIN(SINE / 12))), 1 / Animation_Speed)
842
            Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(-25 + 4.5 * SIN(SINE / 12)), RAD(25), RAD(-15 - 2.5 * SIN(SINE / 12))), 1 / Animation_Speed)
843
            RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.25, 1.5 + 0.25 * COS(SINE / 12), 0) * ANGLES(RAD(170), RAD(0 - 7.5 * SIN(SINE / 12)), RAD(-12 + 7.5 * SIN(SINE / 12))) * RIGHTSHOULDERC0, 1 / Animation_Speed)
844
            LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5 + 0.25 * COS(SINE / 12), 0) * ANGLES(RAD(0), RAD(0 + 7.5 * SIN(SINE / 12)), RAD(-12 - 7.5 * SIN(SINE / 12))) * LEFTSHOULDERC0, 1 / Animation_Speed)
845
            RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, -0.01) * ANGLES(RAD(-7.5 * SIN(SINE / 12)), RAD(75), RAD(0)) * ANGLES(RAD(-8 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
846
            LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -0.5, -0.5) * ANGLES(RAD(-7.5 * SIN(SINE / 12)), RAD(-90), RAD(0)) * ANGLES(RAD(-8 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
847
        end
848
        coroutine.resume(coroutine.create(function()
849
            for i = 1, 13 do
850
                for e = 1, 8 do
851
                    Swait()
852
                    MagicSphere(VT(1,1,1),15,CF(ABSOLUTE.Position)*CF(MRANDOM(-45,45),MRANDOM(-45,45),MRANDOM(-45,45)),C3(1,1,1),VT(0,0,0))
853
                    CreateSwirl(ABSOLUTE.Size/2,15,CF(HITPOS),true,15,BRICKC"Slime green".Color,VT(i,0.3,i)*2)
854
                end
855
                for i = 1, 5 do
856
                    Slice("Round",0,35,CF(ABSOLUTE.Position)*ANGLES(RAD(MRANDOM(-18,18)),RAD(MRANDOM(-180,180)),RAD(MRANDOM(-18,18))),C3(1,1,1),VT(i,0,i)/3)
857
                    Slice("Thin",i,55,ABSOLUTE.CFrame * CF(0,-1.1,0) * ANGLES(RAD(MRANDOM(-180,180)),RAD(MRANDOM(-180,180)),RAD(MRANDOM(-180,180))),C3(1,0,0),VT(0,0,0))
858
                end
859
                CreateSwirl(ABSOLUTE.Size/2,25,CF(ABSOLUTE.Position),true,-25,BRICKC"Relly red".Color,VT(i,i*2,i))
860
                CreateSwirl(ABSOLUTE.Size/2,55,CF(ABSOLUTE.Position),true,25,C3(0.05,0.05,0.15),VT(i,i*2,i))
861
                CreateSound("168586621", ABSOLUTE, 4, 0.8)
862
                CreateSound("201858144", ABSOLUTE, 10, 0.8)
863
                killnearest(ABSOLUTE.Position,i*18,i)
864
                ABSOLUTE.Size = ABSOLUTE.Size*0.9
865
                MagicSphere(ABSOLUTE.Size,25,CF(ABSOLUTE.Position),BRICKC"Relly red".Color,VT(i,i,i)/1.1)
866
                MagicSphere(ABSOLUTE.Size,45,CF(ABSOLUTE.Position),C3(0.05,0.05,0.15),VT(i,i,i))
867
            end
868
            ABSOLUTE.Transparency = 1
869
            Debris:AddItem(ABSOLUTE,10)
870
        end))
871
        ATTACK = false
872
        Rooted = false
873
    end
874
end
875
 
876
local Decal = IT("Decal")
877
 
878
function Astral_Hop()
879
    ATTACK = true
880
    Rooted = false
881
    local O1 = CreatePart(3, Effects, "Neon", 0, 1, "Really red", "Warphole", VT(0,0,0))
882
    O1.CFrame = RootPart.CFrame*CF(0,0,-3)*ANGLES(RAD(90),RAD(0),RAD(0))
883
    local decal = Decal:Clone()
884
    decal.Parent = O1
885
    decal.Face = "Top"
886
    decal.Texture = "http://www.roblox.com/asset/?id=349165228"
887
    local decal2 = Decal:Clone()
888
    decal2.Parent = O1
889
    decal2.Face = "Bottom"
890
    decal2.Texture = "http://www.roblox.com/asset/?id=349165228"
891
    local O2 = CreatePart(3, Effects, "Neon", 0, 1, "Really red", "Warphole", VT(0,0,0))
892
    local POS = VT(RootPart.Position.X,Mouse.Hit.p.Y+6,RootPart.Position.Z)
893
    O2.CFrame = CF(Mouse.Hit.p+VT(0,6,0),POS)*ANGLES(RAD(90),RAD(0),RAD(0))
894
    local ROOT = CreatePart(3, Effects, "Neon", 0, 1, "Really red", "Warphole", VT(0,0,0))
895
    ROOT.CFrame = CF(O2.Position,RootPart.Position)
896
    local decal = Decal:Clone()
897
    decal.Parent = O2
898
    decal.Face = "Top"
899
    decal.Texture = "http://www.roblox.com/asset/?id=349165228"
900
    local decal2 = Decal:Clone()
901
    decal2.Parent = O2
902
    decal2.Face = "Bottom"
903
    decal2.Texture = "http://www.roblox.com/asset/?id=349165228"
904
    CreateSound("84005018", O1, 10, 0.7)
905
    CreateSound("84005018", O2, 10, 0.7)
906
    for i = 1, 75 do
907
        Swait()
908
        O1.Size = O1.Size + VT(0.1,0,0.1)
909
        O1.CFrame = RootPart.CFrame*CF(0,0,-3)*ANGLES(RAD(90),RAD(i),RAD(0))
910
        O2.Size = O2.Size + VT(0.1,0,0.1)
911
        O2.CFrame = O2.CFrame*ANGLES(RAD(0),RAD(i),RAD(0))
912
        RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.25 * COS(SINE / 12)) * ANGLES(RAD(4 + 2.5 * SIN(SINE / 12)), RAD(0), RAD(5 + 2.5 * SIN(SINE / 12))), 1 / Animation_Speed)
913
        Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0 + 4.5 * SIN(SINE / 12)), RAD(0), RAD(-5 - 2.5 * SIN(SINE / 12))), 1 / Animation_Speed)
914
        RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5 + 0.25 * COS(SINE / 12), 0) * ANGLES(RAD(90), RAD(0 - 2.5 * SIN(SINE / 12)), RAD(5 + 7.5 * SIN(SINE / 12))) * RIGHTSHOULDERC0, 1 / Animation_Speed)
915
        LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5 + 0.25 * COS(SINE / 12), 0) * ANGLES(RAD(90), RAD(0 + 2.5 * SIN(SINE / 12)), RAD(-5 - 7.5 * SIN(SINE / 12))) * LEFTSHOULDERC0, 1 / Animation_Speed)
916
        RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, -0.01) * ANGLES(RAD(-2.5 * SIN(SINE / 12)), RAD(75), RAD(0)) * ANGLES(RAD(-8 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
917
        LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -0.5, -0.5) * ANGLES(RAD(-2.5 * SIN(SINE / 12)), RAD(-90), RAD(0)) * ANGLES(RAD(-8 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
918
    end
919
    Rooted = true
920
    UNANCHOR = false
921
    RootPart.Anchored = true
922
    VALUE1 = true
923
    for i = 1, 15 do
924
        Transparency(i/15)
925
        Swait()
926
        RootPart.CFrame = RootPart.CFrame*CF(0,0,-0.13)
927
        RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.25 * COS(SINE / 12)) * ANGLES(RAD(16 + 2.5 * SIN(SINE / 12)), RAD(0), RAD(5 + 2.5 * SIN(SINE / 12))), 1 / Animation_Speed)
928
        Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(-15 + 4.5 * SIN(SINE / 12)), RAD(0), RAD(-5 - 2.5 * SIN(SINE / 12))), 1 / Animation_Speed)
929
        RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5 + 0.25 * COS(SINE / 12), 0) * ANGLES(RAD(-15), RAD(0 - 2.5 * SIN(SINE / 12)), RAD(5 + 7.5 * SIN(SINE / 12))) * RIGHTSHOULDERC0, 1 / Animation_Speed)
930
        LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5 + 0.25 * COS(SINE / 12), 0) * ANGLES(RAD(-15), RAD(0 + 2.5 * SIN(SINE / 12)), RAD(-5 - 7.5 * SIN(SINE / 12))) * LEFTSHOULDERC0, 1 / Animation_Speed)
931
        RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, -0.01) * ANGLES(RAD(-2.5 * SIN(SINE / 12)), RAD(75), RAD(0)) * ANGLES(RAD(-8 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
932
        LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -0.5, -0.5) * ANGLES(RAD(-2.5 * SIN(SINE / 12)), RAD(-90), RAD(0)) * ANGLES(RAD(-8 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
933
    end
934
    RootPart.CFrame = ROOT.CFrame
935
    ROOT:remove()
936
    for i = 1, 15 do
937
        Transparency(1-(i/15))
938
        Swait()
939
        RootPart.CFrame = RootPart.CFrame*CF(0,0,-0.5)
940
        RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.25 * COS(SINE / 12)) * ANGLES(RAD(16 + 2.5 * SIN(SINE / 12)), RAD(0), RAD(5 + 2.5 * SIN(SINE / 12))), 1 / Animation_Speed)
941
        Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(-15 + 4.5 * SIN(SINE / 12)), RAD(0), RAD(-5 - 2.5 * SIN(SINE / 12))), 1 / Animation_Speed)
942
        RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5 + 0.25 * COS(SINE / 12), 0) * ANGLES(RAD(-15), RAD(0 - 2.5 * SIN(SINE / 12)), RAD(5 + 7.5 * SIN(SINE / 12))) * RIGHTSHOULDERC0, 1 / Animation_Speed)
943
        LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5 + 0.25 * COS(SINE / 12), 0) * ANGLES(RAD(-15), RAD(0 + 2.5 * SIN(SINE / 12)), RAD(-5 - 7.5 * SIN(SINE / 12))) * LEFTSHOULDERC0, 1 / Animation_Speed)
944
        RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, -0.01) * ANGLES(RAD(-2.5 * SIN(SINE / 12)), RAD(75), RAD(0)) * ANGLES(RAD(-8 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
945
        LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -0.5, -0.5) * ANGLES(RAD(-2.5 * SIN(SINE / 12)), RAD(-90), RAD(0)) * ANGLES(RAD(-8 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
946
    end
947
    VALUE1 = false
948
    coroutine.resume(coroutine.create(function()
949
        for i = 1, 75 do
950
            Swait()
951
            O1.Size = O1.Size - VT(0.1,0,0.1)
952
            O1.CFrame = O1.CFrame*ANGLES(RAD(0),RAD(i),RAD(0))
953
            O2.Size = O2.Size - VT(0.1,0,0.1)
954
            O2.CFrame = O2.CFrame*ANGLES(RAD(0),RAD(i),RAD(0))
955
        end
956
        O1:remove()
957
        O2:remove()
958
    end))
959
    UNANCHOR = true
960
    RootPart.Anchored = false
961
    ATTACK = false
962
    Rooted = false
963
end
964
 
965
--//=================================\\
966
--||      ASSIGN THINGS TO KEYS
967
--\\=================================//
968
 
969
function MouseDown(Mouse)
970
    if ATTACK == false then
971
    end
972
end
973
 
974
function MouseUp(Mouse)
975
HOLD = false
976
end
977
 
978
function KeyDown(Key)
979
    KEYHOLD = true
980
    if Key == "z" and ATTACK == false then
981
        Lunar_Blast()
982
    end
983
 
984
    if Key == "b" and ATTACK == false then
985
        Star_Cutter()
986
    end
987
 
988
    if Key == "c" and ATTACK == false then
989
        Supernova()
990
    end
991
 
992
    if Key == "q" and ATTACK == false then
993
        Astral_Hop()
994
    end
995
end
996
 
997
function KeyUp(Key)
998
    KEYHOLD = false
999
end
1000
 
1001
    Mouse.Button1Down:connect(function(NEWKEY)
1002
        MouseDown(NEWKEY)
1003
    end)
1004
    Mouse.Button1Up:connect(function(NEWKEY)
1005
        MouseUp(NEWKEY)
1006
    end)
1007
    Mouse.KeyDown:connect(function(NEWKEY)
1008
        KeyDown(NEWKEY)
1009
    end)
1010
    Mouse.KeyUp:connect(function(NEWKEY)
1011
        KeyUp(NEWKEY)
1012
    end)
1013
 
1014
--//=================================\\
1015
--\\=================================//
1016
 
1017
 
1018
function unanchor()
1019
    if UNANCHOR == true then
1020
        g = Character:GetChildren()
1021
        for i = 1, #g do
1022
            if g[i].ClassName == "Part" then
1023
                g[i].Anchored = false
1024
            end
1025
        end
1026
    end
1027
end
1028
 
1029
 
1030
--//=================================\\
1031
--||    WRAP THE WHOLE SCRIPT UP
1032
--\\=================================//
1033
 
1034
Humanoid.Changed:connect(function(Jump)
1035
    if Jump == "Jump" and (Disable_Jump == true) then
1036
        Humanoid.Jump = false
1037
    end
1038
end)
1039
 
1040
Humanoid.HipHeight = 2
1041
Head:ClearAllChildren()
1042
local FF = IT("ForceField",Character)
1043
FF.Visible = false
1044
Speed = 35
1045
 
1046
function refit()
1047
    RootJoint.Parent = RootPart
1048
    Neck.Parent = Torso
1049
    RightShoulder.Parent = Torso
1050
    LeftShoulder.Parent = Torso
1051
    RightHip.Parent = Torso
1052
    LeftHip.Parent = Torso
1053
    RootPart.Parent = Character
1054
    LeftArm.Parent = Character
1055
    RightArm.Parent = Character
1056
    RightLeg.Parent = Character
1057
    LeftLeg.Parent = Character
1058
    Torso.Parent = Character
1059
    Head.Parent = Character
1060
end
1061
 
1062
local FOUNDFORGOTTEN = false
1063
 
1064
while true do
1065
    Swait()
1066
    ANIMATE.Parent = nil
1067
    local IDLEANIMATION = Humanoid:LoadAnimation(ROBLOXIDLEANIMATION)
1068
    IDLEANIMATION:Play()
1069
    SINE = SINE + CHANGE
1070
    local TORSOVELOCITY = (RootPart.Velocity * VT(1, 0, 1)).magnitude
1071
    local TORSOVERTICALVELOCITY = RootPart.Velocity.y
1072
    local LV = Torso.CFrame:pointToObjectSpace(Torso.Velocity - Torso.Position)
1073
    local HITFLOOR,HITPOS,NORMAL = Raycast(RootPart.Position, (CF(RootPart.Position, RootPart.Position + VT(0, -1, 0))).lookVector, 7 * Player_Size, Character)
1074
    if ATTACK == false then
1075
        if TORSOVELOCITY < 1 then
1076
            RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.25 * COS(SINE / 12)) * ANGLES(RAD(4 + 2.5 * SIN(SINE / 12)), RAD(0), RAD(5 + 2.5 * SIN(SINE / 12))), 1 / Animation_Speed)
1077
            Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0 + 4.5 * SIN(SINE / 12)), RAD(0), RAD(-5 - 2.5 * SIN(SINE / 12))), 1 / Animation_Speed)
1078
            RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5 + 0.25 * COS(SINE / 12), 0) * ANGLES(RAD(0), RAD(0 - 2.5 * SIN(SINE / 12)), RAD(5 + 7.5 * SIN(SINE / 12))) * RIGHTSHOULDERC0, 1 / Animation_Speed)
1079
            LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5 + 0.25 * COS(SINE / 12), 0) * ANGLES(RAD(0), RAD(0 + 2.5 * SIN(SINE / 12)), RAD(-5 - 7.5 * SIN(SINE / 12))) * LEFTSHOULDERC0, 1 / Animation_Speed)
1080
            RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, -0.01) * ANGLES(RAD(-2.5 * SIN(SINE / 12)), RAD(75), RAD(0)) * ANGLES(RAD(-8 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
1081
            LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -0.5, -0.5) * ANGLES(RAD(-2.5 * SIN(SINE / 12)), RAD(-90), RAD(0)) * ANGLES(RAD(-8 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
1082
        elseif TORSOVELOCITY > 1 then
1083
            RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.25 * COS(SINE / 12)) * ANGLES(RAD(25 + 2.5 * SIN(SINE / 12)), RAD(0), RAD(5 + 2.5 * SIN(SINE / 12))), 1 / Animation_Speed)
1084
            Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(-25 + 4.5 * SIN(SINE / 12)), RAD(0), RAD(-5 - 2.5 * SIN(SINE / 12))), 1 / Animation_Speed)
1085
            RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5 + 0.25 * COS(SINE / 12), 0) * ANGLES(RAD(-25), RAD(0 - 2.5 * SIN(SINE / 12)), RAD(15 + 7.5 * SIN(SINE / 12))) * RIGHTSHOULDERC0, 1 / Animation_Speed)
1086
            LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5 + 0.25 * COS(SINE / 12), 0) * ANGLES(RAD(-25), RAD(0 + 2.5 * SIN(SINE / 12)), RAD(-15 - 7.5 * SIN(SINE / 12))) * LEFTSHOULDERC0, 1 / Animation_Speed)
1087
            RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, -0.01) * ANGLES(RAD(-25-2.5 * SIN(SINE / 12)), RAD(75), RAD(0)) * ANGLES(RAD(-8 - 5.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
1088
            LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -0.5, -0.5) * ANGLES(RAD(-2.5 * SIN(SINE / 12)), RAD(-90), RAD(0)) * ANGLES(RAD(-8 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
1089
        end
1090
    end
1091
    unanchor()
1092
    Humanoid.MaxHealth = "inf"
1093
    Humanoid.Health = "inf"
1094
    if Rooted == false then
1095
        Disable_Jump = false
1096
        Humanoid.WalkSpeed = Speed
1097
    elseif Rooted == true then
1098
        Disable_Jump = true
1099
        Humanoid.WalkSpeed = 0
1100
    end
1101
    for _, c in pairs(Character:GetChildren()) do
1102
        if c.ClassName == "Part" then
1103
            c.Material = "Neon"
1104
            if c:FindFirstChildOfClass("ParticleEmitter") then
1105
                c:FindFirstChildOfClass("ParticleEmitter"):remove()
1106
            end
1107
            if c == Torso then
1108
                c.Color = C3(0,0,0)
1109
            elseif c == RightArm then
1110
                c.Color = C3(0.05,0.05,0.15)
1111
            elseif c == LeftArm then
1112
                c.Color = C3(0.05,0.05,0.15)
1113
            elseif c == RightLeg then
1114
                c.Color = C3(0,0,0.05)
1115
            elseif c == LeftLeg then
1116
                c.Color = C3(0,0,0.05)
1117
            elseif c == Head then
1118
                if c:FindFirstChild("Dominus") == nil then
1119
                    local M = CreateMesh("SpecialMesh", c, "FileMesh", "162384581", "162384608", VT(1,1,1)*1.1, VT(0,0,0))
1120
                    M.Name = "Dominus"
1121
                end
1122
                if c:FindFirstChild("face") then
1123
                    c.face:remove()
1124
                end
1125
            end
1126
        elseif c.ClassName == "Shirt" or c.ClassName == "Pants" or c.ClassName == "CharacterMesh" or c.ClassName == "Accessory" or c.Name == "Body Colors" then
1127
            c:remove()
1128
        end
1129
    end
1130
    FF.Parent = Character
1131
    sick.Parent = Character
1132
    refit()
1133
    script.Parent = WEAPONGUI
1134
    Character.Parent = workspace
1135
    Humanoid.PlatformStand = false
1136
    Humanoid.Name = "Astra"
1137
    for _, c in pairs(game.Players:GetChildren()) do
1138
        if c.Character ~= nil then
1139
            if c.Character.Parent ~= workspace and c.Character.Parent ~= nil then
1140
                c.Character:BreakJoints()
1141
            end
1142
        end
1143
    end
1144
    FOUNDFORGOTTEN = false
1145
    Humanoid.DisplayDistanceType = "None"
1146
    for _, c in pairs(workspace:GetChildren()) do
1147
        if c.ClassName == "Model" then
1148
            for _, q in pairs(c:GetChildren()) do
1149
                if q.Name == ("Forgotten Dominus") then
1150
                    FOUNDFORGOTTEN = true
1151
                end
1152
            end
1153
        end
1154
    end
1155
    if FOUNDFORGOTTEN == true then
1156
        sick:Stop()
1157
    else
1158
        sick.Playing = true
1159
    end
1160
    if VALUE1 == false then
1161
        MagicSphere(VT(1,1,1)/5,35,CF(Torso.Position)*ANGLES(RAD(MRANDOM(-180,180)),RAD(MRANDOM(-180,180)),RAD(MRANDOM(-180,180)))*CF(0,MRANDOM(3,6),0),C3(1,1,1),VT(0,0,0))
1162
    end
1163
end
1164
 
1165
--//=================================\\
1166
--\\=================================//
1167
 
1168
 
1169
 
1170
 
1171
 
1172
--//====================================================\\--
1173
--||                     END OF SCRIPT
1174
--\\====================================================//--