View difference between Paste ID: UVFq8ewi and 5DMhDL7C
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,game,owner = owner,game
3
local RealPlayer = Player
4
do
5
    print("FE Compatibility code by Mokiros")
6
    local rp = RealPlayer
7
    script.Parent = rp.Character
8
   
9
    --RemoteEvent for communicating
10
    local Event = Instance.new("RemoteEvent")
11
    Event.Name = "UserInput_Event"
12
 
13
    --Fake event to make stuff like Mouse.KeyDown work
14
    local function fakeEvent()
15
        local t = {_fakeEvent=true,Functions={},Connect=function(self,f)table.insert(self.Functions,f) end}
16
        t.connect = t.Connect
17
        return t
18
    end
19
 
20
    --Creating fake input objects with fake variables
21
    local m = {Target=nil,Hit=CFrame.new(),KeyUp=fakeEvent(),KeyDown=fakeEvent(),Button1Up=fakeEvent(),Button1Down=fakeEvent()}
22
    local UIS = {InputBegan=fakeEvent(),InputEnded=fakeEvent()}
23
    local CAS = {Actions={},BindAction=function(self,name,fun,touch,...)
24
        CAS.Actions[name] = fun and {Name=name,Function=fun,Keys={...}} or nil
25
    end}
26
    --Merged 2 functions into one by checking amount of arguments
27
    CAS.UnbindAction = CAS.BindAction
28
 
29
    --This function will trigger the events that have been :Connect()'ed
30
    local function te(self,ev,...)
31
        local t = m[ev]
32
        if t and t._fakeEvent then
33
            for _,f in pairs(t.Functions) do
34
                f(...)
35
            end
36
        end
37
    end
38
    m.TrigEvent = te
39
    UIS.TrigEvent = te
40
 
41
    Event.OnServerEvent:Connect(function(plr,io)
42
        if plr~=rp then return end
43
        m.Target = io.Target
44
        m.Hit = io.Hit
45
        if not io.isMouse then
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 Mouse = Player:GetMouse()
66
    local UIS = game:GetService("UserInputService")
67
    local input = function(io,a)
68
        if a then return end
69
        --Since InputObject is a client-side instance, we create and pass table instead
70
        Event:FireServer({KeyCode=io.KeyCode,UserInputType=io.UserInputType,UserInputState=io.UserInputState,Hit=Mouse.Hit,Target=Mouse.Target})
71
    end
72
    UIS.InputBegan:Connect(input)
73
    UIS.InputEnded:Connect(input)
74
 
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
 
85
    ----Sandboxed game object that allows the usage of client-side methods and services
86
    --Real game object
87
    local _rg = game
88
 
89
    --Metatable for fake service
90
    local fsmt = {
91
        __index = function(self,k)
92
            local s = rawget(self,"_RealService")
93
            if s then return s[k] end
94
        end,
95
        __newindex = function(self,k,v)
96
            local s = rawget(self,"_RealService")
97
            if s then s[k]=v end
98
        end,
99
        __call = function(self,...)
100
            local s = rawget(self,"_RealService")
101
            if s then return s(...) end
102
        end
103
    }
104
    local function FakeService(t,RealService)
105
        t._RealService = typeof(RealService)=="string" and _rg:GetService(RealService) or RealService
106
        return setmetatable(t,fsmt)
107
    end
108
 
109
    --Fake game object
110
    local g = {
111
        GetService = function(self,s)
112
            return self[s]
113
        end,
114
        Players = FakeService({
115
            LocalPlayer = FakeService({GetMouse=function(self)return m end},Player)
116
        },"Players"),
117
        UserInputService = FakeService(UIS,"UserInputService"),
118
        ContextActionService = FakeService(CAS,"ContextActionService"),
119
    }
120
    rawset(g.Players,"localPlayer",g.Players.LocalPlayer)
121
    g.service = g.GetService
122
   
123
    g.RunService = FakeService({
124
        RenderStepped = _rg:GetService("RunService").Heartbeat,
125
        BindToRenderStep = function(self,name,_,fun)
126
 
127
        end,
128
        UnbindFromRenderStep = function(self,name)
129
            self._btrs[name]:Disconnect()
130
        end,
131
    },"RunService")
132
 
133
    setmetatable(g,{
134
        __index=function(self,s)
135
            return _rg:GetService(s) or typeof(_rg[s])=="function"
136
            and function(_,...)return _rg[s](_rg,...)end or _rg[s]
137
        end,
138
        __newindex = fsmt.__newindex,
139
        __call = fsmt.__call
140
    })
141
    --Changing owner to fake player object to support owner:GetMouse()
142
    game,owner = g,g.Players.LocalPlayer
143
end
144
----------------------------
145
-- Synapse Decompiler
146
-- Purchase Here: https://brack4712.xyz/synapse/purchase/
147
148
wait(0.2)
149
Player = owner
150
PlayerGui = Player.PlayerGui
151
Cam = workspace.CurrentCamera
152
Backpack = Player.Backpack
153
Character = Player.Character
154
Humanoid = Character.Humanoid
155
Mouse = Player:GetMouse()
156
RootPart = Character.HumanoidRootPart
157
Torso = Character.Torso
158
Head = Character.Head
159
RightArm = Character["Right Arm"]
160
LeftArm = Character["Left Arm"]
161
RightLeg = Character["Right Leg"]
162
LeftLeg = Character["Left Leg"]
163
RootJoint = RootPart.RootJoint
164
Neck = Torso.Neck
165
RightShoulder = Torso["Right Shoulder"]
166
LeftShoulder = Torso["Left Shoulder"]
167
RightHip = Torso["Right Hip"]
168
LeftHip = Torso["Left Hip"]
169
local sick = Instance.new("Sound", Character)
170
IT = Instance.new
171
CF = CFrame.new
172
VT = Vector3.new
173
RAD = math.rad
174
C3 = Color3.new
175
UD2 = UDim2.new
176
BRICKC = BrickColor.new
177
ANGLES = CFrame.Angles
178
EULER = CFrame.fromEulerAnglesXYZ
179
COS = math.cos
180
ACOS = math.acos
181
SIN = math.sin
182
ASIN = math.asin
183
ABS = math.abs
184
MRANDOM = math.random
185
FLOOR = math.floor
186
Animation_Speed = 3
187
Frame_Speed = 0.016666666666666666
188
local Speed = 22
189
local ROOTC0 = CF(0, 0, 0) * ANGLES(RAD(-90), RAD(0), RAD(180))
190
local NECKC0 = CF(0, 1, 0) * ANGLES(RAD(-90), RAD(0), RAD(180))
191
local RIGHTSHOULDERC0 = CF(-0.5, 0, 0) * ANGLES(RAD(0), RAD(90), RAD(0))
192
local LEFTSHOULDERC0 = CF(0.5, 0, 0) * ANGLES(RAD(0), RAD(-90), RAD(0))
193
local DAMAGEMULTIPLIER = 1
194
local ANIM = "Idle"
195
local ATTACK = false
196
local HOLE = false
197
local HOLD = false
198
local COMBO = 1
199
local Rooted = false
200
local SINE = 0
201
local KEYHOLD = false
202
local CHANGE = 2 / Animation_Speed
203
local WALKINGANIM = false
204
local VALUE1 = false
205
local VALUE2 = false
206
local ROBLOXIDLEANIMATION = IT("Animation")
207
ROBLOXIDLEANIMATION.Name = "Roblox Idle Animation"
208
ROBLOXIDLEANIMATION.AnimationId = "http://www.roblox.com/asset/?id=180435571"
209
local WEAPONGUI = IT("ScreenGui", PlayerGui)
210
WEAPONGUI.Name = "Absylum GUI"
211
local Effects = IT("Folder", Character)
212
Effects.Name = "Effects"
213
local ANIMATOR = Humanoid.Animator
214
local ANIMATE = Character.Animate
215
for _, v in next, Humanoid:GetPlayingAnimationTracks() do
216
	v:Stop()
217
end
218
ANIMATE:Destroy()
219
local UNANCHOR = true
220
local HITFLOOR, HITPOS
221
local SIZE = 15
222
wait(0.2)
223
ArtificialHB = Instance.new("BindableEvent", script)
224
ArtificialHB.Name = "ArtificialHB"
225
script:WaitForChild("ArtificialHB")
226
frame = Frame_Speed
227
tf = 0
228
allowframeloss = false
229
tossremainder = false
230
lastframe = tick()
231
script.ArtificialHB:Fire()
232
game:GetService("RunService").Heartbeat:connect(function(s, p)
233
	tf = tf + s
234
	if tf >= frame then
235
		if allowframeloss then
236
			script.ArtificialHB:Fire()
237
			lastframe = tick()
238
		else
239
			for i = 1, math.floor(tf / frame) do
240
				script.ArtificialHB:Fire()
241
			end
242
			lastframe = tick()
243
		end
244
		if tossremainder then
245
			tf = 0
246
		else
247
			tf = tf - frame * math.floor(tf / frame)
248
		end
249
	end
250
end)
251
function Raycast(POSITION, DIRECTION, RANGE, IGNOREDECENDANTS)
252
	return workspace:FindPartOnRay(Ray.new(POSITION, DIRECTION.unit * RANGE), IGNOREDECENDANTS)
253
end
254
function PositiveAngle(NUMBER)
255
	if NUMBER >= 0 then
256
		NUMBER = 0
257
	end
258
	return NUMBER
259
end
260
function NegativeAngle(NUMBER)
261
	if NUMBER <= 0 then
262
		NUMBER = 0
263
	end
264
	return NUMBER
265
end
266
function Swait(NUMBER)
267
	if NUMBER == 0 or NUMBER == nil then
268
		ArtificialHB.Event:wait()
269
	else
270
		for i = 1, NUMBER do
271
			ArtificialHB.Event:wait()
272
		end
273
	end
274
end
275
function CreateMesh(MESH, PARENT, MESHTYPE, MESHID, TEXTUREID, SCALE, OFFSET)
276
	local NEWMESH = IT(MESH)
277
	if MESH == "SpecialMesh" then
278
		NEWMESH.MeshType = MESHTYPE
279
		if MESHID ~= "nil" and MESHID ~= "" then
280
			NEWMESH.MeshId = "http://www.roblox.com/asset/?id=" .. MESHID
281
		end
282
		if TEXTUREID ~= "nil" and TEXTUREID ~= "" then
283
			NEWMESH.TextureId = "http://www.roblox.com/asset/?id=" .. TEXTUREID
284
		end
285
	end
286
	NEWMESH.Offset = OFFSET or VT(0, 0, 0)
287
	NEWMESH.Scale = SCALE
288
	NEWMESH.Parent = PARENT
289
	return NEWMESH
290
end
291
function CreatePart(FORMFACTOR, PARENT, MATERIAL, REFLECTANCE, TRANSPARENCY, BRICKCOLOR, NAME, SIZE, ANCHOR)
292
	local NEWPART = IT("Part")
293
	NEWPART.formFactor = FORMFACTOR
294
	NEWPART.Reflectance = REFLECTANCE
295
	NEWPART.Transparency = TRANSPARENCY
296
	NEWPART.CanCollide = false
297
	NEWPART.Locked = true
298
	NEWPART.Anchored = true
299
	if ANCHOR == false then
300
		NEWPART.Anchored = false
301
	end
302
	NEWPART.BrickColor = BRICKC(tostring(BRICKCOLOR))
303
	NEWPART.Name = NAME
304
	NEWPART.Size = SIZE
305
	NEWPART.Position = Torso.Position
306
	NEWPART.Material = MATERIAL
307
	NEWPART:BreakJoints()
308
	NEWPART.Parent = PARENT
309
	return NEWPART
310
end
311
local weldBetween = function(a, b)
312
	local weldd = Instance.new("ManualWeld")
313
	weldd.Part0 = a
314
	weldd.Part1 = b
315
	weldd.C0 = CFrame.new()
316
	weldd.C1 = b.CFrame:inverse() * a.CFrame
317
	weldd.Parent = a
318
	return weldd
319
end
320
function QuaternionFromCFrame(cf)
321
	local mx, my, mz, m00, m01, m02, m10, m11, m12, m20, m21, m22 = cf:components()
322
	local trace = m00 + m11 + m22
323
	if trace > 0 then
324
		local s = math.sqrt(1 + trace)
325
		local recip = 0.5 / s
326
		return (m21 - m12) * recip, (m02 - m20) * recip, (m10 - m01) * recip, s * 0.5
327
	else
328
		local i = 0
329
		if m00 < m11 then
330
			i = 1
331
		end
332
		if m22 > (i == 0 and m00 or m11) then
333
			i = 2
334
		end
335
		if i == 0 then
336
			local s = math.sqrt(m00 - m11 - m22 + 1)
337
			local recip = 0.5 / s
338
			return 0.5 * s, (m10 + m01) * recip, (m20 + m02) * recip, (m21 - m12) * recip
339
		elseif i == 1 then
340
			local s = math.sqrt(m11 - m22 - m00 + 1)
341
			local recip = 0.5 / s
342
			return (m01 + m10) * recip, 0.5 * s, (m21 + m12) * recip, (m02 - m20) * recip
343
		elseif i == 2 then
344
			local s = math.sqrt(m22 - m00 - m11 + 1)
345
			local recip = 0.5 / s
346
			return (m02 + m20) * recip, (m12 + m21) * recip, 0.5 * s, (m10 - m01) * recip
347
		end
348
	end
349
end
350
function QuaternionToCFrame(px, py, pz, x, y, z, w)
351
	local xs, ys, zs = x + x, y + y, z + z
352
	local wx, wy, wz = w * xs, w * ys, w * zs
353
	local xx = x * xs
354
	local xy = x * ys
355
	local xz = x * zs
356
	local yy = y * ys
357
	local yz = y * zs
358
	local zz = z * zs
359
	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))
360
end
361
function QuaternionSlerp(a, b, t)
362
	local cosTheta = a[1] * b[1] + a[2] * b[2] + a[3] * b[3] + a[4] * b[4]
363
	local startInterp, finishInterp
364
	if cosTheta >= 1.0E-4 then
365
		if 1 - cosTheta > 1.0E-4 then
366
			local theta = ACOS(cosTheta)
367
			local invSinTheta = 1 / SIN(theta)
368
			startInterp = SIN((1 - t) * theta) * invSinTheta
369
			finishInterp = SIN(t * theta) * invSinTheta
370
		else
371
			startInterp = 1 - t
372
			finishInterp = t
373
		end
374
	elseif 1 + cosTheta > 1.0E-4 then
375
		local theta = ACOS(-cosTheta)
376
		local invSinTheta = 1 / SIN(theta)
377
		startInterp = SIN((t - 1) * theta) * invSinTheta
378
		finishInterp = SIN(t * theta) * invSinTheta
379
	else
380
		startInterp = t - 1
381
		finishInterp = t
382
	end
383
	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
384
end
385
function Clerp(a, b, t)
386
	local qa = {
387
		QuaternionFromCFrame(a)
388
	}
389
	local qb = {
390
		QuaternionFromCFrame(b)
391
	}
392
	local ax, ay, az = a.x, a.y, a.z
393
	local bx, by, bz = b.x, b.y, b.z
394
	local _t = 1 - t
395
	return QuaternionToCFrame(_t * ax + t * bx, _t * ay + t * by, _t * az + t * bz, QuaternionSlerp(qa, qb, t))
396
end
397
function CreateFrame(PARENT, TRANSPARENCY, BORDERSIZEPIXEL, POSITION, SIZE, COLOR, BORDERCOLOR, NAME)
398
	local frame = IT("Frame")
399
	frame.BackgroundTransparency = TRANSPARENCY
400
	frame.BorderSizePixel = BORDERSIZEPIXEL
401
	frame.Position = POSITION
402
	frame.Size = SIZE
403
	frame.BackgroundColor3 = COLOR
404
	frame.BorderColor3 = BORDERCOLOR
405
	frame.Name = NAME
406
	frame.Parent = PARENT
407
	return frame
408
end
409
function CreateLabel(PARENT, TEXT, TEXTCOLOR, TEXTFONTSIZE, TEXTFONT, TRANSPARENCY, BORDERSIZEPIXEL, STROKETRANSPARENCY, NAME)
410
	local label = IT("TextLabel")
411
	label.BackgroundTransparency = 1
412
	label.Size = UD2(1, 0, 1, 0)
413
	label.Position = UD2(0, 0, 0, 0)
414
	label.TextColor3 = TEXTCOLOR
415
	label.TextStrokeTransparency = STROKETRANSPARENCY
416
	label.TextTransparency = TRANSPARENCY
417
	label.FontSize = TEXTFONTSIZE
418
	label.Font = TEXTFONT
419
	label.BorderSizePixel = BORDERSIZEPIXEL
420
	label.TextScaled = false
421
	label.Text = TEXT
422
	label.Name = NAME
423
	label.Parent = PARENT
424
	return label
425
end
426
function NoOutlines(PART)
427
	PART.TopSurface, PART.BottomSurface, PART.LeftSurface, PART.RightSurface, PART.FrontSurface, PART.BackSurface = 10, 10, 10, 10, 10, 10
428
end
429
function CreateWeldOrSnapOrMotor(TYPE, PARENT, PART0, PART1, C0, C1)
430
	local NEWWELD = IT(TYPE)
431
	NEWWELD.Part0 = PART0
432
	NEWWELD.Part1 = PART1
433
	NEWWELD.C0 = C0
434
	NEWWELD.C1 = C1
435
	NEWWELD.Parent = PARENT
436
	return NEWWELD
437
end
438
local S = IT("Sound")
439
function CreateSound(ID, PARENT, VOLUME, PITCH, DOESLOOP)
440
	local NEWSOUND
441
	coroutine.resume(coroutine.create(function()
442
		NEWSOUND = S:Clone()
443
		NEWSOUND.Parent = PARENT
444
		NEWSOUND.Volume = VOLUME
445
		NEWSOUND.Pitch = PITCH
446
		NEWSOUND.SoundId = "rbxassetid://137473066"
447
		NEWSOUND:play()
448
		if DOESLOOP == true then
449
			NEWSOUND.Looped = true
450
		else
451
			repeat
452
				wait(1)
453
			until NEWSOUND.Playing == false
454
			NEWSOUND:remove()
455
		end
456
	end))
457
	return NEWSOUND
458
end
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
function WACKYEFFECT(Table)
464
	local TYPE = Table.EffectType or "Sphere"
465
	local SIZE = Table.Size or VT(1, 1, 1)
466
	local ENDSIZE = Table.Size2 or VT(0, 0, 0)
467
	local TRANSPARENCY = Table.Transparency or 0
468
	local ENDTRANSPARENCY = Table.Transparency2 or 1
469
	local CFRAME = Table.CFrame or Torso.CFrame
470
	local MOVEDIRECTION = Table.MoveToPos or nil
471
	local ROTATION1 = Table.RotationX or 0
472
	local ROTATION2 = Table.RotationY or 0
473
	local ROTATION3 = Table.RotationZ or 0
474
	local MATERIAL = Table.Material or "Neon"
475
	local COLOR = Table.Color or C3(1, 1, 1)
476
	local TIME = Table.Time or 45
477
	local SOUNDID = Table.SoundID or nil
478
	local SOUNDPITCH = Table.SoundPitch or nil
479
	local SOUNDVOLUME = Table.SoundVolume or nil
480
	coroutine.resume(coroutine.create(function()
481
		local PLAYSSOUND = false
482
		local SOUND
483
		local EFFECT = CreatePart(3, Effects, MATERIAL, 0, TRANSPARENCY, BRICKC("Pearl"), "Effect", VT(1, 1, 1), true)
484
		if SOUNDID ~= nil and SOUNDPITCH ~= nil and SOUNDVOLUME ~= nil then
485
			PLAYSSOUND = true
486
			SOUND = CreateSound(SOUNDID, EFFECT, SOUNDVOLUME, SOUNDPITCH, false)
487
		end
488
		EFFECT.Color = COLOR
489
		local MSH
490
		if TYPE == "Sphere" then
491
			MSH = CreateMesh("SpecialMesh", EFFECT, "Sphere", "", "", SIZE, VT(0, 0, 0))
492
		elseif TYPE == "Block" then
493
			MSH = IT("BlockMesh", EFFECT)
494
			MSH.Scale = VT(SIZE.X, SIZE.X, SIZE.X)
495
		elseif TYPE == "Wave" then
496
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "20329976", "", SIZE, VT(0, 0, -SIZE.X / 8))
497
		elseif TYPE == "Ring" then
498
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "559831844", "", VT(SIZE.X, SIZE.X, 0.1), VT(0, 0, 0))
499
		elseif TYPE == "Slash" then
500
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "662586858", "", VT(SIZE.X / 10, 0, SIZE.X / 10), VT(0, 0, 0))
501
		elseif TYPE == "Round Slash" then
502
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "662585058", "", VT(SIZE.X / 10, 0, SIZE.X / 10), VT(0, 0, 0))
503
		elseif TYPE == "Swirl" then
504
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "1051557", "", SIZE, VT(0, 0, 0))
505
		elseif TYPE == "Skull" then
506
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "4770583", "", SIZE, VT(0, 0, 0))
507
		elseif TYPE == "Crystal" then
508
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "9756362", "", SIZE, VT(0, 0, 0))
509
		end
510
		if MSH ~= nil then
511
			local MOVESPEED
512
			if MOVEDIRECTION ~= nil then
513
				MOVESPEED = (CFRAME.p - MOVEDIRECTION).Magnitude / TIME
514
			end
515
			local GROWTH = SIZE - ENDSIZE
516
			local TRANS = TRANSPARENCY - ENDTRANSPARENCY
517
			if TYPE == "Block" then
518
				EFFECT.CFrame = CFRAME * ANGLES(RAD(MRANDOM(0, 360)), RAD(MRANDOM(0, 360)), RAD(MRANDOM(0, 360)))
519
			else
520
				EFFECT.CFrame = CFRAME
521
			end
522
			for LOOP = 1, TIME + 1 do
523
				Swait()
524
				MSH.Scale = MSH.Scale - GROWTH / TIME
525
				if TYPE == "Wave" then
526
					MSH.Offset = VT(0, 0, -MSH.Scale.X / 8)
527
				end
528
				EFFECT.Transparency = EFFECT.Transparency - TRANS / TIME
529
				if TYPE == "Block" then
530
					EFFECT.CFrame = CFRAME * ANGLES(RAD(MRANDOM(0, 360)), RAD(MRANDOM(0, 360)), RAD(MRANDOM(0, 360)))
531
				else
532
					EFFECT.CFrame = EFFECT.CFrame * ANGLES(RAD(ROTATION1), RAD(ROTATION2), RAD(ROTATION3))
533
				end
534
				if MOVEDIRECTION ~= nil then
535
					local ORI = EFFECT.Orientation
536
					EFFECT.CFrame = CF(EFFECT.Position, MOVEDIRECTION) * CF(0, 0, -MOVESPEED)
537
					EFFECT.Orientation = ORI
538
				end
539
			end
540
			if PLAYSSOUND == false then
541
				EFFECT:remove()
542
			else
543
				repeat
544
					Swait()
545
				until SOUND.Playing == false
546
				EFFECT:remove()
547
			end
548
		elseif PLAYSSOUND == false then
549
			EFFECT:remove()
550
		else
551
			repeat
552
				Swait()
553
			until SOUND.Playing == false
554
			EFFECT:remove()
555
		end
556
	end))
557
end
558
function MakeForm(PART, TYPE)
559
	if TYPE == "Cyl" then
560
		local MSH = IT("CylinderMesh", PART)
561
	elseif TYPE == "Ball" then
562
		local MSH = IT("SpecialMesh", PART)
563
		MSH.MeshType = "Sphere"
564
	elseif TYPE == "Wedge" then
565
		local MSH = IT("SpecialMesh", PART)
566
		MSH.MeshType = "Wedge"
567
	end
568
end
569
Debris = game:GetService("Debris")
570
function CastProperRay(StartPos, EndPos, Distance, Ignore)
571
	local DIRECTION = CF(StartPos, EndPos).lookVector
572
	return Raycast(StartPos, DIRECTION, Distance, Ignore)
573
end
574
function turnto(position)
575
	RootPart.CFrame = CFrame.new(RootPart.CFrame.p, VT(position.X, RootPart.Position.Y, position.Z)) * CFrame.new(0, 0, 0)
576
end
577
local SKILLTEXTCOLOR = C3(0, 0, 0)
578
local SKILLFONT = "SciFi"
579
local SKILLTEXTSIZE = 7
580
local FLOOR = CreatePart(3, Effects, "Neon", 0, 0, "White", "Floor", VT(15, 0, 15), true)
581
FLOOR.Color = C3(0, 0, 0)
582
MakeForm(FLOOR, "Cyl")
583
local EYE = CreatePart(3, Character, "Neon", 0, 0, "New yeller", "Eye", VT(0.3, 0.2, 0.1), false)
584
MakeForm(EYE, "Ball")
585
CreateWeldOrSnapOrMotor("Weld", EYE, Head, EYE, CF(0.2, 0, -0.5) * ANGLES(RAD(0), RAD(0), RAD(25)), CF(0, 0, 0))
586
local EYE = CreatePart(3, Character, "Neon", 0, 0, "New yeller", "Eye", VT(0.3, 0.2, 0.1), false)
587
MakeForm(EYE, "Ball")
588
CreateWeldOrSnapOrMotor("Weld", EYE, Head, EYE, CF(-0.2, 0, -0.5) * ANGLES(RAD(0), RAD(0), RAD(-25)), CF(0, 0, 0))
589
function Soul(POS)
590
	coroutine.resume(coroutine.create(function()
591
		local SOULMODEL = IT("Model", Effects)
592
		SOULMODEL.Name = "Soul"
593
		local SOUL = CreatePart(3, SOULMODEL, "Neon", 0, 0, "Black", "Part", VT(0.5, 0.5, 0.5))
594
		SOUL.Color = C3(0, 0, 0)
595
		SOUL.CFrame = CF(POS)
596
		local A1 = IT("Attachment", SOUL)
597
		A1.Position = Vector3.new(0, 0.25, 0)
598
		local A2 = IT("Attachment", SOUL)
599
		A2.Position = Vector3.new(0, -0.25, 0)
600
		local Trail = IT("Trail", SOUL)
601
		Trail.LightEmission = 0
602
		Trail.FaceCamera = true
603
		Trail.Texture = "rbxassetid://945758042"
604
		Trail.Attachment0 = A1
605
		Trail.Attachment1 = A2
606
		Trail.Lifetime = 0.5
607
		Trail.MinLength = 0
608
		Trail.Transparency = NumberSequence.new(0)
609
		Trail.Color = ColorSequence.new(SOUL.Color)
610
		MakeForm(SOUL, "Ball")
611
		local DISTANCE
612
		local HUM = IT("Humanoid", SOULMODEL)
613
		repeat
614
			Swait()
615
			SOUL.CFrame = Clerp(SOUL.CFrame, Torso.CFrame, 0.03)
616
			DISTANCE = (SOUL.Position - Torso.Position).Magnitude
617
		until DISTANCE < 0.4
618
		SOUL.Transparency = 1
619
		A1.Parent = Torso
620
		A2.Parent = Torso
621
		Trail.Parent = Torso
622
		SOULMODEL:remove()
623
		for i = 1, 100 do
624
			Swait()
625
			Trail.Transparency = NumberSequence.new(i / 100)
626
		end
627
		A1:remove()
628
		A2:remove()
629
		Trail:remove()
630
	end))
631
end
632
Humanoid.Died:connect(function()
633
	ATTACK = true
634
end)
635
function Blob(POSITION, RANGE)
636
	for index, CHILD in pairs(workspace:GetChildren()) do
637
		if CHILD.ClassName == "Model" and CHILD ~= Character and CHILD:FindFirstChild("AbsylumDrag") == nil then
638
			local HUM = CHILD:FindFirstChildOfClass("Humanoid")
639
			if HUM then
640
				do
641
					local TORSO = CHILD:FindFirstChild("Torso") or CHILD:FindFirstChild("UpperTorso")
642
					if TORSO and HUM.Health > 0 and RANGE >= (TORSO.Position - POSITION).Magnitude then
643
						do
644
							local HITFLOOR, HITPOS = Raycast(TORSO.Position, CF(RootPart.Position, RootPart.Position + VT(0, -1, 0)).lookVector, TORSO.Size.Y * 3, CHILD)
645
							if HITFLOOR and HITFLOOR.Anchored == true then
646
								TORSO.Anchored = true
647
								CHILD.PrimaryPart = TORSO
648
								coroutine.resume(coroutine.create(function()
649
									local FLOOR = CreatePart(3, Effects, "Neon", 0, 0, "White", "AbsylumFloor", VT(0, 0, 0), true)
650
									FLOOR.Color = C3(0, 0, 0)
651
									MakeForm(FLOOR, "Cyl")
652
									FLOOR.CFrame = CF(HITPOS)
653
									local E = IT("Folder", CHILD)
654
									E.Name = "AbsylumDrag"
655
									for i = 1, 35 do
656
										Swait()
657
										FLOOR.Size = FLOOR.Size + VT(0.2 * TORSO.Size.Z, 0, 0.2 * TORSO.Size.Z)
658
									end
659
									local SOUND = CreateSound(838038142, FLOOR, 0, MRANDOM(8, 12) / 10, false)
660
									repeat
661
										Swait()
662
										SOUND.Parent = FLOOR
663
										SOUND.Volume = SOUND.Volume + 0.08888888888888889
664
										CHILD:SetPrimaryPartCFrame(TORSO.CFrame * CF(0, -0.05, 0))
665
									until TORSO.Position.Y < FLOOR.Position.Y - 2.3 * TORSO.Size.Z
666
									for _, c in pairs(CHILD:GetChildren()) do
667
										if c.ClassName == "Accessory" or c.ClassName == "Tool" or c.ClassName == "Hat" then
668
											local H = c:FindFirstChild("Handle")
669
											if H then
670
												H.CanCollide = true
671
												H.Parent = workspace
672
												H.CFrame = TORSO.CFrame * CF(0, TORSO.Size.Y * 1.2, 0)
673
												Debris:AddItem(H, 5)
674
											end
675
										end
676
									end
677
									CHILD:Remove()
678
									local VOLUME = SOUND.Volume
679
									for i = 1, 35 do
680
										Swait()
681
										SOUND.Volume = SOUND.Volume - VOLUME / 35
682
										FLOOR.Size = FLOOR.Size - VT(0.2 * TORSO.Size.Z, 0, 0.2 * TORSO.Size.Z)
683
									end
684
									Soul(FLOOR.Position)
685
									SOUND:Stop()
686
									FLOOR:remove()
687
								end))
688
							end
689
						end
690
					end
691
				end
692
			end
693
		end
694
	end
695
end
696
function Wave()
697
	ATTACK = true
698
	Rooted = false
699
	for i = 0, 0.2, 0.1 / Animation_Speed do
700
		Swait()
701
		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)
702
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0) * ANGLES(RAD(0 + 4.5 * SIN(SINE / 12)), RAD(0), RAD(25 - 2.5 * SIN(SINE / 12))), 1 / Animation_Speed)
703
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5 + 0.25 * COS(SINE / 12), 0) * ANGLES(RAD(160), RAD(35 - 2.5 * SIN(SINE / 12)), RAD(5 + 7.5 * SIN(SINE / 12))) * RIGHTSHOULDERC0, 1 / Animation_Speed)
704
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5 + 0.25 * COS(SINE / 12), 0) * ANGLES(RAD(0), RAD(35 + 2.5 * SIN(SINE / 12)), RAD(-5 - 7.5 * SIN(SINE / 12))) * LEFTSHOULDERC0, 1 / Animation_Speed)
705
		RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, -0.01) * ANGLES(RAD(-2.5 * SIN(SINE / 12)), RAD(75), RAD(0)) * ANGLES(RAD(17 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
706
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -0.5, -0.5) * ANGLES(RAD(-2.5 * SIN(SINE / 12)), RAD(-90), RAD(0)) * ANGLES(RAD(17 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
707
	end
708
	HITFLOOR, HITPOS = Raycast(Mouse.Hit.p + VT(0, 1, 0), CF(RootPart.Position, RootPart.Position + VT(0, -1, 0)).lookVector, 150, Character)
709
	if HITFLOOR and HITFLOOR.Anchored == true then
710
		do
711
			local NEWFLOOR = CreatePart(3, Effects, "Neon", 0, 0, "White", "Floor", VT(0, 0, 0), true)
712
			NEWFLOOR.Color = C3(0, 0, 0)
713
			MakeForm(NEWFLOOR, "Cyl")
714
			NEWFLOOR.CFrame = CF(HITPOS)
715
			CreateSound(1110489303, NEWFLOOR, 4, 1, false)
716
			coroutine.resume(coroutine.create(function()
717
				for i = 1, 25 do
718
					Swait()
719
					Blob(NEWFLOOR.Position, NEWFLOOR.Size.X / 2)
720
					NEWFLOOR.Size = NEWFLOOR.Size + VT(0.6, 0, 0.6)
721
				end
722
				for i = 1, 450 do
723
					Swait()
724
					Blob(NEWFLOOR.Position, NEWFLOOR.Size.X / 2)
725
					NEWFLOOR.Size = VT(15, 0, 15) + VT(0.1 * SIN(SINE / 12), 0, 0.1 * SIN(SINE / 12))
726
				end
727
				local SIZE = NEWFLOOR.Size.X
728
				for i = 1, 70 do
729
					Swait()
730
					Blob(NEWFLOOR.Position, NEWFLOOR.Size.X / 2)
731
					NEWFLOOR.Size = NEWFLOOR.Size - VT(SIZE / 70, 0, SIZE / 70)
732
				end
733
				NEWFLOOR:remove()
734
			end))
735
		end
736
	end
737
	for i = 0, 0.3, 0.1 / Animation_Speed do
738
		Swait()
739
		RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0, 0, 0 + 0.25 * COS(SINE / 12)) * ANGLES(RAD(65 + 2.5 * SIN(SINE / 12)), RAD(0), RAD(5 + 2.5 * SIN(SINE / 12))), 1 / Animation_Speed)
740
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0) * ANGLES(RAD(-25 + 4.5 * SIN(SINE / 12)), RAD(0), RAD(25 - 2.5 * SIN(SINE / 12))), 1 / Animation_Speed)
741
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.25, 0.5 + 0.25 * COS(SINE / 12), -0.5) * ANGLES(RAD(45), RAD(35 - 2.5 * SIN(SINE / 12)), RAD(5 + 7.5 * SIN(SINE / 12))) * RIGHTSHOULDERC0, 1 / Animation_Speed)
742
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5 + 0.25 * COS(SINE / 12), 0) * ANGLES(RAD(0), RAD(35 + 2.5 * SIN(SINE / 12)), RAD(-5 - 7.5 * SIN(SINE / 12))) * LEFTSHOULDERC0, 1 / Animation_Speed)
743
		RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, -0.01) * ANGLES(RAD(-2.5 * SIN(SINE / 12)), RAD(75), RAD(0)) * ANGLES(RAD(17 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
744
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -0.5, -0.5) * ANGLES(RAD(-2.5 * SIN(SINE / 12)), RAD(-90), RAD(0)) * ANGLES(RAD(17 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
745
	end
746
	ATTACK = false
747
	Rooted = false
748
end
749
function Teleport()
750
	local POS = Mouse.Hit.p + VT(0, 4, 0)
751
	HITFLOOR, HITPOS = Raycast(POS, CF(RootPart.Position, RootPart.Position + VT(0, -1, 0)).lookVector, 15, Character)
752
	if HITFLOOR and HITFLOOR.Anchored == true then
753
		ATTACK = true
754
		Rooted = true
755
		do
756
			local CLERPTO = CF(POS, VT(RootPart.Position.X, POS.Y, RootPart.Position.Z))
757
			UNANCHOR = false
758
			for i = 0, 0.3, 0.1 / Animation_Speed do
759
				Swait()
760
				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)
761
				Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0) * ANGLES(RAD(0 + 4.5 * SIN(SINE / 12)), RAD(0), RAD(25 - 2.5 * SIN(SINE / 12))), 1 / Animation_Speed)
762
				RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5 + 0.25 * COS(SINE / 12), 0) * ANGLES(RAD(0), RAD(25 - 2.5 * SIN(SINE / 12)), RAD(5 + 7.5 * SIN(SINE / 12))) * RIGHTSHOULDERC0, 1 / Animation_Speed)
763
				LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5 + 0.25 * COS(SINE / 12), 0) * ANGLES(RAD(0), RAD(25 + 2.5 * SIN(SINE / 12)), RAD(-5 - 7.5 * SIN(SINE / 12))) * LEFTSHOULDERC0, 1 / Animation_Speed)
764
				RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, -0.01) * ANGLES(RAD(-2.5 * SIN(SINE / 12)), RAD(75), RAD(0)) * ANGLES(RAD(17 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
765
				LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -0.5, -0.5) * ANGLES(RAD(-2.5 * SIN(SINE / 12)), RAD(-90), RAD(0)) * ANGLES(RAD(17 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
766
			end
767
			for i = 1, 70 do
768
				Swait()
769
				RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0, 0, 0 + 0.25 * COS(SINE / 12)) * ANGLES(RAD(180), RAD(0), RAD(5 + 2.5 * SIN(SINE / 12))), i / 70 / 2 / Animation_Speed)
770
				Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0) * ANGLES(RAD(0 + 4.5 * SIN(SINE / 12)), RAD(0), RAD(25 - 2.5 * SIN(SINE / 12))), 1 / Animation_Speed)
771
				RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.15, 1, 0) * ANGLES(RAD(180), RAD(0), RAD(-45)) * RIGHTSHOULDERC0, i / 70 / 2 / Animation_Speed)
772
				LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.15, 1, 0) * ANGLES(RAD(180), RAD(0), RAD(45)) * LEFTSHOULDERC0, i / 70 / 2 / Animation_Speed)
773
				RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, -0.01) * ANGLES(RAD(-2.5 * SIN(SINE / 12)), RAD(75), RAD(0)) * ANGLES(RAD(2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), i / 70 / 2 / Animation_Speed)
774
				LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -0.5, -0.5) * ANGLES(RAD(-2.5 * SIN(SINE / 12)), RAD(-90), RAD(0)) * ANGLES(RAD(2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), i / 70 / 2 / Animation_Speed)
775
			end
776
			for i = 0, 0.6, 0.1 / Animation_Speed do
777
				Swait()
778
				RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0, 0, -7) * ANGLES(RAD(180), RAD(0), RAD(5 + 2.5 * SIN(SINE / 12))), 0.5 / Animation_Speed)
779
				Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0) * ANGLES(RAD(0 + 4.5 * SIN(SINE / 12)), RAD(0), RAD(25 - 2.5 * SIN(SINE / 12))), 1 / Animation_Speed)
780
				RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.15, 1, 0) * ANGLES(RAD(180), RAD(0), RAD(-45)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
781
				LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.15, 1, 0) * ANGLES(RAD(180), RAD(0), RAD(45)) * LEFTSHOULDERC0, 1 / Animation_Speed)
782
				RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, -0.01) * ANGLES(RAD(-2.5 * SIN(SINE / 12)), RAD(75), RAD(0)) * ANGLES(RAD(2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
783
				LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -0.5, -0.5) * ANGLES(RAD(-2.5 * SIN(SINE / 12)), RAD(-90), RAD(0)) * ANGLES(RAD(2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
784
			end
785
			CreateSound(1110489303, FLOOR, 7, 0.7, false)
786
			local NEWFLOOR = CreatePart(3, Effects, "Neon", 0, 0, "White", "Floor", VT(15, 0, 15), true)
787
			NEWFLOOR.Color = C3(0, 0, 0)
788
			MakeForm(NEWFLOOR, "Cyl")
789
			NEWFLOOR.CFrame = FLOOR.CFrame
790
			coroutine.resume(coroutine.create(function()
791
				for i = 1, 450 do
792
					Swait()
793
					Blob(NEWFLOOR.Position, NEWFLOOR.Size.X / 2)
794
					NEWFLOOR.Size = VT(15, 0, 15) + VT(0.1 * SIN(SINE / 12), 0, 0.1 * SIN(SINE / 12))
795
				end
796
				local SIZE = NEWFLOOR.Size.X
797
				for i = 1, 70 do
798
					Swait()
799
					Blob(NEWFLOOR.Position, NEWFLOOR.Size.X / 2)
800
					NEWFLOOR.Size = NEWFLOOR.Size - VT(SIZE / 70, 0, SIZE / 70)
801
				end
802
				NEWFLOOR:remove()
803
			end))
804
			for _, c in pairs(Character:GetChildren()) do
805
				if c:IsA("BasePart") and c ~= RootPart then
806
					c.Transparency = 1
807
				end
808
			end
809
			for i = 1, 170 do
810
				Swait()
811
				RootPart.CFrame = Clerp(RootPart.CFrame, CLERPTO, 0.05)
812
			end
813
			for _, c in pairs(Character:GetChildren()) do
814
				if c:IsA("BasePart") and c ~= RootPart then
815
					c.Transparency = 0
816
				end
817
			end
818
			CreateSound(649634100, Head, 4, 0.8, false)
819
			for i = 0, 0.3, 0.1 / Animation_Speed do
820
				Swait()
821
				RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0, 0, 0 + 0.25 * COS(SINE / 12)) * ANGLES(RAD(-35 + 2.5 * SIN(SINE / 12)), RAD(0), RAD(5 + 2.5 * SIN(SINE / 12))), 0.3 / Animation_Speed)
822
				Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0) * ANGLES(RAD(-25 + 4.5 * SIN(SINE / 12)), RAD(0), RAD(25 - 2.5 * SIN(SINE / 12))), 0.3 / Animation_Speed)
823
				RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5 + 0.25 * COS(SINE / 12), 0) * ANGLES(RAD(0), RAD(-35 - 2.5 * SIN(SINE / 12)), RAD(5 + 7.5 * SIN(SINE / 12))) * RIGHTSHOULDERC0, 0.3 / Animation_Speed)
824
				LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5 + 0.25 * COS(SINE / 12), 0) * ANGLES(RAD(0), RAD(-35 + 2.5 * SIN(SINE / 12)), RAD(-5 - 7.5 * SIN(SINE / 12))) * LEFTSHOULDERC0, 0.3 / Animation_Speed)
825
				RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, -0.01) * ANGLES(RAD(-2.5 * SIN(SINE / 12)), RAD(75), RAD(0)) * ANGLES(RAD(-33 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 0.3 / Animation_Speed)
826
				LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -0.5, -0.5) * ANGLES(RAD(-2.5 * SIN(SINE / 12)), RAD(-90), RAD(0)) * ANGLES(RAD(-33 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 0.3 / Animation_Speed)
827
			end
828
			for i = 0, 0.6, 0.1 / Animation_Speed do
829
				Swait()
830
				RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0, 0, 0 + 0.25 * COS(SINE / 12)) * ANGLES(RAD(0 + 2.5 * SIN(SINE / 12)), RAD(0), RAD(5 + 2.5 * SIN(SINE / 12))), 0.3 / Animation_Speed)
831
				Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0) * ANGLES(RAD(-25 + 4.5 * SIN(SINE / 12)), RAD(0), RAD(25 - 2.5 * SIN(SINE / 12))), 0.3 / Animation_Speed)
832
				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, 0.3 / Animation_Speed)
833
				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, 0.3 / Animation_Speed)
834
				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)), 0.3 / Animation_Speed)
835
				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)), 0.3 / Animation_Speed)
836
			end
837
			UNANCHOR = true
838
			ATTACK = false
839
			Rooted = false
840
		end
841
	end
842
end
843
function Open()
844
	ATTACK = true
845
	Rooted = true
846
	HOLE = true
847
	CreateSound(649634100, Head, 4, 0.8, false)
848
	for i = 0, 1, 0.1 / Animation_Speed do
849
		Swait()
850
		RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0, 0, -2) * ANGLES(RAD(65 + 2.5 * SIN(SINE / 12)), RAD(0), RAD(35 + 2.5 * SIN(SINE / 12))), 0.3 / Animation_Speed)
851
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0) * ANGLES(RAD(0 + 4.5 * SIN(SINE / 12)), RAD(0), RAD(25 - 2.5 * SIN(SINE / 12))), 1 / Animation_Speed)
852
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.25, 0.5 + 0.25 * COS(SINE / 12), -0.3) * ANGLES(RAD(65), RAD(35 - 2.5 * SIN(SINE / 12)), RAD(35 + 7.5 * SIN(SINE / 12))) * RIGHTSHOULDERC0, 1 / Animation_Speed)
853
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5 + 0.25 * COS(SINE / 12), 0) * ANGLES(RAD(0), RAD(35 + 2.5 * SIN(SINE / 12)), RAD(-5 - 7.5 * SIN(SINE / 12))) * LEFTSHOULDERC0, 1 / Animation_Speed)
854
		RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, -0.01) * ANGLES(RAD(-2.5 * SIN(SINE / 12)), RAD(75), RAD(0)) * ANGLES(RAD(17 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
855
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -0.5, -0.5) * ANGLES(RAD(-2.5 * SIN(SINE / 12)), RAD(-90), RAD(0)) * ANGLES(RAD(17 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
856
	end
857
	coroutine.resume(coroutine.create(function()
858
		for i = 1, 280 do
859
			Swait()
860
			SIZE = SIZE + 0.5
861
			WACKYEFFECT({
862
				Time = 15,
863
				EffectType = "Wave",
864
				Size = FLOOR.Size / 2,
865
				Size2 = FLOOR.Size * 1.02,
866
				Transparency = 0.8,
867
				Transparency2 = 1,
868
				CFrame = CF(FLOOR.Position) * ANGLES(RAD(0), RAD(MRANDOM(0, 360)), RAD(0)),
869
				MoveToPos = nil,
870
				RotationX = 0,
871
				RotationY = 2,
872
				RotationZ = 0,
873
				Material = "Neon",
874
				Color = C3(0, 0, 0),
875
				SoundID = nil,
876
				SoundPitch = nil,
877
				SoundVolume = nil
878
			})
879
		end
880
		wait(10)
881
		for i = 1, 560 do
882
			Swait()
883
			SIZE = SIZE - 0.25
884
		end
885
		HOLE = false
886
	end))
887
	for i = 0, 0.2, 0.1 / Animation_Speed do
888
		Swait()
889
		RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0, 0, -2) * ANGLES(RAD(65 + 2.5 * SIN(SINE / 12)), RAD(0), RAD(35 + 2.5 * SIN(SINE / 12))), 0.3 / Animation_Speed)
890
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0) * ANGLES(RAD(0 + 4.5 * SIN(SINE / 12)), RAD(0), RAD(25 - 2.5 * SIN(SINE / 12))), 1 / Animation_Speed)
891
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.25, 0.5 + 0.25 * COS(SINE / 12), -0.3) * ANGLES(RAD(65), RAD(35 - 2.5 * SIN(SINE / 12)), RAD(35 + 7.5 * SIN(SINE / 12))) * RIGHTSHOULDERC0, 1 / Animation_Speed)
892
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5 + 0.25 * COS(SINE / 12), 0) * ANGLES(RAD(0), RAD(35 + 2.5 * SIN(SINE / 12)), RAD(-5 - 7.5 * SIN(SINE / 12))) * LEFTSHOULDERC0, 1 / Animation_Speed)
893
		RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, -0.01) * ANGLES(RAD(-2.5 * SIN(SINE / 12)), RAD(75), RAD(0)) * ANGLES(RAD(17 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
894
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -0.5, -0.5) * ANGLES(RAD(-2.5 * SIN(SINE / 12)), RAD(-90), RAD(0)) * ANGLES(RAD(17 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
895
	end
896
	ATTACK = false
897
	Rooted = false
898
end
899
function Laugh()
900
	ATTACK = true
901
	Rooted = false
902
	CreateSound(649634100, Head, 4, 0.8, false)
903
	for i = 0, 1, 0.1 / Animation_Speed do
904
		Swait()
905
		RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0, 0, 0 + 0.25 * COS(SINE / 12)) * ANGLES(RAD(15 + 2.5 * SIN(SINE / 12)), RAD(0), RAD(5 + 2.5 * SIN(SINE / 12))), 1 / Animation_Speed)
906
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0) * ANGLES(RAD(-20 + 4.5 * SIN(SINE / 12)), RAD(0), RAD(-25 - 2.5 * SIN(SINE / 12))), 1 / Animation_Speed)
907
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.25, 0.5, 0) * ANGLES(RAD(180), RAD(35 - 2.5 * SIN(SINE / 12)), RAD(-35 + 7.5 * SIN(SINE / 12))) * RIGHTSHOULDERC0, 1 / Animation_Speed)
908
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5 + 0.25 * COS(SINE / 12), 0) * ANGLES(RAD(0), RAD(35 + 2.5 * SIN(SINE / 12)), RAD(-5 - 7.5 * SIN(SINE / 12))) * LEFTSHOULDERC0, 1 / Animation_Speed)
909
		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 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
910
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -0.5, -0.5) * ANGLES(RAD(25 - 2.5 * SIN(SINE / 12)), RAD(-90), RAD(0)) * ANGLES(RAD(-8 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
911
	end
912
	ATTACK = false
913
	Rooted = false
914
end
915
function MouseDown(Mouse)
916
	if ATTACK == false then
917
	end
918
end
919
function MouseUp(Mouse)
920
	HOLD = false
921
end
922
function KeyDown(Key)
923
	KEYHOLD = true
924
	if Key == "z" and ATTACK == false then
925
		Wave()
926
	end
927
	if Key == "b" and ATTACK == false and HOLE == false then
928
		Teleport()
929
	end
930
	if Key == "c" and ATTACK == false and HOLE == false then
931
		Open()
932
	end
933
	if Key == "t" and ATTACK == false then
934
		Laugh()
935
	end
936
end
937
function KeyUp(Key)
938
	KEYHOLD = false
939
end
940
Mouse.Button1Down:connect(function(NEWKEY)
941
	MouseDown(NEWKEY)
942
end)
943
Mouse.Button1Up:connect(function(NEWKEY)
944
	MouseUp(NEWKEY)
945
end)
946
Mouse.KeyDown:connect(function(NEWKEY)
947
	KeyDown(NEWKEY)
948
end)
949
Mouse.KeyUp:connect(function(NEWKEY)
950
	KeyUp(NEWKEY)
951
end)
952
function unanchor()
953
	for _, c in pairs(Character:GetChildren()) do
954
		if c:IsA("BasePart") and c ~= RootPart then
955
			c.Anchored = false
956
		end
957
	end
958
	if UNANCHOR == true then
959
		RootPart.Anchored = false
960
	else
961
		RootPart.Anchored = true
962
	end
963
end
964
Humanoid.Changed:connect(function(Jump)
965
	if Jump == "Jump" and Disable_Jump == true then
966
		Humanoid.Jump = false
967
	end
968
end)
969
while true do
970
	Swait()
971
	Humanoid.HipHeight = 1
972
	script.Parent = WEAPONGUI
973
	SINE = SINE + CHANGE * 1.2
974
	local TORSOVELOCITY = (RootPart.Velocity * VT(1, 0, 1)).magnitude
975
	local TORSOVERTICALVELOCITY = RootPart.Velocity.y
976
	HITFLOOR, HITPOS, NORMAL = Raycast(RootPart.Position, CF(RootPart.Position, RootPart.Position + VT(0, -1, 0)).lookVector, 15, Character)
977
	if HITFLOOR then
978
		HITFLOOR2, HITPOS2 = Raycast(FLOOR.Position + VT(0, 0.2, 0), CF(RootPart.Position, RootPart.Position + VT(0, -1, 0)).lookVector, 2, Character)
979
		if HITFLOOR2 then
980
			FLOOR.Transparency = 0
981
		else
982
			FLOOR.Transparency = 1
983
		end
984
		FLOOR.CFrame = Clerp(FLOOR.CFrame, CF(HITPOS, HITPOS + NORMAL) * ANGLES(RAD(-90), RAD(0), RAD(0)), 0.1)
985
		Blob(FLOOR.Position, FLOOR.Size.X / 2)
986
	end
987
	if ATTACK == false then
988
		if TORSOVELOCITY < 1 then
989
			RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0, 0, 0 + 0.25 * COS(SINE / 12)) * ANGLES(RAD(35 + 2.5 * SIN(SINE / 12)), RAD(0), RAD(5 + 2.5 * SIN(SINE / 12))), 1 / Animation_Speed)
990
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0) * ANGLES(RAD(0 + 4.5 * SIN(SINE / 12)), RAD(0), RAD(25 - 2.5 * SIN(SINE / 12))), 1 / Animation_Speed)
991
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.35 + 0.25 * COS(SINE / 12), 0) * ANGLES(RAD(35), RAD(0 - 2.5 * SIN(SINE / 12)), RAD(5 + 7.5 * SIN(SINE / 12))) * RIGHTSHOULDERC0, 1 / Animation_Speed)
992
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.35 + 0.25 * COS(SINE / 12), 0) * ANGLES(RAD(35), RAD(0 + 2.5 * SIN(SINE / 12)), RAD(-5 - 7.5 * SIN(SINE / 12))) * LEFTSHOULDERC0, 1 / Animation_Speed)
993
			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 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
994
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -0.5, -0.5) * ANGLES(RAD(25 - 2.5 * SIN(SINE / 12)), RAD(-90), RAD(0)) * ANGLES(RAD(-8 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
995
		elseif TORSOVELOCITY > 1 then
996
			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)
997
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0) * ANGLES(RAD(-25 + 4.5 * SIN(SINE / 12)), RAD(0), RAD(-5 - 2.5 * SIN(SINE / 12))), 1 / Animation_Speed)
998
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.35 + 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)
999
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.35 + 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)
1000
			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)
1001
			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)
1002
		end
1003
	end
1004
	unanchor()
1005
	Humanoid.Name = "Absylum"
1006-
	Humanoid.MaxHealth = 700000000
1006+
	Humanoid.MaxHealth = 99999999999999999999999999999999999999999999999999999999999999999999999999999
1007-
	Humanoid.Health = 700000000
1007+
	Humanoid.Health = 99999999999999999999999999999999999999999999999999999999999999999999999999999
1008
	if Rooted == false then
1009
		Disable_Jump = false
1010
		Humanoid.WalkSpeed = Speed
1011
	elseif Rooted == true then
1012
		Disable_Jump = true
1013
		Humanoid.WalkSpeed = 0
1014
	end
1015
	FLOOR.Size = VT(SIZE, 0, SIZE) + VT(0.1 * SIN(SINE / 12), 0, 0.1 * SIN(SINE / 12))
1016-
	sick.SoundId = "rbxassetid://601069330"
1016+
	sick.SoundId = "rbxassetid://417477650"
1017
	sick.Looped = true
1018
	sick.Pitch = 1
1019
	sick.Volume = 1
1020
	sick.Playing = true
1021
	sick.Parent = Character
1022
	for _, c in pairs(Character:GetChildren()) do
1023
		if c.ClassName == "Part" and c.Name ~= "Eye" then
1024
			c.Material = "Neon"
1025
			if c:FindFirstChildOfClass("ParticleEmitter") then
1026
				c:FindFirstChildOfClass("ParticleEmitter"):remove()
1027
			end
1028
			c.Color = C3(0, 0, 0)
1029
			if c == Head then
1030
				if c:FindFirstChildOfClass("SpecialMesh") then
1031
					c:ClearAllChildren()
1032
					local MSH = IT("BlockMesh", c)
1033
					MSH.Scale = VT(0.5, 1, 1)
1034
				end
1035
				if c:FindFirstChild("face") then
1036
					c.face:remove()
1037
				end
1038
			end
1039
		elseif c.ClassName == "CharacterMesh" or c.ClassName == "Accessory" or c.Name == "Body Colors" then
1040
			c:remove()
1041
		elseif (c.ClassName == "Shirt" or c.ClassName == "Pants") and c.Name ~= "Cloth" then
1042
			c:remove()
1043
		end
1044
	end
1045
end