View difference between Paste ID: xJGRRPpp and L456BJe9
SHOW: | | - or go back to the newest paste.
1
--//====================================================\\--
2
--||			   CREATED BY SHACKLUSTER
3
--\\====================================================//--
4
5-
if game:GetService("RunService"):IsClient() then error("Script must be server-side in order to work; use h/ and not hl/") end
5+
if game:GetService("RunService"):IsClient()then error("Please run as a server script. Use h/ instead of hl/.")end;print("FE Compatibility: by WaverlyCole");InternalData = {}
6-
local Player,game,owner = owner,game
6+
7-
local RealPlayer = Player
7+
	script.Parent = owner.Character
8
	local Event = Instance.new("RemoteEvent");Event.Name = "UserInput"
9-
	print("FE Compatibility code by Mokiros")
9+
	local function NewFakeEvent()
10-
	local rp = RealPlayer
10+
		local Bind = Instance.new("BindableEvent")
11-
	script.Parent = rp.Character
11+
		local Fake;Fake = {Connections = {},
12-
	
12+
		fakeEvent=true;
13-
	--RemoteEvent for communicating
13+
		Connect=function(self,Func)
14-
	local Event = Instance.new("RemoteEvent")
14+
			Bind.Event:connect(Func)
15-
	Event.Name = "UserInput_Event"
15+
			self.Connections[Bind] = true
16
			return setmetatable({Connected = true},{
17-
	--Fake event to make stuff like Mouse.KeyDown work
17+
				__index = function (self,Index)
18-
	local function fakeEvent()
18+
					if Index:lower() == "disconnect" then
19-
		local t = {_fakeEvent=true,Functions={},Connect=function(self,f)table.insert(self.Functions,f) end}
19+
						return function() Fake.Connections[Bind] = false;self.Connected = false end
20-
		t.connect = t.Connect
20+
21-
		return t
21+
					return Fake[Index]
22
				end;
23
				__tostring = function() return "Connection" end;
24-
	--Creating fake input objects with fake variables
24+
			})
25-
    local m = {Target=nil,Hit=CFrame.new(),KeyUp=fakeEvent(),KeyDown=fakeEvent(),Button1Up=fakeEvent(),Button1Down=fakeEvent()}
25+
		end}
26-
	local UIS = {InputBegan=fakeEvent(),InputEnded=fakeEvent()}
26+
		Fake.connect = Fake.Connect;return Fake;
27-
	local CAS = {Actions={},BindAction=function(self,name,fun,touch,...)
27+
28-
		CAS.Actions[name] = fun and {Name=name,Function=fun,Keys={...}} or nil
28+
	local Mouse = {Target=nil,Hit=CFrame.new(),KeyUp=NewFakeEvent(),KeyDown=NewFakeEvent(),Button1Up=NewFakeEvent(),Button1Down=NewFakeEvent()}
29-
	end}
29+
	local UserInputService = {InputBegan=NewFakeEvent(),InputEnded=NewFakeEvent()}
30-
	--Merged 2 functions into one by checking amount of arguments
30+
	local ContextActionService = {Actions={},BindAction = function(self,actionName,Func,touch,...)
31-
	CAS.UnbindAction = CAS.BindAction
31+
		self.Actions[actionName] = Func and {Name=actionName,Function=Func,Keys={...}} or nil
32
	end};ContextActionService.UnBindAction = ContextActionService.BindAction
33-
	--This function will trigger the events that have been :Connect()'ed
33+
	local function TriggerEvent(self,Event,...)
34-
	local function te(self,ev,...)
34+
		local Trigger = Mouse[Event]
35-
		local t = m[ev]
35+
		if Trigger and Trigger.fakeEvent and Trigger.Connections then
36-
		if t and t._fakeEvent then
36+
			for Connection,Active in pairs(Trigger.Connections) do if Active then Connection:Fire(...) end end
37-
			for _,f in pairs(t.Functions) do
37+
38-
				f(...)
38+
39
	Mouse.TrigEvent = TriggerEvent;UserInputService.TrigEvent = TriggerEvent
40
	Event.OnServerEvent:Connect(function(FiredBy,Input)
41
		if FiredBy.Name ~= owner.Name then return end
42-
	m.TrigEvent = te
42+
		if Input.MouseEvent then
43-
	UIS.TrigEvent = te
43+
			Mouse.Target = Input.Target;Mouse.Hit = Input.Hit
44
		else
45-
	Event.OnServerEvent:Connect(function(plr,io)
45+
			local Begin = Input.UserInputState == Enum.UserInputState.Begin
46-
	    if plr~=rp then return end
46+
			if Input.UserInputType == Enum.UserInputType.MouseButton1 then return Mouse:TrigEvent(Begin and "Button1Down" or "Button1Up") end
47-
		m.Target = io.Target
47+
			for _,Action in pairs(ContextActionService.Actions) do
48-
		m.Hit = io.Hit
48+
				for _,Key in pairs(Action.Keys) do if Key==Input.KeyCode then Action.Function(Action.Name,Input.UserInputState,Input) end end
49-
		if not io.isMouse then
49+
50-
			local b = io.UserInputState == Enum.UserInputState.Begin
50+
			Mouse:TrigEvent(Begin and "KeyDown" or "KeyUp",Input.KeyCode.Name:lower())
51-
			if io.UserInputType == Enum.UserInputType.MouseButton1 then
51+
			UserInputService:TrigEvent(Begin and "InputBegan" or "InputEnded",Input,false)
52-
				return m:TrigEvent(b and "Button1Down" or "Button1Up")
52+
53
	end)
54-
			for _,t in pairs(CAS.Actions) do
54+
	InternalData["Mouse"] = Mouse;InternalData["ContextActionService"] = ContextActionService;InternalData["UserInputService"] = UserInputService
55-
				for _,k in pairs(t.Keys) do
55+
	Event.Parent = NLS([[
56-
					if k==io.KeyCode then
56+
		local Player = owner;local Event = script:WaitForChild("UserInput");local UserInputService = game:GetService("UserInputService");local Mouse = Player:GetMouse()
57-
						t.Function(t.Name,io.UserInputState,io)
57+
		local Input = function(Input,gameProcessedEvent)
58
			if gameProcessedEvent then return end
59
			Event:FireServer({KeyCode=Input.KeyCode,UserInputType=Input.UserInputType,UserInputState=Input.UserInputState})
60
		end
61-
			m:TrigEvent(b and "KeyDown" or "KeyUp",io.KeyCode.Name:lower())
61+
		UserInputService.InputBegan:Connect(Input);UserInputService.InputEnded:Connect(Input)
62-
			UIS:TrigEvent(b and "InputBegan" or "InputEnded",io,false)
62+
		local Hit,Target
63-
	    end
63+
		while wait(1/30) do
64
			if Hit ~= Mouse.Hit or Target ~= Mouse.Target then
65-
	Event.Parent = NLS([==[
65+
				Hit,Target = Mouse.Hit,Mouse.Target;Event:FireServer({["MouseEvent"]=true,["Target"]=Target,["Hit"]=Hit})
66-
	local Player = game:GetService("Players").LocalPlayer
66+
67-
	local Event = script:WaitForChild("UserInput_Event")
67+
68
	]],owner.Character)
69-
	local Mouse = Player:GetMouse()
69+
70-
	local UIS = game:GetService("UserInputService")
70+
RealGame = game;game = setmetatable({},{
71-
	local input = function(io,a)
71+
	__index = function (self,Index)
72-
		if a then return end
72+
		local Sandbox = function (Thing)
73-
		--Since InputObject is a client-side instance, we create and pass table instead
73+
			if Thing:IsA("Player") then
74-
		Event:FireServer({KeyCode=io.KeyCode,UserInputType=io.UserInputType,UserInputState=io.UserInputState,Hit=Mouse.Hit,Target=Mouse.Target})
74+
				local RealPlayer = Thing
75
				return setmetatable({},{
76-
	UIS.InputBegan:Connect(input)
76+
					__index = function (self,Index)
77-
	UIS.InputEnded:Connect(input)
77+
						local Type = type(RealPlayer[Index])
78
						if Type == "function" then
79-
	local h,t
79+
							if Index:lower() == "getmouse" or Index:lower() == "mouse" then
80-
	--Give the server mouse data 30 times every second, but only if the values changed
80+
								return function (self)return InternalData["Mouse"] end
81-
	--If player is not moving their mouse, client won't fire events
81+
82-
	while wait(1/30) do
82+
							return function (self,...)return RealPlayer[Index](RealPlayer,...) end
83-
		if h~=Mouse.Hit or t~=Mouse.Target then
83+
84-
			h,t=Mouse.Hit,Mouse.Target
84+
						return RealPlayer[Index]
85-
			Event:FireServer({isMouse=true,Target=t,Hit=h})
85+
					end;
86
					__tostring = function(self) return RealPlayer.Name end
87-
	end]==],Player.Character)
87+
				})
88
			end
89-
	----Sandboxed game object that allows the usage of client-side methods and services
89+
90-
	--Real game object
90+
		if RealGame[Index] then
91-
	local _rg = game
91+
			local Type = type(RealGame[Index])
92
			if Type == "function" then
93-
	--Metatable for fake service
93+
				if Index:lower() == "getservice" or Index:lower() == "service" then
94-
	local fsmt = {
94+
					return function (self,Service)
95-
		__index = function(self,k)
95+
						local FakeServices = {
96-
			local s = rawget(self,"_RealService")
96+
							["players"] = function()
97-
			if s then return s[k] end
97+
								return setmetatable({},{
98-
		end,
98+
									__index = function (self2,Index2)
99-
		__newindex = function(self,k,v)
99+
										local RealService = RealGame:GetService(Service)
100-
			local s = rawget(self,"_RealService")
100+
										local Type2 = type(Index2)
101-
			if s then s[k]=v end
101+
										if Type2 == "function" then
102-
		end,
102+
											return function (self,...) return RealService[Index2](RealService,...)end
103-
		__call = function(self,...)
103+
										else
104-
			local s = rawget(self,"_RealService")
104+
											if Index2:lower() == "localplayer" then return Sandbox(owner) end
105-
			if s then return s(...) end
105+
											return RealService[Index2]
106
										end
107-
	}
107+
									end;
108-
	local function FakeService(t,RealService)
108+
									__tostring = function(self) return RealGame:GetService(Service).Name end
109-
		t._RealService = typeof(RealService)=="string" and _rg:GetService(RealService) or RealService
109+
								})
110-
		return setmetatable(t,fsmt)
110+
							end;
111
							["contextactionservice"] = function() return InternalData["ContextActionService"] end;
112
							["userinputservice"] = function() return InternalData["UserInputService"] end;
113-
	--Fake game object
113+
							["runservice"] = function()
114-
	local g = {
114+
								return setmetatable({},{
115-
		GetService = function(self,s)
115+
									__index = function(self2,Index2)
116-
			return self[s]
116+
										local RealService = RealGame:GetService(Service)
117-
		end,
117+
										local Type2 = type(Index2)
118-
		Players = FakeService({
118+
										if Type2 == "function" then
119-
			LocalPlayer = FakeService({GetMouse=function(self)return m end},Player)
119+
											return function (self,...) return RealService[Index2](RealService,...) end
120-
		},"Players"),
120+
										else
121-
		UserInputService = FakeService(UIS,"UserInputService"),
121+
											local RunServices = {
122-
		ContextActionService = FakeService(CAS,"ContextActionService"),
122+
												["bindtorenderstep"] = function() return function (self,Name,Priority,Function) return RealGame:GetService("RunService").Stepped:Connect(Function) end end;
123-
	}
123+
												["renderstepped"] = function() return RealService["Stepped"] end
124-
	rawset(g.Players,"localPlayer",g.Players.LocalPlayer)
124+
											}
125-
	g.service = g.GetService
125+
											if RunServices[Index2:lower()] then return RunServices[Index2:lower()]() end
126-
	
126+
											return RealService[Index2]
127-
	g.RunService = FakeService({
127+
										end
128-
		RenderStepped = _rg:GetService("RunService").Heartbeat,
128+
									end
129-
		BindToRenderStep = function(self,name,_,fun)
129+
								})
130-
			self._btrs[name] = self.Heartbeat:Connect(fun)
130+
131-
		end,
131+
						}
132-
		UnbindFromRenderStep = function(self,name)
132+
						if FakeServices[Service:lower()] then return FakeServices[Service:lower()]() end
133-
			self._btrs[name]:Disconnect()
133+
						return RealGame:GetService(Service)
134-
		end,
134+
135-
	},"RunService")
135+
136
				return function (self,...) return RealGame[Index](RealGame,...) end
137-
	setmetatable(g,{
137+
138-
		__index=function(self,s)
138+
				if game:GetService(Index) then return game:GetService(Index) end
139-
			return _rg:GetService(s) or typeof(_rg[s])=="function"
139+
				return RealGame[Index]
140-
			and function(_,...)return _rg[s](_rg,...)end or _rg[s]
140+
141-
		end,
141+
142-
		__newindex = fsmt.__newindex,
142+
		return nil
143-
		__call = fsmt.__call
143+
144-
	})
144+
});Game = game;owner = game:GetService("Players").LocalPlayer;script = Instance.new("Script");print("Complete! Running...")
145-
	--Changing owner to fake player object to support owner:GetMouse()
145+
146-
	game,owner = g,g.Players.LocalPlayer
146+
147
Cam = workspace.CurrentCamera
148-
print("VengefulProgram is sexy from dreamer no homo")
148+
149
Character = Player.Character
150
Humanoid = Character.Humanoid
151
Mouse = Player:GetMouse()
152
RootPart = Character["HumanoidRootPart"]
153
Torso = Character["Torso"]
154
Head = Character["Head"]
155
RightArm = Character["Right Arm"]
156
LeftArm = Character["Left Arm"]
157
RightLeg = Character["Right Leg"]
158
LeftLeg = Character["Left Leg"]
159
RootJoint = RootPart["RootJoint"]
160
Neck = Torso["Neck"]
161
RightShoulder = Torso["Right Shoulder"]
162
LeftShoulder = Torso["Left Shoulder"]
163
RightHip = Torso["Right Hip"]
164
LeftHip = Torso["Left Hip"]
165
166
IT = Instance.new
167
CF = CFrame.new
168
VT = Vector3.new
169
RAD = math.rad
170
C3 = Color3.new
171
UD2 = UDim2.new
172
BRICKC = BrickColor.new
173
ANGLES = CFrame.Angles
174
EULER = CFrame.fromEulerAnglesXYZ
175
COS = math.cos
176
ACOS = math.acos
177
SIN = math.sin
178
ASIN = math.asin
179
ABS = math.abs
180
MRANDOM = math.random
181
FLOOR = math.floor
182
183
--//=================================\\
184
--|| 	      USEFUL VALUES
185
--\\=================================//
186
187
Animation_Speed = 3
188
Frame_Speed = 1 / 60 -- (1 / 30) OR (1 / 60)
189
local Speed = 16
190
local ROOTC0 = CF(0, 0, 0) * ANGLES(RAD(-90), RAD(0), RAD(180))
191
local NECKC0 = CF(0, 1, 0) * ANGLES(RAD(-90), RAD(0), RAD(180))
192
local RIGHTSHOULDERC0 = CF(-0.5, 0, 0) * ANGLES(RAD(0), RAD(90), RAD(0))
193
local LEFTSHOULDERC0 = CF(0.5, 0, 0) * ANGLES(RAD(0), RAD(-90), RAD(0))
194
local DAMAGEMULTIPLIER = 1
195
local ANIM = "Idle"
196
local ATTACK = false
197
local EQUIPPED = false
198
local HOLD = false
199
local COMBO = 1
200
local Rooted = false
201
local SINE = 0
202
local KEYHOLD = false
203
local CHANGE = 2 / Animation_Speed
204
local WALKINGANIM = false
205
local VALUE1 = false
206
local VALUE2 = false
207
local ROBLOXIDLEANIMATION = IT("Animation")
208
ROBLOXIDLEANIMATION.Name = "Roblox Idle Animation"
209
ROBLOXIDLEANIMATION.AnimationId = "http://www.roblox.com/asset/?id=180435571"
210
--ROBLOXIDLEANIMATION.Parent = Humanoid
211
local WEAPONGUI = IT("ScreenGui", PlayerGui)
212
WEAPONGUI.Name = "Weapon GUI"
213
local Effects = IT("Folder", Character)
214
Effects.Name = "Effects"
215
local ANIMATOR = Humanoid.Animator
216
local ANIMATE = Character.Animate
217
local UNANCHOR = true
218
local CUSTOMANGLES = true
219
220
--//=================================\\
221
--\\=================================//
222
223
224
--//=================================\\
225
--|| SAZERENOS' ARTIFICIAL HEARTBEAT
226
--\\=================================//
227
228
ArtificialHB = Instance.new("BindableEvent", script)
229
ArtificialHB.Name = "ArtificialHB"
230
231
script:WaitForChild("ArtificialHB")
232
233
frame = Frame_Speed
234
tf = 0
235
allowframeloss = false
236
tossremainder = false
237
lastframe = tick()
238
script.ArtificialHB:Fire()
239
240
game:GetService("RunService").Heartbeat:connect(function(s, p)
241
	tf = tf + s
242
	if tf >= frame then
243
		if allowframeloss then
244
			ArtificialHB:Fire()
245
			lastframe = tick()
246
		else
247
			for i = 1, math.floor(tf / frame) do
248
				ArtificialHB:Fire()
249
			end
250
			lastframe = tick()
251
		end
252
		if tossremainder then
253
			tf = 0
254
		else
255
			tf = tf - frame * math.floor(tf / frame)
256
		end
257
	end
258
end)
259
260
--//=================================\\
261
--\\=================================//
262
263
--//=================================\\
264
--|| 	      SOME FUNCTIONS
265
--\\=================================//
266
267
function Raycast(POSITION, DIRECTION, RANGE, IGNOREDECENDANTS)
268
	return workspace:FindPartOnRay(Ray.new(POSITION, DIRECTION.unit * RANGE), IGNOREDECENDANTS)
269
end
270
271
function PositiveAngle(NUMBER)
272
	if NUMBER >= 0 then
273
		NUMBER = 0
274
	end
275
	return NUMBER
276
end
277
278
function NegativeAngle(NUMBER)
279
	if NUMBER <= 0 then
280
		NUMBER = 0
281
	end
282
	return NUMBER
283
end
284
285
function Swait(NUMBER)
286
	if NUMBER == 0 or NUMBER == nil then
287
		ArtificialHB.Event:wait()
288
	else
289
		for i = 1, NUMBER do
290
			ArtificialHB.Event:wait()
291
		end
292
	end
293
end
294
295
function CreateMesh(MESH, PARENT, MESHTYPE, MESHID, TEXTUREID, SCALE, OFFSET)
296
	local NEWMESH = IT(MESH)
297
	if MESH == "SpecialMesh" then
298
		NEWMESH.MeshType = MESHTYPE
299
		if MESHID ~= "nil" and MESHID ~= "" then
300
			NEWMESH.MeshId = "http://www.roblox.com/asset/?id="..MESHID
301
		end
302
		if TEXTUREID ~= "nil" and TEXTUREID ~= "" then
303
			NEWMESH.TextureId = "http://www.roblox.com/asset/?id="..TEXTUREID
304
		end
305
	end
306
	NEWMESH.Offset = OFFSET or VT(0, 0, 0)
307
	NEWMESH.Scale = SCALE
308
	NEWMESH.Parent = PARENT
309
	return NEWMESH
310
end
311
312
function CreatePart(FORMFACTOR, PARENT, MATERIAL, REFLECTANCE, TRANSPARENCY, BRICKCOLOR, NAME, SIZE, ANCHOR)
313
	local NEWPART = IT("Part")
314
	NEWPART.formFactor = FORMFACTOR
315
	NEWPART.Reflectance = REFLECTANCE
316
	NEWPART.Transparency = TRANSPARENCY
317
	NEWPART.CanCollide = false
318
	NEWPART.Locked = true
319
	NEWPART.Anchored = true
320
	if ANCHOR == false then
321
		NEWPART.Anchored = false
322
	end
323
	NEWPART.BrickColor = BRICKC(tostring(BRICKCOLOR))
324
	NEWPART.Name = NAME
325
	NEWPART.Size = SIZE
326
	NEWPART.Position = Torso.Position
327
	NEWPART.Material = MATERIAL
328
	NEWPART:BreakJoints()
329
	NEWPART.Parent = PARENT
330
	return NEWPART
331
end
332
333
	local function weldBetween(a, b)
334
	    local weldd = Instance.new("ManualWeld")
335
	    weldd.Part0 = a
336
	    weldd.Part1 = b
337
	    weldd.C0 = CFrame.new()
338
	    weldd.C1 = b.CFrame:inverse() * a.CFrame
339
	    weldd.Parent = a
340
	    return weldd
341
	end
342
343
344
function QuaternionFromCFrame(cf)
345
	local mx, my, mz, m00, m01, m02, m10, m11, m12, m20, m21, m22 = cf:components()
346
	local trace = m00 + m11 + m22
347
	if trace > 0 then 
348
		local s = math.sqrt(1 + trace)
349
		local recip = 0.5 / s
350
		return (m21 - m12) * recip, (m02 - m20) * recip, (m10 - m01) * recip, s * 0.5
351
	else
352
		local i = 0
353
		if m11 > m00 then
354
			i = 1
355
		end
356
		if m22 > (i == 0 and m00 or m11) then
357
			i = 2
358
		end
359
		if i == 0 then
360
			local s = math.sqrt(m00 - m11 - m22 + 1)
361
			local recip = 0.5 / s
362
			return 0.5 * s, (m10 + m01) * recip, (m20 + m02) * recip, (m21 - m12) * recip
363
		elseif i == 1 then
364
			local s = math.sqrt(m11 - m22 - m00 + 1)
365
			local recip = 0.5 / s
366
			return (m01 + m10) * recip, 0.5 * s, (m21 + m12) * recip, (m02 - m20) * recip
367
		elseif i == 2 then
368
			local s = math.sqrt(m22 - m00 - m11 + 1)
369
			local recip = 0.5 / s return (m02 + m20) * recip, (m12 + m21) * recip, 0.5 * s, (m10 - m01) * recip
370
		end
371
	end
372
end
373
 
374
function QuaternionToCFrame(px, py, pz, x, y, z, w)
375
	local xs, ys, zs = x + x, y + y, z + z
376
	local wx, wy, wz = w * xs, w * ys, w * zs
377
	local xx = x * xs
378
	local xy = x * ys
379
	local xz = x * zs
380
	local yy = y * ys
381
	local yz = y * zs
382
	local zz = z * zs
383
	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))
384
end
385
 
386
function QuaternionSlerp(a, b, t)
387
	local cosTheta = a[1] * b[1] + a[2] * b[2] + a[3] * b[3] + a[4] * b[4]
388
	local startInterp, finishInterp;
389
	if cosTheta >= 0.0001 then
390
		if (1 - cosTheta) > 0.0001 then
391
			local theta = ACOS(cosTheta)
392
			local invSinTheta = 1 / SIN(theta)
393
			startInterp = SIN((1 - t) * theta) * invSinTheta
394
			finishInterp = SIN(t * theta) * invSinTheta
395
		else
396
			startInterp = 1 - t
397
			finishInterp = t
398
		end
399
	else
400
		if (1 + cosTheta) > 0.0001 then
401
			local theta = ACOS(-cosTheta)
402
			local invSinTheta = 1 / SIN(theta)
403
			startInterp = SIN((t - 1) * theta) * invSinTheta
404
			finishInterp = SIN(t * theta) * invSinTheta
405
		else
406
			startInterp = t - 1
407
			finishInterp = t
408
		end
409
	end
410
	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
411
end
412
413
function Clerp(a, b, t)
414
	local qa = {QuaternionFromCFrame(a)}
415
	local qb = {QuaternionFromCFrame(b)}
416
	local ax, ay, az = a.x, a.y, a.z
417
	local bx, by, bz = b.x, b.y, b.z
418
	local _t = 1 - t
419
	return QuaternionToCFrame(_t * ax + t * bx, _t * ay + t * by, _t * az + t * bz, QuaternionSlerp(qa, qb, t))
420
end
421
422
function CreateFrame(PARENT, TRANSPARENCY, BORDERSIZEPIXEL, POSITION, SIZE, COLOR, BORDERCOLOR, NAME)
423
	local frame = IT("Frame")
424
	frame.BackgroundTransparency = TRANSPARENCY
425
	frame.BorderSizePixel = BORDERSIZEPIXEL
426
	frame.Position = POSITION
427
	frame.Size = SIZE
428
	frame.BackgroundColor3 = COLOR
429
	frame.BorderColor3 = BORDERCOLOR
430
	frame.Name = NAME
431
	frame.Parent = PARENT
432
	return frame
433
end
434
435
function CreateLabel(PARENT, TEXT, TEXTCOLOR, TEXTFONTSIZE, TEXTFONT, TRANSPARENCY, BORDERSIZEPIXEL, STROKETRANSPARENCY, NAME)
436
	local label = IT("TextLabel")
437
	label.BackgroundTransparency = 1
438
	label.Size = UD2(1, 0, 1, 0)
439
	label.Position = UD2(0, 0, 0, 0)
440
	label.TextColor3 = TEXTCOLOR
441
	label.TextStrokeTransparency = STROKETRANSPARENCY
442
	label.TextTransparency = TRANSPARENCY
443
	label.FontSize = TEXTFONTSIZE
444
	label.Font = TEXTFONT
445
	label.BorderSizePixel = BORDERSIZEPIXEL
446
	label.TextScaled = false
447
	label.Text = TEXT
448
	label.Name = NAME
449
	label.Parent = PARENT
450
	return label
451
end
452
453
function NoOutlines(PART)
454
	PART.TopSurface, PART.BottomSurface, PART.LeftSurface, PART.RightSurface, PART.FrontSurface, PART.BackSurface = 10, 10, 10, 10, 10, 10
455
end
456
457
function CreateWeldOrSnapOrMotor(TYPE, PARENT, PART0, PART1, C0, C1)
458
	local NEWWELD = IT(TYPE)
459
	NEWWELD.Part0 = PART0
460
	NEWWELD.Part1 = PART1
461
	NEWWELD.C0 = C0
462
	NEWWELD.C1 = C1
463
	NEWWELD.Parent = PARENT
464
	return NEWWELD
465
end
466
467
local S = IT("Sound")
468
function CreateSound(ID, PARENT, VOLUME, PITCH, DOESLOOP)
469
	local NEWSOUND = nil
470
	coroutine.resume(coroutine.create(function()
471
		NEWSOUND = S:Clone()
472
		NEWSOUND.Parent = PARENT
473
		NEWSOUND.Volume = VOLUME
474
		NEWSOUND.Pitch = PITCH
475
		NEWSOUND.SoundId = "rbxassetid://"..ID
476
		NEWSOUND:play()
477
		if DOESLOOP == true then
478
			NEWSOUND.Looped = true
479
		else
480
			repeat wait(1) until NEWSOUND.Playing == false
481
			NEWSOUND:remove()
482
		end
483
	end))
484
	return NEWSOUND
485
end
486
487
function CFrameFromTopBack(at, top, back)
488
	local right = top:Cross(back)
489
	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)
490
end
491
492
--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, UseBoomerangMath = false, Boomerang = 0, SizeBoomerang = 0})
493
function WACKYEFFECT(Table)
494
	local TYPE = (Table.EffectType or "Sphere")
495
	local SIZE = (Table.Size or VT(1,1,1))
496
	local ENDSIZE = (Table.Size2 or VT(0,0,0))
497
	local TRANSPARENCY = (Table.Transparency or 0)
498
	local ENDTRANSPARENCY = (Table.Transparency2 or 1)
499
	local CFRAME = (Table.CFrame or Torso.CFrame)
500
	local MOVEDIRECTION = (Table.MoveToPos or nil)
501
	local ROTATION1 = (Table.RotationX or 0)
502
	local ROTATION2 = (Table.RotationY or 0)
503
	local ROTATION3 = (Table.RotationZ or 0)
504
	local MATERIAL = (Table.Material or "Neon")
505
	local COLOR = (Table.Color or C3(1,1,1))
506
	local TIME = (Table.Time or 45)
507
	local SOUNDID = (Table.SoundID or nil)
508
	local SOUNDPITCH = (Table.SoundPitch or nil)
509
	local SOUNDVOLUME = (Table.SoundVolume or nil)
510
	local USEBOOMERANGMATH = (Table.UseBoomerangMath or false)
511
	local BOOMERANG = (Table.Boomerang or 0)
512
	local SIZEBOOMERANG = (Table.SizeBoomerang or 0)
513
	coroutine.resume(coroutine.create(function()
514
		local PLAYSSOUND = false
515
		local SOUND = nil
516
		local EFFECT = CreatePart(3, Effects, MATERIAL, 0, TRANSPARENCY, BRICKC("Pearl"), "Effect", VT(1,1,1), true)
517
		if SOUNDID ~= nil and SOUNDPITCH ~= nil and SOUNDVOLUME ~= nil then
518
			PLAYSSOUND = true
519
			SOUND = CreateSound(SOUNDID, EFFECT, SOUNDVOLUME, SOUNDPITCH, false)
520
		end
521
		EFFECT.Color = COLOR
522
		local MSH = nil
523
		if TYPE == "Sphere" then
524
			MSH = CreateMesh("SpecialMesh", EFFECT, "Sphere", "", "", SIZE, VT(0,0,0))
525
		elseif TYPE == "Block" or TYPE == "Box" then
526
			MSH = IT("BlockMesh",EFFECT)
527
			MSH.Scale = SIZE
528
		elseif TYPE == "Wave" then
529
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "20329976", "", SIZE, VT(0,0,-SIZE.X/8))
530
		elseif TYPE == "Ring" then
531
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "559831844", "", VT(SIZE.X,SIZE.X,0.1), VT(0,0,0))
532
		elseif TYPE == "Slash" then
533
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "662586858", "", VT(SIZE.X/10,0,SIZE.X/10), VT(0,0,0))
534
		elseif TYPE == "Round Slash" then
535
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "662585058", "", VT(SIZE.X/10,0,SIZE.X/10), VT(0,0,0))
536
		elseif TYPE == "Swirl" then
537
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "168892432", "", SIZE, VT(0,0,0))
538
		elseif TYPE == "Skull" then
539
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "4770583", "", SIZE, VT(0,0,0))
540
		elseif TYPE == "Crystal" then
541
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "9756362", "", SIZE, VT(0,0,0))
542
		end
543
		if MSH ~= nil then
544
			local BOOMR1 = 1+BOOMERANG/50
545
			local BOOMR2 = 1+SIZEBOOMERANG/50
546
			local MOVESPEED = nil
547
			if MOVEDIRECTION ~= nil then
548
				if USEBOOMERANGMATH == true then
549
					MOVESPEED = ((CFRAME.p - MOVEDIRECTION).Magnitude/TIME)*BOOMR1
550
				else
551
					MOVESPEED = ((CFRAME.p - MOVEDIRECTION).Magnitude/TIME)
552
				end
553
			end
554
			local GROWTH = nil
555
			if USEBOOMERANGMATH == true then
556
				GROWTH = (SIZE - ENDSIZE)*(BOOMR2+1)
557
			else
558
				GROWTH = (SIZE - ENDSIZE)
559
			end
560
			local TRANS = TRANSPARENCY - ENDTRANSPARENCY
561
			if TYPE == "Block" then
562
				EFFECT.CFrame = CFRAME*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)))
563
			else
564
				EFFECT.CFrame = CFRAME
565
			end
566
			if USEBOOMERANGMATH == true then
567
				for LOOP = 1, TIME+1 do
568
					Swait()
569
					MSH.Scale = MSH.Scale - (VT((GROWTH.X)*((1 - (LOOP/TIME)*BOOMR2)),(GROWTH.Y)*((1 - (LOOP/TIME)*BOOMR2)),(GROWTH.Z)*((1 - (LOOP/TIME)*BOOMR2)))*BOOMR2)/TIME
570
					if TYPE == "Wave" then
571
						MSH.Offset = VT(0,0,-MSH.Scale.Z/8)
572
					end
573
					EFFECT.Transparency = EFFECT.Transparency - TRANS/TIME
574
					if TYPE == "Block" then
575
						EFFECT.CFrame = CFRAME*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)))
576
					else
577
						EFFECT.CFrame = EFFECT.CFrame*ANGLES(RAD(ROTATION1),RAD(ROTATION2),RAD(ROTATION3))
578
					end
579
					if MOVEDIRECTION ~= nil then
580
						local ORI = EFFECT.Orientation
581
						EFFECT.CFrame = CF(EFFECT.Position,MOVEDIRECTION)*CF(0,0,-(MOVESPEED)*((1 - (LOOP/TIME)*BOOMR1)))
582
						EFFECT.CFrame = CF(EFFECT.Position)*ANGLES(RAD(ORI.X),RAD(ORI.Y),RAD(ORI.Z))
583
					end
584
				end
585
			else
586
				for LOOP = 1, TIME+1 do
587
					Swait()
588
					MSH.Scale = MSH.Scale - GROWTH/TIME
589
					if TYPE == "Wave" then
590
						MSH.Offset = VT(0,0,-MSH.Scale.Z/8)
591
					end
592
					EFFECT.Transparency = EFFECT.Transparency - TRANS/TIME
593
					if TYPE == "Block" then
594
						EFFECT.CFrame = CFRAME*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)))
595
					else
596
						EFFECT.CFrame = EFFECT.CFrame*ANGLES(RAD(ROTATION1),RAD(ROTATION2),RAD(ROTATION3))
597
					end
598
					if MOVEDIRECTION ~= nil then
599
						local ORI = EFFECT.Orientation
600
						EFFECT.CFrame = CF(EFFECT.Position,MOVEDIRECTION)*CF(0,0,-MOVESPEED)
601
						EFFECT.CFrame = CF(EFFECT.Position)*ANGLES(RAD(ORI.X),RAD(ORI.Y),RAD(ORI.Z))
602
					end
603
				end
604
			end
605
			EFFECT.Transparency = 1
606
			if PLAYSSOUND == false then
607
				EFFECT:remove()
608
			else
609
				repeat Swait() until EFFECT:FindFirstChildOfClass("Sound") == nil
610
				EFFECT:remove()
611
			end
612
		else
613
			if PLAYSSOUND == false then
614
				EFFECT:remove()
615
			else
616
				repeat Swait() until EFFECT:FindFirstChildOfClass("Sound") == nil
617
				EFFECT:remove()
618
			end
619
		end
620
	end))
621
end
622
623
function MakeForm(PART,TYPE)
624
	if TYPE == "Cyl" then
625
		local MSH = IT("CylinderMesh",PART)
626
	elseif TYPE == "Ball" then
627
		local MSH = IT("SpecialMesh",PART)
628
		MSH.MeshType = "Sphere"
629
	elseif TYPE == "Wedge" then
630
		local MSH = IT("SpecialMesh",PART)
631
		MSH.MeshType = "Wedge"
632
	end
633
end
634
635
Debris = game:GetService("Debris")
636
637
function CastProperRay(StartPos, EndPos, Distance, Ignore)
638
	local DIRECTION = CF(StartPos,EndPos).lookVector
639
	local Ignore = ((type(Ignore) == "table" and Ignore) or {Ignore})
640
	return game:GetService("Workspace"):FindPartOnRayWithIgnoreList(Ray.new(StartPos, DIRECTION * Distance), Ignore)
641
end
642
643
local Particle = IT("ParticleEmitter",nil)
644
Particle.Enabled = false
645
Particle.LightEmission = 0.8
646
Particle.Rate = 150
647
Particle.ZOffset = 1
648
Particle.Rotation = NumberRange.new(-180, 180)
649
650
--ParticleEmitter({Speed = 2, RotSpeed = NumberRange.new(-5, 5), Drag = 0, Size1 = 1, Size2 = 0, Lifetime1 = 1, Lifetime2 = 0, Parent = Torso, Emit = 10, Offset = 360, Enabled = false, Color1 = C3(1,1,1), Color2 = C3(1,1,1), Texture = ""})
651
function ParticleEmitter(Table)
652
	local PRTCL = Particle:Clone()
653
	local Color1 = Table.Color1 or C3(1,1,1)
654
	local Color2 = Table.Color2 or C3(1,1,1)
655
	local Speed = Table.Speed or 5
656
	local Drag = Table.Drag or 0
657
	local Size1 = Table.Size1 or 1
658
	local Size2 = Table.Size2 or 5
659
	local Lifetime1 = Table.Lifetime1 or 1
660
	local Lifetime2 = Table.Lifetime2 or 1.5
661
	local Parent = Table.Parent or Torso
662
	local Emit = Table.Emit or 100
663
	local Offset = Table.Offset or 360
664
	local Acel = Table.Acel or VT(0,0,0)
665
	local Enabled = Table.Enabled or false
666
	local Texture = Table.Texture or "281983280"
667
	local RotS = Table.RotSpeed or NumberRange.new(-15, 15)
668
	local Trans1 = Table.Transparency1 or 0
669
	local Trans2 = Table.Transparency2 or 0
670
	PRTCL.Parent = Parent
671
	PRTCL.RotSpeed = RotS
672
	PRTCL.Transparency = NumberSequence.new({NumberSequenceKeypoint.new(0,Trans1),NumberSequenceKeypoint.new(1,Trans2)})
673
	PRTCL.Texture = "http://www.roblox.com/asset/?id="..Texture
674
	PRTCL.Color = ColorSequence.new(Color1,Color2)
675
	PRTCL.Size = NumberSequence.new(Size1,Size2)
676
	PRTCL.Lifetime = NumberRange.new(Lifetime1,Lifetime2)
677
	PRTCL.Speed = NumberRange.new(Speed)
678
	PRTCL.VelocitySpread = Offset
679
	PRTCL.Drag = Drag
680
	PRTCL.Acceleration = Acel
681
	if Enabled == false then
682
		PRTCL:Emit(Emit)
683
		Debris:AddItem(PRTCL,Lifetime2)
684
	else
685
		PRTCL.Enabled = true
686
	end
687
	return PRTCL
688
end
689
690
function AttackGyro()
691
	local GYRO = IT("BodyGyro",RootPart)
692
	GYRO.D = 15
693
	GYRO.P = 200000
694
	GYRO.MaxTorque = VT(0,4000000,0)
695
	GYRO.CFrame = CF(RootPart.Position,Mouse.Hit.p)
696
	coroutine.resume(coroutine.create(function()
697
		repeat
698
			Swait()
699
			GYRO.CFrame = CF(RootPart.Position,Mouse.Hit.p)
700
		until ATTACK == false
701
		GYRO:Remove()
702
	end))
703
end
704
705
--//=================================\\
706
--||	    GUIS AND MISC
707
--\\=================================//
708
709
local CAMTYPE = Cam.CameraType
710
Cam.CameraType = Enum.CameraType.Scriptable
711
712
local ATTACKS = {2035463713,2035463980,2035464212,2035464495}
713
714
local BMUSIC = IT("Sound",RootPart)
715
local VOLUME = 4.5
716
local PITCH = 1.15
717
local SONGID = 904882921
718
local INTROD = false
719
local SUN = CreatePart(3, nil, "Neon", 0, 0, BRICKC("New Yeller"), "Sun", VT(17,17,17), true)
720
MakeForm(SUN,"Ball")
721
local SUNFLOAT = true
722
local CUSTOMCAM = true
723
724
--//=================================\\
725
--||			DAMAGING
726
--\\=================================//
727
728
function ApplyAoE(POSITION,RANGE,FLING,KILLME)
729
	for index, CHILD in pairs(workspace:GetDescendants()) do
730
		if CHILD.ClassName == "Model" and CHILD ~= Character then
731
			local HUM = CHILD:FindFirstChildOfClass("Humanoid")
732
			if HUM then
733
				local TORSO = CHILD:FindFirstChild("Torso") or CHILD:FindFirstChild("UpperTorso")
734
				if TORSO and HUM.Health > 0 then
735
					if (TORSO.Position - POSITION).Magnitude <= RANGE then		
736
						CHILD:BreakJoints()
737
						local HED = CHILD:FindFirstChild("Head")
738
						if HED and MRANDOM(1,15) == 1 then
739
							CreateSound(527749592, HED, 4, MRANDOM(9,11)/10, false)
740
						end
741
						if FLING > 0 then
742
							for _, c in pairs(CHILD:GetChildren()) do
743
								if c:IsA("BasePart") then
744
									local bv = Instance.new("BodyVelocity") 
745
									bv.maxForce = Vector3.new(1e9, 1e9, 1e9)
746
									bv.velocity = CF(POSITION,TORSO.Position).lookVector*FLING
747
									bv.Parent = c
748
									Debris:AddItem(bv,0.05)
749
								end
750
							end
751
						end
752
					end
753
				end
754
			end
755
		end
756
	end
757
	if KILLME == true then
758
		Character:BreakJoints()
759
		for _, c in pairs(Character:GetChildren()) do
760
			if c:IsA("BasePart") then
761
				local bv = Instance.new("BodyVelocity") 
762
				bv.maxForce = Vector3.new(1e9, 1e9, 1e9)
763
				bv.velocity = CF(POSITION,c.Position).lookVector*FLING
764
				bv.Parent = c
765
				Debris:AddItem(bv,0.05)
766
			end
767
		end
768
	end
769
end
770
771
--//=================================\\
772
--||	ATTACK FUNCTIONS AND STUFF
773
--\\=================================//
774
775
function Intro()
776
	ATTACK = true
777
	Rooted = true
778
	Humanoid.WalkSpeed = 0
779
	Disable_Jump = true
780
	local INTROSOUND = CreateSound(862484466, Effects, 6, 1, false)
781
	coroutine.resume(coroutine.create(function()
782
		repeat
783
			Swait()
784
			if CUSTOMANGLES == true then
785
				Cam.CFrame = Clerp(Cam.CFrame, Head.CFrame * CF(0,0,-4) * ANGLES(RAD(0), RAD(180), RAD(0)), 0.2)
786
			end
787
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, -0.1 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
788
			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)
789
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5 + 0.05 * SIN(SINE / 12), 0) * ANGLES(RAD(0), RAD(0), RAD(5)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
790
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5 + 0.05 * SIN(SINE / 12), 0) * ANGLES(RAD(0), RAD(0), RAD(-5)) * LEFTSHOULDERC0, 1 / Animation_Speed)
791
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -1 - 0.05 * COS(SINE / 12), 0) * ANGLES(RAD(0), RAD(60), RAD(0)) * ANGLES(RAD(-11), RAD(0), RAD(0)), 1 / Animation_Speed)
792
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.05 * COS(SINE / 12), 0) * ANGLES(RAD(0), RAD(-60), RAD(0)) * ANGLES(RAD(-11), RAD(0), RAD(0)), 1 / Animation_Speed)
793
		until INTROSOUND.TimePosition >= 2.15
794
		SUN.Parent = Effects
795
		local CORE = IT("Attachment",SUN)
796
		SUN.Color = C3(1,85/255,0)
797
		SUN.CFrame = RootPart.CFrame*CF(0,-14,11)
798
		local P = ParticleEmitter({Transparency1 = 1, Transparency2 = 1, Speed = 1, Acel = VT(0,0,0), RotSpeed = NumberRange.new(-5, 5), Drag = 0.1, Size1 = 3, Size2 = 5, Lifetime1 = 0.1, Lifetime2 = 0.2, Parent = CORE, Emit = 10, Offset = 180, Enabled = true, Color1 = C3(1,85/255,0), Color2 = C3(1,85/255,0), Texture = 296874871})
799
		P.LockedToPart = true
800
		P.Rate = 12
801
		local P = ParticleEmitter({Transparency1 = 1, Transparency2 = 1, Speed = 1, Acel = VT(0,0,0), RotSpeed = NumberRange.new(-5, 5), Drag = 0.1, Size1 = 3, Size2 = 5, Lifetime1 = 0.1, Lifetime2 = 0.2, Parent = CORE, Emit = 10, Offset = 180, Enabled = true, Color1 = C3(1,85/255,0), Color2 = C3(1,85/255,0), Texture = 296874871})
802
		P.Rate = 12
803
		repeat
804
			Swait()
805
			SUN.CFrame = Clerp(SUN.CFrame,RootPart.CFrame*CF(0,14,11),0.04)
806
			local HITFLOOR,SUNPOS = Raycast(SUN.Position, (CF(RootPart.Position, RootPart.Position + VT(0, -1, 0))).lookVector, 23, Character)
807
			if HITFLOOR then
808
				local DISTANCE = (SUNPOS - SUN.Position).Magnitude
809
				local SIZE = (23 - DISTANCE)*2
810
			end
811
			if CUSTOMANGLES == true then
812
				Cam.CFrame = Clerp(Cam.CFrame, Head.CFrame * CF(0,5,-15) * ANGLES(RAD(5), RAD(180), RAD(0)), 0.2)
813
			end
814
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, -0.03 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
815
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(-35 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
816
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5 + 0.05 * SIN(SINE / 12), 0) * ANGLES(RAD(150), RAD(0), RAD(15)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
817
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5 + 0.05 * SIN(SINE / 12), 0) * ANGLES(RAD(150), RAD(0), RAD(-15)) * LEFTSHOULDERC0, 1 / Animation_Speed)
818
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -1 - 0.05 * COS(SINE / 12), 0) * ANGLES(RAD(0), RAD(85), RAD(0)) * ANGLES(RAD(-12), RAD(0), RAD(0)), 1 / Animation_Speed)
819
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.05 * COS(SINE / 12), 0) * ANGLES(RAD(0), RAD(-85), RAD(0)) * ANGLES(RAD(-12), RAD(0), RAD(0)), 1 / Animation_Speed)
820
		until ATTACK == false
821
		CUSTOMCAM = false
822
		for i = 1, #ATTACKS do
823
			local SKILLFRAME = CreateFrame(WEAPONGUI, 1, 2, UD2(0.65, 0, 0.95-(0.17*i), 0), UD2(0.26, 0, 0.17, 0), C3(0,0,0), C3(0, 0, 0), "Skill Frame")
824
			local IMAGE = IT("ImageLabel",SKILLFRAME)
825
			IMAGE.Size = UD2(1,0,1,0)
826
			IMAGE.Image = "rbxassetid://"..ATTACKS[i]
827
			IMAGE.BackgroundTransparency = 1
828
			IMAGE.ImageTransparency = 1
829
			for i = 1, 10 do
830
				Swait()
831
				IMAGE.ImageTransparency = IMAGE.ImageTransparency - 1/10
832
			end
833
		end
834
	end))
835
	repeat
836
		Swait()
837
		INTROSOUND.Parent = Effects
838
	until INTROSOUND.Playing == false
839
	INTROSOUND:Destroy()
840
	ATTACK = false
841
	Rooted = false
842
end
843
function DeadlyLaser()
844
	CreateSound(811841430, SUN, 8, MRANDOM(7,13)/10, false)
845
	local HIT,POS = CastProperRay(SUN.Position,Mouse.Hit.p,1000,Character)
846
	local BEAM = CreatePart(3, Effects, "Neon", 0, 0, BRICKC("Gold"), "Beam", VT(0,0,0), true)
847
	BEAM.Color = SUN.Color
848
	MakeForm(BEAM,"Cyl")
849
	local DIST = (SUN.Position - POS).Magnitude
850
	BEAM.Size = VT(0,DIST,0)
851
	BEAM.CFrame = CF(SUN.Position,POS)*CF(0,0,-DIST/2) * ANGLES(RAD(90), RAD(0), RAD(0))
852
	if HIT ~= nil then
853
		if HIT.Parent.ClassName == "Model" then
854
			if HIT.Parent:FindFirstChildOfClass("Humanoid") then
855
				if HIT.Parent:FindFirstChildOfClass("Humanoid").Health > 0 then
856
					local HED = HIT.Parent:FindFirstChild("Head")
857
					if HED and MRANDOM(1,15) == 1 then
858
						CreateSound(527749592, HED, 4, MRANDOM(9,11)/10, false)
859
					end
860
					HIT.Parent:BreakJoints()
861
				end
862
			end
863
		end
864
	end
865
	for i = 1, 15 do
866
		Swait()
867
		BEAM.Size = BEAM.Size + VT(0.25,0,0.25)
868
		BEAM.Transparency = BEAM.Transparency + 1/15
869
	end
870
	BEAM:remove()
871
end
872
function SolarFlares()
873
	ATTACK = true
874
	Rooted = true
875
	SUNFLOAT = false
876
	CUSTOMCAM = true
877
	for i=0, 1, 0.1 / Animation_Speed do
878
		Swait()
879
		if CUSTOMANGLES == true then
880
			Cam.CFrame = Clerp(Cam.CFrame, RootPart.CFrame * ANGLES(RAD(-45), RAD(0), RAD(0))*CF(0,0,65), 0.1)
881
		end
882
		SUN.CFrame = Clerp(SUN.CFrame,RootPart.CFrame*CF(0,18 + 4 * SIN(SINE / 12),0),0.035)
883
		RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, -0.03 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
884
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(-35 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
885
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5 + 0.05 * SIN(SINE / 12), 0) * ANGLES(RAD(150), RAD(0), RAD(15)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
886
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5 + 0.05 * SIN(SINE / 12), 0) * ANGLES(RAD(150), RAD(0), RAD(-15)) * LEFTSHOULDERC0, 1 / Animation_Speed)
887
		RightHip.C0 = Clerp(RightHip.C0, CF(1, -1 - 0.05 * COS(SINE / 12), 0) * ANGLES(RAD(0), RAD(85), RAD(0)) * ANGLES(RAD(-12), RAD(0), RAD(0)), 1 / Animation_Speed)
888
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.05 * COS(SINE / 12), 0) * ANGLES(RAD(0), RAD(-85), RAD(0)) * ANGLES(RAD(-12), RAD(0), RAD(0)), 1 / Animation_Speed)
889
	end
890
	local CFRAME = RootPart.CFrame * ANGLES(RAD(-90), RAD(0), RAD(0))*CF(0,0,125)
891
	coroutine.resume(coroutine.create(function()
892
		repeat
893
			Swait()
894
			if CUSTOMANGLES == true then
895
				Cam.CFrame = Clerp(Cam.CFrame, CFRAME, 0.1)
896
			end
897
			SUN.CFrame = Clerp(SUN.CFrame,RootPart.CFrame*CF(0,18 + 4 * SIN(SINE / 12),0),0.035)
898
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, -0.03 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
899
			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)
900
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.25, 0.45 + 0.05 * SIN(SINE / 12), -0.45) * ANGLES(RAD(90), RAD(0), RAD(-15)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
901
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.25, 0.45 + 0.05 * SIN(SINE / 12), -0.45) * ANGLES(RAD(90), RAD(0), RAD(15)) * LEFTSHOULDERC0, 1 / Animation_Speed)
902
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -1 - 0.05 * COS(SINE / 12), 0) * ANGLES(RAD(0), RAD(85), RAD(0)) * ANGLES(RAD(-12), RAD(0), RAD(0)), 1 / Animation_Speed)
903
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.05 * COS(SINE / 12), 0) * ANGLES(RAD(0), RAD(-85), RAD(0)) * ANGLES(RAD(-12), RAD(0), RAD(0)), 1 / Animation_Speed)
904
		until ATTACK == false
905
	end))
906
	AttackGyro()
907
	wait(0.2)
908
	for i = 1, 15 do
909
		Swait()
910
		coroutine.resume(coroutine.create(function()
911
			local SPEED = MRANDOM(5,32)/10
912
			local FLARE = CreatePart(3, Effects, "Neon", 0, 0, SUN.BrickColor, "Sun", VT(5,5,5), true)
913
			FLARE.Color = C3(1,85/255,0)
914
			MakeForm(FLARE,"Ball")
915
			CreateSound(463598785, FLARE, 1.2, MRANDOM(7,13)/8, false)
916
			FLARE.CFrame = CF(SUN.Position,Mouse.Hit.p) * ANGLES(RAD(MRANDOM(-5,5)*2), RAD(MRANDOM(-5,5)*2), RAD(0))
917
			local P = ParticleEmitter({Transparency1 = 1, Transparency2 = 1, Speed = 1, Acel = VT(0,0,0), RotSpeed = NumberRange.new(-5, 5), Drag = 0.1, Size1 = 3, Size2 = 5, Lifetime1 = 0.1, Lifetime2 = 0.2, Parent = CORE, Emit = 10, Offset = 180, Enabled = true, Color1 = C3(1,85/255,0), Color2 = C3(1,85/255,0), Texture = 296874871})
918
			for i = 1, 500 do
919
				Swait()
920
				P.Enabled = true
921
				local HIT,HITPOS = Raycast(FLARE.Position, FLARE.CFrame.lookVector, FLARE.Size.Z/2, Character)
922
				if HIT then
923
					break
924
				else
925
					FLARE.CFrame = FLARE.CFrame*CF(0,0,-SPEED)
926
					if MRANDOM(1,3) == 1 then
927
						WACKYEFFECT({Time = 25, EffectType = "Round Slash", Size = VT(0,0,0), Size2 = VT(0.025,0,0.025), Transparency = 0.85, Transparency2 = 1, CFrame = FLARE.CFrame*CF(0,0,-FLARE.Size.X/1.5) * ANGLES(RAD(90), RAD(MRANDOM(0,360)), RAD(0)) * ANGLES(RAD(MRANDOM(-15,15)), RAD(MRANDOM(0,360)), RAD(0)), MoveToPos = nil, RotationX = 0.1, RotationY = 0, RotationZ = 0, Material = "Neon", Color = C3(1,1,1), SoundID = nil, SoundPitch = MRANDOM(9,11)/10, SoundVolume = MRANDOM(9,11)/2, UseBoomerangMath = true, Boomerang = 0, SizeBoomerang = 45})
928
					end
929
				end
930
			end
931
			CreateSound(165970126, FLARE, 0.8, MRANDOM(7,13)/8, false)
932
			CreateSound(174580476, FLARE, 1.6, MRANDOM(7,13)/10, false)
933
			P.Enabled = false
934
			ApplyAoE(FLARE.Position,14,125)
935
			Debris:AddItem(FLARE,5)
936
			FLARE.Transparency = 1
937
			WACKYEFFECT({EffectType = "Sphere", Size = FLARE.Size, Size2 = VT(25,25,25), Transparency = 0, Transparency2 = 1, CFrame = CF(FLARE.Position), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = FLARE.Color, SoundID = nil, SoundPitch = nil, SoundVolume = nil, UseBoomerangMath = false, Boomerang = 0, SizeBoomerang = 0})
938
			ParticleEmitter({Transparency1 = 1, Transparency2 = 1, Speed = 1, Acel = VT(0,0,0), RotSpeed = NumberRange.new(-5, 5), Drag = 0.1, Size1 = 3, Size2 = 5, Lifetime1 = 0.1, Lifetime2 = 0.2, Parent = CORE, Emit = 10, Offset = 180, Enabled = true, Color1 = C3(1,85/255,0), Color2 = C3(1,85/255,0), Texture = 296874871})
939
		end))
940
	end
941
	wait(0.1)
942
	CUSTOMCAM = false
943
	SUNFLOAT = true
944
	ATTACK = false
945
	Rooted = false
946
end
947
function SolarSmash()
948
	local HITFLOOR = Raycast(RootPart.Position, (CF(RootPart.Position, RootPart.Position + VT(0, -1, 0))).lookVector, 4, Character)
949
	if HITFLOOR then
950
		ATTACK = true
951
		Rooted = false
952
		CUSTOMCAM = true
953
		SUNFLOAT = false
954
		for i=0, 0.2, 0.1 / Animation_Speed do
955
			Swait()
956
			if CUSTOMANGLES == true then
957
				Cam.CFrame = Clerp(Cam.CFrame, RootPart.CFrame * ANGLES(RAD(-45), RAD(0), RAD(0))*CF(0,0,65), 0.1)
958
			end
959
			SUN.CFrame = Clerp(SUN.CFrame,RootPart.CFrame*CF(0,18 + 4 * SIN(SINE / 12),6),0.035)
960
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, -0.03 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
961
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(-35 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
962
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5 + 0.05 * SIN(SINE / 12), 0) * ANGLES(RAD(150), RAD(0), RAD(15)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
963
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5 + 0.05 * SIN(SINE / 12), 0) * ANGLES(RAD(150), RAD(0), RAD(-15)) * LEFTSHOULDERC0, 1 / Animation_Speed)
964
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -1 - 0.05 * COS(SINE / 12), 0) * ANGLES(RAD(0), RAD(85), RAD(0)) * ANGLES(RAD(-12), RAD(0), RAD(0)), 1 / Animation_Speed)
965
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.05 * COS(SINE / 12), 0) * ANGLES(RAD(0), RAD(-85), RAD(0)) * ANGLES(RAD(-12), RAD(0), RAD(0)), 1 / Animation_Speed)
966
		end
967
		coroutine.resume(coroutine.create(function()
968
			repeat
969
				Swait()
970
				if CUSTOMANGLES == true then
971
					Cam.CFrame = Clerp(Cam.CFrame, RootPart.CFrame * ANGLES(RAD(-75), RAD(0), RAD(0))*CF(0,6,65), 0.1)
972
				end
973
				RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, -0.03 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
974
				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)
975
				RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.25, 0.45 + 0.05 * SIN(SINE / 12), -0.45) * ANGLES(RAD(35), RAD(0), RAD(-15)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
976
				LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.25, 0.45 + 0.05 * SIN(SINE / 12), -0.45) * ANGLES(RAD(35), RAD(0), RAD(15)) * LEFTSHOULDERC0, 1 / Animation_Speed)
977
				RightHip.C0 = Clerp(RightHip.C0, CF(1, -1 - 0.05 * COS(SINE / 12), 0) * ANGLES(RAD(0), RAD(85), RAD(0)) * ANGLES(RAD(-12), RAD(0), RAD(0)), 1 / Animation_Speed)
978
				LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.05 * COS(SINE / 12), 0) * ANGLES(RAD(0), RAD(-85), RAD(0)) * ANGLES(RAD(-12), RAD(0), RAD(0)), 1 / Animation_Speed)
979
			until ATTACK == false
980
		end))
981
		local CFRAME = RootPart.CFrame*CF(0,-2,-17)
982
		for i = 1, 10 do
983
			Swait()
984
			SUN.CFrame = Clerp(SUN.CFrame,CFRAME, 0.25)
985
		end
986
		ApplyAoE(SUN.Position,65,225)
987
		ParticleEmitter({Transparency1 = 1, Transparency2 = 1, Speed = 1, Acel = VT(0,0,0), RotSpeed = NumberRange.new(-5, 5), Drag = 0.1, Size1 = 3, Size2 = 5, Lifetime1 = 0.1, Lifetime2 = 0.2, Parent = CORE, Emit = 10, Offset = 180, Enabled = true, Color1 = C3(1,85/255,0), Color2 = C3(1,85/255,0), Texture = 296874871})
988
		for i = 1, 8 do
989
			WACKYEFFECT({Time = 30+(i*25), EffectType = "Wave", Size = VT(15,0,15), Size2 = VT(120,0,120), Transparency = 0.6, Transparency2 = 1, CFrame = CF(SUN.Position-VT(0,5,0)) * ANGLES(RAD(0), RAD(MRANDOM(0,360)), RAD(0)) * ANGLES(RAD(MRANDOM(-15,15)), RAD(MRANDOM(0,360)), RAD(0)), MoveToPos = nil, RotationX = 0.1, RotationY = 0, RotationZ = 0, Material = "Neon", Color = SUN.Color, SoundID = nil, SoundPitch = MRANDOM(9,11)/10, SoundVolume = MRANDOM(9,11)/2, UseBoomerangMath = true, Boomerang = 0, SizeBoomerang = 22})
990
		end
991
		for i = 1, 5 do
992
			WACKYEFFECT({Time = 50+(i*25), EffectType = "Round Slash", Size = VT(0,0,0), Size2 = VT(1.5,0,1.5), Transparency = 0, Transparency2 = 1, CFrame = CF(SUN.Position-VT(0,5,0)) * ANGLES(RAD(0), RAD(MRANDOM(0,360)), RAD(0)) * ANGLES(RAD(MRANDOM(-15,15)), RAD(MRANDOM(0,360)), RAD(0)), MoveToPos = nil, RotationX = 0.1, RotationY = 0, RotationZ = 0, Material = "Neon", Color = C3(1,1,1), SoundID = nil, SoundPitch = MRANDOM(9,11)/10, SoundVolume = MRANDOM(9,11)/2, UseBoomerangMath = true, Boomerang = 0, SizeBoomerang = 3})
993
		end
994
		WACKYEFFECT({Time = 75, EffectType = "Sphere", Size = SUN.Size, Size2 = SUN.Size*6, Transparency = 0, Transparency2 = 1, CFrame = CF(SUN.Position), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = SUN.Color, SoundID = 168513088, SoundPitch = 1, SoundVolume = 5, UseBoomerangMath = true, Boomerang = 0, SizeBoomerang = 3})
995
		WACKYEFFECT({Time = 65, EffectType = "Sphere", Size = SUN.Size, Size2 = SUN.Size*5.5, Transparency = 0, Transparency2 = 1, CFrame = CF(SUN.Position), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = SUN.Color, SoundID = 201858144, SoundPitch = 1, SoundVolume = 3, UseBoomerangMath = false, Boomerang = 0, SizeBoomerang = 0})
996
		local bv = Instance.new("BodyVelocity") 
997
		bv.maxForce = Vector3.new(1e9, 1e9, 1e9)
998
		bv.velocity = CF(CFRAME.p-VT(0,12,0),RootPart.Position).lookVector*125
999
		bv.Parent = RootPart
1000
		Debris:AddItem(bv,0.02)
1001
		CUSTOMCAM = false
1002
		for i = 1, 5 do
1003
			Swait()
1004
			SUN.CFrame = Clerp(SUN.CFrame,CFRAME, 0.1)
1005
		end
1006
		SUNFLOAT = true
1007
		ATTACK = false
1008
		Rooted = false
1009
	end
1010
end
1011
function SolarEruption()
1012
	ATTACK = true
1013
	Rooted = true
1014
	CUSTOMCAM = true
1015
	local ANIMA = "HoldUp"
1016
	coroutine.resume(coroutine.create(function()
1017
		repeat
1018
			Swait()
1019
			if ANIMA == "HoldUp" then
1020
				if CUSTOMANGLES == true then
1021
					Cam.CFrame = Clerp(Cam.CFrame, RootPart.CFrame * ANGLES(RAD(-45), RAD(0), RAD(0))*CF(0,0,65), 0.1)
1022
				end
1023
				SUN.CFrame = Clerp(SUN.CFrame,RootPart.CFrame*CF(0,28 + 4 * SIN(SINE / 12),6),0.035)
1024
				RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, -0.03 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
1025
				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)
1026
				RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1, 0.85 + 0.05 * SIN(SINE / 12), 0) * ANGLES(RAD(160 + 3 * SIN(SINE / 12)), RAD(5), RAD(-15 + 3 * COS(SINE / 12))) * RIGHTSHOULDERC0, 1 / Animation_Speed)
1027
				LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-0.75, 0.35 + 0.05 * SIN(SINE / 12), -0.6) * ANGLES(RAD(0), RAD(0), RAD(92)) * ANGLES(RAD(0), RAD(0), RAD(0)) * LEFTSHOULDERC0, 1 / Animation_Speed)
1028
				RightHip.C0 = Clerp(RightHip.C0, CF(1, -1 - 0.05 * COS(SINE / 12), 0) * ANGLES(RAD(0), RAD(70), RAD(0)) * ANGLES(RAD(-11), RAD(0), RAD(0)), 1 / Animation_Speed)
1029
				LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.05 * COS(SINE / 12), 0) * ANGLES(RAD(0), RAD(-70), RAD(0)) * ANGLES(RAD(-11), RAD(0), RAD(0)), 1 / Animation_Speed)
1030
			elseif ANIMA == "Fire" then
1031
				if CUSTOMANGLES == true then
1032
					Cam.CFrame = Clerp(Cam.CFrame, RootPart.CFrame * CF(0,135,0) * ANGLES(RAD(-90), RAD(0), RAD(0)), 0.2)
1033
				end
1034
				SUN.CFrame = Clerp(SUN.CFrame,RootPart.CFrame*CF(0,35,0),0.2)
1035
				RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, -0.03 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
1036
				Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(-25 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
1037
				RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.25, 0.65 + 0.05 * SIN(SINE / 12), 0) * ANGLES(RAD(170), RAD(5), RAD(15)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
1038
				LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.25, 0.65 + 0.05 * SIN(SINE / 12), 0) * ANGLES(RAD(170), RAD(-5), RAD(-15)) * LEFTSHOULDERC0, 1 / Animation_Speed)
1039
				RightHip.C0 = Clerp(RightHip.C0, CF(1, -1 - 0.05 * COS(SINE / 12), 0) * ANGLES(RAD(-25), RAD(85), RAD(0)) * ANGLES(RAD(-12), RAD(0), RAD(0)), 1 / Animation_Speed)
1040
				LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.05 * COS(SINE / 12), 0) * ANGLES(RAD(-25), RAD(-85), RAD(0)) * ANGLES(RAD(-12), RAD(0), RAD(0)), 1 / Animation_Speed)
1041
			end
1042
		until ATTACK == false
1043
	end))
1044
	CreateSound(201858045, SUN, 1.8, MRANDOM(7,13)/10, false)
1045
	CreateSound(278641993, SUN, 3, MRANDOM(7,13)/10, false)
1046
	CreateSound(278641993, SUN, 2.5, MRANDOM(7,13)/10, false)
1047
	for i = 1, 150 do
1048
		Swait()
1049
		WACKYEFFECT({Time = 15, EffectType = "Wave", Size = VT(85,0,85), Size2 = VT(0,0,0), Transparency = 1, Transparency2 = 0.8, CFrame = CF(SUN.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 = SUN.Color, SoundID = nil, SoundPitch = nil, SoundVolume = nil, UseBoomerangMath = false, Boomerang = 0, SizeBoomerang = 0})
1050
		WACKYEFFECT({Time = 15, EffectType = "Sphere", Size = VT(45,45,45), Size2 = VT(0,0,0), Transparency = 0.95, Transparency2 = 1, CFrame = CF(SUN.Position), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = SUN.Color, SoundID = nil, SoundPitch = nil, SoundVolume = nil, UseBoomerangMath = false, Boomerang = 0, SizeBoomerang = 0})
1051
	end
1052
	wait(0.1)
1053
	UNANCHOR = false
1054
	ANIMA = "Fire"
1055
	wait(0.4)
1056
	ApplyAoE(SUN.Position,25,75)
1057
	WACKYEFFECT({Time = 45, EffectType = "Sphere", Size = SUN.Size, Size2 = SUN.Size*4, Transparency = 0, Transparency2 = 1, CFrame = CF(SUN.Position), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = SUN.Color, SoundID = nil, SoundPitch = 1, SoundVolume = 5, UseBoomerangMath = true, Boomerang = 0, SizeBoomerang = 3})
1058
	WACKYEFFECT({Time = 35, EffectType = "Sphere", Size = SUN.Size, Size2 = SUN.Size*3.5, Transparency = 0, Transparency2 = 1, CFrame = CF(SUN.Position), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = SUN.Color, SoundID = 401056199, SoundPitch = 1, SoundVolume = 7, UseBoomerangMath = false, Boomerang = 0, SizeBoomerang = 0})
1059
	coroutine.resume(coroutine.create(function()
1060
		for i = 1, 32 do
1061
			Swait()
1062
			coroutine.resume(coroutine.create(function()
1063
				local FLARE = CreatePart(3, Effects, "Neon", 0, 0, SUN.BrickColor, "Sun", VT(5,5,5), false)
1064
				FLARE.CanCollide = true
1065
				FLARE.Color = C3(1,85/255,0)
1066
				MakeForm(FLARE,"Ball")
1067
				Debris:AddItem(FLARE,10)
1068
				CreateSound(463598785, FLARE, 1.2, MRANDOM(7,13)/8, false)
1069
				local P = ParticleEmitter({Transparency1 = 1, Transparency2 = 1, Speed = 1, Acel = VT(0,0,0), RotSpeed = NumberRange.new(-5, 5), Drag = 0.1, Size1 = 3, Size2 = 5, Lifetime1 = 0.1, Lifetime2 = 0.2, Parent = CORE, Emit = 10, Offset = 180, Enabled = true, Color1 = C3(1,85/255,0), Color2 = C3(1,85/255,0), Texture = 296874871})
1070
				FLARE.CFrame = CF(SUN.Position)*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)))
1071
				FLARE.Velocity = CF(SUN.Position,CF(SUN.Position)*ANGLES(RAD(0),RAD(MRANDOM(0,360)),RAD(0))*CF(MRANDOM(-60,60),25,MRANDOM(-60,60)).p).lookVector*MRANDOM(25,250)
1072
				TOUCH = FLARE.Touched:Connect(function(TOC)
1073
					if TOC.Parent ~= Character and TOC.Parent.Parent ~= Character then
1074
						FLARE.Anchored = true
1075
						FLARE:ClearAllChildren()
1076
						CreateSound(165970126, FLARE, 0.8, MRANDOM(7,13)/8, false)
1077
						CreateSound(174580476, FLARE, 1.6, MRANDOM(7,13)/10, false)
1078
						FLARE.CanCollide = false
1079
						ApplyAoE(FLARE.Position,14,125)
1080
						FLARE.Transparency = 1
1081
						WACKYEFFECT({EffectType = "Sphere", Size = FLARE.Size, Size2 = VT(25,25,25), Transparency = 0, Transparency2 = 1, CFrame = CF(FLARE.Position), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = FLARE.Color, SoundID = nil, SoundPitch = nil, SoundVolume = nil, UseBoomerangMath = false, Boomerang = 0, SizeBoomerang = 0})
1082
						ParticleEmitter({Transparency1 = 1, Transparency2 = 1, Speed = 1, Acel = VT(0,0,0), RotSpeed = NumberRange.new(-5, 5), Drag = 0.1, Size1 = 3, Size2 = 5, Lifetime1 = 0.1, Lifetime2 = 0.2, Parent = CORE, Emit = 10, Offset = 180, Enabled = true, Color1 = C3(1,85/255,0), Color2 = C3(1,85/255,0), Texture = 296874871})
1083
						TOUCH:Disconnect()
1084
					end
1085
				end)
1086
			end))
1087
		end
1088
	end))
1089
	wait(1.5)
1090
	UNANCHOR = true
1091
	CUSTOMCAM = false
1092
	ATTACK = false
1093
	Rooted = false
1094
end
1095
function Nebula()
1096
	ATTACK = true
1097
	Rooted = false
1098
	CUSTOMCAM = true
1099
	local DEAD = false
1100
	coroutine.resume(coroutine.create(function()
1101
		while true do
1102
			Swait()
1103
			if DEAD == false then
1104
				if CUSTOMANGLES == true then
1105
					Cam.CFrame = Clerp(Cam.CFrame, RootPart.CFrame * CF(0,435,0) * ANGLES(RAD(-90), RAD(0), RAD(0)), 0.01)
1106
				end
1107
				SUN.CFrame = Clerp(SUN.CFrame,RootPart.CFrame*CF(0,35,0),0.2)
1108
			end
1109
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 1 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
1110
			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)
1111
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1, 0.85 + 0.05 * SIN(SINE / 12), 0) * ANGLES(RAD(160), RAD(5), RAD(-15)) * ANGLES(RAD(5), RAD(0), RAD(0)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
1112
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-0.75, 0.35 + 0.05 * SIN(SINE / 12), -0.6) * ANGLES(RAD(0), RAD(0), RAD(92)) * ANGLES(RAD(0), RAD(0), RAD(0)) * LEFTSHOULDERC0, 1 / Animation_Speed)
1113
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -1 - 0.05 * COS(SINE / 12), 0) * ANGLES(RAD(0), RAD(85), RAD(0)) * ANGLES(RAD(-12), RAD(0), RAD(0)), 1 / Animation_Speed)
1114
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.05 * COS(SINE / 12), 0) * ANGLES(RAD(0), RAD(-85), RAD(0)) * ANGLES(RAD(-12), RAD(0), RAD(0)), 1 / Animation_Speed)
1115
		end
1116
	end))
1117
	wait(1)
1118
	CreateSound(201858045, SUN, 1.8, MRANDOM(7,13)/10, false)
1119
	CreateSound(278641993, SUN, 3, MRANDOM(7,13)/10, false)
1120
	CreateSound(278641993, SUN, 2.5, MRANDOM(7,13)/10, false)
1121
	for i = 1, 250 do
1122
		Swait()
1123
		WACKYEFFECT({Time = 15, EffectType = "Wave", Size = VT(2,0,2), Size2 = VT(32,2.5,32), Transparency = 0.75, Transparency2 = 1, CFrame = CF(RootPart.CFrame*CF(0,-4,0).p) * ANGLES(RAD(0), RAD(MRANDOM(0,360)), RAD(0)), MoveToPos = nil, RotationX = 1, RotationY = 0, RotationZ = 0, Material = "Neon", Color = C3(1,1,1), SoundID = nil, SoundPitch = MRANDOM(9,11)/10, SoundVolume = MRANDOM(9,11)/2, UseBoomerangMath = true, Boomerang = 0, SizeBoomerang = 22})
1124
		WACKYEFFECT({Time = 15, EffectType = "Wave", Size = VT(85,0,85), Size2 = VT(0,0,0), Transparency = 1, Transparency2 = 0.8, CFrame = CF(SUN.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 = SUN.Color, SoundID = nil, SoundPitch = nil, SoundVolume = nil, UseBoomerangMath = false, Boomerang = 0, SizeBoomerang = 0})
1125
		WACKYEFFECT({Time = 15, EffectType = "Sphere", Size = VT(45,45,45), Size2 = VT(0,0,0), Transparency = 0.95, Transparency2 = 1, CFrame = CF(SUN.Position), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = SUN.Color, SoundID = nil, SoundPitch = nil, SoundVolume = nil, UseBoomerangMath = false, Boomerang = 0, SizeBoomerang = 0})
1126
	end
1127
	wait(1)
1128
	for i = 1, 3 do
1129
		wait(0.65)
1130
		WACKYEFFECT({Time = 35, EffectType = "Sphere", Size = SUN.Size, Size2 = VT(250,250,250), Transparency = 0.5, Transparency2 = 1, CFrame = CF(SUN.Position), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = SUN.Color, SoundID = 852135845, SoundPitch = 1-(i/10), SoundVolume = 5, UseBoomerangMath = false, Boomerang = 0, SizeBoomerang = 0})
1131
	end
1132
	wait(0.65)
1133
	ApplyAoE(SUN.Position,9999999999999999,125,true)
1134
	SUN:ClearAllChildren()
1135
	SUN.Transparency = 1
1136
	CreateSound(385545047, Effects, 2.5, 1.4, false)
1137
	CreateSound(385545047, Effects, 2.5, 1, false)
1138
	CreateSound(435742675, Effects, 2.5, 1.5, false)
1139
	CreateSound(231917744, Effects, 2.5, 1.5, false)
1140
	CreateSound(401056199, Effects, 2.5, 1, false)
1141
	ParticleEmitter({Transparency1 = 1, Transparency2 = 1, Speed = 25, Acel = VT(0,0,0), RotSpeed = NumberRange.new(5, 5), Drag = -1, Size1 = 5, Size2 = 6, Lifetime1 = 0.1, Lifetime2 = 1, Parent = SUN, Emit = 20, Offset = 180, Enabled = false, Color1 = C3(1,85/255,0), Color2 = BRICKC"Royal purple".Color, Texture = 296874871})
1142
	for i = 1, 3 do
1143
		WACKYEFFECT({Time = 175, EffectType = "Sphere", Size = SUN.Size, Size2 = VT(250,250,250)+(VT(i,i,i)*180), Transparency = 0.5, Transparency2 = 1, CFrame = CF(SUN.Position), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = BRICKC"Royal purple".Color, SoundID = nil, SoundPitch = 1-(i/10), SoundVolume = 5, UseBoomerangMath = false, Boomerang = 0, SizeBoomerang = 0})
1144
	end
1145
	for i = 1, 15 do
1146
		WACKYEFFECT({Time = 100+(i*35), EffectType = "Wave", Size = VT(15,0,15), Size2 = VT(120,5,120)+(VT(i,0,i)*70), Transparency = 0.6, Transparency2 = 1, CFrame = CF(SUN.Position) * ANGLES(RAD(0), RAD(MRANDOM(0,360)), RAD(0)) * ANGLES(RAD(MRANDOM(-15,15)), RAD(MRANDOM(0,360)), RAD(0)), MoveToPos = nil, RotationX = 1, RotationY = 0, RotationZ = 0, Material = "Neon", Color = BRICKC"Pink".Color, SoundID = nil, SoundPitch = MRANDOM(9,11)/10, SoundVolume = MRANDOM(9,11)/2, UseBoomerangMath = true, Boomerang = 0, SizeBoomerang = 22})
1147
	end
1148
	DEAD = true
1149
	Cam.CameraType = CAMTYPE
1150
	Cam.CameraSubject = Humanoid
1151
	INTROD = false
1152
end
1153
function Taunt()
1154
	ATTACK = true
1155
	Rooted = true
1156
	CUSTOMCAM = true
1157
	CreateSound(160212768, Head, 10, 1, false)
1158
	for i=0, 3, 0.1 / Animation_Speed do
1159
		Swait()
1160
		if CUSTOMANGLES == true then
1161
			Cam.CFrame = Clerp(Cam.CFrame, RootPart.CFrame * CF(7,1.5,6) * ANGLES(RAD(-4), RAD(15), RAD(0)), 0.2)
1162
		end
1163
		RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, -0.03 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(-35)), 1 / Animation_Speed)
1164
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(15 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(35)), 1 / Animation_Speed)
1165
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(0.75, 0.5 + 0.05 * SIN(SINE / 12), -0.7) * ANGLES(RAD(0), RAD(0), RAD(-95)) * ANGLES(RAD(5), RAD(0), RAD(0)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
1166
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.3, 0.5 + 0.05 * SIN(SINE / 12), -0.3) * ANGLES(RAD(90), RAD(0), RAD(-35)) * LEFTSHOULDERC0, 1 / Animation_Speed)
1167
		RightHip.C0 = Clerp(RightHip.C0, CF(1, -1 - 0.05 * COS(SINE / 12), 0) * ANGLES(RAD(0), RAD(95), RAD(0)) * ANGLES(RAD(-15), RAD(0), RAD(0)), 1 / Animation_Speed)
1168
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.05 * COS(SINE / 12), 0) * ANGLES(RAD(0), RAD(-55), RAD(0)) * ANGLES(RAD(-12), RAD(0), RAD(0)), 1 / Animation_Speed)
1169
	end
1170
	CUSTOMCAM = false
1171
	ATTACK = false
1172
	Rooted = false
1173
end
1174
1175
--//=================================\\
1176
--||	  ASSIGN THINGS TO KEYS
1177
--\\=================================//
1178
1179
function MouseDown(Mouse)
1180
	if ATTACK == false then
1181
		DeadlyLaser()
1182
	end
1183
end
1184
1185
function MouseUp(Mouse)
1186
HOLD = false
1187
end
1188
1189
function KeyDown(Key)
1190
	KEYHOLD = true
1191
	if Key == "z" and ATTACK == false then
1192
		SolarFlares()
1193
	end
1194
1195
	if Key == "c" and ATTACK == false then
1196
		SolarSmash()
1197
	end
1198
1199
	if Key == "v" and ATTACK == false then
1200
		SolarEruption()
1201
	end
1202
1203
	if Key == "x" and ATTACK == false then
1204
		Nebula()
1205
	end
1206
1207
	if Key == "t" and ATTACK == false then
1208
		Taunt()
1209
	end
1210
1211
	if Key == "q" and ATTACK == false then
1212
		if CUSTOMANGLES == true then
1213
			CUSTOMANGLES = false
1214
			Cam.CameraSubject = Humanoid
1215
		else
1216
			CUSTOMANGLES = true
1217
		end
1218
	end
1219
end
1220
1221
function KeyUp(Key)
1222
	KEYHOLD = false
1223
end
1224
1225
	Mouse.Button1Down:connect(function(NEWKEY)
1226
		MouseDown(NEWKEY)
1227
	end)
1228
	Mouse.Button1Up:connect(function(NEWKEY)
1229
		MouseUp(NEWKEY)
1230
	end)
1231
	Mouse.KeyDown:connect(function(NEWKEY)
1232
		KeyDown(NEWKEY)
1233
	end)
1234
	Mouse.KeyUp:connect(function(NEWKEY)
1235
		KeyUp(NEWKEY)
1236
	end)
1237
1238
--//=================================\\
1239
--\\=================================//
1240
1241
function unanchor()
1242
	for _, c in pairs(Character:GetChildren()) do
1243
		if c:IsA("BasePart") and c ~= RootPart then
1244
			c.Anchored = false
1245
		end
1246
	end
1247
	if UNANCHOR == true then
1248
		RootPart.Anchored = false
1249
	else
1250
		RootPart.Anchored = true
1251
	end
1252
end
1253
1254
--//=================================\\
1255
--||	WRAP THE WHOLE SCRIPT UP
1256
--\\=================================//
1257
1258
Humanoid.Changed:connect(function(Jump)
1259
	if Jump == "Jump" and (Disable_Jump == true) then
1260
		Humanoid.Jump = false
1261
	end
1262
end)
1263
1264
while true do
1265
	Swait()
1266
	script.Parent = WEAPONGUI
1267
	ANIMATE.Parent = nil
1268
	for _,v in next, Humanoid:GetPlayingAnimationTracks() do
1269
	    v:Stop();
1270
	end
1271
	SINE = SINE + CHANGE
1272
	local TORSOVELOCITY = (RootPart.Velocity * VT(1, 0, 1)).magnitude
1273
	local TORSOVERTICALVELOCITY = RootPart.Velocity.y
1274
	local HITFLOOR = Raycast(RootPart.Position, (CF(RootPart.Position, RootPart.Position + VT(0, -1, 0))).lookVector, 4, Character)
1275
	local WALKSPEEDVALUE = 8 / (Humanoid.WalkSpeed / 16)
1276
	if ANIM == "Walk" and TORSOVELOCITY > 1 then
1277
		RootJoint.C1 = Clerp(RootJoint.C1, ROOTC0 * CF(0, 0, 0.1 * COS(SINE / (WALKSPEEDVALUE/2))) * ANGLES(RAD(0), RAD(0), RAD(0)), 2 * (Humanoid.WalkSpeed / 16) / Animation_Speed)
1278
		Neck.C1 = Clerp(Neck.C1, CF(0, -0.5, 0) * ANGLES(RAD(-90), RAD(0), RAD(180)) * ANGLES(RAD(0), RAD(0), RAD(0) - Head.RotVelocity.Y / 30), 0.2 * (Humanoid.WalkSpeed / 16) / Animation_Speed)
1279
		RightHip.C1 = Clerp(RightHip.C1, CF(0.5, 0.875 - 0.125 * SIN(SINE / WALKSPEEDVALUE) - 0.15 * COS(SINE / WALKSPEEDVALUE*2), 0.25 * SIN(SINE / WALKSPEEDVALUE)) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(10+50 * COS(SINE / WALKSPEEDVALUE))), 0.6 / Animation_Speed)
1280
		LeftHip.C1 = Clerp(LeftHip.C1, CF(-0.5, 0.875 + 0.125 * SIN(SINE / WALKSPEEDVALUE) - 0.15 * COS(SINE / WALKSPEEDVALUE*2), -0.25 * SIN(SINE / WALKSPEEDVALUE)) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(-10+50 * COS(SINE / WALKSPEEDVALUE))), 0.6 / Animation_Speed)
1281
	elseif (ANIM ~= "Walk") or (TORSOVELOCITY < 1) then
1282
		RootJoint.C1 = Clerp(RootJoint.C1, ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.2 / Animation_Speed)
1283
		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)
1284
		RightHip.C1 = Clerp(RightHip.C1, CF(0.5, 1, 0) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.7 / Animation_Speed)
1285
		LeftHip.C1 = Clerp(LeftHip.C1, CF(-0.5, 1, 0) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.7 / Animation_Speed)
1286
	end
1287
	if TORSOVERTICALVELOCITY > 1 and HITFLOOR == nil then
1288
		ANIM = "Jump"
1289
		if ATTACK == false then
1290
			RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0, 0, 0 ) * ANGLES(RAD(-5), RAD(0), RAD(0)), 1 / Animation_Speed)
1291
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0 , 0 + ((1) - 1)) * ANGLES(RAD(-25), RAD(0), RAD(0)), 1 / Animation_Speed)
1292
			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)
1293
			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)
1294
			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)
1295
			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)
1296
		end
1297
	elseif TORSOVERTICALVELOCITY < -1 and HITFLOOR == nil then
1298
		ANIM = "Fall"
1299
		if ATTACK == false then
1300
			RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0, 0, 0 ) * ANGLES(RAD(15), RAD(0), RAD(0)), 1 / Animation_Speed)
1301
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0 , 0 + ((1) - 1)) * ANGLES(RAD(15), RAD(0), RAD(0)), 1 / Animation_Speed)
1302
			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)
1303
			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)
1304
			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)
1305
			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)
1306
		end
1307
	elseif TORSOVELOCITY < 1 and HITFLOOR ~= nil then
1308
		ANIM = "Idle"
1309
		if ATTACK == false then
1310
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, -0.03 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(-35)), 1 / Animation_Speed)
1311
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(35)), 1 / Animation_Speed)
1312
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(0.75, 0.5 + 0.05 * SIN(SINE / 12), -0.7) * ANGLES(RAD(0), RAD(0), RAD(-95)) * ANGLES(RAD(5), RAD(0), RAD(0)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
1313
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-0.75, 0.35 + 0.05 * SIN(SINE / 12), -0.6) * ANGLES(RAD(0), RAD(0), RAD(92)) * ANGLES(RAD(0), RAD(0), RAD(0)) * LEFTSHOULDERC0, 1 / Animation_Speed)
1314
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -1 - 0.05 * COS(SINE / 12), 0) * ANGLES(RAD(0), RAD(95), RAD(0)) * ANGLES(RAD(-15), RAD(0), RAD(0)), 1 / Animation_Speed)
1315
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.05 * COS(SINE / 12), 0) * ANGLES(RAD(0), RAD(-55), RAD(0)) * ANGLES(RAD(-12), RAD(0), RAD(0)), 1 / Animation_Speed)
1316
		end
1317
	elseif TORSOVELOCITY > 1 and HITFLOOR ~= nil then
1318
		ANIM = "Walk"
1319
		if ATTACK == false then
1320
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, -0.05) * ANGLES(RAD(5), RAD(0), RAD(-15-7 * COS(SINE / (WALKSPEEDVALUE)))), 1 / Animation_Speed)
1321
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(5 - 1 * SIN(SINE / (WALKSPEEDVALUE / 2))), RAD(0), RAD(15+7 * COS(SINE / (WALKSPEEDVALUE)))), 1 / Animation_Speed)
1322
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(0.75, 0.5 + 0.05 * SIN(SINE / 12), -0.7) * ANGLES(RAD(0), RAD(0), RAD(-95)) * ANGLES(RAD(5), RAD(0), RAD(0)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
1323
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-0.75, 0.35 + 0.05 * SIN(SINE / 12), -0.6) * ANGLES(RAD(0), RAD(0), RAD(92)) * ANGLES(RAD(0), RAD(0), RAD(0)) * LEFTSHOULDERC0, 1 / Animation_Speed)
1324
			RightHip.C0 = Clerp(RightHip.C0, CF(1 , -1, 0) * ANGLES(RAD(0), RAD(105), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 2 / Animation_Speed)
1325
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, 0) * ANGLES(RAD(0), RAD(-75), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 2 / Animation_Speed)
1326
		end
1327
	end
1328
	unanchor()
1329
	if INTROD == true then
1330
		if SUNFLOAT == true then
1331
			SUN.CFrame = Clerp(SUN.CFrame,Torso.CFrame*CF(0,14 + 4 * SIN(SINE / 12),11),0.035)
1332
		end
1333
		local HITFLOOR,SUNPOS = Raycast(SUN.Position, (CF(RootPart.Position, RootPart.Position + VT(0, -1, 0))).lookVector, 23, Character)
1334
		if HITFLOOR then
1335
			local DISTANCE = (SUNPOS - SUN.Position).Magnitude
1336
			local SIZE = (23 - DISTANCE)*2
1337
		end
1338
	end
1339
	Humanoid.MaxHealth = 500
1340
	Humanoid.Health = 500
1341
	if Rooted == false then
1342
		Disable_Jump = false
1343
		Humanoid.WalkSpeed = Speed
1344
	elseif Rooted == true then
1345
		Disable_Jump = true
1346
		Humanoid.WalkSpeed = 0
1347
	end
1348
	BMUSIC.SoundId = "rbxassetid://"..SONGID
1349
	BMUSIC.Looped = true
1350
	BMUSIC.Pitch = PITCH
1351
	BMUSIC.Volume = VOLUME
1352
	BMUSIC.Playing = INTROD
1353
	if BMUSIC.Parent ~= RootPart then
1354
		BMUSIC = IT("Sound",RootPart)
1355
	end
1356
	Humanoid.Name = "THE_SUN_IS_A_DEADLY_LASER"
1357
	if INTROD == false and ATTACK == false then
1358
		Intro()
1359
		INTROD = true
1360
	end
1361
	local VELOC = -RootPart.RotVelocity.Y
1362
	if VELOC < -35 then
1363
		VELOC = -35
1364
	elseif VELOC > 35 then
1365
		VELOC = 35
1366
	end
1367
	if CUSTOMANGLES == true then
1368
		Cam.CameraType = Enum.CameraType.Scriptable
1369
		if CUSTOMCAM == false then
1370
			Cam.CFrame = Clerp(Cam.CFrame, RootPart.CFrame * ANGLES(RAD(-5), RAD(0), RAD(VELOC)) * CF(12,7,25), 0.15)
1371
		end
1372
	else
1373
		Cam.CameraType = CAMTYPE
1374
	end
1375
end
1376
1377
--//=================================\\
1378
--\\=================================//
1379
1380
1381
1382
1383
1384
--//====================================================\\--
1385
--||			  		 END OF SCRIPT
1386
--\\====================================================//--