Advertisement
Im_Meme

Aether.

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