Advertisement
DaOMEGAa32

fe skeleton reaper

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