Advertisement
voidscriptbuilderr

FE reaper skeleton

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