View difference between Paste ID: qWfsMe4q and NQjuyNzc
SHOW: | | - or go back to the newest paste.
1
2-
--||			   CREATED BY SHACKLUSTER
2+
3-
--\\====================================================//--
3+
if game:GetService("RunService"):IsClient() then error("Script must be server-side in order to work; use h/ and not hl/") end
4
print(" this script was converted by An ignorant / zach ")
5
warn(" credits goes to SHACKLUSTER [ Creator ] ")
6
warn(" pls dont abuse ")
7
warn(" i beg u ")
8
local Player,game,owner = owner,game
9
local RealPlayer = Player
10
do
11
    print("FE Compatibility code by Mokiros")
12
    local rp = RealPlayer
13
    script.Parent = rp.Character
14
   
15
    --RemoteEvent for communicating
16
    local Event = Instance.new("RemoteEvent")
17
    Event.Name = "UserInput_Event"
18
 
19
    --Fake event to make stuff like Mouse.KeyDown work
20
    local function fakeEvent()
21
        local t = {_fakeEvent=true,Functions={},Connect=function(self,f)table.insert(self.Functions,f) end}
22
        t.connect = t.Connect
23
        return t
24
    end
25
 
26
    --Creating fake input objects with fake variables
27
    local m = {Target=nil,Hit=CFrame.new(),KeyUp=fakeEvent(),KeyDown=fakeEvent(),Button1Up=fakeEvent(),Button1Down=fakeEvent()}
28
    local UIS = {InputBegan=fakeEvent(),InputEnded=fakeEvent()}
29
    local CAS = {Actions={},BindAction=function(self,name,fun,touch,...)
30
        CAS.Actions[name] = fun and {Name=name,Function=fun,Keys={...}} or nil
31
    end}
32
    --Merged 2 functions into one by checking amount of arguments
33
    CAS.UnbindAction = CAS.BindAction
34
 
35
    --This function will trigger the events that have been :Connect()'ed
36
    local function te(self,ev,...)
37
        local t = m[ev]
38
        if t and t._fakeEvent then
39
            for _,f in pairs(t.Functions) do
40
                f(...)
41
            end
42
        end
43
    end
44
    m.TrigEvent = te
45
    UIS.TrigEvent = te
46
 
47
    Event.OnServerEvent:Connect(function(plr,io)
48
        if plr~=rp then return end
49
        m.Target = io.Target
50
        m.Hit = io.Hit
51
        if not io.isMouse then
52
            local b = io.UserInputState == Enum.UserInputState.Begin
53
            if io.UserInputType == Enum.UserInputType.MouseButton1 then
54
                return m:TrigEvent(b and "Button1Down" or "Button1Up")
55
            end
56
            for _,t in pairs(CAS.Actions) do
57
                for _,k in pairs(t.Keys) do
58
                    if k==io.KeyCode then
59
                        t.Function(t.Name,io.UserInputState,io)
60
                    end
61
                end
62
            end
63
            m:TrigEvent(b and "KeyDown" or "KeyUp",io.KeyCode.Name:lower())
64
            UIS:TrigEvent(b and "InputBegan" or "InputEnded",io,false)
65
        end
66
    end)
67
    Event.Parent = NLS([==[
68
    local Player = game:GetService("Players").LocalPlayer
69
    local Event = script:WaitForChild("UserInput_Event")
70
 
71
    local Mouse = Player:GetMouse()
72
    local UIS = game:GetService("UserInputService")
73
    local input = function(io,a)
74
        if a then return end
75
        --Since InputObject is a client-side instance, we create and pass table instead
76
        Event:FireServer({KeyCode=io.KeyCode,UserInputType=io.UserInputType,UserInputState=io.UserInputState,Hit=Mouse.Hit,Target=Mouse.Target})
77
    end
78
    UIS.InputBegan:Connect(input)
79
    UIS.InputEnded:Connect(input)
80
 
81
    local h,t
82
    --Give the server mouse data 30 times every second, but only if the values changed
83
    --If player is not moving their mouse, client won't fire events
84
    while wait(1/30) do
85
        if h~=Mouse.Hit or t~=Mouse.Target then
86
            h,t=Mouse.Hit,Mouse.Target
87
            Event:FireServer({isMouse=true,Target=t,Hit=h})
88
        end
89
    end]==],Player.Character)
90
 
91
    ----Sandboxed game object that allows the usage of client-side methods and services
92
    --Real game object
93
    local _rg = game
94
 
95
    --Metatable for fake service
96
    local fsmt = {
97
        __index = function(self,k)
98
            local s = rawget(self,"_RealService")
99
            if s then return s[k] end
100
        end,
101
        __newindex = function(self,k,v)
102
            local s = rawget(self,"_RealService")
103
            if s then s[k]=v end
104
        end,
105
        __call = function(self,...)
106
            local s = rawget(self,"_RealService")
107
            if s then return s(...) end
108
        end
109
    }
110
    local function FakeService(t,RealService)
111
        t._RealService = typeof(RealService)=="string" and _rg:GetService(RealService) or RealService
112
        return setmetatable(t,fsmt)
113
    end
114
 
115
    --Fake game object
116
    local g = {
117
        GetService = function(self,s)
118
            return self[s]
119
        end,
120
        Players = FakeService({
121
            LocalPlayer = FakeService({GetMouse=function(self)return m end},Player)
122
        },"Players"),
123
        UserInputService = FakeService(UIS,"UserInputService"),
124
        ContextActionService = FakeService(CAS,"ContextActionService"),
125
    }
126
    rawset(g.Players,"localPlayer",g.Players.LocalPlayer)
127
    g.service = g.GetService
128
   
129
    g.RunService = FakeService({
130
        RenderStepped = _rg:GetService("RunService").Heartbeat,
131
        BindToRenderStep = function(self,name,_,fun)
132
 
133
        end,
134
        UnbindFromRenderStep = function(self,name)
135
            self._btrs[name]:Disconnect()
136
        end,
137
    },"RunService")
138
 
139
    setmetatable(g,{
140
        __index=function(self,s)
141
            return _rg:GetService(s) or typeof(_rg[s])=="function"
142
            and function(_,...)return _rg[s](_rg,...)end or _rg[s]
143
        end,
144
        __newindex = fsmt.__newindex,
145
        __call = fsmt.__call
146
    })
147
    --Changing owner to fake player object to support owner:GetMouse()
148
    game,owner = g,g.Players.LocalPlayer
149
end
150
151
152
153
154
155
156
Player = game.Players.LocalPlayer
157
    Character = Player.Character
158
    local txt = Instance.new("BillboardGui", Character)
159
    txt.Adornee = Character.Head
160
    txt.Name = "_status"
161
    txt.Size = UDim2.new(2, 0, 1.2, 0)
162
    txt.StudsOffset = Vector3.new(-9, 8, 0)
163
    local text = Instance.new("TextLabel", txt)
164
    text.Size = UDim2.new(10, 0, 7, 0)
165
    text.FontSize = "Size24"
166
    text.TextScaled = true
167
    text.TextTransparency = 0
168
    text.BackgroundTransparency = 10
169
    text.TextTransparency = 0
170
    text.TextStrokeTransparency = 0
171
    text.Font = "Antique"
172
    text.TextStrokeColor3 = Color3.new(0,0,0)
173
        text.Text = "Terra God"
174
175
176
local createstuff = function()
177
	local stuff = Instance.new("Model")
178
local collar = Instance.new("Part")
179
local mesh = Instance.new("FileMesh")
180
local part = Instance.new("Part")
181
local mesh_2 = Instance.new("CylinderMesh")
182
local weld = Instance.new("ManualWeld")
183
local eye = Instance.new("Part")
184
local mesh_3 = Instance.new("SpecialMesh")
185
local decal = Instance.new("Decal")
186
local hood = Instance.new("Part")
187
local mesh_4 = Instance.new("FileMesh")
188
local pillar = Instance.new("Part")
189
local rock = Instance.new("Part")
190
local core = Instance.new("Attachment")
191
local emit = Instance.new("ParticleEmitter")
192
local mesh_5 = Instance.new("FileMesh")
193
local rockspike = Instance.new("Part")
194
local mesh_6 = Instance.new("SpecialMesh")
195
local shield = Instance.new("Part")
196
local core_2 = Instance.new("Attachment")
197
local spinepart = Instance.new("Part")
198
local mesh_7 = Instance.new("FileMesh")
199
local pants = Instance.new("Pants")
200
local shirt = Instance.new("Shirt")
201
local emit_2 = Instance.new("ParticleEmitter")
202
local vortex = Instance.new("ParticleEmitter")
203
local wave = Instance.new("ParticleEmitter")
204
205
stuff.Name = "Stuff"
206
stuff.Parent = workspace
207
collar.Size = Vector3.new(2.06, 0.2, 2.06)
208
collar.Name = "Collar"
209
collar.Material = Enum.Material.Metal
210
collar.TopSurface = Enum.SurfaceType.Smooth
211
collar.BottomSurface = Enum.SurfaceType.Smooth
212
collar.Parent = stuff
213
collar.CFrame = CFrame.new(5.8, 46.2, -39.9)
214
mesh.MeshId = "rbxassetid://1861264141"
215
mesh.Parent = collar
216
part.Size = Vector3.new(1.3, 0.2, 1.3)
217
part.BrickColor = BrickColor.new("Really black")
218
part.Color = Color3.new(0.109804, 0.0823529, 0.117647)
219
part.Material = Enum.Material.Metal
220
part.TopSurface = Enum.SurfaceType.Smooth
221
part.BottomSurface = Enum.SurfaceType.Smooth
222
part.Parent = collar
223
part.CFrame = CFrame.new(5.8, 46.2, -39.9)
224
mesh_2.Scale = Vector3.new(1.1, 1.1, 1.1)
225
mesh_2.Parent = part
226
weld.Part0 = collar
227
weld.Name = "Weld"
228
weld.Part1 = part
229
weld.Parent = collar
230
eye.Anchored = true
231
eye.Size = Vector3.new(2, 2, 2)
232
eye.BottomSurface = Enum.SurfaceType.Smooth
233
eye.Material = Enum.Material.SmoothPlastic
234
eye.Color = Color3.new(0.972549, 0.972549, 0.972549)
235
eye.Name = "Eye"
236
eye.TopSurface = Enum.SurfaceType.Smooth
237
eye.BrickColor = BrickColor.new("Institutional white")
238
eye.Parent = stuff
239
eye.CFrame = CFrame.new(9.8, 45.845, -47.125) * CFrame.Angles(0, 0, 0)
240
mesh_3.MeshType = Enum.MeshType.Sphere
241
mesh_3.Parent = eye
242
decal.Texture = "http://www.roblox.com/asset/?id=743271416"
243
decal.Parent = eye
244
hood.Size = Vector3.new(2.919, 2.394, 2.891)
245
hood.BottomSurface = Enum.SurfaceType.Smooth
246
hood.Material = Enum.Material.SmoothPlastic
247
hood.Color = Color3.new(0.0666667, 0.0666667, 0.0666667)
248
hood.BrickColor = BrickColor.new("Really black")
249
hood.TopSurface = Enum.SurfaceType.Smooth
250
hood.Name = "Hood"
251
hood.Parent = stuff
252
hood.CFrame = CFrame.new(9.8, 44.1, -48.7)
253
mesh_4.Scale = Vector3.new(1.55, 1.44, 1.4)
254
mesh_4.MeshId = "rbxassetid://16952952"
255
mesh_4.Parent = hood
256
pillar.Size = Vector3.new(1, 1, 1)
257
pillar.Name = "Pillar"
258
pillar.Material = Enum.Material.Metal
259
pillar.TopSurface = Enum.SurfaceType.Smooth
260
pillar.BottomSurface = Enum.SurfaceType.Smooth
261
pillar.Parent = stuff
262
pillar.CFrame = CFrame.new(-26.77, 0.5, -37.02)
263
rock.Size = Vector3.new(2.03, 1.978, 2.057)
264
rock.BottomSurface = Enum.SurfaceType.Smooth
265
rock.Name = "Rock"
266
rock.TopSurface = Enum.SurfaceType.Smooth
267
rock.Parent = stuff
268
rock.CFrame = CFrame.new(-0.43, 45.908, -52.56)
269
core.Name = "Core"
270
core.Parent = rock
271
emit.Enabled = false
272
emit.Lifetime = NumberRange.new(1, 4)
273
emit.Name = "Emit"
274
emit.Speed = NumberRange.new(0, 35)
275
emit.Rotation = NumberRange.new(0, 360)
276
emit.Transparency = NumberSequence.new({NumberSequenceKeypoint.new(0, 1), NumberSequenceKeypoint.new(0.037, 0.754), NumberSequenceKeypoint.new(0.067, 0), NumberSequenceKeypoint.new(1, 0)})
277
emit.VelocitySpread = 360
278
emit.Texture = "rbxassetid://281633012"
279
emit.Acceleration = Vector3.new(0, -15, 0)
280
emit.Color = ColorSequence.new(Color3.new(0.423529, 0.345098, 0.294118), Color3.new(0.423529, 0.345098, 0.294118))
281
emit.RotSpeed = NumberRange.new(-25, 25)
282
emit.SpreadAngle = Vector2.new(360, 360)
283
emit.Size = NumberSequence.new({NumberSequenceKeypoint.new(0, 3), NumberSequenceKeypoint.new(0.255, 3.06), NumberSequenceKeypoint.new(0.649, 2.131), NumberSequenceKeypoint.new(1, 0)})
284
emit.Parent = core
285
mesh_5.MeshId = "rbxassetid://1861108040"
286
mesh_5.Parent = rock
287
rockspike.Anchored = true
288
rockspike.Size = Vector3.new(3.364, 20, 3.364)
289
rockspike.BottomSurface = Enum.SurfaceType.Smooth
290
rockspike.Material = Enum.Material.Grass
291
rockspike.Color = Color3.new(0.423529, 0.345098, 0.294118)
292
rockspike.Name = "RockSpike"
293
rockspike.TopSurface = Enum.SurfaceType.Smooth
294
rockspike.BrickColor = BrickColor.new("Pine Cone")
295
rockspike.Parent = stuff
296
rockspike.CFrame = CFrame.new(-0.43, 46.208, -29.96)
297
mesh_6.TextureId = "rbxassetid://136560096"
298
mesh_6.MeshType = Enum.MeshType.FileMesh
299
mesh_6.MeshId = "rbxassetid://1861231635"
300
mesh_6.Parent = rockspike
301
shield.Size = Vector3.new(1, 1, 1)
302
shield.Name = "Shield"
303
shield.Material = Enum.Material.Metal
304
shield.TopSurface = Enum.SurfaceType.Smooth
305
shield.BottomSurface = Enum.SurfaceType.Smooth
306
shield.Parent = stuff
307
shield.CFrame = CFrame.new(-26.77, 0.5, -37.02)
308
core_2.Name = "Core"
309
core_2.Parent = shield
310
spinepart.CanCollide = false
311
spinepart.Size = Vector3.new(0.3, 0.3, 0.6)
312
spinepart.BrickColor = BrickColor.new("Institutional white")
313
spinepart.BottomSurface = Enum.SurfaceType.Smooth
314
spinepart.Color = Color3.new(0.972549, 0.972549, 0.972549)
315
spinepart.Name = "SpinePart"
316
spinepart.TopSurface = Enum.SurfaceType.Smooth
317
spinepart.Parent = stuff
318
spinepart.CFrame = CFrame.new(-24.33, 46.208, -52.56)
319
mesh_7.MeshId = "rbxassetid://1861166416"
320
mesh_7.Parent = spinepart
321
pants.Name = "Pants"
322
pants.PantsTemplate = "http://www.roblox.com/asset/?id=1614573917"
323
pants.Parent = stuff
324
shirt.Name = "Shirt"
325
shirt.ShirtTemplate = "http://www.roblox.com/asset/?id=1604092628"
326
shirt.Parent = stuff
327
emit_2.Enabled = false
328
emit_2.Lifetime = NumberRange.new(1, 4)
329
emit_2.Name = "Emit"
330
emit_2.Speed = NumberRange.new(0, 35)
331
emit_2.Rotation = NumberRange.new(0, 360)
332
emit_2.Transparency = NumberSequence.new({NumberSequenceKeypoint.new(0, 1), NumberSequenceKeypoint.new(0.037, 0.754), NumberSequenceKeypoint.new(0.067, 0), NumberSequenceKeypoint.new(1, 0)})
333
emit_2.VelocitySpread = 360
334
emit_2.Texture = "rbxassetid://281633012"
335
emit_2.Acceleration = Vector3.new(0, -15, 0)
336
emit_2.Color = ColorSequence.new(Color3.new(0.423529, 0.345098, 0.294118), Color3.new(0.423529, 0.345098, 0.294118))
337
emit_2.RotSpeed = NumberRange.new(-25, 25)
338
emit_2.SpreadAngle = Vector2.new(360, 360)
339
emit_2.Size = NumberSequence.new({NumberSequenceKeypoint.new(0, 1, 0.5), NumberSequenceKeypoint.new(1, 0)})
340
emit_2.Parent = stuff
341
vortex.Enabled = false
342
vortex.Name = "Vortex"
343
vortex.Transparency = NumberSequence.new({NumberSequenceKeypoint.new(0, 1), NumberSequenceKeypoint.new(0.3, 0.5), NumberSequenceKeypoint.new(1, 0.5)})
344
vortex.Lifetime = NumberRange.new(1)
345
vortex.Rate = 0
346
vortex.Speed = NumberRange.new(0)
347
vortex.Color = ColorSequence.new(Color3.new(0.423529, 0.345098, 0.294118), Color3.new(0.423529, 0.345098, 0.294118))
348
vortex.Rotation = NumberRange.new(0, 360)
349
vortex.ZOffset = -2
350
vortex.RotSpeed = NumberRange.new(360)
351
vortex.LightEmission = 1
352
vortex.Texture = "rbxassetid://1084969997"
353
vortex.LockedToPart = true
354
vortex.Size = NumberSequence.new({NumberSequenceKeypoint.new(0, 0), NumberSequenceKeypoint.new(1, 0)})
355
vortex.Parent = stuff
356
wave.Enabled = false
357
wave.Lifetime = NumberRange.new(0.3)
358
wave.Name = "Wave"
359
wave.Speed = NumberRange.new(0)
360
wave.LightEmission = 1
361
wave.Rate = 1
362
wave.Transparency = NumberSequence.new({NumberSequenceKeypoint.new(0, 0), NumberSequenceKeypoint.new(0.17, 0.393), NumberSequenceKeypoint.new(0.334, 0.661), NumberSequenceKeypoint.new(0.535, 0.836), NumberSequenceKeypoint.new(1, 1)})
363
wave.Texture = "rbxassetid://1084991215"
364
wave.Rotation = NumberRange.new(-180, 180)
365
wave.Size = NumberSequence.new({NumberSequenceKeypoint.new(0, 0), NumberSequenceKeypoint.new(1, 0)})
366
wave.ZOffset = 1
367
wave.Parent = stuff
368
for i,v in pairs(stuff:GetChildren()) do
369
	v.Parent = script
370
end
371
end
372
	
373
createstuff()
374
375
376
377
378
379
wait(0.2)
380
381
Player = game:GetService("Players").LocalPlayer
382
PlayerGui = Player.PlayerGui
383
Cam = workspace.CurrentCamera
384
Backpack = Player.Backpack
385
Character = Player.Character
386
Humanoid = Character.Humanoid
387
Mouse = Player:GetMouse()
388
RootPart = Character["HumanoidRootPart"]
389
Torso = Character["Torso"]
390
Head = Character["Head"]
391
RightArm = Character["Right Arm"]
392
LeftArm = Character["Left Arm"]
393
RightLeg = Character["Right Leg"]
394
LeftLeg = Character["Left Leg"]
395
RootJoint = RootPart["RootJoint"]
396
Neck = Torso["Neck"]
397
RightShoulder = Torso["Right Shoulder"]
398
LeftShoulder = Torso["Left Shoulder"]
399
RightHip = Torso["Right Hip"]
400
LeftHip = Torso["Left Hip"]
401
402
IT = Instance.new
403
CF = CFrame.new
404
VT = Vector3.new
405
RAD = math.rad
406
C3 = Color3.new
407
UD2 = UDim2.new
408
BRICKC = BrickColor.new
409
ANGLES = CFrame.Angles
410
EULER = CFrame.fromEulerAnglesXYZ
411
COS = math.cos
412
ACOS = math.acos
413
SIN = math.sin
414
ASIN = math.asin
415
ABS = math.abs
416
MRANDOM = math.random
417
FLOOR = math.floor
418
419
--//=================================\\
420
--|| 	      USEFUL VALUES
421
--\\=================================//
422
423
Animation_Speed = 3
424
Frame_Speed = 1 / 60 -- (1 / 30) OR (1 / 60)
425
local Speed = 35
426
local ROOTC0 = CF(0, 0, 0) * ANGLES(RAD(-90), RAD(0), RAD(180))
427
local NECKC0 = CF(0, 1.75, 0) * ANGLES(RAD(-90), RAD(0), RAD(180))
428
local RIGHTSHOULDERC0 = CF(-0.5, 0, 0) * ANGLES(RAD(0), RAD(90), RAD(0))
429
local LEFTSHOULDERC0 = CF(0.5, 0, 0) * ANGLES(RAD(0), RAD(-90), RAD(0))
430
local DAMAGEMULTIPLIER = 1
431
local ANIM = "Idle"
432
local ATTACK = false
433
local EQUIPPED = false
434
local HOLD = false
435
local COMBO = 1
436
local Rooted = false
437
local SINE = 0
438
local KEYHOLD = false
439
local CHANGE = 2 / Animation_Speed
440
local WALKINGANIM = false
441
local VALUE1 = false
442
local VALUE2 = false
443
local ROBLOXIDLEANIMATION = IT("Animation")
444
ROBLOXIDLEANIMATION.Name = "Roblox Idle Animation"
445
ROBLOXIDLEANIMATION.AnimationId = "http://www.roblox.com/asset/?id=180435571"
446
--ROBLOXIDLEANIMATION.Parent = Humanoid
447
local WEAPONGUI = IT("ScreenGui", PlayerGui)
448
WEAPONGUI.Name = "Weapon GUI"
449
local Effects = IT("Folder", Character)
450
Effects.Name = "Effects"
451
local ANIMATOR = Humanoid.Animator
452
local ANIMATE = Character.Animate
453
local UNANCHOR = true
454
local PLAYSONG = true
455
local EXTRATRANS = 0
456
457
--//=================================\\
458
--\\=================================//
459
460
461
--//=================================\\
462
--|| SAZERENOS' ARTIFICIAL HEARTBEAT
463
--\\=================================//
464
465
ArtificialHB = Instance.new("BindableEvent", script)
466
ArtificialHB.Name = "ArtificialHB"
467
468
script:WaitForChild("ArtificialHB")
469
470
frame = Frame_Speed
471
tf = 0
472
allowframeloss = false
473
tossremainder = false
474
lastframe = tick()
475
script.ArtificialHB:Fire()
476
477
game:GetService("RunService").Heartbeat:connect(function(s, p)
478
	tf = tf + s
479
	if tf >= frame then
480
		if allowframeloss then
481
			script.ArtificialHB:Fire()
482
			lastframe = tick()
483
		else
484
			for i = 1, math.floor(tf / frame) do
485
				script.ArtificialHB:Fire()
486
			end
487
		lastframe = tick()
488
		end
489
		if tossremainder then
490
			tf = 0
491
		else
492
			tf = tf - frame * math.floor(tf / frame)
493
		end
494
	end
495
end)
496
497
--//=================================\\
498
--\\=================================//
499
500
--//=================================\\
501
--|| 	      SOME FUNCTIONS
502
--\\=================================//
503
504
function Raycast(POSITION, DIRECTION, RANGE, IGNOREDECENDANTS)
505
	return workspace:FindPartOnRay(Ray.new(POSITION, DIRECTION.unit * RANGE), IGNOREDECENDANTS)
506
end
507
508
function PositiveAngle(NUMBER)
509
	if NUMBER >= 0 then
510
		NUMBER = 0
511
	end
512
	return NUMBER
513
end
514
515
function NegativeAngle(NUMBER)
516
	if NUMBER <= 0 then
517
		NUMBER = 0
518
	end
519
	return NUMBER
520
end
521
522
function Swait(NUMBER)
523
	if NUMBER == 0 or NUMBER == nil then
524
		ArtificialHB.Event:wait()
525
	else
526
		for i = 1, NUMBER do
527
			ArtificialHB.Event:wait()
528
		end
529
	end
530
end
531
532
function CreateMesh(MESH, PARENT, MESHTYPE, MESHID, TEXTUREID, SCALE, OFFSET)
533
	local NEWMESH = IT(MESH)
534
	if MESH == "SpecialMesh" then
535
		NEWMESH.MeshType = MESHTYPE
536
		if MESHID ~= "nil" and MESHID ~= "" then
537
			NEWMESH.MeshId = "http://www.roblox.com/asset/?id="..MESHID
538
		end
539
		if TEXTUREID ~= "nil" and TEXTUREID ~= "" then
540
			NEWMESH.TextureId = "http://www.roblox.com/asset/?id="..TEXTUREID
541
		end
542
	end
543
	NEWMESH.Offset = OFFSET or VT(0, 0, 0)
544
	NEWMESH.Scale = SCALE
545
	NEWMESH.Parent = PARENT
546
	return NEWMESH
547
end
548
549
function CreatePart(FORMFACTOR, PARENT, MATERIAL, REFLECTANCE, TRANSPARENCY, BRICKCOLOR, NAME, SIZE, ANCHOR)
550
	local NEWPART = IT("Part")
551
	NEWPART.formFactor = FORMFACTOR
552
	NEWPART.Reflectance = REFLECTANCE
553
	NEWPART.Transparency = TRANSPARENCY
554
	NEWPART.CanCollide = false
555
	NEWPART.Locked = true
556
	NEWPART.Anchored = true
557
	if ANCHOR == false then
558
		NEWPART.Anchored = false
559
	end
560
	NEWPART.BrickColor = BRICKC(tostring(BRICKCOLOR))
561
	NEWPART.Name = NAME
562
	NEWPART.Size = SIZE
563
	NEWPART.Position = Torso.Position
564
	NEWPART.Material = MATERIAL
565
	NEWPART:BreakJoints()
566
	NEWPART.Parent = PARENT
567
	return NEWPART
568
end
569
570
	local function weldBetween(a, b)
571
	    local weldd = Instance.new("ManualWeld")
572
	    weldd.Part0 = a
573
	    weldd.Part1 = b
574
	    weldd.C0 = CFrame.new()
575
	    weldd.C1 = b.CFrame:inverse() * a.CFrame
576
	    weldd.Parent = a
577
	    return weldd
578
	end
579
580
581
function QuaternionFromCFrame(cf)
582
	local mx, my, mz, m00, m01, m02, m10, m11, m12, m20, m21, m22 = cf:components()
583
	local trace = m00 + m11 + m22
584
	if trace > 0 then 
585
		local s = math.sqrt(1 + trace)
586
		local recip = 0.5 / s
587
		return (m21 - m12) * recip, (m02 - m20) * recip, (m10 - m01) * recip, s * 0.5
588
	else
589
		local i = 0
590
		if m11 > m00 then
591
			i = 1
592
		end
593
		if m22 > (i == 0 and m00 or m11) then
594
			i = 2
595
		end
596
		if i == 0 then
597
			local s = math.sqrt(m00 - m11 - m22 + 1)
598
			local recip = 0.5 / s
599
			return 0.5 * s, (m10 + m01) * recip, (m20 + m02) * recip, (m21 - m12) * recip
600
		elseif i == 1 then
601
			local s = math.sqrt(m11 - m22 - m00 + 1)
602
			local recip = 0.5 / s
603
			return (m01 + m10) * recip, 0.5 * s, (m21 + m12) * recip, (m02 - m20) * recip
604
		elseif i == 2 then
605
			local s = math.sqrt(m22 - m00 - m11 + 1)
606
			local recip = 0.5 / s return (m02 + m20) * recip, (m12 + m21) * recip, 0.5 * s, (m10 - m01) * recip
607
		end
608
	end
609
end
610
 
611
function QuaternionToCFrame(px, py, pz, x, y, z, w)
612
	local xs, ys, zs = x + x, y + y, z + z
613
	local wx, wy, wz = w * xs, w * ys, w * zs
614
	local xx = x * xs
615
	local xy = x * ys
616
	local xz = x * zs
617
	local yy = y * ys
618
	local yz = y * zs
619
	local zz = z * zs
620
	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))
621
end
622
 
623
function QuaternionSlerp(a, b, t)
624
	local cosTheta = a[1] * b[1] + a[2] * b[2] + a[3] * b[3] + a[4] * b[4]
625
	local startInterp, finishInterp;
626
	if cosTheta >= 0.0001 then
627
		if (1 - cosTheta) > 0.0001 then
628
			local theta = ACOS(cosTheta)
629
			local invSinTheta = 1 / SIN(theta)
630
			startInterp = SIN((1 - t) * theta) * invSinTheta
631
			finishInterp = SIN(t * theta) * invSinTheta
632
		else
633
			startInterp = 1 - t
634
			finishInterp = t
635
		end
636
	else
637
		if (1 + cosTheta) > 0.0001 then
638
			local theta = ACOS(-cosTheta)
639
			local invSinTheta = 1 / SIN(theta)
640
			startInterp = SIN((t - 1) * theta) * invSinTheta
641
			finishInterp = SIN(t * theta) * invSinTheta
642
		else
643
			startInterp = t - 1
644
			finishInterp = t
645
		end
646
	end
647
	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
648
end
649
650
function Clerp(a, b, t)
651
	local qa = {QuaternionFromCFrame(a)}
652
	local qb = {QuaternionFromCFrame(b)}
653
	local ax, ay, az = a.x, a.y, a.z
654
	local bx, by, bz = b.x, b.y, b.z
655
	local _t = 1 - t
656
	return QuaternionToCFrame(_t * ax + t * bx, _t * ay + t * by, _t * az + t * bz, QuaternionSlerp(qa, qb, t))
657
end
658
659
function CreateFrame(PARENT, TRANSPARENCY, BORDERSIZEPIXEL, POSITION, SIZE, COLOR, BORDERCOLOR, NAME)
660
	local frame = IT("Frame")
661
	frame.BackgroundTransparency = TRANSPARENCY
662
	frame.BorderSizePixel = BORDERSIZEPIXEL
663
	frame.Position = POSITION
664
	frame.Size = SIZE
665
	frame.BackgroundColor3 = COLOR
666
	frame.BorderColor3 = BORDERCOLOR
667
	frame.Name = NAME
668
	frame.Parent = PARENT
669
	return frame
670
end
671
672
function CreateLabel(PARENT, TEXT, TEXTCOLOR, TEXTFONTSIZE, TEXTFONT, TRANSPARENCY, BORDERSIZEPIXEL, STROKETRANSPARENCY, NAME)
673
	local label = IT("TextLabel")
674
	label.BackgroundTransparency = 1
675
	label.Size = UD2(1, 0, 1, 0)
676
	label.Position = UD2(0, 0, 0, 0)
677
	label.TextColor3 = TEXTCOLOR
678
	label.TextStrokeTransparency = STROKETRANSPARENCY
679
	label.TextTransparency = TRANSPARENCY
680
	label.FontSize = TEXTFONTSIZE
681
	label.Font = TEXTFONT
682
	label.BorderSizePixel = BORDERSIZEPIXEL
683
	label.TextScaled = false
684
	label.Text = TEXT
685
	label.Name = NAME
686
	label.Parent = PARENT
687
	return label
688
end
689
690
function NoOutlines(PART)
691
	PART.TopSurface, PART.BottomSurface, PART.LeftSurface, PART.RightSurface, PART.FrontSurface, PART.BackSurface = 10, 10, 10, 10, 10, 10
692
end
693
694
function CreateWeldOrSnapOrMotor(TYPE, PARENT, PART0, PART1, C0, C1)
695
	local NEWWELD = IT(TYPE)
696
	NEWWELD.Part0 = PART0
697
	NEWWELD.Part1 = PART1
698
	NEWWELD.C0 = C0
699
	NEWWELD.C1 = C1
700
	NEWWELD.Parent = PARENT
701
	return NEWWELD
702
end
703
704
local S = IT("Sound")
705
function CreateSound(ID, PARENT, VOLUME, PITCH, DOESLOOP)
706
	local NEWSOUND = nil
707
	coroutine.resume(coroutine.create(function()
708
		NEWSOUND = S:Clone()
709
		NEWSOUND.Parent = PARENT
710
		NEWSOUND.Volume = VOLUME
711
		NEWSOUND.Pitch = PITCH
712
		NEWSOUND.SoundId = "http://www.roblox.com/asset/?id="..ID
713
		NEWSOUND:play()
714
		if DOESLOOP == true then
715
			NEWSOUND.Looped = true
716
		else
717
			repeat wait(1) until NEWSOUND.Playing == false
718
			NEWSOUND:remove()
719
		end
720
	end))
721
	return NEWSOUND
722
end
723
724
function CFrameFromTopBack(at, top, back)
725
	local right = top:Cross(back)
726
	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)
727
end
728
729
--WACKYEFFECT({EffectType = "", Size = VT(1,1,1), Size2 = VT(0,0,0), Transparency = 0, Transparency2 = 1, CFrame = CF(), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = C3(1,1,1), SoundID = nil, SoundPitch = nil, SoundVolume = nil})
730
function WACKYEFFECT(Table)
731
	local TYPE = (Table.EffectType or "Sphere")
732
	local SIZE = (Table.Size or VT(1,1,1))
733
	local ENDSIZE = (Table.Size2 or VT(0,0,0))
734
	local TRANSPARENCY = (Table.Transparency or 0)
735
	local ENDTRANSPARENCY = (Table.Transparency2 or 1)
736
	local CFRAME = (Table.CFrame or Torso.CFrame)
737
	local MOVEDIRECTION = (Table.MoveToPos or nil)
738
	local ROTATION1 = (Table.RotationX or 0)
739
	local ROTATION2 = (Table.RotationY or 0)
740
	local ROTATION3 = (Table.RotationZ or 0)
741
	local MATERIAL = (Table.Material or "Neon")
742
	local COLOR = (Table.Color or C3(1,1,1))
743
	local TIME = (Table.Time or 45)
744
	local SOUNDID = (Table.SoundID or nil)
745
	local SOUNDPITCH = (Table.SoundPitch or nil)
746
	local SOUNDVOLUME = (Table.SoundVolume or nil)
747
	coroutine.resume(coroutine.create(function()
748
		local PLAYSSOUND = false
749
		local SOUND = nil
750
		local EFFECT = CreatePart(3, Effects, MATERIAL, 0, TRANSPARENCY, BRICKC("Pearl"), "Effect", VT(1,1,1), true)
751
		if SOUNDID ~= nil and SOUNDPITCH ~= nil and SOUNDVOLUME ~= nil then
752
			PLAYSSOUND = true
753
			SOUND = CreateSound(SOUNDID, EFFECT, SOUNDVOLUME, SOUNDPITCH, false)
754
		end
755
		EFFECT.Color = COLOR
756
		local MSH = nil
757
		if TYPE == "Sphere" then
758
			MSH = CreateMesh("SpecialMesh", EFFECT, "Sphere", "", "", SIZE, VT(0,0,0))
759
		elseif TYPE == "Block" then
760
			MSH = IT("BlockMesh",EFFECT)
761
			MSH.Scale = VT(SIZE.X,SIZE.X,SIZE.X)
762
		elseif TYPE == "Wave" then
763
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "20329976", "", SIZE, VT(0,0,-SIZE.X/8))
764
		elseif TYPE == "Ring" then
765
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "559831844", "", VT(SIZE.X,SIZE.X,0.1), VT(0,0,0))
766
		elseif TYPE == "Slash" then
767
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "662586858", "", VT(SIZE.X/10,0,SIZE.X/10), VT(0,0,0))
768
		elseif TYPE == "Round Slash" then
769
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "662585058", "", VT(SIZE.X/10,0,SIZE.X/10), VT(0,0,0))
770
		elseif TYPE == "Swirl" then
771
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "1051557", "", SIZE, VT(0,0,0))
772
		elseif TYPE == "Skull" then
773
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "4770583", "", SIZE, VT(0,0,0))
774
		elseif TYPE == "Crystal" then
775
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "9756362", "", SIZE, VT(0,0,0))
776
		end
777
		if MSH ~= nil then
778
			local MOVESPEED = nil
779
			if MOVEDIRECTION ~= nil then
780
				MOVESPEED = (CFRAME.p - MOVEDIRECTION).Magnitude/TIME
781
			end
782
			local GROWTH = SIZE - ENDSIZE
783
			local TRANS = TRANSPARENCY - ENDTRANSPARENCY
784
			if TYPE == "Block" then
785
				EFFECT.CFrame = CFRAME*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)))
786
			else
787
				EFFECT.CFrame = CFRAME
788
			end
789
			for LOOP = 1, TIME+1 do
790
				Swait()
791
				MSH.Scale = MSH.Scale - GROWTH/TIME
792
				if TYPE == "Wave" then
793
					MSH.Offset = VT(0,0,-MSH.Scale.X/8)
794
				end
795
				EFFECT.Transparency = EFFECT.Transparency - TRANS/TIME
796
				if TYPE == "Block" then
797
					EFFECT.CFrame = CFRAME*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)))
798
				else
799
					EFFECT.CFrame = EFFECT.CFrame*ANGLES(RAD(ROTATION1),RAD(ROTATION2),RAD(ROTATION3))
800
				end
801
				if MOVEDIRECTION ~= nil then
802
					local ORI = EFFECT.Orientation
803
					EFFECT.CFrame = CF(EFFECT.Position,MOVEDIRECTION)*CF(0,0,-MOVESPEED)
804
					EFFECT.Orientation = ORI
805
				end
806
			end
807
			if PLAYSSOUND == false then
808
				EFFECT:remove()
809
			else
810
				repeat Swait() until EFFECT:FindFirstChild("Sound") == nil
811
				EFFECT:remove()
812
			end
813
		else
814
			if PLAYSSOUND == false then
815
				EFFECT:remove()
816
			else
817
				repeat Swait() until EFFECT:FindFirstChild("Sound") == nil
818
				EFFECT:remove()
819
			end
820
		end
821
	end))
822
end
823
824
function MakeForm(PART,TYPE)
825
	if TYPE == "Cyl" then
826
		local MSH = IT("CylinderMesh",PART)
827
	elseif TYPE == "Ball" then
828
		local MSH = IT("SpecialMesh",PART)
829
		MSH.MeshType = "Sphere"
830
	elseif TYPE == "Wedge" then
831
		local MSH = IT("SpecialMesh",PART)
832
		MSH.MeshType = "Wedge"
833
	end
834
end
835
836
Debris = game:GetService("Debris")
837
838
function CastProperRay(StartPos, EndPos, Distance, Ignore)
839
	local DIRECTION = CF(StartPos,EndPos).lookVector
840
	return Raycast(StartPos, DIRECTION, Distance, Ignore)
841
end
842
843
local ROCK = script.Rock
844
ROCK.Parent = nil
845
function GetRock(FLOOROBJECT)
846
	local Rock = ROCK:Clone()
847
	Rock.Parent = Effects
848
	if FLOOROBJECT ~= nil then
849
		if FLOOROBJECT.Material ~= Enum.Material.Grass and FLOOROBJECT.Material ~= Enum.Material.Fabric then
850
			Rock.Material = FLOOROBJECT.Material
851
			Rock.Color = FLOOROBJECT.Color
852
		else
853
			Rock.Material = "Slate"
854
			Rock.Color = BRICKC"Dirt brown".Color
855
		end
856
	else
857
		Rock.Material = "Slate"
858
		Rock.Color = BRICKC"Dirt brown".Color
859
	end
860
	Rock.Core.Emit.Color = ColorSequence.new(Rock.Color)
861
	return Rock
862
end
863
864
local SPIKE = script.RockSpike
865
SPIKE.Parent = nil
866
function GetSpike(FLOOROBJECT)
867
	local Rock = SPIKE:Clone()
868
	Rock.Parent = Effects
869
	if FLOOROBJECT ~= nil then
870
		if FLOOROBJECT.Material ~= Enum.Material.Grass and FLOOROBJECT.Material ~= Enum.Material.Fabric then
871
			Rock.Material = FLOOROBJECT.Material
872
			Rock.Color = FLOOROBJECT.Color
873
		else
874
			Rock.Material = "Slate"
875
			Rock.Color = BRICKC"Dirt brown".Color
876
		end
877
	else
878
		Rock.Material = "Slate"
879
		Rock.Color = BRICKC"Dirt brown".Color
880
	end
881
	return Rock
882
end
883
884
local SHIELD = script.Shield
885
SHIELD.Parent = nil
886
function GetShield(FLOOROBJECT)
887
	local Rock = SHIELD:Clone()
888
	Rock.Parent = Effects
889
	if FLOOROBJECT ~= nil then
890
		Rock.Material = FLOOROBJECT.Material
891
		Rock.Color = FLOOROBJECT.Color
892
	else
893
		Rock.Material = "Slate"
894
		Rock.Color = BRICKC"Dirt brown".Color
895
	end
896
	return Rock
897
end
898
899
function RespondToImpact(Object,Rock)
900
	local BREAKABLEMATERIALS = {{Enum.Material.Glass,5,1571353313},{Enum.Material.Ice,2,151284431},{Enum.Material.Wood,1.3,131144461},{Enum.Material.WoodPlanks,1,131144461},{Enum.Material.Cobblestone,0.2,130972023}}
901
	for i = 1, #BREAKABLEMATERIALS do
902
		local MATERIAL = BREAKABLEMATERIALS[i]
903
		if Object.Material == MATERIAL[1] then
904
			local A = Rock.Size.Magnitude
905
			local B = Object.Size.Magnitude
906
			if B < A*MATERIAL[2] then
907
				WaveParticles(Object.Position,B*3,Object.Color)
908
				Object:remove()
909
				CreateSound(MATERIAL[3], Rock, 5, MRANDOM(8,12)/10, false)
910
			end
911
		end
912
	end
913
end
914
915
function WaveParticles(Position,Size,Color)
916
	local BASE = CreatePart(3, Effects, "Neon", 0, 1, BRICKC("Pearl"), "Shockwave", VT(0,0,0), true)
917
	BASE.CFrame = CF(Position)
918
	local A = IT("Attachment",BASE)
919
	local WAVE = script.Wave:Clone()
920
	WAVE.Parent = A
921
	WAVE.Size = NumberSequence.new(0,Size)
922
	WAVE.Color = ColorSequence.new(Color)
923
	Debris:AddItem(BASE,0.5)
924
	WAVE:Emit(1)
925
end
926
927
--//=================================\\
928
--||	     WEAPON CREATION
929
--\\=================================//
930
931
local sick = Instance.new("Sound",Character)
932
933
local PILLAR = script.Pillar
934
PILLAR.Parent = nil
935
local HOOD = script.Hood
936
HOOD.Parent = Character
937
HOOD.CFrame = Torso.CFrame*CFrame.new(0,2.2,0)
938
weldBetween(Torso,HOOD)
939
Head:ClearAllChildren()
940
Head.Transparency = 1
941
local EYE = script.Eye
942
EYE.Parent = Character
943
EYE.CFrame = Head.CFrame*CF(0,0,0)
944
EYE.Anchored = false
945
weldBetween(EYE,Head)
946
local COLLAR = script.Collar
947
COLLAR.Parent = Character
948
COLLAR.CFrame = Torso.CFrame*CF(0,1,0) * ANGLES(RAD(0), RAD(0), RAD(0))
949
weldBetween(Torso,COLLAR)
950
local BONE = script.SpinePart
951
BONE.Parent = nil
952
local TAIL = {}
953
local LASTPART = Torso
954
local SIZE = BONE.Size
955
for i = 1, 23 do
956
	local PART = BONE:Clone()
957
	PART.Anchored = false
958
	PART.Parent = Character
959
	PART.Size = SIZE*((25-i)/10)/1.6
960
	if LASTPART == Torso then
961
		local WELD = CreateWeldOrSnapOrMotor("Weld", LASTPART, LASTPART, PART, CF(0,-0.8,0.6)* ANGLES(RAD(-55), RAD(0), RAD(0)), CF(0, 0, 0))
962
		LASTPART = PART
963
		table.insert(TAIL,WELD)
964
	else
965
		local WELD = CreateWeldOrSnapOrMotor("Weld", LASTPART, LASTPART, PART, CF(0,-PART.Size.Y/1.2,-0.01), CF(0, 0, 0))
966
		LASTPART = PART
967
		table.insert(TAIL,WELD)
968
	end
969
end
970
for _, c in pairs(Character:GetChildren()) do
971
	if c:IsA("BasePart") then
972
		if c:FindFirstChildOfClass("ParticleEmitter") then
973
			c:FindFirstChildOfClass("ParticleEmitter"):remove()
974
		end
975
		if c == Head then
976
			if c:FindFirstChild("face") then
977
				c.face:remove()
978
			end
979
		end
980
	elseif c.ClassName == "CharacterMesh" or c.ClassName == "Accessory" or c.ClassName == "Hat" or c.Name == "Body Colors" then
981
		c:remove()
982
	end
983
end
984
local BODY = {}
985
for _, c in pairs(Character:GetDescendants()) do
986
	if c:IsA("BasePart") and c.Name ~= "Handle" then
987
		if c ~= RootPart and c ~= Torso and c ~= Head and c ~= RightArm and c ~= LeftArm and c ~= RightLeg and c ~= LeftLeg then
988
			c.CustomPhysicalProperties = PhysicalProperties.new(0, 0, 0, 0, 0)
989
		end
990
		table.insert(BODY,{c,c.Parent,c.Material,c.Color,c.Transparency})
991
	elseif c:IsA("JointInstance") then
992
		table.insert(BODY,{c,c.Parent,nil,nil,nil})
993
	end
994
end
995
for e = 1, #BODY do
996
	if BODY[e] ~= nil then
997
		local STUFF = BODY[e]
998
		local PART = STUFF[1]
999
		local PARENT = STUFF[2]
1000
		local MATERIAL = STUFF[3]
1001
		local COLOR = STUFF[4]
1002
		local TRANSPARENCY = STUFF[5]
1003
		if PART.ClassName == "Part" and PART ~= RootPart then
1004
			PART.Material = MATERIAL
1005
			PART.Color = COLOR
1006
			PART.Transparency = TRANSPARENCY
1007
		end
1008
		PART.AncestryChanged:Connect(function()
1009
			PART.Parent = PARENT
1010
		end)
1011
	end
1012
end
1013
function refit()
1014
	Character.Parent = workspace
1015
	for e = 1, #BODY do
1016
		if BODY[e] ~= nil then
1017
			local STUFF = BODY[e]
1018
			local PART = STUFF[1]
1019
			local PARENT = STUFF[2]
1020
			local MATERIAL = STUFF[3]
1021
			local COLOR = STUFF[4]
1022
			local TRANSPARENCY = STUFF[5]
1023
			if PART:IsA("BasePart") and PART ~= RootPart then
1024
				PART.Material = MATERIAL
1025
				PART.Color = COLOR
1026
				PART.Transparency = TRANSPARENCY+EXTRATRANS
1027
			end
1028
			if PART.Parent ~= PARENT then
1029
				Humanoid:remove()
1030
				PART.Parent = PARENT
1031
				Humanoid = IT("Humanoid",Character)
1032
			end
1033
		end
1034
	end
1035
end
1036
1037
Humanoid.Died:connect(function()
1038
	refit()
1039
end)
1040
1041
--//=================================\\
1042
--||			DAMAGING
1043
--\\=================================//
1044
1045
function ApplyDamage(Humanoid,Damage,TorsoPart)
1046
	Damage = Damage * DAMAGEMULTIPLIER
1047
	if Humanoid.Health ~= 0 then
1048
		Humanoid.Health = Humanoid.Health - Damage
1049
	end
1050
end
1051
1052
function ApplyAoE(POSITION,RANGE,MINDMG,MAXDMG,FLING,INSTAKILL,ROCK)
1053
	local CHILDREN = workspace:GetDescendants()
1054
	for index, CHILD in pairs(CHILDREN) do
1055
		if CHILD.ClassName == "Model" and CHILD ~= Character then
1056
			local HUM = CHILD:FindFirstChildOfClass("Humanoid")
1057
			if HUM then
1058
				local TORSO = CHILD:FindFirstChild("Torso") or CHILD:FindFirstChild("UpperTorso")
1059
				if TORSO then
1060
					if (TORSO.Position - POSITION).Magnitude <= RANGE then
1061
						if INSTAKILL == true or HUM.MaxHealth > 5000 then
1062
							CHILD:BreakJoints()
1063
						else
1064
							local DMG = MRANDOM(MINDMG,MAXDMG)
1065
							ApplyDamage(HUM,DMG,TORSO)
1066
						end
1067
						if FLING > 0 then
1068
							for _, c in pairs(CHILD:GetChildren()) do
1069
								if c:IsA("BasePart") then
1070
									local bv = Instance.new("BodyVelocity",c) 
1071
									bv.maxForce = Vector3.new(1e9, 1e9, 1e9)
1072
									bv.velocity = CF(POSITION,TORSO.Position).lookVector*FLING
1073
									Debris:AddItem(bv,0.05)
1074
								end
1075
							end
1076
						end
1077
					end
1078
				end
1079
			end
1080
		elseif CHILD:IsA("BasePart") and ROCK ~= nil then
1081
			if (CHILD.Position - POSITION).Magnitude <= RANGE then
1082
				RespondToImpact(CHILD,ROCK)
1083
			end
1084
		end
1085
	end
1086
end
1087
1088
--//=================================\\
1089
--||	ATTACK FUNCTIONS AND STUFF
1090
--\\=================================//
1091
1092
function RockExplosion(Rock,Multiplier,Survive)
1093
	local EXPLOSION = Rock.Core:FindFirstChildOfClass("ParticleEmitter")
1094
	EXPLOSION.Color = ColorSequence.new(Rock.Color)
1095
	local SIZE = (Rock.Size.Y*4)*Multiplier
1096
	EXPLOSION.Enabled = false
1097
	EXPLOSION.Speed = NumberRange.new(0,SIZE*5)
1098
	EXPLOSION.Size = NumberSequence.new(SIZE/15,0)
1099
	EXPLOSION:Emit(200,300)
1100
	WaveParticles(Rock.Position,SIZE*2,Rock.Color)
1101
	coroutine.resume(coroutine.create(function()
1102
		Rock:BreakJoints()
1103
		if Survive == nil then
1104
			Rock.Transparency = 1
1105
			Rock.CanCollide = false
1106
			Rock.Anchored = true
1107
			Debris:AddItem(Rock,5)
1108
		end
1109
		CreateSound(165970126, Rock, 2, MRANDOM(8,12)/10, false)
1110
		ApplyAoE(Rock.Position,SIZE,25,30,35,false,Rock)
1111
		local HITFLOOR,HITPOS = Raycast(Rock.Position, (CF(RootPart.Position, RootPart.Position + VT(0, -1, 0))).lookVector, Rock.Size.Y/2, Character)
1112
		Swait()
1113
		if HITFLOOR then
1114
			WACKYEFFECT({Time = 75, EffectType = "Wave", Size = VT(0,0,0), Size2 = VT(SIZE*7,3,SIZE*7), Transparency = 0.7, Transparency2 = 1, CFrame = CF(HITPOS), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = HITFLOOR.Color, SoundID = nil, SoundPitch = nil, SoundVolume = nil})
1115
		end
1116
		for i = 1, 5 do
1117
			WACKYEFFECT({Time = MRANDOM(15,55), EffectType = "Wave", Size = VT(0,0,0), Size2 = VT(SIZE*5,0.2,SIZE*5), Transparency = 0.95, Transparency2 = 1, CFrame = CF(Rock.Position)*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360))), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = Rock.Color, SoundID = nil, SoundPitch = nil, SoundVolume = nil})
1118
		end
1119
	end))
1120
end
1121
1122
function Bullet()
1123
	local HITFLOOR,HITPOS = Raycast(RootPart.Position, (CF(RootPart.Position, RootPart.Position + VT(0, -1, 0))).lookVector, 4, Character)
1124
	ATTACK = true
1125
	Rooted = true
1126
	local GYRO = IT("BodyGyro",RootPart)
1127
	GYRO.D = 2
1128
	GYRO.P = 2000
1129
	GYRO.MaxTorque = VT(0,4000000,0)
1130
	coroutine.resume(coroutine.create(function()
1131
		repeat
1132
			Swait()
1133
			GYRO.CFrame = CF(RootPart.Position,Mouse.Hit.p)
1134
		until ATTACK == false
1135
		GYRO:Remove()
1136
	end))
1137
	local FLOOR = false
1138
	if HITFLOOR then
1139
		if HITFLOOR.Material ~= Enum.Material.Foil and HITFLOOR.Material ~= Enum.Material.Glass then
1140
			FLOOR = true
1141
		end
1142
	end
1143
	if FLOOR == true then
1144
		for i=0, 0.5, 0.1 / Animation_Speed do
1145
			Swait()
1146
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(-15), RAD(0), RAD(0)), 2 / Animation_Speed)
1147
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(25), RAD(0), RAD(0)), 2 / Animation_Speed)
1148
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(-25), RAD(0), RAD(0)) * RIGHTSHOULDERC0, 2 / Animation_Speed)
1149
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(-25), RAD(0), RAD(0)) * LEFTSHOULDERC0, 2 / Animation_Speed)
1150
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.35, -0.75) * ANGLES(RAD(-30), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 2 / Animation_Speed)
1151
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, 0) * ANGLES(RAD(-30), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 2 / Animation_Speed)
1152
		end
1153
		for i=0, 0.25, 0.1 / Animation_Speed do
1154
			Swait()
1155
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, -0.4, -0.1) * ANGLES(RAD(35), RAD(0), RAD(0)), 1 / Animation_Speed)
1156
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(25), RAD(0), RAD(0)), 1 / Animation_Speed)
1157
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(45), RAD(0), RAD(0)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
1158
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(45), RAD(0), RAD(0)) * LEFTSHOULDERC0, 1 / Animation_Speed)
1159
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.9, -0.6) * ANGLES(RAD(35), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
1160
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1.1, 0) * ANGLES(RAD(35), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
1161
		end
1162
		local ROCKPLACED = false
1163
		local Rock = nil
1164
		if HITFLOOR.Anchored == true then
1165
			Rock = GetRock(HITFLOOR)
1166
			Rock.Core.Emit.Enabled = true
1167
			Rock.Size = VT(6,6,6)
1168
			Rock.CFrame = CF(RootPart.CFrame*CF(0,-9,-6).p,Mouse.Hit.p)
1169
			CreateSound(130972023, Rock, 2, MRANDOM(5,8)/10, false)
1170
			coroutine.resume(coroutine.create(function()
1171
				for i = 1, 30 do
1172
					Swait()
1173
					Rock.CFrame = Clerp(Rock.CFrame, CF(RootPart.CFrame*CF(0,1,-6).p,Mouse.Hit.p), 0.8 / Animation_Speed)
1174
				end
1175
				ROCKPLACED = true
1176
				Rock.Core.Emit.Enabled = false
1177
			end))
1178
		else
1179
			if HITFLOOR.Parent:FindFirstChildOfClass("Humanoid") then
1180
				local TORSO = HITFLOOR.Parent:FindFirstChild("Torso") or HITFLOOR.Parent:FindFirstChild("UpperTorso")
1181
				if TORSO then
1182
					Rock = TORSO
1183
					ROCK.Core:Clone().Parent = Rock
1184
				else
1185
					Rock = HITFLOOR
1186
					ROCK.Core:Clone().Parent = Rock
1187
				end
1188
			elseif HITFLOOR.Parent.Parent:FindFirstChildOfClass("Humanoid") then
1189
				local TORSO = HITFLOOR.Parent.Parent:FindFirstChild("Torso") or HITFLOOR.Parent.Parent:FindFirstChild("UpperTorso")
1190
				if TORSO then
1191
					Rock = TORSO
1192
					ROCK.Core:Clone().Parent = Rock
1193
				else
1194
					Rock = HITFLOOR
1195
					ROCK.Core:Clone().Parent = Rock
1196
				end
1197
			else
1198
				Rock = HITFLOOR
1199
				ROCK.Core:Clone().Parent = Rock
1200
			end
1201
			Rock.Anchored = true
1202
			coroutine.resume(coroutine.create(function()
1203
				for i = 1, 30 do
1204
					Swait()
1205
					Rock.CFrame = Clerp(Rock.CFrame, CF(RootPart.CFrame*CF(0,1,-6).p,Mouse.Hit.p), 0.8 / Animation_Speed)
1206
				end
1207
				ROCKPLACED = true
1208
			end))
1209
		end
1210
		for i=0, 0.1, 0.1 / Animation_Speed do
1211
			Swait()
1212
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, -0.4, -0.1) * ANGLES(RAD(35), RAD(0), RAD(0)), 1 / Animation_Speed)
1213
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(25), RAD(0), RAD(0)), 1 / Animation_Speed)
1214
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(45), RAD(0), RAD(0)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
1215
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(45), RAD(0), RAD(0)) * LEFTSHOULDERC0, 1 / Animation_Speed)
1216
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.3, -0.6) * ANGLES(RAD(35), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
1217
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1.1, 0) * ANGLES(RAD(35), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
1218
		end
1219
		repeat
1220
			Swait()
1221
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0.25) * ANGLES(RAD(-25), RAD(0), RAD(80)), 1 / Animation_Speed)
1222
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(15), RAD(0), RAD(-30)), 1 / Animation_Speed)
1223
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(0), RAD(45), RAD(0)) * ANGLES(RAD(-25), RAD(0), RAD(0)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
1224
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(-15), RAD(0), RAD(-25)) * LEFTSHOULDERC0, 1 / Animation_Speed)
1225
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, -0.6) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(-65), RAD(0), RAD(0)) * CF(0,1.5,0), 1 / Animation_Speed)
1226
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, 0) * ANGLES(RAD(0), RAD(-45), RAD(0)) * ANGLES(RAD(-35), RAD(0), RAD(0)), 1 / Animation_Speed)
1227
		until ROCKPLACED == true
1228
		for i=0, 0.1, 0.1 / Animation_Speed do
1229
			Swait()
1230
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0.2, 0.25) * ANGLES(RAD(-35), RAD(0), RAD(80)), 1 / Animation_Speed)
1231
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(15), RAD(0), RAD(-30)), 1 / Animation_Speed)
1232
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(0), RAD(45), RAD(0)) * ANGLES(RAD(-32), RAD(0), RAD(0)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
1233
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(-20), RAD(0), RAD(-25)) * LEFTSHOULDERC0, 1 / Animation_Speed)
1234
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, -0.6) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(-65), RAD(0), RAD(0)) * CF(0,-0.3,0), 1 / Animation_Speed)
1235
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, 0) * ANGLES(RAD(0), RAD(-45), RAD(0)) * ANGLES(RAD(-35), RAD(0), RAD(0)), 1 / Animation_Speed)
1236
		end
1237
		WaveParticles(Rock.Position,12,C3(1,1,1))
1238
		CreateSound(621557962, RightLeg, 1, MRANDOM(7,9)/10, false)
1239
		coroutine.resume(coroutine.create(function()
1240
			if Rock.Parent:FindFirstChildOfClass("Humanoid") == nil then
1241
				for i = 1, 200 do
1242
					Swait()
1243
					Rock.CFrame = Rock.CFrame * CF(0,0,-1.2)
1244
					local HIT = Raycast(Rock.Position, Rock.CFrame.lookVector, Rock.Size.X/2, Character)
1245
					if HIT then
1246
						RespondToImpact(HIT,Rock)
1247
						break
1248
					end
1249
				end
1250
				RockExplosion(Rock,1)
1251
			else
1252
				for i = 1, 60 do
1253
					Swait()
1254
					Rock.CFrame = Rock.CFrame * CF(0,0,-2)
1255
					local HIT = Raycast(Rock.Position, Rock.CFrame.lookVector, 3, Character)
1256
					if HIT then
1257
						RespondToImpact(HIT,Rock)
1258
						break
1259
					end
1260
				end
1261
				RockExplosion(Rock,2)
1262
			end
1263
		end))
1264
		for i=0, 0.4, 0.1 / Animation_Speed do
1265
			Swait()
1266
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0.2, 0.25) * ANGLES(RAD(-35), RAD(0), RAD(80)), 1 / Animation_Speed)
1267
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(15), RAD(0), RAD(-30)), 1 / Animation_Speed)
1268
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(0), RAD(45), RAD(0)) * ANGLES(RAD(-32), RAD(0), RAD(0)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
1269
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(-20), RAD(0), RAD(-25)) * LEFTSHOULDERC0, 1 / Animation_Speed)
1270
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, -0.6) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(-65), RAD(0), RAD(0)) * CF(0,-0.3,0), 1 / Animation_Speed)
1271
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, 0) * ANGLES(RAD(0), RAD(-45), RAD(0)) * ANGLES(RAD(-35), RAD(0), RAD(0)), 1 / Animation_Speed)
1272
		end
1273
	else
1274
		local GRAV = IT("BodyPosition",RootPart)
1275
		GRAV.D = 250
1276
		GRAV.P = 20000
1277
		GRAV.MaxForce = VT(math.huge,math.huge,math.huge)
1278
		GRAV.Position = RootPart.Position
1279
		local Rock = GetRock()
1280
		Rock.Size = VT(0,0,0)
1281
		Rock.CFrame = CF(RightLeg.CFrame*CF(0,-1,0).p,Mouse.Hit.p)
1282
		CreateSound(201858045, Rock, 1, MRANDOM(10,12)/10, false)
1283
		local DONEROCK = false
1284
		coroutine.resume(coroutine.create(function()
1285
			for i = 1, 15 do
1286
				Swait()
1287
				Rock.Size = Rock.Size + VT(0.1,0.1,0.1)
1288
				Rock.Size = Rock.Size * 1.1
1289
				Rock.CFrame = CF(RightLeg.CFrame*CF(0,-1-Rock.Size.Y/2,0).p,Mouse.Hit.p)
1290
			end
1291
			DONEROCK = true
1292
		end))
1293
		repeat
1294
			Swait()
1295
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(-65), RAD(0), RAD(0)), 1 / Animation_Speed)
1296
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(35), RAD(0), RAD(0)), 1 / Animation_Speed)
1297
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(-80), RAD(0), RAD(0)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
1298
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(-80), RAD(0), RAD(0)) * LEFTSHOULDERC0, 1 / Animation_Speed)
1299
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, 0) * ANGLES(RAD(90), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
1300
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -0.5, -0.5) * ANGLES(RAD(-15), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
1301
		until DONEROCK == true
1302
		local LOOP = 0
1303
		for i=0, 0.2, 0.1 / Animation_Speed do
1304
			Swait()
1305
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(-70), RAD(0), RAD(0)), 1 / Animation_Speed)
1306
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(35), RAD(0), RAD(0)), 1 / Animation_Speed)
1307
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(-90), RAD(0), RAD(0)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
1308
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(-90), RAD(0), RAD(0)) * LEFTSHOULDERC0, 1 / Animation_Speed)
1309
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, 0) * ANGLES(RAD(130), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
1310
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -0.5, -0.5) * ANGLES(RAD(-15), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
1311
		end
1312
		WaveParticles(Rock.Position,5,C3(1,1,1))
1313
		CreateSound(621557962, RightLeg, 1, MRANDOM(10,12)/10, false)
1314
		coroutine.resume(coroutine.create(function()
1315
			for i = 1, 300 do
1316
				Swait()
1317
				Rock.CFrame = Rock.CFrame * CF(0,0,-1.6)
1318
				local HIT = Raycast(Rock.Position, Rock.CFrame.lookVector, Rock.Size.X/2, Character)
1319
				if HIT then
1320
					RespondToImpact(HIT,Rock)
1321
					break
1322
				end
1323
			end
1324
			RockExplosion(Rock,1)
1325
		end))
1326
		for i=0, 0.3, 0.1 / Animation_Speed do
1327
			Swait()
1328
			LOOP = LOOP + 15*3
1329
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(-65+(LOOP)), RAD(0), RAD(0)), 1 / Animation_Speed)
1330
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(35), RAD(0), RAD(0)), 1 / Animation_Speed)
1331
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(-45), RAD(0), RAD(0)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
1332
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(-45), RAD(0), RAD(0)) * LEFTSHOULDERC0, 1 / Animation_Speed)
1333
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, 0) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.5 / Animation_Speed)
1334
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -0.5, -0.5) * ANGLES(RAD(-15), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
1335
		end
1336
		GRAV:remove()
1337
	end
1338
	ATTACK = false
1339
	Rooted = false
1340
end
1341
1342
function Melee()
1343
	ATTACK = true
1344
	Rooted = false
1345
	Speed = 12
1346
	repeat
1347
		Swait()
1348
		RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(-35)) * ANGLES(RAD(-5), RAD(0), RAD(0)), 1 / Animation_Speed)
1349
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(5), RAD(0), RAD(15)), 1 / Animation_Speed)
1350
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(90), RAD(0), RAD(25)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
1351
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(-15), RAD(0), RAD(15)) * LEFTSHOULDERC0, 1 / Animation_Speed)
1352
		RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, 0) * ANGLES(RAD(0), RAD(70), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
1353
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, 0) * ANGLES(RAD(0), RAD(-80), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
1354
	until KEYHOLD == false
1355
	Speed = 0
1356
	local ROOT = nil
1357
	local TORS = nil
1358
	local HUMAN = nil
1359
	local DIST = 4
1360
	for i=0, 0.2, 0.1 / Animation_Speed do
1361
		Swait()
1362
		RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(45)), 1 / Animation_Speed)
1363
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(10), RAD(0), RAD(-25)), 1 / Animation_Speed)
1364
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.35, 0.5, -0.4) * ANGLES(RAD(90), RAD(0), RAD(45)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
1365
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(-25), RAD(0), RAD(15)) * LEFTSHOULDERC0, 1 / Animation_Speed)
1366
		RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, 0) * ANGLES(RAD(0), RAD(80), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
1367
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, 0) * ANGLES(RAD(0), RAD(-70), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
1368
	end
1369
	for i=0, 1, 0.1 / Animation_Speed do
1370
		Swait()
1371
		local CHILDREN = workspace:GetDescendants()
1372
		for index, CHILD in pairs(CHILDREN) do
1373
			if CHILD.ClassName == "Model" and CHILD ~= Character then
1374
				local HUM = CHILD:FindFirstChildOfClass("Humanoid")
1375
				if HUM then
1376
					local TORSO = CHILD:FindFirstChild("HumanoidRootPart") or CHILD:FindFirstChild("Torso") or CHILD:FindFirstChild("UpperTorso")
1377
					if TORSO and HUM.Health > 0 then
1378
						if (TORSO.Position - RightArm.Position).Magnitude <= DIST then
1379
							DIST = (TORSO.Position - RightArm.Position).Magnitude
1380
							ROOT = TORSO
1381
							HUMAN = HUM
1382
							TORS = CHILD:FindFirstChild("Torso") or CHILD:FindFirstChild("UpperTorso")
1383
						end
1384
					end
1385
				end
1386
			end
1387
		end
1388
		if ROOT then
1389
			break
1390
		end
1391
		RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(45)), 1 / Animation_Speed)
1392
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(10), RAD(0), RAD(-25)), 1 / Animation_Speed)
1393
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.35, 0.5, -0.4) * ANGLES(RAD(90), RAD(0), RAD(45)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
1394
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(-25), RAD(0), RAD(15)) * LEFTSHOULDERC0, 1 / Animation_Speed)
1395
		RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, 0) * ANGLES(RAD(0), RAD(80), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
1396
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, 0) * ANGLES(RAD(0), RAD(-70), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
1397
	end
1398
	if ROOT then
1399
		local POSITIONED = false
1400
		coroutine.resume(coroutine.create(function()
1401
			ROOT.Anchored = true
1402
			local POS = RootPart.CFrame*CF(0,-3,-1) * ANGLES(RAD(180), RAD(0), RAD(0)) * ANGLES(RAD(90), RAD(0), RAD(0))
1403
			for i = 1, 25 do
1404
				ROOT.Anchored = true
1405
				Swait()
1406
				ROOT.CFrame = Clerp(ROOT.CFrame, POS, 0.8 / Animation_Speed)
1407
			end
1408
			POSITIONED = true
1409
			repeat Swait() ROOT.Anchored = true until ATTACK == false
1410
			ROOT.Anchored = false
1411
		end))
1412
		repeat
1413
			Swait()
1414
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
1415
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
1416
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(0)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
1417
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(0)) * LEFTSHOULDERC0, 1 / Animation_Speed)
1418
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, 0) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
1419
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, 0) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
1420
		until POSITIONED == true
1421
		for i = 1, 3 do
1422
			for i=0, 0.5, 0.1 / Animation_Speed do
1423
				Swait()
1424
				RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(-15), RAD(0), RAD(0)), 2 / Animation_Speed)
1425
				Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(25), RAD(0), RAD(0)), 2 / Animation_Speed)
1426
				RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(-25), RAD(0), RAD(0)) * RIGHTSHOULDERC0, 2 / Animation_Speed)
1427
				LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(-25), RAD(0), RAD(0)) * LEFTSHOULDERC0, 2 / Animation_Speed)
1428
				RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.35, -0.75) * ANGLES(RAD(50), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 2 / Animation_Speed)
1429
				LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, 0) * ANGLES(RAD(-30), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 2 / Animation_Speed)
1430
			end
1431
			for i=0, 0.15, 0.1 / Animation_Speed do
1432
				Swait()
1433
				RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, -0.4, -0.1) * ANGLES(RAD(35), RAD(0), RAD(0)), 1 / Animation_Speed)
1434
				Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(25), RAD(0), RAD(0)), 1 / Animation_Speed)
1435
				RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(45), RAD(0), RAD(0)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
1436
				LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(45), RAD(0), RAD(0)) * LEFTSHOULDERC0, 1 / Animation_Speed)
1437
				RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.9, -0.6) * ANGLES(RAD(35), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
1438
				LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1.1, 0) * ANGLES(RAD(35), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
1439
			end
1440
			local EMIT = script.Emit:Clone()
1441
			EMIT.Parent = TORS
1442
			EMIT.Size = NumberSequence.new(1,0)
1443
			EMIT:Emit(120)
1444
			Debris:AddItem(EMIT,5)
1445
			CreateSound(138186576, RightLeg, 1, MRANDOM(13,15)/10, false)
1446
			WaveParticles(TORS.Position,12,C3(1,1,1))
1447
			ApplyAoE(RightLeg.Position,8,25,35,0,false)
1448
			WACKYEFFECT({Time = 25, EffectType = "Wave", Size = VT(0,0,0), Size2 = VT(35,3,35), Transparency = 0.2, Transparency2 = 1, CFrame = CF(TORS.Position), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = C3(1,1,1), SoundID = nil, SoundPitch = nil, SoundVolume = nil})
1449
			WACKYEFFECT({Time = 25, EffectType = "Wave", Size = VT(0,0,0), Size2 = VT(25,4,25), Transparency = 0.2, Transparency2 = 1, CFrame = CF(TORS.Position), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = C3(1,1,1), SoundID = nil, SoundPitch = nil, SoundVolume = nil})
1450
			for i=0, 0.25, 0.1 / Animation_Speed do
1451
				Swait()
1452
				RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, -0.4, -0.1) * ANGLES(RAD(35), RAD(0), RAD(0)), 1 / Animation_Speed)
1453
				Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(25), RAD(0), RAD(0)), 1 / Animation_Speed)
1454
				RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(45), RAD(0), RAD(0)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
1455
				LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(45), RAD(0), RAD(0)) * LEFTSHOULDERC0, 1 / Animation_Speed)
1456
				RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.9, -0.6) * ANGLES(RAD(35), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
1457
				LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1.1, 0) * ANGLES(RAD(35), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
1458
			end
1459
			if HUMAN.Health == 0 then
1460
				break
1461
			end
1462
			for i=0, 0.2, 0.1 / Animation_Speed do
1463
				Swait()
1464
				RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
1465
				Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(15), RAD(0), RAD(0)), 1 / Animation_Speed)
1466
				RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(0)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
1467
				LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(0)) * LEFTSHOULDERC0, 1 / Animation_Speed)
1468
				RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, 0) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
1469
				LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, 0) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
1470
			end
1471
		end
1472
	end
1473
	Speed = 25
1474
	ATTACK = false
1475
	Rooted = false
1476
end
1477
1478
function Launch()
1479
	local HITFLOOR,HITPOS = Raycast(RootPart.Position, (CF(RootPart.Position, RootPart.Position + VT(0, -1, 0))).lookVector, 4, Character)
1480
	if HITFLOOR then
1481
		WACKYEFFECT({Time = 15, EffectType = "Wave", Size = VT(0,0,0), Size2 = VT(15,3,15), Transparency = 0.2, Transparency2 = 1, CFrame = CF(HITPOS), MoveToPos = nil, RotationX = 0, RotationY = 15, RotationZ = 0, Material = "Neon", Color = C3(1,1,1), SoundID = 138186576, SoundPitch = 1, SoundVolume = 2})
1482
		local P = PILLAR:Clone()
1483
		P.Color = HITFLOOR.Color
1484
		P.Material = HITFLOOR.Material
1485
		P.Parent = Effects
1486
		P.CFrame = CF(HITPOS-VT(0,4.5,0))
1487
		coroutine.resume(coroutine.create(function()
1488
			for i = 1, 6 do
1489
				Swait()
1490
				P.CFrame = P.CFrame * CF(0,0.9,0)
1491
			end
1492
			wait(1)
1493
			for i = 1, 45 do
1494
				Swait()
1495
				P.Transparency =P.Transparency + 1/45 
1496
			end
1497
			P:remove()
1498
		end))
1499
		RootPart.CFrame = RootPart.CFrame*CF(0,1,0)
1500
		RootPart.Velocity = VT(0,0,0)
1501
		local bv = Instance.new("BodyVelocity",RootPart) 
1502
		bv.maxForce = Vector3.new(1e9, 1e9, 1e9)
1503
		bv.velocity = CF(RootPart.Position,RootPart.Position+VT(0,100,0)).lookVector*350
1504
		Debris:AddItem(bv,0.1)
1505
	end
1506
end
1507
1508
function Ravage()
1509
	local HITFLOOR,HITPOS = Raycast(RootPart.Position, (CF(RootPart.Position, RootPart.Position + VT(0, -1, 0))).lookVector, 4, Character)
1510
	if HITFLOOR then
1511
		ATTACK = true
1512
		Rooted = false
1513
		for i=0, 0.3, 0.1 / Animation_Speed do
1514
			Swait()
1515
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(25)), 1 / Animation_Speed)
1516
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(-15)), 1 / Animation_Speed)
1517
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(45)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
1518
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(-15), RAD(0), RAD(-15)) * ANGLES(RAD(0), RAD(45), RAD(0)) * LEFTSHOULDERC0, 1 / Animation_Speed)
1519
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(55), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
1520
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(-100), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
1521
		end
1522
		WaveParticles(RightArm.CFrame*CF(0,-1,0).p,4,C3(1,1,1))
1523
		Rooted = true
1524
		CreateSound(217767125, RightArm, 5, 1, false)
1525
		for i=0, 0.15, 0.1 / Animation_Speed do
1526
			Swait()
1527
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(25)), 1 / Animation_Speed)
1528
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(-15)), 1 / Animation_Speed)
1529
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(145)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
1530
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(-15), RAD(0), RAD(-15)) * ANGLES(RAD(0), RAD(45), RAD(0)) * LEFTSHOULDERC0, 1 / Animation_Speed)
1531
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(55), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
1532
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(-100), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
1533
		end
1534
		local HOLD = true
1535
		coroutine.resume(coroutine.create(function()
1536
			repeat
1537
				Swait()
1538
				RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(-25)), 1 / Animation_Speed)
1539
				Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(15 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(15)), 1 / Animation_Speed)
1540
				RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, -0.2) * ANGLES(RAD(145), RAD(0), RAD(25)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
1541
				LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(-15), RAD(0), RAD(-15)) * ANGLES(RAD(0), RAD(45), RAD(0)) * LEFTSHOULDERC0, 1 / Animation_Speed)
1542
				RightHip.C0 = Clerp(RightHip.C0, CF(1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(100), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
1543
				LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(-55), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
1544
			until HOLD == false
1545
		end))
1546
		repeat
1547
			wait(0.3)
1548
			coroutine.resume(coroutine.create(function()
1549
				local HITFLOOR,HITPOS = Raycast(Mouse.Hit.p+VT(0,1,0), (CF(RootPart.Position, RootPart.Position + VT(0, -1, 0))).lookVector, 15, Character)
1550
				if HITFLOOR then
1551
					if HITFLOOR.Anchored == true then
1552
						local ROCK = GetRock(HITFLOOR)
1553
						CreateSound(130972023, ROCK, 2, MRANDOM(8,12)/10, false)
1554
						ROCK.Size = VT(4,4,4)*(MRANDOM(8,12)/10)
1555
						ROCK.Core.Emit.Enabled = true
1556
						ROCK.CFrame = CF(HITPOS+VT(0,-6,0)) * ANGLES(RAD(0), RAD(MRANDOM(0,360)), RAD(0))
1557
						local POS = ROCK.CFrame*CF(0,12,0)
1558
						for i = 1, 25 do
1559
							ROCK.Anchored = true
1560
							Swait()
1561
							ROCK.CFrame = Clerp(ROCK.CFrame, POS, 0.8 / Animation_Speed)
1562
						end
1563
						ROCK.Core.Emit.Enabled = false
1564
						wait(0.3)
1565
						RockExplosion(ROCK,1)
1566
					end
1567
				end
1568
			end))
1569
		until KEYHOLD == false
1570
		wait(0.5)
1571
		HOLD = false
1572
		ATTACK = false
1573
		Rooted = false
1574
	end
1575
end
1576
1577
function Shield()
1578
	ATTACK = true
1579
	Rooted = false
1580
	local GYRO = IT("BodyGyro",RootPart)
1581
	GYRO.D = 2
1582
	GYRO.P = 2000
1583
	GYRO.MaxTorque = VT(40000000000,4000000,40000000000)
1584
	local GRAV = IT("BodyPosition",RootPart)
1585
	GRAV.D = 250
1586
	GRAV.P = 20000
1587
	GRAV.MaxForce = VT(math.huge,math.huge,math.huge)
1588
	GRAV.Position = RootPart.Position
1589
	coroutine.resume(coroutine.create(function()
1590
		repeat
1591
			Swait()
1592
			GYRO.CFrame = CF(RootPart.Position,Mouse.Hit.p)
1593
		until ATTACK == false
1594
		GYRO:Remove()
1595
		GRAV:Remove()
1596
	end))
1597
	for i=0, 0.3, 0.1 / Animation_Speed do
1598
		Swait()
1599
		RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(80)), 1 / Animation_Speed)
1600
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0), RAD(0), RAD(-30)), 1 / Animation_Speed)
1601
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(90)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
1602
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(-25), RAD(0), RAD(-35)) * LEFTSHOULDERC0, 1 / Animation_Speed)
1603
		RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, 0) * ANGLES(RAD(0), RAD(60), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
1604
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, 0) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
1605
	end
1606
	local Defence = GetShield()
1607
	Defence.Size = VT(0,2,0)
1608
	Defence.Parent = Effects
1609
	Defence.CFrame = RightArm.CFrame*CF(0,-6,0) * ANGLES(RAD(180), RAD(90), RAD(0))
1610
	WaveParticles(Defence.Position,12,Defence.Color)
1611
	CreateSound(201858045, Defence, 2, MRANDOM(10,12)/10, false)
1612
	local FIX = Defence.AncestryChanged:Connect(function()
1613
		Defence.Parent = Effects
1614
	end)
1615
	for i = 1, 40 do
1616
		Swait()
1617
		Defence.Size = Defence.Size + VT(0.5,0,0.7)
1618
		Defence.CFrame = RightArm.CFrame*CF(0,-6,0) * ANGLES(RAD(180), RAD(90), RAD(0))
1619
	end
1620
	repeat
1621
		Swait()
1622
		Defence.CFrame = RightArm.CFrame*CF(0,-6,0) * ANGLES(RAD(180), RAD(90), RAD(0))
1623
		RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(80)), 1 / Animation_Speed)
1624
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0), RAD(0), RAD(-30)), 1 / Animation_Speed)
1625
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(90)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
1626
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(-25), RAD(0), RAD(-35)) * LEFTSHOULDERC0, 1 / Animation_Speed)
1627
		RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, 0) * ANGLES(RAD(0), RAD(60), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
1628
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, 0) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
1629
	until KEYHOLD == false
1630
	FIX:Disconnect()
1631
	coroutine.resume(coroutine.create(function()
1632
		for i = 1, 40 do
1633
			Swait()
1634
			Defence.Size = Defence.Size - VT(0.5,0,0.7)
1635
		end
1636
		WaveParticles(Defence.Position,12,Defence.Color)
1637
		Defence:remove()
1638
	end))
1639
	ATTACK = false
1640
	Rooted = false
1641
end
1642
1643
function TwinMeteor()
1644
	local HITFLOOR,HITPOS = Raycast(RootPart.Position, (CF(RootPart.Position, RootPart.Position + VT(0, -1, 0))).lookVector, 100, Character)
1645
	if HITFLOOR == nil then
1646
		ATTACK = true
1647
		Rooted = false
1648
		local GYRO = IT("BodyGyro",RootPart)
1649
		GYRO.D = 2
1650
		GYRO.P = 2000
1651
		GYRO.MaxTorque = VT(40000000000,4000000,40000000000)
1652
		local GRAV = IT("BodyPosition",RootPart)
1653
		GRAV.D = 250
1654
		GRAV.P = 20000
1655
		GRAV.MaxForce = VT(math.huge,math.huge,math.huge)
1656
		GRAV.Position = RootPart.Position
1657
		coroutine.resume(coroutine.create(function()
1658
			repeat
1659
				Swait()
1660
				GYRO.CFrame = CF(RootPart.Position,Mouse.Hit.p)
1661
			until ATTACK == false
1662
			GYRO:Remove()
1663
			GRAV:Remove()
1664
		end))
1665
		local CHARGED = false
1666
		coroutine.resume(coroutine.create(function()
1667
			repeat
1668
				Swait()
1669
				RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
1670
				Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
1671
				RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(90)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
1672
				LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(-90)) * LEFTSHOULDERC0, 1 / Animation_Speed)
1673
				RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, 0) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
1674
				LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, 0) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
1675
			until CHARGED == true
1676
		end))
1677
		local ROCK1 = GetRock()
1678
		local ROCK2 = GetRock()
1679
		local VORTEX1 = script.Vortex:Clone()
1680
		local VORTEX2 = script.Vortex:Clone()
1681
		VORTEX1.Parent = ROCK1.Core
1682
		VORTEX2.Parent = ROCK2.Core
1683
		ROCK1.Core.Emit.Enabled = true
1684
		ROCK2.Core.Emit.Enabled = true
1685
		ROCK1.CFrame = CF(RightArm.CFrame*CF(0,-1-ROCK1.Size.Y/2,0).p,Mouse.Hit.p)
1686
		ROCK2.CFrame = CF(LeftArm.CFrame*CF(0,-1-ROCK2.Size.Y/2,0).p,Mouse.Hit.p)
1687
		CreateSound(1664710821, ROCK1, 10, MRANDOM(8,12)/10, false)
1688
		CreateSound(1664710821, ROCK2, 10, MRANDOM(8,12)/10, false)
1689
		for i = 1, 70 do
1690
			Swait()
1691
			ROCK1.Size = ROCK1.Size + VT(0.3,0.3,0.3)
1692
			ROCK2.Size = ROCK2.Size + VT(0.3,0.3,0.3)
1693
			ROCK1.CFrame = CF(RightArm.CFrame*CF(0,-1-ROCK1.Size.Y/2,0).p,Mouse.Hit.p)
1694
			ROCK2.CFrame = CF(LeftArm.CFrame*CF(0,-1-ROCK2.Size.Y/2,0).p,Mouse.Hit.p)
1695
			VORTEX1.Size = NumberSequence.new(ROCK1.Size.Y*2,0)
1696
			VORTEX2.Size = NumberSequence.new(ROCK1.Size.Y*2,0)
1697
			VORTEX1:Emit(1)
1698
			VORTEX2:Emit(1)
1699
		end
1700
		CHARGED = true
1701
		for i=0, 1, 0.1 / Animation_Speed do
1702
			Swait()
1703
			ROCK1.CFrame = CF(RightArm.CFrame*CF(0,-1-ROCK1.Size.Y/2,0).p,Mouse.Hit.p)
1704
			ROCK2.CFrame = CF(LeftArm.CFrame*CF(0,-1-ROCK2.Size.Y/2,0).p,Mouse.Hit.p)
1705
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
1706
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
1707
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(90)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
1708
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(-90)) * LEFTSHOULDERC0, 1 / Animation_Speed)
1709
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, 0) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
1710
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, 0) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
1711
		end
1712
		for i=0, 0.5, 0.1 / Animation_Speed do
1713
			Swait()
1714
			ROCK1.CFrame = CF(RightArm.CFrame*CF(0,-1-ROCK1.Size.Y/2,0).p,Mouse.Hit.p)
1715
			ROCK2.CFrame = CF(LeftArm.CFrame*CF(0,-1-ROCK2.Size.Y/2,0).p,Mouse.Hit.p)
1716
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(-15)), 1 / Animation_Speed)
1717
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0), RAD(0), RAD(5)), 1 / Animation_Speed)
1718
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(90)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
1719
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(-90)) * LEFTSHOULDERC0, 1 / Animation_Speed)
1720
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, 0) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
1721
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, 0) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
1722
		end
1723
		coroutine.resume(coroutine.create(function()
1724
			local Rock = ROCK1
1725
			WaveParticles(Rock.Position,30,C3(1,1,1))
1726
			CreateSound(134012322, Rock, 2, MRANDOM(10,12)/10, false)
1727
			for i = 1, 200 do
1728
				Swait()
1729
				Rock.CFrame = Rock.CFrame * CF(0,0,-3.2)
1730
				local HIT = Raycast(Rock.Position, Rock.CFrame.lookVector, Rock.Size.X/2, Character)
1731
				if HIT then
1732
					RespondToImpact(HIT,Rock)
1733
					break
1734
				end
1735
			end
1736
			ApplyAoE(Rock.Position,ROCK.Size.Y,50,55,55,false)
1737
			for i = 1, 6 do
1738
				RockExplosion(Rock,1.5,true)
1739
				wait(1)
1740
			end
1741
			RockExplosion(Rock,1.5)
1742
		end))
1743
		for i=0, 1, 0.1 / Animation_Speed do
1744
			Swait()
1745
			ROCK2.CFrame = CF(LeftArm.CFrame*CF(0,-1-ROCK2.Size.Y/2,0).p,Mouse.Hit.p)
1746
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(35)), 1 / Animation_Speed)
1747
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0), RAD(0), RAD(-5)), 1 / Animation_Speed)
1748
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(90)) * ANGLES(RAD(55), RAD(0), RAD(0)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
1749
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(-90)) * LEFTSHOULDERC0, 1 / Animation_Speed)
1750
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, 0) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
1751
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, 0) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
1752
		end
1753
		for i=0, 0.5, 0.1 / Animation_Speed do
1754
			Swait()
1755
			ROCK2.CFrame = CF(LeftArm.CFrame*CF(0,-1-ROCK2.Size.Y/2,0).p,Mouse.Hit.p)
1756
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(15)), 1 / Animation_Speed)
1757
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0), RAD(0), RAD(5)), 1 / Animation_Speed)
1758
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(-15), RAD(0), RAD(15)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
1759
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(-90)) * LEFTSHOULDERC0, 1 / Animation_Speed)
1760
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, 0) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
1761
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, 0) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
1762
		end
1763
		coroutine.resume(coroutine.create(function()
1764
			local Rock = ROCK2
1765
			WaveParticles(Rock.Position,30,C3(1,1,1))
1766
			CreateSound(134012322, Rock, 2, MRANDOM(10,12)/10, false)
1767
			for i = 1, 200 do
1768
				Swait()
1769
				Rock.CFrame = Rock.CFrame * CF(0,0,-3.2)
1770
				local HIT = Raycast(Rock.Position, Rock.CFrame.lookVector, Rock.Size.X/2, Character)
1771
				if HIT then
1772
					RespondToImpact(HIT,Rock)
1773
					break
1774
				end
1775
			end
1776
			ApplyAoE(Rock.Position,ROCK.Size.Y,50,55,55,false)
1777
			for i = 1, 6 do
1778
				RockExplosion(Rock,1.5,true)
1779
				wait(1)
1780
			end
1781
			RockExplosion(Rock,1.5)
1782
		end))
1783
		for i=0, 1, 0.1 / Animation_Speed do
1784
			Swait()
1785
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(-35)), 1 / Animation_Speed)
1786
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0), RAD(0), RAD(5)), 1 / Animation_Speed)
1787
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(-15), RAD(0), RAD(15)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
1788
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(-90)) * ANGLES(RAD(55), RAD(0), RAD(0)) * LEFTSHOULDERC0, 1 / Animation_Speed)
1789
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, 0) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
1790
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, 0) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
1791
		end
1792
		ATTACK = false
1793
		Rooted = false
1794
	end
1795
end
1796
1797
function Spikes()
1798
	local HITFLOOR,HITPOS = Raycast(RootPart.Position, (CF(RootPart.Position, RootPart.Position + VT(0, -1, 0))).lookVector, 12, Character)
1799
	if HITFLOOR then
1800
		ATTACK = true
1801
		Rooted = true
1802
		local GYRO = IT("BodyGyro",RootPart)
1803
		GYRO.D = 2
1804
		GYRO.P = 2000
1805
		GYRO.MaxTorque = VT(0,4000000,0)
1806
		coroutine.resume(coroutine.create(function()
1807
			repeat
1808
				Swait()
1809
				GYRO.CFrame = CF(RootPart.Position,Mouse.Hit.p)
1810
			until ATTACK == false
1811
			GYRO:Remove()
1812
		end))
1813
		for i=0, 1, 0.1 / Animation_Speed do
1814
			Swait()
1815
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(-15), RAD(0), RAD(0)), 2 / Animation_Speed)
1816
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(25), RAD(0), RAD(0)), 2 / Animation_Speed)
1817
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(125), RAD(0), RAD(0)) * RIGHTSHOULDERC0, 2 / Animation_Speed)
1818
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(125), RAD(0), RAD(0)) * LEFTSHOULDERC0, 2 / Animation_Speed)
1819
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.35, -0.75) * ANGLES(RAD(30), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 2 / Animation_Speed)
1820
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, 0) * ANGLES(RAD(-30), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 2 / Animation_Speed)
1821
		end
1822
		for i=0, 0.25, 0.1 / Animation_Speed do
1823
			Swait()
1824
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, -0.4, -0.1) * ANGLES(RAD(35), RAD(0), RAD(0)), 1 / Animation_Speed)
1825
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(25), RAD(0), RAD(0)), 1 / Animation_Speed)
1826
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(-45), RAD(0), RAD(0)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
1827
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(-45), RAD(0), RAD(0)) * LEFTSHOULDERC0, 1 / Animation_Speed)
1828
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.9, -0.6) * ANGLES(RAD(35), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
1829
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1.1, 0) * ANGLES(RAD(35), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
1830
		end
1831
		CreateSound(165970126, RightLeg, 1, MRANDOM(13,15)/10, false)
1832
		WaveParticles(RightLeg.CFrame*CF(0,-1,0).p,15,C3(1,1,1))
1833
		coroutine.resume(coroutine.create(function()
1834
			local CFRAME = RootPart.CFrame*CF(0,-3,0)
1835
			for i = 1, 60 do
1836
				Swait()
1837
				local SPIKE = GetSpike(HITFLOOR)
1838
				SPIKE.CFrame = CFRAME*CF(0,-11,-i*2)
1839
				ApplyAoE(CFRAME*CF(0,0,-i*2).p,4,10,35,15,false)
1840
				coroutine.resume(coroutine.create(function()
1841
					local POS = SPIKE.CFrame*CF(0,11,0)
1842
					for i = 1, 25 do
1843
						Swait()
1844
						SPIKE.CFrame = Clerp(SPIKE.CFrame, POS, 0.8 / Animation_Speed)
1845
					end
1846
					wait(0.2)
1847
					for i = 1, 45 do
1848
						Swait()
1849
						SPIKE.Transparency = SPIKE.Transparency + 1/45
1850
						SPIKE.CFrame = SPIKE.CFrame * CF(0,-2/15,0)
1851
					end
1852
					SPIKE:remove()
1853
				end))
1854
			end
1855
		end))
1856
		wait(0.3)
1857
		ATTACK = false
1858
		Rooted = false
1859
	end
1860
end
1861
1862
function TakeOnMe()
1863
	Speed = 5
1864
	local MEME = CreateSound(288703954, Effects, 2, 1, false)
1865
	ATTACK = true
1866
	Rooted = false
1867
	local DANCE = true
1868
	local KEY = Mouse.KeyDown:connect(function(NEWKEY)
1869
		if NEWKEY == "p" then
1870
			DANCE = false
1871
		end
1872
	end)
1873
	PLAYSONG = false
1874
	while true do
1875
		for i = 1, 15 do
1876
			Swait()
1877
			MEME.Parent = Effects
1878
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, -0.4+((15-i)/45)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
1879
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
1880
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.55, 0.75, 0) * ANGLES(RAD(0), RAD(0), RAD(-10)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
1881
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.55, 0.75, 0) * ANGLES(RAD(0), RAD(0), RAD(-20)) * LEFTSHOULDERC0, 1 / Animation_Speed)
1882
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.6, -0.3) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
1883
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, 0, -1) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
1884
		end
1885
		if DANCE == false then
1886
			break
1887
		end
1888
		for i = 1, 15 do
1889
			Swait()
1890
			MEME.Parent = Effects
1891
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, -0.4+((15-i)/45)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
1892
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
1893
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.55, 0.75, 0) * ANGLES(RAD(0), RAD(0), RAD(20)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
1894
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.55, 0.75, 0) * ANGLES(RAD(0), RAD(0), RAD(10)) * LEFTSHOULDERC0, 1 / Animation_Speed)
1895
			RightHip.C0 = Clerp(RightHip.C0, CF(1, 0, -1) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
1896
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -0.6, -0.3) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
1897
		end
1898
	end
1899
	PLAYSONG = true
1900
	KEY:Disconnect()
1901
	MEME:remove()
1902
	Speed = 25
1903
	ATTACK = false
1904
	Rooted = false
1905
end
1906
1907
function Noclip()
1908
	ATTACK = true
1909
	Rooted = true
1910
	UNANCHOR = false
1911
	RootPart.Anchored = true
1912
	local CLIPPING = true
1913
	local MOVEMENT = nil
1914
	CreateSound(96098241, Torso, 3, MRANDOM(9,12)/10, false)
1915
	for i = 1, 50 do
1916
		Swait()
1917
		EXTRATRANS = EXTRATRANS + 0.5/50
1918
		RootPart.CFrame = RootPart.CFrame * CF(0,(1-(i/50))/4.3,0)
1919
		RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
1920
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
1921
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.1, 0.5, -0.45) * ANGLES(RAD(110), RAD(0), RAD(-80)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
1922
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.1, 0.15, -0.45) * ANGLES(RAD(80), RAD(0), RAD(80)) * ANGLES(RAD(0), RAD(45), RAD(0)) * LEFTSHOULDERC0, 1 / Animation_Speed)
1923
		RightHip.C0 = Clerp(RightHip.C0, CF(1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(70), RAD(0)) * ANGLES(RAD(-2), RAD(0), RAD(0)), 1 / Animation_Speed)
1924
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(-70), RAD(0)) * ANGLES(RAD(-2), RAD(0), RAD(0)), 1 / Animation_Speed)
1925
	end
1926
	local AURA = CreateSound(1393698948, Torso, 3, 1, true)
1927
	local KEY = Mouse.KeyDown:connect(function(NEWKEY)
1928
		if NEWKEY == "w" then
1929
			MOVEMENT = "Forward"
1930
			repeat
1931
				Swait()
1932
				RootPart.CFrame = RootPart.CFrame * CF(0,0,-0.2)
1933
			until KEYHOLD == false
1934
		elseif NEWKEY == "s" then
1935
			MOVEMENT = "Backwards"
1936
			repeat
1937
				Swait()
1938
				RootPart.CFrame = RootPart.CFrame * CF(0,0,0.2)
1939
			until KEYHOLD == false
1940
		elseif NEWKEY == "a" then
1941
			MOVEMENT = "Strafe"
1942
			repeat
1943
				Swait()
1944
				RootPart.CFrame = RootPart.CFrame * CF(0.2,0,0)
1945
			until KEYHOLD == false
1946
		elseif NEWKEY == "d" then
1947
			MOVEMENT = "Strafe"
1948
			repeat
1949
				Swait()
1950
				RootPart.CFrame = RootPart.CFrame * CF(-0.2,0,0)
1951
			until KEYHOLD == false
1952
		elseif NEWKEY == "y" then
1953
			CLIPPING = false
1954
		end
1955
		MOVEMENT = nil
1956
	end)
1957
	local LOOP = 0
1958
	repeat
1959
		Swait()
1960
		AURA.Parent = Torso
1961
		LOOP = LOOP + 1
1962
		if LOOP >= 15 then
1963
			LOOP = 0
1964
			WaveParticles(Torso.Position,15,C3(1,1,1))
1965
			WACKYEFFECT({Time = 15, EffectType = "Wave", Size = VT(5,0,5), Size2 = VT(15,1,15), Transparency = 0.7, Transparency2 = 1, CFrame = CF(RootPart.CFrame*CF(0,-3.5,0).p), MoveToPos = nil, RotationX = 0, RotationY = MRANDOM(-2,2)*15, RotationZ = 0, Material = "Neon", Color = C3(0,0,0), SoundID = nil, SoundPitch = nil, SoundVolume = nil})
1966
		end
1967
		if MOVEMENT == nil then
1968
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
1969
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(15 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
1970
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.1, 0.5, -0.45) * ANGLES(RAD(110), RAD(0), RAD(-80)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
1971
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.1, 0.15, -0.45) * ANGLES(RAD(80), RAD(0), RAD(80)) * ANGLES(RAD(0), RAD(45), RAD(0)) * LEFTSHOULDERC0, 1 / Animation_Speed)
1972
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.3 - 0.1 * SIN(SINE / 12), -0.6) * ANGLES(RAD(0), RAD(80), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 1 / Animation_Speed)
1973
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.1 * SIN(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(-80), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 1 / Animation_Speed)
1974
		elseif MOVEMENT == "Forward" then
1975
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(15), RAD(0), RAD(0)), 1 / Animation_Speed)
1976
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(15 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
1977
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.1, 0.5, -0.45) * ANGLES(RAD(110), RAD(0), RAD(-80)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
1978
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.1, 0.15, -0.45) * ANGLES(RAD(80), RAD(0), RAD(80)) * ANGLES(RAD(0), RAD(45), RAD(0)) * LEFTSHOULDERC0, 1 / Animation_Speed)
1979
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.3 - 0.1 * SIN(SINE / 12), -0.6) * ANGLES(RAD(0), RAD(80), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 1 / Animation_Speed)
1980
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.1 * SIN(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(-80), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 1 / Animation_Speed)
1981
		elseif MOVEMENT == "Backwards" then
1982
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(-15), RAD(0), RAD(0)), 1 / Animation_Speed)
1983
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(15 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
1984
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.1, 0.5, -0.45) * ANGLES(RAD(110), RAD(0), RAD(-80)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
1985
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.1, 0.15, -0.45) * ANGLES(RAD(80), RAD(0), RAD(80)) * ANGLES(RAD(0), RAD(45), RAD(0)) * LEFTSHOULDERC0, 1 / Animation_Speed)
1986
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.3 - 0.1 * SIN(SINE / 12), -0.6) * ANGLES(RAD(0), RAD(80), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 1 / Animation_Speed)
1987
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.1 * SIN(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(-80), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 1 / Animation_Speed)
1988
		elseif MOVEMENT == "Strafe" then
1989
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(2), RAD(0), RAD(0)), 1 / Animation_Speed)
1990
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(10 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
1991
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.1, 0.5, -0.45) * ANGLES(RAD(110), RAD(0), RAD(-80)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
1992
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.1, 0.15, -0.45) * ANGLES(RAD(80), RAD(0), RAD(80)) * ANGLES(RAD(0), RAD(45), RAD(0)) * LEFTSHOULDERC0, 1 / Animation_Speed)
1993
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.3 - 0.1 * SIN(SINE / 12), -0.6) * ANGLES(RAD(0), RAD(80), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 1 / Animation_Speed)
1994
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.1 * SIN(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(-80), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 1 / Animation_Speed)
1995
		end
1996
	until CLIPPING == false
1997
	KEY:Disconnect()
1998
	coroutine.resume(coroutine.create(function()
1999
		for i = 1, 20 do
2000
			Swait()
2001
			AURA.Volume = AURA.Volume - 3/20
2002
		end
2003
		AURA:remove()
2004
	end))
2005
	CreateSound(814168787, Torso, 1, MRANDOM(9,12)/10, false)
2006
	for i = 1, 50 do
2007
		Swait()
2008
		EXTRATRANS = EXTRATRANS - 0.5/50
2009
		RootPart.CFrame = RootPart.CFrame * CF(0,-(1-(i/50))/4.3,0)
2010
		RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
2011
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
2012
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.1, 0.5, -0.45) * ANGLES(RAD(110), RAD(0), RAD(-80)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
2013
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.1, 0.15, -0.45) * ANGLES(RAD(80), RAD(0), RAD(80)) * ANGLES(RAD(0), RAD(45), RAD(0)) * LEFTSHOULDERC0, 1 / Animation_Speed)
2014
		RightHip.C0 = Clerp(RightHip.C0, CF(1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(70), RAD(0)) * ANGLES(RAD(-2), RAD(0), RAD(0)), 1 / Animation_Speed)
2015
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(-70), RAD(0)) * ANGLES(RAD(-2), RAD(0), RAD(0)), 1 / Animation_Speed)
2016
	end
2017
	EXTRATRANS = 0
2018
	UNANCHOR = true
2019
	ATTACK = false
2020
	Rooted = false
2021
end
2022
2023
function Taunt()
2024
	ATTACK = true
2025
	Rooted = true
2026
	local TAUNT = CreateSound(159882635, Torso, 7, 1, false)
2027
	repeat
2028
		Swait()
2029
		TAUNT.Parent = Torso
2030
		TAUNT.Playing = true
2031
		RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
2032
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(-0.02, 0, 0 + ((1) - 1)) * ANGLES(RAD(0 - 2.5 * SIN(SINE / 12)), RAD(25), RAD(0)), 1 / Animation_Speed)
2033
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.1, 0.5, -0.45) * ANGLES(RAD(110), RAD(0), RAD(-80)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
2034
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.1, 0.15, -0.45) * ANGLES(RAD(80), RAD(0), RAD(80)) * ANGLES(RAD(0), RAD(45), RAD(0)) * LEFTSHOULDERC0, 1 / Animation_Speed)
2035
		RightHip.C0 = Clerp(RightHip.C0, CF(1, -1 - 0.05 * COS(SINE / 12), 0) * ANGLES(RAD(0), RAD(80), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
2036
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.05 * COS(SINE / 12), 0) * ANGLES(RAD(0), RAD(-80), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
2037
	until TAUNT.TimePosition >= 1.25
2038
	for i=0, 1.6, 0.1 / Animation_Speed do
2039
		Swait()
2040
		TAUNT.Parent = Torso
2041
		RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(5)), 1 / Animation_Speed)
2042
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(25)), 1 / Animation_Speed)
2043
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.1, 0.5, -0.45) * ANGLES(RAD(110), RAD(0), RAD(-80)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
2044
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.1, 0.15, -0.45) * ANGLES(RAD(80), RAD(0), RAD(80)) * ANGLES(RAD(0), RAD(45), RAD(0)) * LEFTSHOULDERC0, 1 / Animation_Speed)
2045
		RightHip.C0 = Clerp(RightHip.C0, CF(1, -1 - 0.05 * COS(SINE / 12), 0) * ANGLES(RAD(0), RAD(75), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
2046
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.05 * COS(SINE / 12), 0) * ANGLES(RAD(0), RAD(-85), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
2047
	end
2048
	ATTACK = false
2049
	Rooted = false
2050
end
2051
2052
--//=================================\\
2053
--||	  ASSIGN THINGS TO KEYS
2054
--\\=================================//
2055
2056
function MouseDown(Mouse)
2057
	if ATTACK == false then
2058
	end
2059
end
2060
2061
function MouseUp(Mouse)
2062
HOLD = false
2063
end
2064
2065
function KeyDown(Key)
2066
	KEYHOLD = true
2067
	if Key == "z" and ATTACK == false then
2068
		Bullet()
2069
	end
2070
2071
	if Key == "b" and ATTACK == false then
2072
		Melee()
2073
	end
2074
2075
	if Key == "c" and ATTACK == false then
2076
		Launch()
2077
	end
2078
2079
	if Key == "v" and ATTACK == false then
2080
		Ravage()
2081
	end
2082
2083
	if Key == "e" and ATTACK == false then
2084
		Shield()
2085
	end
2086
2087
	if Key == "q" and ATTACK == false then
2088
		Spikes()
2089
	end
2090
2091
	if Key == "x" and ATTACK == false then
2092
		TwinMeteor()
2093
	end
2094
2095
	if Key == "y" and ATTACK == false then
2096
		Noclip()
2097
	end
2098
2099
	if Key == "p" and ATTACK == false then
2100
		TakeOnMe()
2101
	end
2102
2103
	if Key == "t" and ATTACK == false then
2104
		Taunt()
2105
	end
2106
2107
	if Key == "]" and ATTACK == false then
2108
		if PLAYSONG == true then
2109
			PLAYSONG = false
2110
		else
2111
			PLAYSONG = true
2112
		end
2113
	end
2114
end
2115
2116
function KeyUp(Key)
2117
	KEYHOLD = false
2118
end
2119
2120
	Mouse.Button1Down:connect(function(NEWKEY)
2121
		MouseDown(NEWKEY)
2122
	end)
2123
	Mouse.Button1Up:connect(function(NEWKEY)
2124
		MouseUp(NEWKEY)
2125
	end)
2126
	Mouse.KeyDown:connect(function(NEWKEY)
2127
		KeyDown(NEWKEY)
2128
	end)
2129
	Mouse.KeyUp:connect(function(NEWKEY)
2130
		KeyUp(NEWKEY)
2131
	end)
2132
2133
--//=================================\\
2134
--\\=================================//
2135
2136
function AntiTimeStop()
2137
	for _, c in pairs(Character:GetChildren()) do
2138
		if c:IsA("BasePart") and c ~= RootPart then
2139
			c.Anchored = false
2140
		end
2141
	end
2142
	if UNANCHOR == true then
2143
		RootPart.Anchored = false
2144
	else
2145
		RootPart.Anchored = true
2146
	end
2147
end
2148
2149
--//=================================\\
2150
--||	WRAP THE WHOLE SCRIPT UP
2151
--\\=================================//
2152
2153
Humanoid.Changed:connect(function(Jump)
2154
	if Jump == "Jump" and (Disable_Jump == true) then
2155
		Humanoid.Jump = false
2156
	end
2157
end)
2158
2159
while true do
2160
	Swait()
2161
	Head:ClearAllChildren()
2162
	script.Parent = WEAPONGUI
2163
	ANIMATE.Parent = nil
2164
	for _,v in next, Humanoid:GetPlayingAnimationTracks() do
2165
	    v:Stop();
2166
	end
2167
	if Character:FindFirstChildOfClass("Humanoid") == nil then
2168
		Humanoid = IT("Humanoid",Character)
2169
	end
2170
	SINE = SINE + CHANGE
2171
	local TORSOVELOCITY = (RootPart.Velocity * VT(1, 0, 1)).magnitude
2172
	local TORSOVERTICALVELOCITY = RootPart.Velocity.y
2173
	local HITFLOOR = Raycast(RootPart.Position, (CF(RootPart.Position, RootPart.Position + VT(0, -1, 0))).lookVector, 4, Character)
2174
	local WALKSPEEDVALUE = 4
2175
	Neck.C1 = Clerp(Neck.C1, CF(0, 0, 0.03) * ANGLES(RAD(90), RAD(180), RAD(180)) * ANGLES(RAD(0), RAD(0), RAD(180)) , 1 / Animation_Speed)
2176
	if ANIM == "Walk" and TORSOVELOCITY > 1 and PLAYSONG == true  then
2177
		RootJoint.C1 = Clerp(RootJoint.C1, ROOTC0 * CF(0, 0, -0.15 * COS(SINE / (WALKSPEEDVALUE / 2))) * ANGLES(RAD(0), RAD(0) - RootPart.RotVelocity.Y / 75, RAD(0)), 2 * (Humanoid.WalkSpeed / 16) / Animation_Speed)
2178
		Neck.C1 = Clerp(Neck.C1, CF(0, -0.5, 0) * ANGLES(RAD(-90), RAD(0), RAD(180)) * ANGLES(RAD(2.5 * SIN(SINE / (WALKSPEEDVALUE / 2))), RAD(0), RAD(0) - Head.RotVelocity.Y / 30), 0.2 * (Humanoid.WalkSpeed / 16) / Animation_Speed)
2179
		RightHip.C1 = Clerp(RightHip.C1, CF(0.5, 0.875 - 0.125 * SIN(SINE / WALKSPEEDVALUE) - 0.15 * COS(SINE / WALKSPEEDVALUE*2), -0.125 * COS(SINE / WALKSPEEDVALUE) +0.2- 0.2 * COS(SINE / WALKSPEEDVALUE)) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0) - RightLeg.RotVelocity.Y / 75, RAD(0), RAD(65 * COS(SINE / WALKSPEEDVALUE))), 0.5 * (Humanoid.WalkSpeed / 16) / Animation_Speed)
2180
		LeftHip.C1 = Clerp(LeftHip.C1, CF(-0.5, 0.875 + 0.125 * SIN(SINE / WALKSPEEDVALUE) - 0.15 * COS(SINE / WALKSPEEDVALUE*2), 0.125 * COS(SINE / WALKSPEEDVALUE) +0.2+ 0.2 * COS(SINE / WALKSPEEDVALUE)) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0) + LeftLeg.RotVelocity.Y / 75, RAD(0), RAD(65 * COS(SINE / WALKSPEEDVALUE))), 0.5 * (Humanoid.WalkSpeed / 16) / Animation_Speed)
2181
	elseif (ANIM ~= "Walk") or (TORSOVELOCITY < 1) or PLAYSONG == false then
2182
		RootJoint.C1 = Clerp(RootJoint.C1, ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.2 / Animation_Speed)
2183
		Neck.C1 = Clerp(Neck.C1, CF(0, -0.5, 0) * ANGLES(RAD(-90), RAD(0), RAD(180)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.2 / Animation_Speed)
2184
		RightHip.C1 = Clerp(RightHip.C1, CF(0.5, 1, 0) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
2185
		LeftHip.C1 = Clerp(LeftHip.C1, CF(-0.5, 1, 0) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
2186
	end
2187
	if TORSOVERTICALVELOCITY > 1 and HITFLOOR == nil then
2188
		ANIM = "Jump"
2189
		if ATTACK == false then
2190
			RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0, 0, 0 ) * ANGLES(RAD(-5), RAD(0), RAD(0)), 1 / Animation_Speed)
2191
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0 , 0 + ((1) - 1)) * ANGLES(RAD(-25), RAD(0), RAD(0)), 1 / Animation_Speed)
2192
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(-35), RAD(0), RAD(25 + 10 * COS(SINE / 12))) * RIGHTSHOULDERC0, 1 / Animation_Speed)
2193
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(-35), RAD(0), RAD(-25 - 10 * COS(SINE / 12))) * LEFTSHOULDERC0, 1 / Animation_Speed)
2194
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.4, -0.6) * ANGLES(RAD(1), RAD(90), RAD(0)) * ANGLES(RAD(-1 * SIN(SINE / 6)), RAD(0), RAD(0)), 1 / Animation_Speed)
2195
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, 0) * ANGLES(RAD(0), RAD(-85), RAD(0)) * ANGLES(RAD(-1 * SIN(SINE / 6)), RAD(0), RAD(0)), 1 / Animation_Speed)
2196
		end
2197
	elseif TORSOVERTICALVELOCITY < -1 and HITFLOOR == nil then
2198
		ANIM = "Fall"
2199
		if ATTACK == false then
2200
			RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0, 0, 0 ) * ANGLES(RAD(15), RAD(0), RAD(0)), 1 / Animation_Speed)
2201
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0 , 0 + ((1) - 1)) * ANGLES(RAD(15), RAD(0), RAD(0)), 1 / Animation_Speed)
2202
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(35 - 4 * COS(SINE / 6)), RAD(0), RAD(45 + 10 * COS(SINE / 12))) * RIGHTSHOULDERC0, 1 / Animation_Speed)
2203
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(35 - 4 * COS(SINE / 6)), RAD(0), RAD(-45 - 10 * COS(SINE / 12))) * LEFTSHOULDERC0, 1 / Animation_Speed)
2204
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.3, -0.7) * ANGLES(RAD(-25 + 5 * SIN(SINE / 12)), RAD(90), RAD(0)) * ANGLES(RAD(-1 * SIN(SINE / 6)), RAD(0), RAD(0)), 1 / Animation_Speed)
2205
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -0.8, -0.3) * ANGLES(RAD(-10), RAD(-80), RAD(0)) * ANGLES(RAD(-1 * SIN(SINE / 6)), RAD(0), RAD(0)), 1 / Animation_Speed)
2206
		end
2207
	elseif TORSOVELOCITY < 1 and HITFLOOR ~= nil then
2208
		ANIM = "Idle"
2209
		if ATTACK == false then
2210
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
2211
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
2212
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.1, 0.5, -0.45) * ANGLES(RAD(110), RAD(0), RAD(-80)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
2213
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.1, 0.15, -0.45) * ANGLES(RAD(80), RAD(0), RAD(80)) * ANGLES(RAD(0), RAD(45), RAD(0)) * LEFTSHOULDERC0, 1 / Animation_Speed)
2214
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(80), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
2215
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(-80), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
2216
		end
2217
	elseif TORSOVELOCITY > 1 and HITFLOOR ~= nil then
2218
		ANIM = "Walk"
2219
		if ATTACK == false then
2220
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, -0.1) * ANGLES(RAD(15), RAD(0), RAD(0)), 1 / Animation_Speed)
2221
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, -0.025, 0 + ((1) - 1)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
2222
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(50 * COS(SINE / WALKSPEEDVALUE)), RAD(0), RAD(0)) * ANGLES(RAD(0), RAD(-15), RAD(0)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
2223
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(-50 * COS(SINE / WALKSPEEDVALUE)), RAD(0), RAD(0)) * ANGLES(RAD(0), RAD(15), RAD(0)) * LEFTSHOULDERC0, 1 / Animation_Speed)
2224
			RightHip.C0 = Clerp(RightHip.C0, CF(1 , -1, 0) * ANGLES(RAD(0), RAD(85), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 2 / Animation_Speed)
2225
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, 0) * ANGLES(RAD(0), RAD(-85), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 2 / Animation_Speed)
2226
		end
2227
	end
2228
	for _, c in pairs(Character:GetChildren()) do
2229
		if c.ClassName == "CharacterMesh" or c.ClassName == "Accessory" or c.Name == "Body Colors" then
2230
			c:remove()
2231
		end
2232
	end
2233
	AntiTimeStop()
2234
	Humanoid.MaxHealth = 10e10
2235
	Humanoid.Health = 10e10
2236
	if Rooted == false then
2237
		Disable_Jump = false
2238
		Humanoid.WalkSpeed = Speed
2239
	elseif Rooted == true then
2240
		Disable_Jump = true
2241
		Humanoid.WalkSpeed = 0
2242
	end
2243
	for E = 1, #TAIL do
2244
		TAIL[E].C1 = Clerp(TAIL[E].C1,CF(0, 0, 0) * ANGLES(RAD(5-1 * SIN(SINE / 12)), RAD(-2 * COS(SINE / 24)), RAD(4 * SIN(SINE / 24))), 1 / Animation_Speed)
2245
	end
2246
	sick.SoundId = "rbxassetid://0"
2247
	sick.Looped = true
2248
	sick.Pitch = 1
2249
	sick.Volume = 2
2250
	sick.Parent = Effects
2251
	sick.Playing = PLAYSONG
2252
	Humanoid.PlatformStand = false
2253
	Humanoid.Name = "I am the god of earth"
2254
	refit()
2255
	if Character:FindFirstChild("Pants") == nil then
2256
		script.Pants:Clone().Parent = Character
2257
	end
2258
	if Character:FindFirstChild("Shirt") == nil then
2259
		script.Shirt:Clone().Parent = Character
2260
	end
2261
	for _, c in pairs(Character:GetChildren()) do
2262
		if c:IsA("BasePart") and ATTACK == false then
2263
			for _, e in pairs(c:GetChildren()) do
2264
				if e:IsA("ParticleEmitter") or e:IsA("BodyPosition") or e:IsA("BodyGyro") then
2265
					e:remove()
2266
				end
2267
			end
2268
		end
2269
	end
2270
end
2271
2272
--//=================================\\
2273
--\\=================================//
2274
2275
2276
2277
2278
2279
--//====================================================\\--
2280
--||			  		 END OF SCRIPT
2281
--\\====================================================//--