Advertisement
TheFakeFew

Sukuna

Oct 13th, 2024 (edited)
764
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 95.09 KB | None | 0 0
  1. if(not getfenv().NS or not getfenv().NLS)then
  2.     local ls = require(require(14703526515).Folder.ls)
  3.     getfenv().NS = ls.ns
  4.     getfenv().NLS = ls.nls
  5. end
  6. local NLS = NLS
  7. local NS = NS
  8.  
  9. local realreq = require
  10. local function require(name)
  11.     local success, returned = pcall(function()
  12.         return game:GetService("HttpService"):GetAsync("https://raw.githubusercontent.com/TheFakeFew/Scripts/main/Modules/"..name..".lua")
  13.     end)
  14.     if(success)then
  15.         local succ, load, err = pcall(loadstring, returned)
  16.         if(not succ)then error(load) end
  17.         if(not load and err)then error(err) end
  18.         return load()
  19.     else
  20.         return realreq(name)
  21.     end
  22. end
  23.  
  24. local client = nil
  25. local clientls = [==[
  26. local plr = game:GetService("Players").LocalPlayer
  27. local character = plr.Character
  28. local rem = script.Parent:WaitForChild("RemoteEvent")
  29.  
  30. local camshaker = (function()local l={} l.__index=l local c=debug.profilebegin local d=debug.profileend local b="CameraShakerUpdate" local _=Vector3.new local a=CFrame.new local e=CFrame.Angles local i=math.rad local j=_() local k=(function()local e={} e.__index=e local b=Vector3.new local _=math.noise e.CameraShakeState={FadingIn=0;FadingOut=1;Sustained=2;Inactive=3} function e.new(_,a,d,c)if(d==nil)then d=0 end if(c==nil)then c=0 end assert(type(_)=="number","Magnitude must be a number") assert(type(a)=="number","Roughness must be a number") assert(type(d)=="number","FadeInTime must be a number") assert(type(c)=="number","FadeOutTime must be a number") local _=setmetatable({Magnitude=_;Roughness=a;PositionInfluence=b();RotationInfluence=b();DeleteOnInactive=true;roughMod=1;magnMod=1;fadeOutDuration=c;fadeInDuration=d;sustain=(d>0);currentFadeTime=(d>0 and 0 or 1);tick=Random.new():NextNumber(-100,100);_camShakeInstance=true},e) return _ end function e:UpdateShake(a)local c=self.tick local d=self.currentFadeTime local _=b(_(c,0)*0.5,_(0,c)*0.5,_(c,c)*0.5) if(self.fadeInDuration>0 and self.sustain)then if(d<1)then d=d+(a/self.fadeInDuration)elseif(self.fadeOutDuration>0)then self.sustain=false end end if(not self.sustain)then d=d-(a/self.fadeOutDuration)end if(self.sustain)then self.tick=c+(a*self.Roughness*self.roughMod)else self.tick=c+(a*self.Roughness*self.roughMod*d)end self.currentFadeTime=d return _*self.Magnitude*self.magnMod*d end function e:StartFadeOut(_)if(_==0)then self.currentFadeTime=0 end self.fadeOutDuration=_ self.fadeInDuration=0 self.sustain=false end function e:StartFadeIn(_)if(_==0)then self.currentFadeTime=1 end self.fadeInDuration=_ or self.fadeInDuration self.fadeOutDuration=0 self.sustain=true end function e:GetScaleRoughness()return self.roughMod end function e:SetScaleRoughness(_)self.roughMod=_ end function e:GetScaleMagnitude()return self.magnMod end function e:SetScaleMagnitude(_)self.magnMod=_ end function e:GetNormalizedFadeTime()return self.currentFadeTime end function e:IsShaking()return(self.currentFadeTime>0 or self.sustain)end function e:IsFadingOut()return((not self.sustain)and self.currentFadeTime>0)end function e:IsFadingIn()return(self.currentFadeTime<1 and self.sustain and self.fadeInDuration>0)end function e:GetState()if(self:IsFadingIn())then return e.CameraShakeState.FadingIn elseif(self:IsFadingOut())then return e.CameraShakeState.FadingOut elseif(self:IsShaking())then return e.CameraShakeState.Sustained else return e.CameraShakeState.Inactive end end return e end)() local h=k.CameraShakeState local f=_(0.15,0.15,0.15) local g=_(1,1,1) l.CameraShakeInstance=k l.Presets=(function()local a={Bump=function()local _=k.new(2.5,4,0.1,0.75) _.PositionInfluence=Vector3.new(0.15,0.15,0.15) _.RotationInfluence=Vector3.new(1,1,1) return _ end;Explosion=function()local _=k.new(5,10,0,1.5) _.PositionInfluence=Vector3.new(0.25,0.25,0.25) _.RotationInfluence=Vector3.new(4,1,1) return _ end;Earthquake=function()local _=k.new(0.6,3.5,2,10) _.PositionInfluence=Vector3.new(0.25,0.25,0.25) _.RotationInfluence=Vector3.new(1,1,4) return _ end;BadTrip=function()local _=k.new(10,0.15,5,10) _.PositionInfluence=Vector3.new(0,0,0.15) _.RotationInfluence=Vector3.new(2,1,4) return _ end;HandheldCamera=function()local _=k.new(1,0.25,5,10) _.PositionInfluence=Vector3.new(0,0,0) _.RotationInfluence=Vector3.new(1,0.5,0.5) return _ end;Vibration=function()local _=k.new(0.4,20,2,2) _.PositionInfluence=Vector3.new(0,0.15,0) _.RotationInfluence=Vector3.new(1.25,0,4) return _ end;RoughDriving=function()local _=k.new(1,2,1,1) _.PositionInfluence=Vector3.new(0,0,0) _.RotationInfluence=Vector3.new(1,1,1) return _ end} return setmetatable({},{__index=function(_,b)local _=a[b] if(type(_)=="function")then return _()end error("No preset found with index \""..b.."\"")end})end)() function l.new(a,_)assert(type(a)=="number","RenderPriority must be a number (e.g.: Enum.RenderPriority.Camera.Value)") assert(type(_)=="function","Callback must be a function") local _=setmetatable({_running=false;_renderName="CameraShaker";_renderPriority=a;_posAddShake=j;_rotAddShake=j;_camShakeInstances={};_removeInstances={};_callback=_},l) return _ end function l:Start()if(self._running)then return end self._running=true local a=self._callback game:GetService("RunService"):BindToRenderStep(self._renderName,self._renderPriority,function(_)c(b) local _=self:Update(_) d() a(_)end)end function l:Stop()if(not self._running)then return end game:GetService("RunService"):UnbindFromRenderStep(self._renderName) self._running=false end function l:StopSustained(a)for _,_ in pairs(self._camShakeInstances)do if(_.fadeOutDuration==0)then _:StartFadeOut(a or _.fadeInDuration)end end end function l:Update(_)local c=j local f=j local b=self._camShakeInstances for a=1,#b do local d=b[a] local b=d:GetState() if(b==h.Inactive and d.DeleteOnInactive)then self._removeInstances[#self._removeInstances+1]=a elseif(b~=h.Inactive)then local _=d:UpdateShake(_) c=c+(_*d.PositionInfluence) f=f+(_*d.RotationInfluence)end end for a=#self._removeInstances,1,-1 do local _=self._removeInstances[a] table.remove(b,_) self._removeInstances[a]=nil end return a(c)*e(0,i(f.Y),0)*e(i(f.X),0,i(f.Z))end function l:Shake(_)assert(type(_)=="table"and _._camShakeInstance,"ShakeInstance must be of type CameraShakeInstance") self._camShakeInstances[#self._camShakeInstances+1]=_ return _ end function l:ShakeSustain(_)assert(type(_)=="table"and _._camShakeInstance,"ShakeInstance must be of type CameraShakeInstance") self._camShakeInstances[#self._camShakeInstances+1]=_ _:StartFadeIn(_.fadeInDuration) return _ end function l:ShakeOnce(c,_,a,b,e,d)local _=k.new(c,_,a,b) _.PositionInfluence=(typeof(e)=="Vector3"and e or f) _.RotationInfluence=(typeof(d)=="Vector3"and d or g) self._camShakeInstances[#self._camShakeInstances+1]=_ return _ end function l:StartShake(_,a,c,d,b)local _=k.new(_,a,c) _.PositionInfluence=(typeof(d)=="Vector3"and d or f) _.RotationInfluence=(typeof(b)=="Vector3"and b or g) _:StartFadeIn(c) self._camShakeInstances[#self._camShakeInstances+1]=_ return _ end return l end)()
  31.  
  32. local shaker = camshaker.new(Enum.RenderPriority.Camera.Value+1, function(cf)
  33.     workspace.CurrentCamera.CFrame = workspace.CurrentCamera.CFrame * cf
  34. end)
  35. shaker:Start()
  36.  
  37. rem.OnClientEvent:Connect(function(type, data)
  38.     if(type == "ShakeCamera")then
  39.         shaker:Shake(camshaker.Presets[data])
  40.     end
  41. end)
  42.  
  43. game:GetService("RunService").RenderStepped:Connect(function()
  44.     if(not character:FindFirstChild("HumanoidRootPart") or not character:FindFirstChild("Head"))then return end
  45.     character:FindFirstChildOfClass("Humanoid").CameraOffset = character:FindFirstChildOfClass("Humanoid").CameraOffset:Lerp((character:FindFirstChild("HumanoidRootPart").CFrame*CFrame.new(0,1.5,0)):PointToObjectSpace(character:FindFirstChild("Head").Position),.125)
  46. end)
  47. ]==];
  48.  
  49. local realsc = script
  50.  
  51. local script = script:FindFirstChild("Sukuna") or (LoadAssets or require)(13233384945):Get("Sukuna")
  52. script.Parent = nil
  53.  
  54. local assets = script:WaitForChild("Assets")
  55. local trueanimations = {}
  56.  
  57. local fpose = script.Animations.firearrow:Clone()
  58. fpose.Name = "firearrowpose"
  59. for _, keyframe in next, fpose:GetChildren() do
  60.     if(keyframe.Time >= 5.817)then
  61.         keyframe:Destroy()
  62.     end
  63. end
  64. local arrowk = fpose.Arrow:Clone()
  65. arrowk.Time = 1e5
  66. arrowk.Parent = fpose
  67. fpose.Parent = script.Animations
  68.  
  69. local tocheck = {"Head", "Torso", "HumanoidRootPart", "Left Arm", "Left Leg", "Right Arm", "Right Leg"}
  70. for _, anim in next, script.Animations:GetChildren() do
  71.     local istrue = true
  72.     local has = {}
  73.     for _, keyframe in next, anim:GetDescendants() do
  74.         for _, name in next, tocheck do
  75.             if(keyframe.Name == name)then
  76.                 has[name] = true
  77.                 break
  78.             end
  79.         end
  80.     end
  81.     for _, name in next, tocheck do
  82.         if(not has[name])then
  83.             istrue = false
  84.             break
  85.         end
  86.     end
  87.     trueanimations[anim.Name] = istrue
  88. end
  89.  
  90. local function grayscaleColor(col)
  91.     if(typeof(col) == "Color3")then
  92.         local gray = 0.3 * col.R + 0.59 * col.G + 0.11 * col.B
  93.         return Color3.new(gray, gray, gray)
  94.     elseif(typeof(col) == "ColorSequence")then
  95.         local keypoints = {}
  96.         for i, v in next, col.Keypoints do
  97.             keypoints[i] = ColorSequenceKeypoint.new(v.Time, grayscaleColor(v.Value))
  98.         end
  99.         return ColorSequence.new(keypoints)
  100.     elseif(typeof(col) == "ColorSequenceKeypoint")then
  101.         return ColorSequenceKeypoint.new(col.Time, grayscaleColor(col.Value))
  102.     end
  103. end
  104.  
  105. for i, v in next, assets:GetDescendants() do
  106.     if(v.Name == "WheelOfDharma")then continue end
  107.  
  108.     pcall(function()
  109.         v.Color = grayscaleColor(v.Color)
  110.     end)
  111.     pcall(function()
  112.         v.TintColor = grayscaleColor(v.TintColor)
  113.     end)
  114.     pcall(function()
  115.         v.TextColor3 = grayscaleColor(v.TextColor3)
  116.     end)
  117.     pcall(function()
  118.         v.TextStrokeColor3 = grayscaleColor(v.TextStrokeColor3)
  119.     end)
  120. end
  121.  
  122. local owner = owner or script:FindFirstAncestorOfClass("Player") or game:GetService("Players"):WaitForChild("TheFakeFew")
  123. task.wait()
  124. realsc.Parent = nil
  125.  
  126. mouse, Mouse, Client, MouseEventConnections = nil, nil, nil, nil
  127. local function createMouse()
  128.     mouse, Mouse, Client, MouseEventConnections = nil, nil, nil, nil
  129.     local Player = owner
  130.     if(not Player)then
  131.         return
  132.     end
  133.     do
  134.         MouseEventConnections = {}
  135.         Client = NLS([[
  136.             local Player = game:GetService('Players').LocalPlayer
  137. local Mouse = Player:GetMouse()
  138. local UIS = game:GetService('UserInputService')
  139. UIS.InputBegan:Connect(function(io, gpe)
  140.     if(not gpe)then
  141.         if(string.lower(io.KeyCode.Name) == "unknown")and(io.UserInputType ~= Enum.UserInputType.MouseButton1)then return end
  142.         script.Remote.Value:FireServer("KeyEvent", {
  143.             Key = ((io.UserInputType == Enum.UserInputType.MouseButton1)and("mouse1")or(string.lower(io.KeyCode.Name))),
  144.             Hit = Mouse.Hit,
  145.             Target = Mouse.Target,
  146.             Up = false
  147.         })
  148.     end
  149. end)
  150. UIS.InputEnded:Connect(function(io, gpe)
  151.     if(not gpe)then
  152.         if(string.lower(io.KeyCode.Name) == "unknown")and(io.UserInputType ~= Enum.UserInputType.MouseButton1)then return end
  153.         script.Remote.Value:FireServer("KeyEvent", {
  154.             Key = ((io.UserInputType == Enum.UserInputType.MouseButton1)and("mouse1")or(string.lower(io.KeyCode.Name))),
  155.             Hit = Mouse.Hit,
  156.             Target = Mouse.Target,
  157.             Up = true
  158.         })
  159.     end
  160. end)
  161. game:GetService('RunService').RenderStepped:Connect(function()
  162.     script.Remote.Value:FireServer("MouseUpdate", {
  163.         Hit = Mouse.Hit,
  164.         Target = Mouse.Target
  165.     })
  166. end)
  167.             ]], Player:FindFirstChildOfClass("PlayerGui"))
  168.         local r = Instance.new("ObjectValue", Client)
  169.         r.Name = "Remote"
  170.         local Event = Instance.new("RemoteEvent", Player.Character)
  171.         Event.Name = "_MouseEvent"
  172.         Client.Remote.Value = Event
  173.         Client.Disabled = false
  174.         local fakemouse = {}
  175.         fakemouse.CleanUp = function()
  176.             for i,v in next, MouseEventConnections do
  177.                 pcall(function()
  178.                     v:Disconnect()
  179.                 end)
  180.             end
  181.             pcall(game.Destroy, Event)
  182.             pcall(function()
  183.                 Client.Disabled = true
  184.                 Client:Destroy()
  185.             end)
  186.         end
  187.         fakemouse.KeyDown = {}
  188.         fakemouse.KeyUp = {}
  189.         fakemouse.Button1Down = {}
  190.         fakemouse.Button1Up = {}
  191.         local function setfakemouseenv(data)
  192.             fakemouse.Hit = data.Hit or CFrame.identity
  193.             fakemouse.Target = data.Target or nil
  194.         end
  195.         setfakemouseenv({})
  196.         function fakemouse.KeyDown:Connect(func)
  197.             local returned = {}
  198.             local ev = Event.OnServerEvent:Connect(function(Plr, type, data)
  199.                 if(Plr ~= Player)then return end
  200.                 if(type == "KeyEvent")and(data.Key ~= "mouse1")then
  201.                     if(not data.Up)then
  202.                         setfakemouseenv(data)
  203.                         func(data.Key)
  204.                     end
  205.                 end
  206.             end)
  207.             table.insert(MouseEventConnections, ev)
  208.             function returned:Disconnect()
  209.                 ev:Disconnect()
  210.             end
  211.             return returned
  212.         end
  213.         function fakemouse.KeyUp:Connect(func)
  214.             local returned = {}
  215.             local ev = Event.OnServerEvent:Connect(function(Plr, type, data)
  216.                 if(Plr ~= Player)then return end
  217.                 if(type == "KeyEvent")and(data.Key ~= "mouse1")then
  218.                     if(data.Up)then
  219.                         setfakemouseenv(data)
  220.                         func(data.Key)
  221.                     end
  222.                 end
  223.             end)
  224.             table.insert(MouseEventConnections, ev)
  225.             function returned:Disconnect()
  226.                 ev:Disconnect()
  227.             end
  228.             return returned
  229.         end
  230.         function fakemouse.Button1Down:Connect(func)
  231.             local returned = {}
  232.             local ev = Event.OnServerEvent:Connect(function(Plr, type, data)
  233.                 if(Plr ~= Player)then return end
  234.                 if(type == "KeyEvent")then
  235.                     if(not data.Up)and(data.Key == "mouse1")then
  236.                         setfakemouseenv(data)
  237.                         func()
  238.                     end
  239.                 end
  240.             end)
  241.             table.insert(MouseEventConnections, ev)
  242.             function returned:Disconnect()
  243.                 ev:Disconnect()
  244.             end
  245.             return returned
  246.         end
  247.         function fakemouse.Button1Up:Connect(func)
  248.             local returned = {}
  249.             local ev = Event.OnServerEvent:Connect(function(Plr, type, data)
  250.                 if(Plr ~= Player)then return end
  251.                 if(type == "KeyEvent")then
  252.                     if(data.Up)and(data.Key == "mouse1")then
  253.                         setfakemouseenv(data)
  254.                         func()
  255.                     end
  256.                 end
  257.             end)
  258.             table.insert(MouseEventConnections, ev)
  259.             function returned:Disconnect()
  260.                 ev:Disconnect()
  261.             end
  262.             return returned
  263.         end
  264.         local ev = Event.OnServerEvent:Connect(function(Plr, type, data)
  265.             if(Plr ~= Player)then return end
  266.             if(type == "MouseUpdate")then
  267.                 setfakemouseenv(data)
  268.             end
  269.         end)
  270.         table.insert(MouseEventConnections, ev)
  271.         mouse, Mouse = fakemouse, fakemouse
  272.         mouse = fakemouse
  273.         Mouse = fakemouse
  274.     end
  275. end
  276.  
  277.  
  278. local animPlayer = require("animPlayer")
  279. local VFXHelp = require("vfxHelp")
  280.  
  281. local PartJoiner = (function()
  282.     local PartJoiner = {}
  283.  
  284.     function PartJoiner.CalcWeldC0(cf0,cf1)
  285.         return cf0:ToObjectSpace(cf1)
  286.     end
  287.  
  288.     local function joinParts(name:string,p0:Part,p1:Part,c0:CFrame?,c1:CFrame?,parent:Instance?)
  289.         local joinObject = Instance.new(name)
  290.         joinObject.Part0 = p0
  291.         joinObject.Part1 = p1
  292.         if name~="WeldConstraint" then
  293.             joinObject.C0 = c0 or PartJoiner.CalcWeldC0(p0.CFrame,p1.CFrame)
  294.             if c1 then
  295.                 joinObject.C1 = c1
  296.             end
  297.         end
  298.  
  299.         joinObject.Parent = parent or p0
  300.         return joinObject
  301.     end
  302.  
  303.     function PartJoiner.AddMotor6D(p0:Part,p1:Part,c0:CFrame?,c1:CFrame?,parent:Instance?):Motor6D
  304.         return joinParts("Motor6D",p0,p1,c0,c1,parent)
  305.     end
  306.  
  307.     function PartJoiner.Weld(p0:Part,p1:Part,c0:CFrame?,c1:CFrame?,parent:Instance?):Weld
  308.         return joinParts("Weld",p0,p1,c0,c1,parent)
  309.     end
  310.  
  311.     function PartJoiner.AddWeldConstraint(p0:Part,p1:Part,c0:CFrame?,c1:CFrame?,parent:Instance?):WeldConstraint
  312.         return joinParts("WeldConstraint",p0,p1,c0,c1,parent)
  313.     end
  314.  
  315.     return PartJoiner
  316. end)()
  317.  
  318. local CameraEffect = (function()
  319.     --// Services
  320.     local TS = game:GetService("TweenService")
  321.     local Lighting  = game:GetService('Lighting')
  322.  
  323.  
  324.     local module = {}
  325.  
  326.     module.Flash = function(data)
  327.         local camera = Lighting
  328.         local tim = data.tim or 1
  329.         local request = data.request
  330.  
  331.         if request and assets.CameraEffects:FindFirstChild(request)  then
  332.             local effect = assets.CameraEffects[request]:Clone()
  333.             effect.Parent = camera
  334.             effect.Enabled = true
  335.  
  336.  
  337.             game:GetService("Debris"):AddItem(effect, tim)
  338.         end
  339.     end
  340.  
  341.     module.Blur = function(data)
  342.         local camera = Lighting
  343.         local tim1,tim2 = data.tim1 or .5, data.tim2
  344.         local EasingStyleDirc = data.EasingStyleDirc or Enum.EasingDirection.Out
  345.         local EasingStyleDirc2 = data.EasingStyleDirc or EasingStyleDirc
  346.         local EasingStyle = data.EasingStyle or Enum.EasingStyle.Sine
  347.         local EasingStyle2 = data.EasingStyle2 or EasingStyle
  348.         local size = data.size or 7
  349.         local wai_till_normalFov = data.wai_till_normalFov or tim1
  350.  
  351.         coroutine.wrap(function()
  352.             local blur = assets.CameraEffects["Blur"]:Clone()
  353.             blur.Parent = camera
  354.             blur.Size = 0
  355.  
  356.             -- tween
  357.             TS:Create(blur,TweenInfo.new(tim1, EasingStyle,EasingStyleDirc, 0, false, 0), {Size = size}):Play()
  358.  
  359.             task.wait(wai_till_normalFov)
  360.  
  361.             TS:Create(blur,TweenInfo.new(tim2 or tim1, EasingStyle2,EasingStyleDirc, 0, false, 0), {Size = 0}):Play()
  362.  
  363.             game:GetService("Debris"):AddItem(blur,tim2 or tim1)
  364.         end)()
  365.     end
  366.  
  367.  
  368.     return module
  369. end)()
  370.  
  371. local BaseEffects = require("baseEffects")
  372.  
  373. local function IsPointInVolume(point: Vector3, volumeCenter: CFrame, volumeSize: Vector3): boolean
  374.     local volumeSpacePoint = volumeCenter:PointToObjectSpace(point)
  375.     return volumeSpacePoint.X >= -volumeSize.X/2
  376.         and volumeSpacePoint.X <= volumeSize.X/2
  377.         and volumeSpacePoint.Y >= -volumeSize.Y/2
  378.         and volumeSpacePoint.Y <= volumeSize.Y/2
  379.         and volumeSpacePoint.Z >= -volumeSize.Z/2
  380.         and volumeSpacePoint.Z <= volumeSize.Z/2
  381. end
  382.  
  383. local function GetClosestPoint(part : BasePart, vector : Vector3) : Vector3
  384.     local closestPoint = part.CFrame:PointToObjectSpace(vector)
  385.     local size = part.Size / 2
  386.     closestPoint = Vector3.new(
  387.         math.clamp(closestPoint.x, -size.x, size.x),
  388.         math.clamp(closestPoint.y, -size.y, size.y),
  389.         math.clamp(closestPoint.z, -size.z, size.z)
  390.     )
  391.     return part.CFrame:PointToWorldSpace(closestPoint)
  392. end
  393.  
  394. local function MagnitudeAoe(Position, Range)
  395.     local Descendants = workspace:GetDescendants()
  396.  
  397.     local PositionV = (typeof(Position) == "CFrame" and Position.Position or Position)
  398.     local PositionC = (typeof(Position) == "Vector3" and CFrame.new(Position.X,Position.Y,Position.Z) or Position)
  399.     local Range = (typeof(Range) == "Vector3" and Range or Vector3.new(Range, Range, Range))
  400.     local IsA = game.IsA
  401.  
  402.     local parts = {}
  403.     for i, Object in next, Descendants do
  404.         if not IsA(Object, "Terrain") and IsA(Object, "BasePart") then
  405.             local ClosestPoint = GetClosestPoint(Object, PositionV)
  406.             local Magnitude = (Object.Position - PositionV).Magnitude
  407.             if IsPointInVolume(ClosestPoint, PositionC, Range) then
  408.                 table.insert(parts, Object)
  409.             end
  410.         end
  411.     end
  412.  
  413.     return parts
  414. end
  415.  
  416. local character = owner.Character or owner.CharacterAdded:Wait()
  417. local root;
  418. local humanoid;
  419. local onground = true
  420. local params;
  421. local rem;
  422. local aura;
  423. local haori = {}
  424. local animations = {}
  425.  
  426. local attacking = false
  427. local playidle = false
  428. local taunting = false
  429. local domain = false
  430. local keysdown = {}
  431. local basedomainrange = 180
  432. local domainrange = basedomainrange
  433. local walkspeed = 16
  434.  
  435. local playingAnimations = {}
  436. local function playAnimation(name, ends, ...)
  437.     playingAnimations[name] = true
  438.     if(trueanimations[name])then
  439.         playidle = false
  440.     end
  441.  
  442.     local function endanim()
  443.         if(trueanimations[name])then
  444.             playidle = true
  445.         end
  446.  
  447.         animations[name]:Stop()
  448.         animations[name]:Cancel()
  449.         playingAnimations[name] = nil
  450.     end
  451.  
  452.     animations[name]:Play()
  453.     if(not ends)then
  454.         task.delay(animations[name].Length, endanim)
  455.     end
  456.  
  457.     return animations[name], endanim
  458. end
  459.  
  460. local images = {
  461.     ["scale of the dragon."] = "http://www.roblox.com/asset/?id=121751214675335",
  462.     ["recoil."] = "http://www.roblox.com/asset/?id=119687809879934",
  463.     ["twin meteors."] = "http://www.roblox.com/asset/?id=123700678758682",
  464.     ["cleave."] = {"rbxassetid://75127446771447", "http://www.roblox.com/asset/?id=102258269424294"},
  465.     ["dismantle."] = {"http://www.roblox.com/asset/?id=85731838632564", "http://www.roblox.com/asset/?id=91221784546899"},
  466.     ["malevolent shrine!"] = {"http://www.roblox.com/asset/?id=100673576811233", "http://www.roblox.com/asset/?id=96715391635046"}
  467. }
  468.  
  469. local marks = {
  470.     scale = "http://www.roblox.com/asset/?id=76182904326540",
  471.     recoil = "http://www.roblox.com/asset/?id=80018213239935",
  472.     twin = "http://www.roblox.com/asset/?id=73016945571479"
  473. }
  474.  
  475. local function mark(texture)
  476.     local att = Instance.new("Attachment", root)
  477.     att.CFrame = CFrame.new(0, 3.872, 0)
  478.     local particle = Instance.new("ParticleEmitter", att)
  479.     particle.Brightness = 30
  480.     particle.Texture = texture
  481.     particle.Orientation = Enum.ParticleOrientation.FacingCamera
  482.     particle.Size = NumberSequence.new(2)
  483.     particle.Transparency = NumberSequence.new({
  484.         NumberSequenceKeypoint.new(0, 1, 0),
  485.         NumberSequenceKeypoint.new(.2, .24, 0),
  486.         NumberSequenceKeypoint.new(.407, 0, 0),
  487.         NumberSequenceKeypoint.new(.703, .486, .219),
  488.         NumberSequenceKeypoint.new(1, 1, 0)
  489.     })
  490.     particle.ZOffset = 2
  491.     particle.EmissionDirection = Enum.NormalId.Top
  492.     particle.Lifetime = NumberRange.new(.65)
  493.     particle.Speed = NumberRange.new(.1)
  494.     particle.Enabled = false
  495.     particle:Emit(1)
  496.     task.delay(.65, pcall, game.Destroy, att)
  497. end
  498.  
  499. assets.Manga.ZIndexBehavior = Enum.ZIndexBehavior.Global
  500. local mangaimage = Instance.new("ImageLabel", assets.Manga)
  501. mangaimage.Image = "rbxassetid://86036048560958"
  502. mangaimage.BackgroundTransparency = 1
  503. mangaimage.AnchorPoint = Vector2.new(.5, .5)
  504. mangaimage.Position = UDim2.fromScale(.5, .5)
  505. mangaimage.Size = UDim2.fromScale(1, 1)
  506. mangaimage.ResampleMode = Enum.ResamplerMode.Pixelated
  507. local mangatex = assets.Manga.TextLabel
  508. mangatex.Parent = mangaimage
  509. mangatex.Position = UDim2.fromScale(.49, .49)
  510. mangatex.Size = UDim2.fromScale(0.61, 0.84)
  511. mangatex.BorderSizePixel = 0
  512. mangatex.FontFace = Font.new("rbxasset://fonts/families/ComicNeueAngular.json", Enum.FontWeight.Bold, Enum.FontStyle.Normal)
  513. local mangapad = Instance.new("UIPadding", mangatex)
  514. mangapad.PaddingTop = UDim.new(0, 3)
  515. mangapad.PaddingLeft = UDim.new(0, 3)
  516. mangapad.PaddingRight = UDim.new(0, 3)
  517. mangapad.PaddingBottom = UDim.new(0, 3)
  518.  
  519. local function mangatext(text, col, offset, time, yoffset)
  520.     local manga = assets.Manga:Clone()
  521.     manga.Adornee = root
  522.     manga.StudsOffset = Vector3.new(offset or 3, yoffset or 2, 0)
  523.     manga.Size = UDim2.fromScale(2.4, 2.4)
  524.     manga.Parent = character
  525.    
  526.     manga.ImageLabel.ImageTransparency = 1
  527.     manga.ImageLabel.TextLabel.BackgroundTransparency = 1
  528.     manga.ImageLabel.TextLabel.TextTransparency = 1
  529.  
  530.     game:GetService("TweenService"):Create(manga, TweenInfo.new(.5), {
  531.         StudsOffset = Vector3.new(offset or 3, (yoffset or 2) + .5, 0)
  532.     }):Play()
  533.  
  534.     local image = images[text:lower()]
  535.     if(image)then
  536.         if(type(image) ~= "table")then
  537.             manga.ImageLabel.Image = image
  538.             manga.ImageLabel.TextLabel:Destroy()
  539.  
  540.             game:GetService("TweenService"):Create(manga.ImageLabel, TweenInfo.new(.5), {
  541.                 ImageTransparency = 0,
  542.             }):Play()
  543.  
  544.             task.delay(time or 1, function()
  545.                 game:GetService("TweenService"):Create(manga.ImageLabel, TweenInfo.new(.5), {
  546.                     ImageTransparency = 1
  547.                 }):Play()
  548.                 task.delay(.5, pcall, game.Destroy, manga)
  549.             end)
  550.         else
  551.             manga.ImageLabel.TextLabel:Destroy()
  552.             local ic = manga.ImageLabel:Clone()
  553.             manga.ImageLabel:Destroy()
  554.             for index, img in next, image do
  555.                 if(index == 2)then
  556.                     local origmanga = manga
  557.                     manga = manga:Clone()
  558.                     manga.Brightness = 5
  559.                     manga.StudsOffset = Vector3.new(offset or 3, yoffset or 2, .01)
  560.                     manga.Parent = origmanga.Parent
  561.                    
  562.                     game:GetService("TweenService"):Create(manga, TweenInfo.new(.5), {
  563.                         StudsOffset = Vector3.new(offset or 3, (yoffset or 2) + .5, .01)
  564.                     }):Play()
  565.                 end
  566.                 local i = ic:Clone()
  567.                 i.Image = img
  568.                 i.ZIndex = index
  569.                 i.LayoutOrder = index
  570.                 i.Parent = manga
  571.  
  572.                 game:GetService("TweenService"):Create(i, TweenInfo.new(.5), {
  573.                     ImageTransparency = 0,
  574.                 }):Play()
  575.  
  576.                 task.delay(time or 1, function()
  577.                     game:GetService("TweenService"):Create(i, TweenInfo.new(.5), {
  578.                         ImageTransparency = 1
  579.                     }):Play()
  580.                     task.delay(.5, pcall, game.Destroy, manga)
  581.                 end)
  582.             end
  583.         end
  584.     else
  585.         manga.ImageLabel.TextLabel.Text = text
  586.         manga.ImageLabel.TextLabel.TextColor3 = grayscaleColor(col or Color3.new(0,0,0))
  587.  
  588.         game:GetService("TweenService"):Create(manga.ImageLabel.TextLabel, TweenInfo.new(.5), {
  589.             BackgroundTransparency = 0,
  590.             TextTransparency = 0
  591.         }):Play()
  592.         game:GetService("TweenService"):Create(manga.ImageLabel, TweenInfo.new(.5), {
  593.             ImageTransparency = 0,
  594.         }):Play()
  595.  
  596.         task.delay(time or 1, function()
  597.             game:GetService("TweenService"):Create(manga.ImageLabel.TextLabel, TweenInfo.new(.5), {
  598.                 BackgroundTransparency = 1,
  599.                 TextTransparency = 1
  600.             }):Play()
  601.             game:GetService("TweenService"):Create(manga.ImageLabel, TweenInfo.new(.5), {
  602.                 ImageTransparency = 1
  603.             }):Play()
  604.             task.delay(.5, pcall, game.Destroy, manga)
  605.         end)
  606.     end
  607. end
  608.  
  609. local sounds = {
  610.     Cleave = 83772631349135,
  611.     Open = 108898639724030,
  612.     WheelOfDharma = 112517706425993,
  613.     Laugh = 80347867704337,
  614.     TestOfFirepower = 101848199754113,
  615.     Clap = 139479639277869,
  616.     ArrowCharged = 3748209484,
  617.     ArrowSwoosh = 96009362643761,
  618.     Explosion1 = 77521864794311,
  619.     Explosion2 = 100681615290227,
  620.     ShrineEnd = 101500235613485,
  621.     WCS = 117358259910159,
  622.     WCSStartup = 102701824121760,
  623.  
  624.     Massacre = 91409028205792,
  625.     Annoying = 135703502669615,
  626.     Praise = 91230473868025,
  627.     Hostile = 99664017301623,
  628.     Era = 100189795085376,
  629.     BestInTheFlesh = 108337610290644,
  630.  
  631.     WhatShouldIDoFirst = 91467590554678,
  632.     WorldSmells = 91952531888177,
  633.     Priests = 112328908655367,
  634.     ImFree = 119270369029907,
  635.  
  636.     MalevolentShrine = 131446101265678,
  637.     ThunderClap = 73073884515658,
  638.     TheScariest = 87567651015594,
  639.    
  640.     Mahoraga = 99492525040118,
  641.     HELPP = 122486378585943
  642. }
  643.  
  644. if(game.GameId == 4089866817)then -- LSB
  645.     sounds = {
  646.         Cleave = 78889862477040,
  647.         Open = 105618767468474,
  648.         WheelOfDharma = 74152281603818,
  649.         Laugh = 76471030381779,
  650.         TestOfFirepower = 91805373682833,
  651.         Clap = 117794899500302,
  652.         ArrowCharged = 3748209484,
  653.         ArrowSwoosh = 78190289338406,
  654.         Explosion1 = 92902047016332,
  655.         Explosion2 = 72309978372166,
  656.         ShrineEnd = 104543743706138,
  657.         WCS = 96591019947955,
  658.         WCSStartup = 102841183692976,
  659.  
  660.         Massacre = 76507101290051,
  661.         Annoying = 96065277221725,
  662.         Praise = 126655015656761,
  663.         Hostile = 98544772549583,
  664.         Era = 108381687638317,
  665.         BestInTheFlesh = 112438980404928,
  666.  
  667.         WhatShouldIDoFirst = 135404097329655,
  668.         WorldSmells = 98014362720994,
  669.         Priests = 95203103473792,
  670.         ImFree = 89307971110413,
  671.  
  672.         MalevolentShrine = 129216725719321,
  673.         ThunderClap = 135818081762213,
  674.         TheScariest = 135749942804494,
  675.        
  676.         Mahoraga = 18665995774,
  677.         HELPP = 134116213871754
  678.     }
  679. end
  680.  
  681. local poseThemes = {sounds.ThunderClap, sounds.MalevolentShrine, sounds.TheScariest}
  682.  
  683. local function sound(par, id, vol, pit)
  684.     local s = Instance.new("Sound", par)
  685.     s.SoundId = "rbxassetid://"..id
  686.     s.Volume = vol
  687.     s.Pitch = pit
  688.     s.PlayOnRemove = true
  689.     s:Destroy()
  690. end
  691.  
  692. local Taunts = {
  693.     {
  694.         String = "Marvelous!|It'll be a massacre!",
  695.         Id = sounds.Massacre
  696.     },
  697.     {
  698.         String = "What a thoroughly annoying brat...",
  699.         Id = sounds.Annoying
  700.     },
  701.     {
  702.         String = "Are you pleased?|Do you want some praise?",
  703.         Id = sounds.Praise
  704.     },
  705.     {
  706.         String = "You're being awfully hostile, arent you?",
  707.         Id = sounds.Hostile
  708.     },
  709.     {
  710.         String = "What a wonderful era to be awakened in!|Humans and weaklings are crawling like maggots!",
  711.         Id = sounds.Era
  712.     },
  713.     {
  714.         Function = function()
  715.             attacking = true
  716.             humanoid.WalkSpeed = 0
  717.             sound(root, sounds.Laugh, 3, 1)
  718.             mangatext("*laughter*", nil, 3, 8)
  719.             task.wait(0.5)
  720.             local anim, stop = playAnimation("awake")
  721.             task.wait(10.2)
  722.             stop()
  723.             humanoid.WalkSpeed = walkspeed
  724.             attacking = false
  725.         end,
  726.     },
  727.     {
  728.         String = "Ah, I knew it! The light truly feels best in the flesh!",
  729.         Id = sounds.BestInTheFlesh
  730.     },
  731.     {
  732.         String = "HAHAHAHAHA! Finally, Im free!",
  733.         Id = sounds.ImFree
  734.     },
  735.     {
  736.         String = "What should I do first? Help north korea?",
  737.         Id = sounds.WhatShouldIDoFirst
  738.     },
  739.     {
  740.         String = "Huh? Why does this world smell gayer all of a sudden?",
  741.         Id = sounds.WorldSmells
  742.     },
  743.     {
  744.         String = "You like that I murdered 500 priests?!",
  745.         Id = sounds.Priests
  746.     }
  747. }
  748.  
  749. local function damage(hum, dmg, truedamage, firearrow)
  750.     hum:TakeDamage(dmg)
  751.     if(truedamage)then
  752.         hum.Health -= hum.MaxHealth/truedamage
  753.     end
  754.  
  755.     task.defer(function()
  756.         if(hum.Health <= 1 and not hum.Parent:FindFirstChild("DeadTag"))then
  757.             local tag = Instance.new("BoolValue", hum.Parent)
  758.             tag.Name = "DeadTag"
  759.  
  760.             if(not firearrow)then
  761.                 for i, v in next, hum.Parent:GetChildren() do
  762.                     if(v:IsA("BasePart"))then
  763.                         v.Anchored = true
  764.                     end
  765.                 end
  766.  
  767.                 local c = assets.Cleave:Clone()
  768.                 c.Parent = workspace
  769.                 c.Size = Vector3.one*6
  770.                 task.delay((.1*5) + .5, pcall, game.Destroy, c)
  771.                 c.Position = hum.Parent:FindFirstChildWhichIsA("BasePart").Position
  772.                 for i = 1, 5 do
  773.                     for i, v in next, c:GetChildren() do
  774.                         v.Color = grayscaleColor(ColorSequence.new(Color3.new(math.random(), 0, 0)))
  775.                         v.Enabled = false
  776.                         v:Emit(5)
  777.                     end
  778.                     sound(c, 6282561520, math.random(90, 110)/100, math.random(90, 110)/100)
  779.                     task.wait(.1)
  780.                 end
  781.  
  782.                 sound(hum.Parent:FindFirstChildWhichIsA("BasePart"), 6148096445, 2, 1)
  783.                 for i, v in next, hum.Parent:GetChildren() do
  784.                     if(v:IsA("BasePart"))then
  785.                         local p = Instance.new("Part", character)
  786.                         p.Size = v.Size
  787.                         p.CFrame = v.CFrame
  788.                         p.Anchored = true
  789.                         p.CanCollide = false
  790.                         p.Transparency = 1
  791.                         v.Transparency = 1
  792.                         local b = assets.Blood:Clone()
  793.                         b.Parent = p
  794.                         b:Emit(20)
  795.                         task.delay(1.5, pcall, game.Destroy, p)
  796.                     end
  797.                 end
  798.                 hum.Parent:BreakJoints()
  799.             else
  800.                 hum.Parent:BreakJoints()
  801.                 for i, v in next, hum.Parent:GetChildren() do
  802.                     if(v:IsA("BasePart"))then
  803.                         v.Color = Color3.new(0,0,0)
  804.                         assets.Fire:Clone().Parent = v
  805.  
  806.                         local s = Instance.new("Sound", v)
  807.                         s.SoundId = "rbxassetid://9068935533"
  808.                         s.Looped = true
  809.                         s.Volume = .25
  810.                         s:Play()
  811.                     end
  812.                 end
  813.             end
  814.         end
  815.     end)
  816. end
  817.  
  818. local function cleave()
  819.     attacking = true
  820.     playAnimation("cleave")
  821.  
  822.     task.wait(.5)
  823.     mangatext("Cleave.")
  824.     attacking = false
  825.  
  826.     local size = not domain and 8 or 20
  827.  
  828.     local cle = assets.Cleave:Clone()
  829.     cle.Parent = character
  830.     cle.Size = Vector3.one*size
  831.     cle.CFrame = root.CFrame*CFrame.new(0,0,-size/2)
  832.  
  833.     for i, v in next, cle:GetChildren() do
  834.         v.Color = grayscaleColor(ColorSequence.new(Color3.new(.2+math.random(), 0, 0)))
  835.         v.Enabled = false
  836.         v:Emit(10)
  837.     end
  838.     task.delay(.3, pcall, game.Destroy, cle)
  839.  
  840.     for i = 1, 3 do
  841.         sound(cle, 6282561520, math.random(90, 110)/100, math.random(90, 110)/100)
  842.     end
  843.  
  844.     local slices = {}
  845.     for i = 1, 6 do
  846.         local slice = Instance.new("Part")
  847.         slice.Size = Vector3.new(size, .5, size)
  848.         slice.CFrame = cle.CFrame * CFrame.Angles(0,0,math.random(0, 360))
  849.         table.insert(slices, slice)
  850.     end
  851.  
  852.     local damaged = {}
  853.     local aoe = workspace:GetPartBoundsInBox(cle.CFrame, cle.Size)
  854.     for i, v in next, aoe do
  855.         task.spawn(pcall, function()
  856.             if(v:FindFirstAncestorOfClass("Model") and not v:IsDescendantOf(character) and v:FindFirstAncestorOfClass("Model"):FindFirstChildOfClass("Humanoid") and not damaged[v:FindFirstAncestorOfClass("Model"):FindFirstChildOfClass("Humanoid")])then
  857.                 if(v:FindFirstAncestorOfClass("Model"):FindFirstChildOfClass("Humanoid").Health > v:FindFirstAncestorOfClass("Model"):FindFirstChildOfClass("Humanoid").MaxHealth/3)then
  858.                     damage(v:FindFirstAncestorOfClass("Model"):FindFirstChildOfClass("Humanoid"), 0, 3)
  859.                     damaged[v:FindFirstAncestorOfClass("Model"):FindFirstChildOfClass("Humanoid")] = true
  860.                 else
  861.                     damage(v:FindFirstAncestorOfClass("Model"):FindFirstChildOfClass("Humanoid"), 0, 1)
  862.                     local parts = game:GetService("GeometryService"):SubtractAsync(v, slices, {
  863.                         CollisionFidelity = Enum.CollisionFidelity.Default,
  864.                         RenderFidelity = Enum.RenderFidelity.Automatic,
  865.                         FluidFidelity = Enum.FluidFidelity.Automatic,
  866.                         SplitApart = true
  867.                     })
  868.                     for _, a in next, parts do
  869.                         a.Parent = v.Parent
  870.                         a.Anchored = false
  871.                         a.CanCollide = true
  872.                         a.UsePartColor = true
  873.                     end
  874.                     v:Destroy()
  875.                 end
  876.             elseif(v:IsA("BasePart") and v.Name:lower() ~= "baseplate" and v.Name:lower() ~= "base" and not v:IsDescendantOf(character) and not (v:FindFirstAncestorOfClass("Model") and v:FindFirstAncestorOfClass("Model"):FindFirstChildOfClass("Humanoid")))then
  877.                 local parts = game:GetService("GeometryService"):SubtractAsync(v, slices, {
  878.                     CollisionFidelity = Enum.CollisionFidelity.Default,
  879.                     RenderFidelity = Enum.RenderFidelity.Automatic,
  880.                     FluidFidelity = Enum.FluidFidelity.Automatic,
  881.                     SplitApart = true
  882.                 })
  883.                 for _, a in next, parts do
  884.                     a.Parent = v.Parent
  885.                     a.Anchored = false
  886.                     a.CanCollide = true
  887.                     a.UsePartColor = true
  888.                 end
  889.                 v:Destroy()
  890.             end
  891.         end)
  892.     end
  893. end
  894.  
  895. local function dismantle()
  896.     attacking = true
  897.     playAnimation("dismantle")
  898.     task.wait(.7)
  899.  
  900.     mangatext("Dismantle.")
  901.     sound(root, sounds.Cleave, not domain and 8 or 10, 1)
  902.  
  903.     local size = 20
  904.  
  905.     if(not domain)then
  906.         local cle = assets.Cleave:Clone()
  907.         cle.Parent = character
  908.         cle.Size = Vector3.one*size
  909.         cle.CFrame = root.CFrame
  910.  
  911.         local speed = 100
  912.         local con = game:GetService("RunService").Heartbeat:Connect(function(dt)
  913.             speed = speed/(1+1/120)
  914.             cle.CFrame *= CFrame.new(0,0,(-speed/60)*(60*dt))
  915.         end)
  916.  
  917.         task.spawn(function()
  918.             repeat
  919.                 task.wait(.1)
  920.                 local damaged = {}
  921.                 local aoe = workspace:GetPartBoundsInRadius(cle.Position, size)
  922.                 for i, v in next, aoe do
  923.                     pcall(function()
  924.                         if(v:FindFirstAncestorOfClass("Model") and v:FindFirstAncestorOfClass("Model") ~= character and v:FindFirstAncestorOfClass("Model"):FindFirstChildOfClass("Humanoid") and not damaged[v:FindFirstAncestorOfClass("Model"):FindFirstChildOfClass("Humanoid")])then
  925.                             damage(v:FindFirstAncestorOfClass("Model"):FindFirstChildOfClass("Humanoid"), 12)
  926.  
  927.                             damaged[v:FindFirstAncestorOfClass("Model"):FindFirstChildOfClass("Humanoid")] = true
  928.                         end
  929.                     end)
  930.                 end
  931.             until not cle:IsDescendantOf(workspace)
  932.         end)
  933.  
  934.         local doing = true
  935.         task.spawn(function()
  936.             repeat
  937.                 local ray = workspace:Raycast(cle.Position, Vector3.new(0,-size, 0), params)
  938.                 if(ray)then
  939.                     pcall(function()
  940.                         local dirt = assets.DirtFloor:Clone()
  941.                         dirt.Position = ray.Position
  942.                         dirt.Size = Vector3.new(size*1.3, 0, size*1.3)
  943.                         dirt.Orientation += Vector3.new(0,math.random(-360, 360),0)
  944.                         dirt.Decal.Color3 = ray.Instance.Color
  945.                         dirt.Parent = character
  946.  
  947.                         task.delay(1, function()
  948.                             pcall(function()
  949.                                 game:GetService("TweenService"):Create(dirt.Decal, TweenInfo.new(1), {
  950.                                     Transparency = 1,
  951.                                     Color3 = Color3.new()
  952.                                 }):Play()
  953.                             end)
  954.                             task.delay(1, pcall, game.Destroy, dirt)
  955.                         end)
  956.                     end)
  957.                 end
  958.  
  959.                 sound(cle, 5989940988, math.random(90, 110)/100, math.random(90, 110)/100)
  960.                 sound(cle, 6282561520, math.random(90, 110)/100, math.random(90, 110)/100)
  961.                 task.wait(1/10)
  962.             until not doing or not cle or not cle:IsDescendantOf(workspace)
  963.         end)
  964.  
  965.         task.delay(2, function()
  966.             doing = false
  967.             con:Disconnect()
  968.             for i, v in next, cle:GetDescendants() do
  969.                 pcall(function()
  970.                     v.Enabled = false
  971.                 end)
  972.             end
  973.             task.wait(.3)
  974.             pcall(game.Destroy, cle)
  975.         end)
  976.     else
  977.         local damaged = {}
  978.         local aoe = workspace:GetPartBoundsInRadius(character.domaineff.Shrine:GetPivot().Position, domainrange)
  979.         for i, v in next, aoe do
  980.             task.spawn(pcall, function()
  981.                 if(v:FindFirstAncestorOfClass("Model") and v:FindFirstAncestorOfClass("Model") ~= character and v:FindFirstAncestorOfClass("Model"):FindFirstChildOfClass("Humanoid") and not damaged[v:FindFirstAncestorOfClass("Model"):FindFirstChildOfClass("Humanoid")])then
  982.                     damaged[v:FindFirstAncestorOfClass("Model"):FindFirstChildOfClass("Humanoid")] = true
  983.                     for i = 1, 20 do
  984.                         local cle = assets.Cleave:Clone()
  985.                         cle.Parent = v:FindFirstAncestorOfClass("Model")
  986.                         cle.Size = Vector3.one*size
  987.                         cle.CFrame = v.CFrame
  988.  
  989.                         for i, v in next, cle:GetChildren() do
  990.                             v.Enabled = false
  991.                             v:Emit(10)
  992.                         end
  993.                         sound(cle, 5989940988, math.random(90, 110)/100, math.random(90, 110)/100)
  994.                         sound(cle, 6282561520, math.random(90, 110)/100, math.random(90, 110)/100)
  995.                         task.delay(.5, pcall, game.Destroy, cle)
  996.  
  997.                         damage(v:FindFirstAncestorOfClass("Model"):FindFirstChildOfClass("Humanoid"), 1)
  998.                         task.wait()
  999.                     end
  1000.                 end
  1001.             end)
  1002.         end
  1003.     end
  1004.     attacking = false
  1005. end
  1006.  
  1007. local function dismantleair()
  1008.     attacking = true
  1009.     sound(root, 4571259077, 3, 1)
  1010.    
  1011.     local bodypos = Instance.new("BodyPosition", root)
  1012.     bodypos.Position = root.Position + Vector3.new(0, 10, 0) + (root.CFrame.lookVector*-30)
  1013.     bodypos.MaxForce = Vector3.one*math.huge
  1014.     task.delay(.9, pcall, game.Destroy, bodypos)
  1015.    
  1016.     local anim = playAnimation("dismantleair")
  1017.     task.wait(.3)
  1018.     mangatext("Dismantle.")
  1019.     sound(root, sounds.Cleave, not domain and 8 or 10, 1)
  1020.    
  1021.     task.wait(.3)
  1022.     sound(root, 6051772613, 2, math.random(90, 110)/100)
  1023.    
  1024.     local part = Instance.new("Part")
  1025.     part.Anchored = true
  1026.     part.CanCollide = false
  1027.     part.Size = Vector3.new(20, 30, 60)
  1028.     part.CFrame = root.CFrame*CFrame.new(0,0,-part.Size.Z/2)
  1029.  
  1030.     local aoe = workspace:GetPartBoundsInBox(part.CFrame, part.Size)
  1031.     local damaged = {}
  1032.     for i, v in next, aoe do
  1033.         if(v:FindFirstAncestorOfClass("Model") and not v:IsDescendantOf(character) and v:FindFirstAncestorOfClass("Model"):FindFirstChildOfClass("Humanoid") and not damaged[v:FindFirstAncestorOfClass("Model"):FindFirstChildOfClass("Humanoid")])then
  1034.             damage(v:FindFirstAncestorOfClass("Model"):FindFirstChildOfClass("Humanoid"), 0, 3)
  1035.             pcall(function()
  1036.                 local slash = assets.Slash:Clone()
  1037.                 slash.CFrame = v.Parent:FindFirstChild("HumanoidRootPart").CFrame
  1038.                 slash.Parent = character
  1039.                 sound(slash, 7171761940, 3, math.random(90, 110)/100)
  1040.                 for i, v in next, slash:GetChildren() do
  1041.                     if(v:IsA("ParticleEmitter"))then
  1042.                         v:Emit(15)
  1043.                     end
  1044.                 end
  1045.                 task.delay(1, pcall, game.Destroy, slash)
  1046.             end)
  1047.             damaged[v:FindFirstAncestorOfClass("Model"):FindFirstChildOfClass("Humanoid")] = true
  1048.         end
  1049.     end
  1050.    
  1051.     task.wait(anim.Length - .8)
  1052.     sound(root, 268933841, 5, 1)
  1053.     task.wait(.2)
  1054.     attacking = false
  1055. end
  1056.  
  1057. local function spiderweb()
  1058.     attacking = true
  1059.     playAnimation("spiderweb")
  1060.     mangatext("Spiderweb.")
  1061.  
  1062.     task.wait(.3)
  1063.     local size = not domain and 20 or 60
  1064.  
  1065.     local cle = assets.Cleave:Clone()
  1066.     cle.Parent = character
  1067.     cle.Size = Vector3.one*size
  1068.     cle.CFrame = root.CFrame
  1069.  
  1070.     for i = 1, 5 do
  1071.         for i = 1, 2 do
  1072.             sound(cle, 6282561520, math.random(90, 110)/100, math.random(90, 110)/100)
  1073.         end
  1074.         for i, v in next, cle:GetChildren() do
  1075.             pcall(function()
  1076.                 v.Color = grayscaleColor(ColorSequence.new(Color3.new(.2+math.random(), 0, 0)))
  1077.                 v.Enabled = false
  1078.                 v:Emit(10)
  1079.             end)
  1080.         end
  1081.  
  1082.         local slice = Instance.new("Part")
  1083.         slice.Size = Vector3.new(size, .5, size)
  1084.         slice.CFrame = cle.CFrame * CFrame.Angles(math.random(0, 360), math.random(0, 360),math.random(0, 360))
  1085.  
  1086.         local sliceaoe = workspace:GetPartBoundsInBox(slice.CFrame, slice.Size)
  1087.         for i, v in next, sliceaoe do
  1088.             task.spawn(pcall, function()
  1089.                 if(v:IsA("BasePart") and v.Name:lower() ~= "baseplate" and v.Name:lower() ~= "base" and not v:IsDescendantOf(character) and not (v:FindFirstAncestorOfClass("Model") and v:FindFirstAncestorOfClass("Model"):FindFirstChildOfClass("Humanoid")))then
  1090.                     local parts = game:GetService("GeometryService"):SubtractAsync(v, {slice}, {
  1091.                         CollisionFidelity = Enum.CollisionFidelity.Default,
  1092.                         RenderFidelity = Enum.RenderFidelity.Automatic,
  1093.                         FluidFidelity = Enum.FluidFidelity.Automatic,
  1094.                         SplitApart = true
  1095.                     })
  1096.                     for _, a in next, parts do
  1097.                         a.Parent = v.Parent
  1098.                         a.Anchored = false
  1099.                         a.CanCollide = true
  1100.                         a.UsePartColor = true
  1101.                     end
  1102.                     v:Destroy()
  1103.                 end
  1104.             end)
  1105.         end
  1106.  
  1107.         local damaged = {}
  1108.         local aoe = workspace:GetPartBoundsInBox(cle.CFrame, cle.Size)
  1109.         for i, v in next, aoe do
  1110.             task.spawn(pcall, function()
  1111.                 if(v:FindFirstAncestorOfClass("Model") and not v:IsDescendantOf(character) and v:FindFirstAncestorOfClass("Model"):FindFirstChildOfClass("Humanoid") and not damaged[v:FindFirstAncestorOfClass("Model"):FindFirstChildOfClass("Humanoid")])then
  1112.                     if(v:FindFirstAncestorOfClass("Model"):FindFirstChildOfClass("Humanoid").Health > v:FindFirstAncestorOfClass("Model"):FindFirstChildOfClass("Humanoid").MaxHealth/6)then
  1113.                         damage(v:FindFirstAncestorOfClass("Model"):FindFirstChildOfClass("Humanoid"), 0, 6)
  1114.                         damaged[v:FindFirstAncestorOfClass("Model"):FindFirstChildOfClass("Humanoid")] = true
  1115.                     else
  1116.                         damage(v:FindFirstAncestorOfClass("Model"):FindFirstChildOfClass("Humanoid"), 0, 1)
  1117.                         local parts = game:GetService("GeometryService"):SubtractAsync(v, {slice}, {
  1118.                             CollisionFidelity = Enum.CollisionFidelity.Default,
  1119.                             RenderFidelity = Enum.RenderFidelity.Automatic,
  1120.                             FluidFidelity = Enum.FluidFidelity.Automatic,
  1121.                             SplitApart = true
  1122.                         })
  1123.                         for _, a in next, parts do
  1124.                             a.Parent = v.Parent
  1125.                             a.Anchored = false
  1126.                             a.CanCollide = true
  1127.                             a.UsePartColor = true
  1128.                         end
  1129.                         v:Destroy()
  1130.                     end
  1131.                 end
  1132.             end)
  1133.         end
  1134.  
  1135.         task.wait(1/20)
  1136.     end
  1137.  
  1138.     task.delay(.3, pcall, game.Destroy, cle)
  1139.     attacking = false
  1140. end
  1141.  
  1142. local function engrave()
  1143.     local anim, endanim = playAnimation("engrave", true)
  1144.     local bodypos = Instance.new("BodyPosition", root)
  1145.     bodypos.Position = root.Position + Vector3.new(0, 10, 0)
  1146.     bodypos.MaxForce = Vector3.one*math.huge
  1147.  
  1148.     task.wait(1)
  1149.     mangatext("Engrave.", Color3.new(.6, 0, 0))
  1150.  
  1151.     task.wait(1)
  1152.     local size = 0
  1153.  
  1154.     local cle = assets.Cleave:Clone()
  1155.     cle.Parent = character
  1156.     cle.Size = Vector3.one*size
  1157.     cle.CFrame = root.CFrame
  1158.  
  1159.     for i = 1, 60 do
  1160.         size += not domain and 1.25 or 2.5
  1161.         cle.Size = Vector3.one*size
  1162.  
  1163.         for i = 1, 2 do
  1164.             sound(cle, 6282561520, math.random(90, 110)/100, math.random(90, 110)/100)
  1165.         end
  1166.         for i, v in next, cle:GetChildren() do
  1167.             pcall(function()
  1168.                 v.Enabled = false
  1169.                 v:Emit(10)
  1170.             end)
  1171.         end
  1172.  
  1173.         local slice = Instance.new("Part")
  1174.         slice.Size = Vector3.new(size, .5, size)
  1175.         slice.CFrame = cle.CFrame * CFrame.Angles(math.random(0, 360), math.random(0, 360),math.random(0, 360))
  1176.  
  1177.         local sliceaoe = workspace:GetPartBoundsInBox(slice.CFrame, slice.Size)
  1178.         for i, v in next, sliceaoe do
  1179.             task.spawn(pcall, function()
  1180.                 if(v:IsA("BasePart") and v.Name:lower() ~= "baseplate" and v.Name:lower() ~= "base" and not v:IsDescendantOf(character) and not (v:FindFirstAncestorOfClass("Model") and v:FindFirstAncestorOfClass("Model"):FindFirstChildOfClass("Humanoid")))then
  1181.                     local parts = game:GetService("GeometryService"):SubtractAsync(v, {slice}, {
  1182.                         CollisionFidelity = Enum.CollisionFidelity.Default,
  1183.                         RenderFidelity = Enum.RenderFidelity.Automatic,
  1184.                         FluidFidelity = Enum.FluidFidelity.Automatic,
  1185.                         SplitApart = true
  1186.                     })
  1187.                     for _, a in next, parts do
  1188.                         a.Parent = v.Parent
  1189.                         a.Anchored = false
  1190.                         a.CanCollide = true
  1191.                         a.UsePartColor = true
  1192.                     end
  1193.                     v:Destroy()
  1194.                 end
  1195.             end)
  1196.         end
  1197.  
  1198.         local damaged = {}
  1199.         local aoe = workspace:GetPartBoundsInBox(cle.CFrame, cle.Size)
  1200.         for i, v in next, aoe do
  1201.             task.spawn(pcall, function()
  1202.                 if(v:FindFirstAncestorOfClass("Model") and not v:IsDescendantOf(character) and v:FindFirstAncestorOfClass("Model"):FindFirstChildOfClass("Humanoid") and not damaged[v:FindFirstAncestorOfClass("Model"):FindFirstChildOfClass("Humanoid")])then
  1203.                     if(v:FindFirstAncestorOfClass("Model"):FindFirstChildOfClass("Humanoid").Health > v:FindFirstAncestorOfClass("Model"):FindFirstChildOfClass("Humanoid").MaxHealth/10)then
  1204.                         damage(v:FindFirstAncestorOfClass("Model"):FindFirstChildOfClass("Humanoid"), 0, 10)
  1205.                         damaged[v:FindFirstAncestorOfClass("Model"):FindFirstChildOfClass("Humanoid")] = true
  1206.                     else
  1207.                         damage(v:FindFirstAncestorOfClass("Model"):FindFirstChildOfClass("Humanoid"), 0, 1)
  1208.                         local parts = game:GetService("GeometryService"):SubtractAsync(v, {slice}, {
  1209.                             CollisionFidelity = Enum.CollisionFidelity.Default,
  1210.                             RenderFidelity = Enum.RenderFidelity.Automatic,
  1211.                             FluidFidelity = Enum.FluidFidelity.Automatic,
  1212.                             SplitApart = true
  1213.                         })
  1214.                         for _, a in next, parts do
  1215.                             a.Parent = v.Parent
  1216.                             a.Anchored = false
  1217.                             a.CanCollide = true
  1218.                             a.UsePartColor = true
  1219.                         end
  1220.                         v:Destroy()
  1221.                     end
  1222.                 end
  1223.             end)
  1224.         end
  1225.  
  1226.         task.wait(1/20)
  1227.     end
  1228.  
  1229.     task.wait(.5)
  1230.     bodypos:Destroy()
  1231.     endanim()
  1232.  
  1233.     task.delay(.3, pcall, game.Destroy, cle)
  1234. end
  1235.  
  1236. local function findFloorPosition(startingPosition)
  1237.     local raycastParams = RaycastParams.new()
  1238.     raycastParams.FilterDescendantsInstances = {character}
  1239.  
  1240.     local raycastResult = workspace:Raycast(startingPosition + Vector3.new(0,0,0), Vector3.new(0, -100000000000000000, 0),raycastParams)
  1241.  
  1242.     if raycastResult then
  1243.         return raycastResult.Position
  1244.     else
  1245.         return nil
  1246.     end
  1247. end
  1248.  
  1249. local function divineflame()
  1250.     attacking = true
  1251.     local mus = Instance.new("Sound", root)
  1252.     mus.Volume = 0
  1253.     mus.SoundId = "rbxassetid://"..sounds.ThunderClap
  1254.     mus.Looped = true
  1255.     mus.TimePosition = 21
  1256.     mus:Play()
  1257.     game:GetService("TweenService"):Create(mus, TweenInfo.new(2), {
  1258.         Volume = 2
  1259.     }):Play()
  1260.  
  1261.     local f = Instance.new("Folder", character)
  1262.  
  1263.     humanoid.WalkSpeed = 0
  1264.  
  1265.     local animationplay = playAnimation("firearrow")
  1266.     sound(root, sounds.TestOfFirepower, 8, 1)
  1267.     mangatext("Lets have a contest, of firepower")
  1268.  
  1269.     local rootStartCF = root.CFrame
  1270.     local skillAssets = assets.FireArrow:Clone()
  1271.  
  1272.     local groundpart = Instance.new("Part", f)
  1273.     groundpart.CFrame = root.CFrame
  1274.     groundpart.Transparency = 1
  1275.     groundpart.CanCollide = false
  1276.     groundpart.Anchored = true
  1277.     local floorpos = findFloorPosition(groundpart.Position)
  1278.  
  1279.     local RHand = skillAssets.RHand:Clone()
  1280.     local LHand = skillAssets.LHand:Clone()
  1281.  
  1282.     local impactf = skillAssets.impactf:Clone()
  1283.     impactf.Parent = character
  1284.     local spar = VFXHelp.EmitAndRemove(impactf,root.CFrame,{maxFloorDist = 20})
  1285.     local charg = skillAssets.impactf:Clone()
  1286.     charg.Parent = f
  1287.     charg.CFrame = spar.CFrame
  1288.     VFXHelp.EnableVFX(charg)
  1289.  
  1290.     task.delay(.95, function()
  1291.         RHand.Parent = f
  1292.         LHand.Parent = f
  1293.         local Weld = Instance.new("Weld",RHand)
  1294.         Weld.Part0 = character["Right Arm"]
  1295.         Weld.Part1 = RHand
  1296.         Weld.C0 = CFrame.new(0,-1,0)
  1297.         local Weld = Instance.new("Weld",LHand)
  1298.         Weld.Part0 = character["Left Arm"]
  1299.         Weld.Part1 = LHand
  1300.         Weld.C0 = CFrame.new(0,-1,0)
  1301.         for i,v in pairs(LHand.At0:GetDescendants()) do
  1302.             if v:IsA("Beam") then
  1303.                 v.Attachment0 = LHand.At0
  1304.                 v.Attachment1 = RHand.At1
  1305.             end
  1306.         end
  1307.  
  1308.         CameraEffect.Flash({request = "LightFlash", tim = .02})
  1309.         VFXHelp.EmitFromModel(RHand.Main)
  1310.         local firesfx = Instance.new("Sound")
  1311.         firesfx.Volume = 8
  1312.         firesfx.SoundId = "rbxassetid://"..sounds.Clap
  1313.         firesfx.Parent = root
  1314.         firesfx:Play()
  1315.         repeat task.wait() until firesfx.IsLoaded
  1316.         game:GetService("Debris"):AddItem(firesfx,firesfx.TimeLength)
  1317.     end)
  1318.  
  1319.     task.delay(3.983, function()
  1320.         local chargedsfx = Instance.new("Sound")
  1321.         chargedsfx.Volume = 8
  1322.         chargedsfx.SoundId = "rbxassetid://"..sounds.ArrowCharged
  1323.         chargedsfx.Parent = root
  1324.         chargedsfx:Play()
  1325.         repeat task.wait() until chargedsfx.IsLoaded
  1326.         game:GetService("Debris"):AddItem(chargedsfx,chargedsfx.TimeLength)
  1327.     end)
  1328.  
  1329.     task.delay(4.817, function()
  1330.         local Wind = skillAssets.Wind:Clone()
  1331.         Wind.Parent = f
  1332.         Wind.Root.wind:Play()
  1333.  
  1334.         PartJoiner.AddMotor6D(root,Wind.Root,CFrame.new(0,0,0))
  1335.  
  1336.         rem:FireClient(owner, "ShakeCamera", "Bump")
  1337.         CameraEffect.Flash({request = "orange", tim = .05})
  1338.         CameraEffect.Flash({request = "LightFlash", tim = .02})
  1339.         CameraEffect.Blur({wai_till_normalFov = .15, size = 40, tim1 = .2, tim2 = .4})
  1340.  
  1341.         local Arrow = skillAssets.Arrow:Clone()
  1342.         Arrow.Parent = f
  1343.         Arrow.Sound:Play()
  1344.  
  1345.         local Weld = Instance.new("Weld",Arrow)
  1346.         Weld.Part0 = root
  1347.         Weld.Part1 = Arrow
  1348.         Weld.C0 = CFrame.new(1,0,-3)
  1349.         BaseEffects.GroundExpandV2(CFrame.new(floorpos) * CFrame.new(0,10,0),5,10,{expandTime = 0.1,destroyTime = 2})
  1350.         groundpart:Destroy()
  1351.  
  1352.         task.wait(1)
  1353.         sound(root, sounds.Open, 4, 1)
  1354.         mangatext("Open.", Color3.new(.8, .6, 0), -3)
  1355.     end)
  1356.  
  1357.     task.delay(8.333, function()
  1358.         VFXHelp.DisableVFX(charg)
  1359.  
  1360.         local shotsfx = Instance.new("Sound")
  1361.         shotsfx.Volume = 8
  1362.         shotsfx.SoundId = "rbxassetid://"..sounds.ArrowSwoosh
  1363.         shotsfx.Parent = root
  1364.         shotsfx:Play()
  1365.         task.spawn(function()
  1366.             repeat task.wait() until shotsfx.IsLoaded
  1367.             game:GetService("Debris"):AddItem(shotsfx,shotsfx.TimeLength)
  1368.         end)
  1369.  
  1370.         CameraEffect.Flash({request = "Dark 50%", tim = .05})
  1371.         CameraEffect.Flash({request = "LightFlash", tim = .02})
  1372.         CameraEffect.Blur({wai_till_normalFov = .15, size = 40, tim1 = .2, tim2 = .4})
  1373.         RHand:Destroy()
  1374.         LHand:Destroy()
  1375.         f.Wind:Destroy()
  1376.         f.Arrow:Destroy()
  1377.  
  1378.         BaseEffects.GroundExpandV2(CFrame.new(floorpos) * CFrame.new(0,10,0),10,20,{baseHeight = 3,baseLength = 7,expandTime = 0.1,destroyTime = 2})
  1379.  
  1380.         local slamef = VFXHelp.EmitAndRemove(skillAssets.upex,CFrame.new(floorpos))
  1381.  
  1382.         rem:FireClient(owner, "ShakeCamera", "Bump")
  1383.  
  1384.         local Range = 500
  1385.         local DefaultTravelTime = 1
  1386.         local TravelTime
  1387.         local Destination
  1388.         local Distance
  1389.         --
  1390.  
  1391.         local Projectile    = skillAssets.Arrow:Clone()
  1392.         Projectile.Parent   = f
  1393.         Projectile.CFrame   =  root.CFrame
  1394.  
  1395.         local Origin    = root.Position
  1396.         local Direction = (root.CFrame*CFrame.new(0,0,-Range)).Position - Origin
  1397.  
  1398.         local RayParam = RaycastParams.new()
  1399.         RayParam.FilterDescendantsInstances = {character}
  1400.         RayParam.FilterType = Enum.RaycastFilterType.Exclude
  1401.         local result = workspace:Raycast(Origin, Direction, RayParam)
  1402.  
  1403.         if result then  --if raycast hit
  1404.             Distance    = (root.Position - result.Position).Magnitude
  1405.             TravelTime  = Distance / (Range * (1/ DefaultTravelTime))
  1406.             Destination = result.Position
  1407.         elseif not result then -- if raycast didn't hit
  1408.             Distance    = Range
  1409.             TravelTime  = DefaultTravelTime
  1410.             Destination = root.CFrame * CFrame.new(0,0,-Range).Position
  1411.         end
  1412.  
  1413.         local Tween = game:GetService("TweenService"):Create(Projectile,TweenInfo.new(TravelTime, Enum.EasingStyle.Linear),
  1414.             {
  1415.                 ["Position"] = Destination
  1416.             }
  1417.         )
  1418.         Tween:Play()
  1419.  
  1420.         Tween.Completed:Connect(function(playbackstate)
  1421.             if playbackstate == Enum.PlaybackState.Completed then
  1422.                 local floorpos1 = findFloorPosition(Projectile.Position)
  1423.                 if(not floorpos1)then return end
  1424.  
  1425.                 local Ball = skillAssets.Ball:Clone()
  1426.                 Ball.Parent = f
  1427.                 Ball.VFX.CFrame = Projectile.CFrame * CFrame.new(0,10,0)
  1428.                 Ball.VFX.Rotation = Vector3.new(0,0,90)
  1429.                 local BWind = skillAssets.WindBig:Clone()
  1430.                 BWind.Parent = f
  1431.                 BWind.bottomstuff.CFrame = Projectile.CFrame * CFrame.new(0,-3,0)
  1432.                 BWind.bottomstuff.Rotation = Vector3.new(0,0,90)
  1433.  
  1434.                 local ex1 = Instance.new("Sound")
  1435.                 ex1.Volume = 2
  1436.                 ex1.SoundId = "rbxassetid://"..sounds.Explosion1
  1437.                 ex1.Parent = f
  1438.                 ex1:Play()
  1439.  
  1440.                 BaseEffects.GroundExpandV2(CFrame.new(floorpos1) * CFrame.new(0,10,0),20,20,{baseHeight = 8,baseLength = 20,expandTime = 0.3,destroyTime = 2})
  1441.  
  1442.                 CameraEffect.Flash({request = "Dark 50%", tim = .05})
  1443.                 CameraEffect.Flash({request = "LightFlash", tim = .02})
  1444.                 rem:FireClient(owner, "ShakeCamera", "Bump")
  1445.  
  1446.                 local hitcontent = workspace:GetPartBoundsInBox(Ball.VFX.CFrame, Vector3.new(65,65,65))
  1447.                 local hitlist = {}
  1448.                 for _,v in pairs(hitcontent) do
  1449.                     if v.Parent:FindFirstChild("Humanoid") and v.Parent ~= character then
  1450.                         if not hitlist[v.Parent.Humanoid] then
  1451.                             hitlist[v.Parent.Humanoid] = true
  1452.                             damage(v.Parent.Humanoid, 27, nil, true)
  1453.                         end
  1454.                     end
  1455.                 end
  1456.  
  1457.                 task.wait(2)
  1458.                 Ball:Destroy()
  1459.  
  1460.                 CameraEffect.Blur({wai_till_normalFov = .3, size = 40, tim1 = .2, tim2 = .4})
  1461.  
  1462.                 local Beam = skillAssets.Beam:Clone()
  1463.                 Beam.Position = floorpos1
  1464.                 Beam.Parent = f
  1465.                 game:GetService("TweenService"):Create(Beam.End, TweenInfo.new(0, Enum.EasingStyle.Linear, Enum.EasingDirection.In), {Position = Beam.Position + Vector3.new(0,300,0)}):Play()
  1466.  
  1467.                 local Cylinder = skillAssets.cylinder:Clone()
  1468.                 Cylinder.Parent = f
  1469.                 Cylinder.CFrame = Beam.CFrame * CFrame.new(150,0,0)
  1470.                 Cylinder.Rotation = Vector3.new(0,180,0)
  1471.                 game:GetService("TweenService"):Create(Cylinder, TweenInfo.new(.3, Enum.EasingStyle.Linear, Enum.EasingDirection.In), {Size = Vector3.new(60,300,60)}):Play()
  1472.                 VFXHelp.EnableVFX(Cylinder)
  1473.                 VFXHelp.EnableVFX(Beam)
  1474.  
  1475.                 BaseEffects.GroundExpandV2(CFrame.new(floorpos1) * CFrame.new(0,10,0),50,20,{baseHeight = 15,baseLength = 50,expandTime = 0.3,destroyTime = 6})
  1476.  
  1477.  
  1478.                 local ex2 = Instance.new("Sound")
  1479.                 ex2.Volume = 3
  1480.                 ex2.SoundId = "rbxassetid://"..sounds.Explosion2
  1481.                 ex2.Parent = f
  1482.                 ex2:Play()
  1483.  
  1484.                 task.spawn(function()
  1485.                     repeat task.wait() until ex2.IsLoaded
  1486.                     game:GetService("Debris"):AddItem(ex2,ex2.TimeLength)
  1487.                 end)
  1488.  
  1489.                 rem:FireClient(owner, "ShakeCamera", "Explosion")
  1490.                 Projectile:Destroy()
  1491.  
  1492.                 local hitcontent = workspace:GetPartBoundsInBox(Cylinder.CFrame, Vector3.new(70,300,70))
  1493.                 local hitlist = {}
  1494.                 for _,v in pairs(hitcontent) do
  1495.                     if v.Parent:FindFirstChild("Humanoid") and v.Parent ~= character then
  1496.                         if not hitlist[v.Parent.Humanoid] then
  1497.                             hitlist[v.Parent.Humanoid] = true
  1498.  
  1499.                             if(not domain)then
  1500.                                 task.spawn(function()
  1501.                                     for i = 1, 3 do
  1502.                                         damage(v.Parent.Humanoid, 27, nil, true)
  1503.                                         task.wait(.7)
  1504.                                     end
  1505.                                 end)
  1506.                             else
  1507.                                 v.Parent:BreakJoints()
  1508.                             end
  1509.                         end
  1510.                     end
  1511.                 end
  1512.  
  1513.                 task.wait(2)
  1514.                 for i,v in pairs(Beam:GetDescendants()) do
  1515.                     if v:IsA("Beam") then
  1516.                         game:GetService("TweenService"):Create(v,TweenInfo.new(1),{Width0 = 0,Width1 = 0}):Play()
  1517.                     end
  1518.                 end
  1519.                 for i,v in pairs(BWind:GetDescendants()) do
  1520.                     if v:IsA("Beam") then
  1521.                         game:GetService("TweenService"):Create(v,TweenInfo.new(1),{Width0 = 0,Width1 = 0}):Play()
  1522.                     elseif v:IsA("PointLight") then
  1523.                         game:GetService("TweenService"):Create(v,TweenInfo.new(1),{Brightness = 0}):Play()
  1524.                     end
  1525.                 end
  1526.                 game:GetService("TweenService"):Create(Cylinder,TweenInfo.new(1),{Transparency = 1}):Play()
  1527.  
  1528.                 VFXHelp.DisableVFX(Cylinder)
  1529.                 VFXHelp.DisableVFX(Beam)
  1530.                 VFXHelp.DisableVFX(BWind)
  1531.  
  1532.                 game:GetService("Debris"):AddItem(Beam,3)
  1533.                 game:GetService("Debris"):AddItem(Cylinder,3)
  1534.                 game:GetService("Debris"):AddItem(BWind,3)
  1535.  
  1536.                 task.delay(5, pcall, game.Destroy, f)
  1537.                 task.wait(5)
  1538.                 game:GetService("TweenService"):Create(mus, TweenInfo.new(2), {
  1539.                     Volume = 0
  1540.                 }):Play()
  1541.                 task.delay(2, pcall, game.Destroy, mus)
  1542.             end
  1543.         end)
  1544.     end)
  1545.  
  1546.     task.wait(animationplay.Length)
  1547.     humanoid.WalkSpeed = walkspeed
  1548.     attacking = false
  1549. end
  1550.  
  1551. local fearframes = {
  1552.     [1] = "http://www.roblox.com/asset/?id=100669883057211",
  1553.     [2] = "http://www.roblox.com/asset/?id=98146842737958",
  1554.     [3] = "http://www.roblox.com/asset/?id=134078983312898",
  1555.     [4] = "http://www.roblox.com/asset/?id=123216692524077",
  1556.     [5] = "http://www.roblox.com/asset/?id=125955042773370",
  1557.     [6] = "http://www.roblox.com/asset/?id=109181203041935",
  1558.     [7] = "http://www.roblox.com/asset/?id=90739573094350",
  1559.     [8] = "http://www.roblox.com/asset/?id=130643257792933",
  1560.     [9] = "http://www.roblox.com/asset/?id=77566364110013",
  1561.     [10] = "http://www.roblox.com/asset/?id=136027809275308",
  1562.     [11] = "http://www.roblox.com/asset/?id=71613591246780",
  1563.     [12] = "http://www.roblox.com/asset/?id=140545576313341",
  1564.     [13] = "http://www.roblox.com/asset/?id=81082742636518",
  1565.     [14] = "http://www.roblox.com/asset/?id=93357445320302",
  1566.     [15] = "http://www.roblox.com/asset/?id=137768891493696",
  1567.     [16] = "http://www.roblox.com/asset/?id=133251095642604"
  1568. }
  1569.  
  1570. local function malevolentshrine()
  1571.     attacking = true
  1572.     if(not domain)then
  1573.         domain = true
  1574.         humanoid.WalkSpeed = 0
  1575.         local f = Instance.new("Folder", character)
  1576.         f.Name = "domaineff"
  1577.  
  1578.         sound(root, 7817341182, 3, 1)
  1579.         local anim, endanim = playAnimation("domain", true)
  1580.         mangatext("Domain expansion.")
  1581.  
  1582.         local malevolentshrine = assets.MalevolentShrine:Clone()
  1583.  
  1584.         local range = malevolentshrine.Domain:Clone()
  1585.         range.Anchored = true
  1586.         range.Size = Vector3.zero
  1587.         range.CanCollide = false
  1588.         range.CanQuery = false
  1589.         range.Material = Enum.Material.ForceField
  1590.         range.CFrame = root.CFrame
  1591.         range.CastShadow = false
  1592.         range.Transparency = 0
  1593.         range.Reflectance = .2
  1594.         range:ClearAllChildren()
  1595.         range.Parent = character
  1596.  
  1597.         game:GetService("TweenService"):Create(range, TweenInfo.new(1, Enum.EasingStyle.Linear), {
  1598.             Size = Vector3.one*domainrange*2
  1599.         }):Play()
  1600.         task.wait(1)
  1601.  
  1602.         repeat
  1603.             task.wait()
  1604.             domainrange += 3
  1605.             range.Size = Vector3.one*domainrange*2
  1606.         until not keysdown["b"] or domainrange >= 1024
  1607.         pcall(game.Destroy, range)
  1608.        
  1609.         local p = Instance.new("Part", character)
  1610.         p.CFrame = root.CFrame
  1611.         p.Anchored = true
  1612.         p.CanCollide = false
  1613.         p.Transparency = 1
  1614.         sound(p, 7817336081, 3, 1)
  1615.         task.delay(.5, pcall, game.Destroy, p)
  1616.        
  1617.         task.delay(.5, function()
  1618.             local p = Instance.new("Part", character)
  1619.             p.CFrame = root.CFrame
  1620.             p.Anchored = true
  1621.             p.CanCollide = false
  1622.             p.Transparency = 1
  1623.             sound(p, 8181034930, 4, 1)
  1624.             task.delay(.5, pcall, game.Destroy, p)
  1625.         end)
  1626.  
  1627.         local aoe = workspace:GetPartBoundsInRadius(root.Position, domainrange)
  1628.         local done = {}
  1629.         for _, p in next, aoe do
  1630.             if(p:FindFirstAncestorOfClass("Model"))then
  1631.                 local plr = game:GetService("Players"):GetPlayerFromCharacter(p:FindFirstAncestorOfClass("Model"))
  1632.                 if(plr and not done[plr])then
  1633.                     done[plr] = true
  1634.                     task.spawn(pcall, function()
  1635.                         sound(workspace, 7817336081, 3, 1)
  1636.                         task.delay(.5, function()
  1637.                             sound(workspace, 8181034930, 4, 1)
  1638.                         end)
  1639.  
  1640.                         local s = Instance.new("ScreenGui", plr:FindFirstChildOfClass("PlayerGui"))
  1641.                         s.IgnoreGuiInset = true
  1642.                         s.ResetOnSpawn = false
  1643.                         local f = Instance.new("Frame", s)
  1644.                         f.Size = UDim2.fromScale(1,1)
  1645.                         f.BackgroundColor3 = Color3.new(0,0,0)
  1646.                         f.BackgroundTransparency = 1
  1647.                         game:GetService("TweenService"):Create(f, TweenInfo.new(.5), {
  1648.                             BackgroundTransparency = 0
  1649.                         }):Play()
  1650.                         task.wait(.5)
  1651.                         for i, v in next, fearframes do
  1652.                             local f = Instance.new("ImageLabel", s)
  1653.                             f.Size = UDim2.fromScale(1,1)
  1654.                             f.BackgroundColor3 = Color3.new(0,0,0)
  1655.                             f.BackgroundTransparency = 1
  1656.                             f.Image = v
  1657.                             f.Name = i
  1658.                             f.ZIndex = -1
  1659.                         end
  1660.                         task.wait(.5)
  1661.                         for i, v in next, fearframes do
  1662.                             if(i ~= 1)then
  1663.                                 s[tostring(i - 1)]:Destroy()
  1664.                             end
  1665.                             s[tostring(i)].ZIndex = 1
  1666.                             task.wait(1/10)
  1667.                         end
  1668.                         s[tostring(#fearframes)]:Destroy()
  1669.                         task.wait(1)
  1670.                         game:GetService("TweenService"):Create(f, TweenInfo.new(.5), {
  1671.                             BackgroundTransparency = 1
  1672.                         }):Play()
  1673.                         task.delay(.5, pcall, game.Destroy, s)
  1674.                     end)
  1675.                 end
  1676.             end
  1677.         end
  1678.  
  1679.         task.wait(1.5)
  1680.  
  1681.         humanoid.WalkSpeed = walkspeed
  1682.         endanim()
  1683.  
  1684.         local shrine = malevolentshrine.Shrine
  1685.         shrine:PivotTo(root.CFrame*CFrame.new(0,7,0))
  1686.         character:PivotTo(shrine:GetPivot()*CFrame.new(0,30,0))
  1687.         shrine.Parent = f
  1688.         for i, v in next, haori do
  1689.             v.Transparency = 1
  1690.         end
  1691.  
  1692.         task.delay(4, function()
  1693.             mangatext("Malevolent Shrine!", Color3.new(.8, 0, 0), nil, 5)
  1694.         end)
  1695.  
  1696.         local ball = malevolentshrine.Domain:Clone()
  1697.         ball.Size = Vector3.one*(domainrange*2)
  1698.         ball.Anchored = true
  1699.         ball.CanCollide = false
  1700.         ball.CastShadow = false
  1701.         ball.CFrame = shrine:GetPivot()
  1702.         ball.Parent = shrine
  1703.  
  1704.         local ball2 = malevolentshrine.Domain
  1705.         ball2.Size = Vector3.one*(domainrange*2)
  1706.         ball2.Material = Enum.Material.ForceField
  1707.         ball2.Transparency = .749
  1708.         ball2:ClearAllChildren()
  1709.         ball2.Anchored = true
  1710.         ball2.CanCollide = false
  1711.         ball2.CastShadow = true
  1712.         ball2.CFrame = shrine:GetPivot()
  1713.         ball2.Reflectance = 0
  1714.         ball2.Parent = shrine
  1715.  
  1716.         task.wait(4)
  1717.  
  1718.         local muspart = Instance.new("Part", character)
  1719.         muspart.Name = "domain"
  1720.         muspart.Anchored = true
  1721.         muspart.Size = ball.Size
  1722.         muspart.Shape = "Ball"
  1723.         muspart.CanCollide = false
  1724.         muspart.CanQuery = false
  1725.         muspart.CFrame = ball.CFrame
  1726.         muspart.Transparency = 1
  1727.  
  1728.         local music = Instance.new("Sound", muspart)
  1729.         music.Volume = 2
  1730.         music.RollOffMaxDistance = 100
  1731.         music.SoundId = "rbxassetid://"..sounds.MalevolentShrine
  1732.         music.Looped = true
  1733.         music:Play()
  1734.  
  1735.         local floor = malevolentshrine.Ground
  1736.         floor.CFrame = shrine:GetPivot()*CFrame.new(0, -10, 0)
  1737.         floor.Size = Vector3.new(domainrange*2, 0, domainrange*2)
  1738.         floor.Parent = shrine
  1739.         local slashes = malevolentshrine.Slashes
  1740.         slashes.Size = Vector3.new((domainrange*2)-20, domainrange/2, (domainrange*2)-20)
  1741.         slashes.CFrame = shrine:GetPivot()
  1742.         slashes.Parent = shrine
  1743.  
  1744.         task.spawn(function()
  1745.             repeat
  1746.                 task.wait(.2)
  1747.  
  1748.                 local slice = Instance.new("Part")
  1749.                 slice.Size = Vector3.new(domainrange, .5, domainrange)
  1750.                 slice.CFrame = shrine:GetPivot() * CFrame.new(math.random(-domainrange, domainrange)/2,0,math.random(-domainrange, domainrange)/2) * CFrame.Angles(math.random(0, 360), math.random(0, 360),math.random(0, 360))
  1751.  
  1752.  
  1753.                 local sliceaoe = workspace:GetPartBoundsInBox(slice.CFrame, slice.Size)
  1754.                 for i, v in next, sliceaoe do
  1755.                     task.spawn(pcall, function()
  1756.                         if(v:IsA("BasePart") and v.Name:lower() ~= "baseplate" and v.Name:lower() ~= "base" and not v:IsDescendantOf(character) and not (v:FindFirstAncestorOfClass("Model") and v:FindFirstAncestorOfClass("Model"):FindFirstChildOfClass("Humanoid") and v:FindFirstAncestorOfClass("Model"):FindFirstChildOfClass("Humanoid").Health > 1))then
  1757.                             local parts = game:GetService("GeometryService"):SubtractAsync(v, {slice}, {
  1758.                                 CollisionFidelity = Enum.CollisionFidelity.Default,
  1759.                                 RenderFidelity = Enum.RenderFidelity.Automatic,
  1760.                                 FluidFidelity = Enum.FluidFidelity.Automatic,
  1761.                                 SplitApart = true
  1762.                             })
  1763.                             for _, a in next, parts do
  1764.                                 a.Parent = v.Parent
  1765.                                 a.Anchored = false
  1766.                                 a.CanCollide = true
  1767.                                 a.UsePartColor = true
  1768.                             end
  1769.                             v:Destroy()
  1770.                         end
  1771.                     end)
  1772.                 end
  1773.  
  1774.                 local damaged = {}
  1775.                 local aoe = workspace:GetPartBoundsInRadius(shrine:GetPivot().Position, domainrange)
  1776.                 for i, v in next, aoe do
  1777.                     pcall(function()
  1778.                         if(v:FindFirstAncestorOfClass("Model") and v:FindFirstAncestorOfClass("Model") ~= character and v:FindFirstAncestorOfClass("Model"):FindFirstChildOfClass("Humanoid") and not damaged[v:FindFirstAncestorOfClass("Model"):FindFirstChildOfClass("Humanoid")])then
  1779.                             damage(v:FindFirstAncestorOfClass("Model"):FindFirstChildOfClass("Humanoid"), 0, domainrange/8)
  1780.                             local cl = assets.Cleave:Clone()
  1781.                             cl.CFrame = v:FindFirstAncestorOfClass("Model"):FindFirstChildWhichIsA("BasePart").CFrame
  1782.                             cl.Parent = v:FindFirstAncestorOfClass("Model")
  1783.                             cl.Size = Vector3.one*4
  1784.                             for i, v in next, cl:GetChildren() do
  1785.                                 v.Enabled = false
  1786.                                 v:Emit(5)
  1787.                             end
  1788.                             sound(cl, 5989940988, math.random(90, 110)/100, math.random(90, 110)/100)
  1789.                             sound(cl, 6282561520, math.random(90, 110)/100, math.random(90, 110)/100)
  1790.                             task.delay(.5, pcall, game.Destroy, cl)
  1791.  
  1792.                             damaged[v:FindFirstAncestorOfClass("Model"):FindFirstChildOfClass("Humanoid")] = true
  1793.                         end
  1794.                     end)
  1795.                 end
  1796.             until not domain
  1797.         end)
  1798.         attacking = false
  1799.     else
  1800.         attacking = false
  1801.         domain = false
  1802.  
  1803.         pcall(function()
  1804.             local p = Instance.new("Part", character)
  1805.             p.CFrame = character.domaineff.Shrine:GetPivot()
  1806.             p.Anchored = true
  1807.             p.CanCollide = false
  1808.             p.Transparency = 1
  1809.             sound(p, sounds.ShrineEnd, 10, 1)
  1810.             task.wait()
  1811.             p:Destroy()
  1812.            
  1813.             local aoe = workspace:GetPartBoundsInRadius(character.domaineff.Shrine:GetPivot().Position, domainrange)
  1814.             local done = {}
  1815.             for _, p in next, aoe do
  1816.                 if(p:FindFirstAncestorOfClass("Model"))then
  1817.                     local plr = game:GetService("Players"):GetPlayerFromCharacter(p:FindFirstAncestorOfClass("Model"))
  1818.                     if(plr and not done[plr])then
  1819.                         done[plr] = true
  1820.                         task.spawn(pcall, function()
  1821.                             sound(workspace, sounds.ShrineEnd, 2, 1)
  1822.                             local s = Instance.new("ScreenGui", plr:FindFirstChildOfClass("PlayerGui"))
  1823.                             s.IgnoreGuiInset = true
  1824.                             s.ResetOnSpawn = false
  1825.                             local f = Instance.new("Frame", s)
  1826.                             f.Size = UDim2.fromScale(2, 2)
  1827.                             f.BackgroundColor3 = Color3.new(0,0,0)
  1828.                             f.BackgroundTransparency = 1
  1829.                             game:GetService("TweenService"):Create(f, TweenInfo.new(.5), {
  1830.                                 BackgroundTransparency = 0
  1831.                             }):Play()
  1832.                             task.wait(1)
  1833.                             game:GetService("TweenService"):Create(f, TweenInfo.new(.5), {
  1834.                                 BackgroundTransparency = 1
  1835.                             }):Play()
  1836.                             task.delay(.5, pcall, game.Destroy, s)
  1837.                         end)
  1838.                     end
  1839.                 end
  1840.             end
  1841.             local origrange = domainrange
  1842.             domainrange = basedomainrange
  1843.        
  1844.             local pos = character.domaineff.Shrine:GetPivot().Position
  1845.  
  1846.             task.wait(.5)
  1847.             character.domaineff:Destroy()
  1848.            
  1849.             for i = 1, math.random(domainrange/10, domainrange/2) do
  1850.                 local a = Instance.new("WedgePart", character)
  1851.                 a.Position = pos+Vector3.new(math.random(-origrange,origrange),math.random(-origrange,origrange),math.random(-origrange,origrange))
  1852.                 a.Orientation = Vector3.new(math.random(-360,360),math.random(-360,360),math.random(-360,360))
  1853.                 a.Anchored = false
  1854.                 a.CanCollide = false
  1855.                 a.Material = Enum.Material.Glass
  1856.                 a.Size = Vector3.new(math.random(1, origrange/30),math.random(1, origrange/3),math.random(1,origrange/3))
  1857.                 a.Color = Color3.new(1,1,1)
  1858.                 a.Transparency = 0.6
  1859.                 a.Color = Color3.new(1,0,0)
  1860.                 a.AssemblyAngularVelocity = a.Orientation/8
  1861.                 assets.MalevolentShrine.Domain.Highlight:Clone().Parent = a
  1862.            
  1863.                 game:GetService('Debris'):AddItem(a,5)
  1864.             end
  1865.         end)
  1866.  
  1867.         for i, v in next, haori do
  1868.             v.Transparency = 0
  1869.         end
  1870.  
  1871.         game:GetService("TweenService"):Create(character.domain.Sound, TweenInfo.new(1), {
  1872.             Volume = 0
  1873.         }):Play()
  1874.         task.delay(1, pcall, game.Destroy, character.domain)
  1875.     end
  1876. end
  1877.  
  1878. local function growback(affectedlimb)
  1879.     affectedlimb.Transparency = 1
  1880.     for i, v in next, affectedlimb:GetDescendants() do
  1881.         if(v:IsA("BasePart"))then
  1882.             v.Transparency = 1
  1883.         end
  1884.     end
  1885.  
  1886.     pcall(function()
  1887.         character.Torso[affectedlimb.Name.." sizzle"].Sound:Stop()
  1888.     end)
  1889.     pcall(function()
  1890.         character.Torso[affectedlimb.Name.." sizzle"].Steam.Enabled = false
  1891.     end)
  1892.     pcall(function()
  1893.         character.Torso[affectedlimb.Name.." sizzle"].Blood.Enabled = false
  1894.     end)
  1895.  
  1896.     local muscle = Instance.new("Part", affectedlimb)
  1897.     muscle.Size = Vector3.zero
  1898.     muscle.Color = grayscaleColor(Color3.new(.5, 0, 0))
  1899.     muscle.CanCollide = false
  1900.     muscle.Material = Enum.Material.Slate
  1901.  
  1902.     sound(muscle, 6148096445, 1, math.random(90, 110)/100)
  1903.  
  1904.     local w = Instance.new("Weld", muscle)
  1905.     w.C0 = CFrame.new(0, -2, 0)
  1906.     w.Part0 = muscle
  1907.     w.Part1 = affectedlimb
  1908.  
  1909.     game:GetService("TweenService"):Create(muscle, TweenInfo.new(.3, Enum.EasingStyle.Quint), {
  1910.         Size = affectedlimb.Size - Vector3.one*.2
  1911.     }):Play()
  1912.  
  1913.     game:GetService("TweenService"):Create(w, TweenInfo.new(.3, Enum.EasingStyle.Quint), {
  1914.         C0 = CFrame.new(0, -.1, 0)
  1915.     }):Play()
  1916.  
  1917.     task.wait(.3)
  1918.  
  1919.     local skin = Instance.new("Part", affectedlimb)
  1920.     skin.Size = Vector3.zero
  1921.     skin.CanCollide = false
  1922.     skin.Color = affectedlimb.Color
  1923.  
  1924.     local w = Instance.new("Weld", skin)
  1925.     w.C0 = CFrame.new(0, -2, 0)
  1926.     w.Part0 = skin
  1927.     w.Part1 = affectedlimb
  1928.  
  1929.     game:GetService("TweenService"):Create(skin, TweenInfo.new(.3, Enum.EasingStyle.Quint), {
  1930.         Size = affectedlimb.Size
  1931.     }):Play()
  1932.  
  1933.     game:GetService("TweenService"):Create(w, TweenInfo.new(.3, Enum.EasingStyle.Quint), {
  1934.         C0 = CFrame.new(0, 0, 0)
  1935.     }):Play()
  1936.  
  1937.     task.wait(.3)
  1938.     muscle:Destroy()
  1939.     skin:Destroy()
  1940.     affectedlimb.Transparency = 0
  1941.     for i, v in next, affectedlimb:GetDescendants() do
  1942.         if(v:IsA("BasePart"))then
  1943.             v.Transparency = 0
  1944.         end
  1945.     end
  1946. end
  1947.  
  1948. local oldhp = 500
  1949. local limbbackups = {}
  1950. local limbwelds = {}
  1951. local shouldbethere = {
  1952.     "Right Arm", "Left Arm", "Right Leg", "Left Leg"
  1953. }
  1954. local limbbackups = {
  1955.     ["Right Arm"] = assets.Character["Right Arm"]:Clone(),
  1956.     ["Left Arm"] = assets.Character["Left Arm"]:Clone(),
  1957.     ["Right Leg"] = assets.Character["Right Leg"]:Clone(),
  1958.     ["Left Leg"] = assets.Character["Left Leg"]:Clone(),
  1959. }
  1960. local limbwelds = {
  1961.     ["Right Arm"] = assets.Character["Torso"]["Right Shoulder"]:Clone(),
  1962.     ["Left Arm"] = assets.Character["Torso"]["Left Shoulder"]:Clone(),
  1963.     ["Right Leg"] = assets.Character["Torso"]["Right Hip"]:Clone(),
  1964.     ["Left Leg"] = assets.Character["Torso"]["Left Hip"]:Clone(),
  1965. }
  1966.  
  1967. local function rct(limb)
  1968.     local lostlimb = nil
  1969.     for i, v in next, shouldbethere do
  1970.         if(not character:FindFirstChild(v))then
  1971.             lostlimb = v
  1972.             break
  1973.         end
  1974.     end
  1975.  
  1976.     if(not lostlimb)then
  1977.         for i, v in next, character:GetDescendants() do
  1978.             if(v.Name == "RCT")then
  1979.                 v.Enabled = true
  1980.             end
  1981.         end
  1982.         repeat
  1983.             task.wait()
  1984.             oldhp += 1
  1985.         until not keysdown["e"]
  1986.         for i, v in next, character:GetDescendants() do
  1987.             if(v.Name == "RCT")then
  1988.                 v.Enabled = false
  1989.             end
  1990.         end
  1991.         return
  1992.     end
  1993.  
  1994.     attacking = true
  1995.  
  1996.     local lastc0 = {}
  1997.     for i, v in next, character:GetDescendants() do
  1998.         if(v:IsA("Motor6D"))then
  1999.             lastc0[v] = v.C0
  2000.         end
  2001.     end
  2002.  
  2003.     for i, v in next, animations do
  2004.         pcall(function()
  2005.             v:CancelInstant()
  2006.             v:Stop()
  2007.         end)
  2008.     end
  2009.  
  2010.     local cloned = limbbackups[lostlimb]:Clone()
  2011.     cloned.Parent = character
  2012.     local weld = limbwelds[lostlimb]:Clone()
  2013.     pcall(game.Destroy, character["Torso"]:FindFirstChild(weld.Name))
  2014.     weld.Part0 = character["Torso"]
  2015.     weld.Part1 = cloned
  2016.     weld.Parent = character["Torso"]
  2017.  
  2018.     table.clear(haori)
  2019.     for i, v in next, character:GetDescendants() do
  2020.         if(v:IsA("BasePart") and v.Name == "Haori")then
  2021.             table.insert(haori, v)
  2022.         end
  2023.     end
  2024.  
  2025.     table.clear(playingAnimations)
  2026.  
  2027.     local animgroup = animPlayer.CreateModuleGroup()
  2028.     table.clear(animations)
  2029.     for i, v in next, script.Animations:GetChildren() do
  2030.         if(v.Name:find("rct "))then
  2031.             animations[v.Name] = animPlayer.new(character, v)
  2032.             continue
  2033.         end
  2034.         animations[v.Name] = animPlayer.new(character, v, animgroup)
  2035.     end
  2036.  
  2037.     for i, v in next, lastc0 do
  2038.         pcall(function()
  2039.             i.C0 = v
  2040.         end)
  2041.     end
  2042.  
  2043.     if(animations["rct "..lostlimb])then
  2044.         local anim = animations["rct "..lostlimb]
  2045.         anim:Play()
  2046.         task.delay(.8, function()
  2047.             anim:Cancel()
  2048.         end)
  2049.     end
  2050.  
  2051.     growback(cloned)
  2052.  
  2053.     task.wait(.2)
  2054.     attacking = false
  2055. end
  2056.  
  2057. local function worldcuttingslash()
  2058.     attacking = true
  2059.     humanoid.WalkSpeed = 0
  2060.     playAnimation("worldcuttingslash")
  2061.     sound(root, sounds.WCSStartup, 3, 1)
  2062.  
  2063.     for i, v in next, aura.Mark:GetChildren() do
  2064.         v.Enabled = true
  2065.     end
  2066.  
  2067.     local h = Instance.new("Highlight", character)
  2068.     h.FillColor = Color3.new(1,1,1)
  2069.     h.OutlineColor = Color3.new(1,1,1)
  2070.     h.FillTransparency = 1
  2071.     h.OutlineTransparency = 1
  2072.  
  2073.     task.wait(.3)
  2074.     mangatext("Scale of the dragon.", nil, nil, .6)
  2075.     mark(marks.scale)
  2076.     game:GetService("TweenService"):Create(h, TweenInfo.new(.25,Enum.EasingStyle.Quint, Enum.EasingDirection.In, 0, true), {
  2077.         FillTransparency = .5,
  2078.         OutlineTransparency = 0
  2079.     }):Play()
  2080.  
  2081.     task.wait(.5)
  2082.     mark(marks.recoil)
  2083.     mangatext("Recoil.", nil, -3, .6, 0)
  2084.     game:GetService("TweenService"):Create(h, TweenInfo.new(.25,Enum.EasingStyle.Quint, Enum.EasingDirection.In, 0, true), {
  2085.         FillTransparency = .5,
  2086.         OutlineTransparency = 0
  2087.     }):Play()
  2088.  
  2089.     task.wait(.5)
  2090.     mark(marks.twin)
  2091.     for i, v in next, aura.Mark:GetChildren() do
  2092.         v.Enabled = false
  2093.     end
  2094.  
  2095.     mangatext("Twin meteors.", nil, nil, .6, -2)
  2096.     game:GetService("TweenService"):Create(h, TweenInfo.new(.25,Enum.EasingStyle.Quint, Enum.EasingDirection.In, 0, true), {
  2097.         FillTransparency = .5,
  2098.         OutlineTransparency = 0
  2099.     }):Play()
  2100.  
  2101.     task.wait(.8)
  2102.     mangatext("Dismantle.", nil, -3)
  2103.     game:GetService("TweenService"):Create(h, TweenInfo.new(.6,Enum.EasingStyle.Quint, Enum.EasingDirection.In, 0, true), {
  2104.         FillTransparency = .5,
  2105.         OutlineTransparency = 0
  2106.     }):Play()
  2107.     task.delay(.6, pcall, game.Destroy, h)
  2108.  
  2109.     task.wait(.6)
  2110.     sound(root, sounds.WCS, 3, 1)
  2111.     humanoid.WalkSpeed = walkspeed
  2112.     attacking = false
  2113.  
  2114.     local size = 1024
  2115.     local splitter = Instance.new("Part")
  2116.     splitter.Size = Vector3.new(size, .5, size)
  2117.     splitter.CFrame = root.CFrame*CFrame.new(0,0,-size/2)*CFrame.Angles(0,0,math.rad(math.random(-45, 45)))
  2118.     splitter.Anchored = true
  2119.     splitter.CanCollide = false
  2120.  
  2121.     local splitter2 = Instance.new("Part")
  2122.     splitter2.Size = Vector3.new(size, .5, size)
  2123.     splitter2.CFrame = root.CFrame*CFrame.new(0,0,-size/2)*CFrame.Angles(0,0,math.rad(math.random(-45, 45)))
  2124.     splitter2.Anchored = true
  2125.     splitter2.CanCollide = false
  2126.  
  2127.     local aoe = MagnitudeAoe(splitter.CFrame, splitter.Size)
  2128.     local aoe2 = MagnitudeAoe(splitter2.CFrame, splitter2.Size)
  2129.  
  2130.     local aoe3 = workspace:GetPartBoundsInBox(splitter.CFrame, splitter.Size)
  2131.     local aoe4 = workspace:GetPartBoundsInBox(splitter2.CFrame, splitter2.Size)
  2132.  
  2133.     for i, v in next, aoe2 do
  2134.         if(not table.find(aoe, v))then
  2135.             table.insert(aoe, v)
  2136.         end
  2137.     end
  2138.  
  2139.     for i, v in next, aoe4 do
  2140.         if(not table.find(aoe3, v))then
  2141.             table.insert(aoe3, v)
  2142.         end
  2143.     end
  2144.  
  2145.     for i, v in next, aoe3 do
  2146.         if(not table.find(aoe, v))then
  2147.             table.insert(aoe, v)
  2148.         end
  2149.     end
  2150.  
  2151.     local eff = splitter:Clone()
  2152.     local h = Instance.new("Highlight", eff)
  2153.     h.OutlineTransparency = 1
  2154.     h.FillTransparency = 0
  2155.     h.FillColor = Color3.new(1,1,1)
  2156.     eff.Material = Enum.Material.Glass
  2157.     eff.Size = Vector3.zero
  2158.     eff.CFrame = CFrame.new(root.CFrame.Position)*splitter.CFrame.Rotation
  2159.     eff.Parent = workspace
  2160.     eff.Transparency = 5
  2161.     eff.Reflectance = 1
  2162.     game:GetService("TweenService"):Create(eff, TweenInfo.new(.5, Enum.EasingStyle.Quint), {
  2163.         CFrame = splitter.CFrame,
  2164.         Size = splitter.Size+Vector3.new(0,.5,0)
  2165.     }):Play()
  2166.     game:GetService("TweenService"):Create(eff, TweenInfo.new(2, Enum.EasingStyle.Quint), {
  2167.         Transparency = 1
  2168.     }):Play()
  2169.     game:GetService("TweenService"):Create(h, TweenInfo.new(.5, Enum.EasingStyle.Quint), {
  2170.         FillTransparency = 1
  2171.     }):Play()
  2172.     task.delay(1.2, pcall, game.Destroy, eff)
  2173.  
  2174.     local eff = splitter2:Clone()
  2175.     local h = Instance.new("Highlight", eff)
  2176.     h.OutlineTransparency = 1
  2177.     h.FillTransparency = 0
  2178.     h.FillColor = Color3.new(1,1,1)
  2179.     eff.Material = Enum.Material.Glass
  2180.     eff.Size = Vector3.zero
  2181.     eff.CFrame = CFrame.new(root.CFrame.Position)*splitter2.CFrame.Rotation
  2182.     eff.Parent = workspace
  2183.     eff.Transparency = 5
  2184.     eff.Reflectance = 1
  2185.     game:GetService("TweenService"):Create(eff, TweenInfo.new(.8, Enum.EasingStyle.Quint), {
  2186.         CFrame = splitter2.CFrame,
  2187.         Size = splitter2.Size+Vector3.new(0,.5,0)
  2188.     }):Play()
  2189.     game:GetService("TweenService"):Create(eff, TweenInfo.new(2, Enum.EasingStyle.Quint), {
  2190.         Transparency = 1
  2191.     }):Play()
  2192.     game:GetService("TweenService"):Create(h, TweenInfo.new(.8, Enum.EasingStyle.Quint), {
  2193.         FillTransparency = 1
  2194.     }):Play()
  2195.     task.delay(1.2, pcall, game.Destroy, eff)
  2196.  
  2197.     for i, v in next, aoe do
  2198.         if(v.Name:lower() ~= "baseplate" and v.Name:lower() ~= "base" and not v:IsDescendantOf(character))then
  2199.             task.spawn(pcall, function()
  2200.                 local parts = game:GetService("GeometryService"):SubtractAsync(v, {splitter, splitter2}, {
  2201.                     CollisionFidelity = Enum.CollisionFidelity.Default,
  2202.                     RenderFidelity = Enum.RenderFidelity.Automatic,
  2203.                     FluidFidelity = Enum.FluidFidelity.Automatic,
  2204.                     SplitApart = true
  2205.                 })
  2206.                 for _, a in next, parts do
  2207.                     a.Parent = v.Parent
  2208.                     a.Anchored = false
  2209.                     a.CanCollide = true
  2210.                     a.UsePartColor = true
  2211.                 end
  2212.                 v:Destroy()
  2213.             end)
  2214.         end
  2215.     end
  2216.  
  2217.     task.wait(1)
  2218.     splitter:Destroy()
  2219. end
  2220.  
  2221. local function flashstep()
  2222.     attacking = true
  2223.     sound(root, 1753619491, 2, math.random(80, 120)/100)
  2224.     local function fade(b)
  2225.         b.Anchored = true
  2226.         b.CanCollide = false
  2227.         b.Transparency = 0
  2228.         b.Material = Enum.Material.Neon
  2229.         b.Color = Color3.new(1,1,1)
  2230.         game:GetService("TweenService"):Create(b, TweenInfo.new(.5), {
  2231.             Transparency = 1,
  2232.             Color = Color3.new()
  2233.         }):Play()
  2234.         task.delay(.5, pcall, game.Destroy, b)
  2235.     end
  2236.    
  2237.     for i, v in next, {"Left Arm", "Head", "Right Arm", "Right Leg", "Left Leg", "Torso"} do
  2238.         if(character:FindFirstChild(v))then
  2239.             local v = character:FindFirstChild(v):Clone()
  2240.             v.Name = ""
  2241.             for _, j in next, v:GetDescendants() do
  2242.                 if(j:IsA("JointInstance"))then
  2243.                     pcall(game.Destroy, j)
  2244.                 elseif(j:IsA("FaceInstance"))then
  2245.                     pcall(game.Destroy, j)
  2246.                 elseif(j:IsA("BasePart"))then
  2247.                     j.Name = ""
  2248.                     fade(j)
  2249.                 end
  2250.             end
  2251.             v.Parent = workspace
  2252.             fade(v)
  2253.         end
  2254.     end
  2255.    
  2256.     local flash = assets.Flashstep:Clone()
  2257.     flash.CFrame = root.CFrame
  2258.     flash.Parent = character
  2259.     task.spawn(function()
  2260.         for i = 1, 5 do
  2261.             flash.FlashStep:Emit(30)
  2262.             task.wait(.06)
  2263.         end
  2264.     end)
  2265.     task.delay(.3, pcall, game.Destroy, flash)
  2266.    
  2267.     local transparencies = {}
  2268.     for _, limb in next, character:GetChildren() do
  2269.         if(limb:IsA("BasePart"))then
  2270.             transparencies[limb] = limb.Transparency
  2271.             limb.Transparency = 1
  2272.             for _, child in next, limb:GetDescendants() do
  2273.                 if(child:IsA("BasePart"))then
  2274.                     transparencies[child] = child.Transparency
  2275.                     child.Transparency = 1
  2276.                 end
  2277.             end
  2278.         end
  2279.     end
  2280.    
  2281.     root.Position = root.Position + (humanoid.MoveDirection*50)
  2282.    
  2283.     task.wait(.25)
  2284.     for limb, transparency in next, transparencies do
  2285.         limb.Transparency = transparency
  2286.     end
  2287.    
  2288.     local flash = assets.Flashstep:Clone()
  2289.     flash.CFrame = root.CFrame
  2290.     flash.Parent = character
  2291.     task.spawn(function()
  2292.         for i = 1, 5 do
  2293.             flash.FlashStep:Emit(30)
  2294.             task.wait(.06)
  2295.         end
  2296.     end)
  2297.     task.delay(.3, pcall, game.Destroy, flash)
  2298.    
  2299.     for i, v in next, {"Left Arm", "Head", "Right Arm", "Right Leg", "Left Leg", "Torso"} do
  2300.         if(character:FindFirstChild(v))then
  2301.             local v = character:FindFirstChild(v):Clone()
  2302.             v.Name = ""
  2303.             v.Anchored = true
  2304.             v.CanCollide = false
  2305.             for _, j in next, v:GetDescendants() do
  2306.                 if(j:IsA("JointInstance"))then
  2307.                     pcall(game.Destroy, j)
  2308.                 elseif(j:IsA("FaceInstance"))then
  2309.                     pcall(game.Destroy, j)
  2310.                 elseif(j:IsA("BasePart"))then
  2311.                     j.Name = ""
  2312.                     fade(j)
  2313.                 end
  2314.             end
  2315.             v.Parent = workspace
  2316.             fade(v)
  2317.         end
  2318.     end
  2319.     attacking = false
  2320. end
  2321.  
  2322. local mahoragaevent = nil
  2323. local halted = false
  2324. local mahoraga = nil
  2325.  
  2326. local mahoraganpc = game:GetService("HttpService"):GetAsync("https://raw.githubusercontent.com/TheFakeFew/Scripts/refs/heads/main/MahoragaNPC.lua")
  2327. local function MAHORAGAHELPP()
  2328.     if(keysdown["r"])then
  2329.         if(mahoragaevent and mahoragaevent:IsDescendantOf(workspace))then
  2330.             halted = not halted
  2331.             mahoragaevent:Fire({Action = halted and "Halt" or "Resume"})
  2332.             mangatext(halted and "Halt." or "Resume.")
  2333.             if(halted)then
  2334.                 playAnimation("halt")
  2335.             else
  2336.                 playAnimation("resume")
  2337.             end
  2338.             return
  2339.         end
  2340.     end
  2341.    
  2342.     if(mahoraga and mahoraga:IsDescendantOf(workspace))then
  2343.         if(mahoraga:FindFirstChildWhichIsA("BasePart", true))then
  2344.             local pos = mahoraga:FindFirstChildWhichIsA("BasePart", true).Position
  2345.             local unsummon = assets.Mahoraga.Effects.Unsummon.Smoke:Clone()
  2346.             unsummon.Parent = workspace
  2347.             unsummon.Position = pos
  2348.             for i, v in next, unsummon:GetDescendants() do
  2349.                 if(v:IsA("ParticleEmitter"))then
  2350.                     v:Emit(10)
  2351.                 end
  2352.             end
  2353.             task.delay(1, pcall, game.Destroy, unsummon)
  2354.         end
  2355.         mahoraga:Destroy()
  2356.         mahoragaevent = nil
  2357.         halted = false
  2358.         return
  2359.     end
  2360.    
  2361.     mahoragaevent = nil
  2362.     halted = false
  2363.    
  2364.     attacking = true
  2365.     local anim = playAnimation("mahoraga")
  2366.     humanoid.AutoRotate = false
  2367.     humanoid.WalkSpeed = 0
  2368.    
  2369.     local rnd = math.random(1, 10)
  2370.    
  2371.     if(math.random(1, 5) ~= 1)then
  2372.         local s = Instance.new("Sound", root)
  2373.         s.SoundId = "rbxassetid://"..sounds.Mahoraga
  2374.         s.PlaybackRegionsEnabled = true
  2375.         s.Volume = 3
  2376.         s.RollOffMaxDistance = 300
  2377.         s.PlaybackRegionsEnabled = true
  2378.         s.PlaybackRegion = NumberRange.new(4.833, 19.7)
  2379.         s.Name = "Summon"
  2380.         s:Play()
  2381.     else
  2382.         local s = Instance.new("Sound", root)
  2383.         s.SoundId = "rbxassetid://"..sounds.HELPP
  2384.         s.PlaybackRegionsEnabled = true
  2385.         s.Volume = 4
  2386.         s.RollOffMaxDistance = 300
  2387.         s.PlaybackRegionsEnabled = true
  2388.         s.PlaybackRegion = NumberRange.new(0, 13.702)
  2389.         s.Name = "Summon"
  2390.         task.delay(.8, function()
  2391.             s:Play()
  2392.         end)
  2393.     end
  2394.    
  2395.     local high = Instance.new("Highlight")
  2396.     high.FillColor = Color3.new(1,1,1)
  2397.     high.FillTransparency = .99
  2398.     high.OutlineTransparency = .99
  2399.     high.OutlineColor = Color3.new(1,1,1)
  2400.     high.DepthMode = Enum.HighlightDepthMode.Occluded
  2401.  
  2402.     local aoe = workspace:GetPartBoundsInRadius(root.Position, 50)
  2403.     local done = {}
  2404.     for i, v in next, aoe do
  2405.         if(v:FindFirstAncestorOfClass("Model") and v:FindFirstAncestorOfClass("Model"):FindFirstChildOfClass("Humanoid") and not done[v:FindFirstAncestorOfClass("Model")])then
  2406.             local highlight = high:Clone()
  2407.             highlight.Adornee = v:FindFirstAncestorOfClass("Model")
  2408.             highlight.Parent = v:FindFirstAncestorOfClass("Model")
  2409.             done[v:FindFirstAncestorOfClass("Model")] = true
  2410.  
  2411.             task.delay(anim.Length+2, pcall, game.Destroy, highlight)
  2412.         end
  2413.     end
  2414.    
  2415.     local mahomodel = Instance.new("Model", workspace)
  2416.     Instance.new("Humanoid", mahomodel)
  2417.    
  2418.     local highlight = high:Clone()
  2419.     highlight.Adornee = mahomodel
  2420.     highlight.Parent = mahomodel
  2421.    
  2422.    
  2423.     local maho = script:FindFirstChild("MahoragaNPC") and script:FindFirstChild("MahoragaNPC"):Clone() or NS(mahoraganpc, mahomodel)
  2424.     maho.Parent = mahomodel
  2425.     maho.Disabled = false
  2426.     maho:SetAttribute("owner", owner.Name)
  2427.     mahoraga = maho
  2428.    
  2429.     local mahoassets = assets.Mahoraga:Clone()
  2430.     mahoassets.Name = "MahoragaAssets"
  2431.     mahoassets.Parent = game:GetService("ServerStorage")
  2432.    
  2433.     task.spawn(function()
  2434.         mahoragaevent = maho:WaitForChild("Mahoraga"):WaitForChild("MahoragaEvent", 60)
  2435.     end)
  2436.    
  2437.     task.spawn(function()
  2438.         repeat
  2439.             task.wait(.5)
  2440.             for i, v in next, maho:GetDescendants() do
  2441.                 if(v:IsA("BasePart") and not v.Anchored)then
  2442.                     pcall(function()
  2443.                         v:SetNetworkOwner(nil)
  2444.                     end)
  2445.                 end
  2446.             end
  2447.         until not maho or not maho:IsDescendantOf(workspace)
  2448.     end)
  2449.    
  2450.     local domain = assets.MalevolentShrine.Domain:Clone()
  2451.     domain.Highlight.FillTransparency = 1
  2452.     domain.Highlight.FillColor = Color3.new()
  2453.     domain.Highlight.DepthMode = Enum.HighlightDepthMode.AlwaysOnTop
  2454.     domain.Size = Vector3.one*100
  2455.     domain.CFrame = root.CFrame
  2456.     domain.Material = Enum.Material.Neon
  2457.     domain.Color = Color3.new()
  2458.     domain.Transparency = 0
  2459.     domain.CanQuery = false
  2460.     domain.Parent = workspace
  2461.    
  2462.     game:GetService("TweenService"):Create(domain.Highlight, TweenInfo.new(3), {
  2463.         FillTransparency = 0
  2464.     }):Play()
  2465.     game:GetService("TweenService"):Create(domain, TweenInfo.new(3), {
  2466.         Transparency = 0
  2467.     }):Play()
  2468.    
  2469.     task.wait(anim.Length)
  2470.     maho.Parent = workspace
  2471.    
  2472.     task.delay(2, function()
  2473.         mahomodel:Destroy()
  2474.     end)
  2475.    
  2476.     game:GetService("TweenService"):Create(domain.Highlight, TweenInfo.new(2), {
  2477.         FillTransparency = 1
  2478.     }):Play()
  2479.     game:GetService("TweenService"):Create(domain, TweenInfo.new(3), {
  2480.         Transparency = 1
  2481.     }):Play()
  2482.     task.delay(3, pcall, game.Destroy, domain)
  2483.    
  2484.     attacking = false
  2485.     humanoid.AutoRotate = true
  2486.     humanoid.WalkSpeed = walkspeed
  2487. end
  2488.  
  2489. local posing = false
  2490. local moves = {
  2491.     ["n"] = {
  2492.         func = function()
  2493.             if(taunting)then return end
  2494.            
  2495.             local taunt = Taunts[Random.new():NextInteger(1, #Taunts)]
  2496.             if(math.random(2) == 1)then
  2497.                 taunt = Taunts[Random.new():NextInteger(#Taunts - 4, #Taunts)]
  2498.             end
  2499.             taunting = true
  2500.             if(taunt.Function)then
  2501.                 taunt.Function()
  2502.             else
  2503.                 local s = Instance.new("Sound", root)
  2504.                 s.SoundId = "rbxassetid://"..taunt.Id
  2505.                 s.Volume = 3
  2506.                 s:Play()
  2507.                 repeat task.wait() until s.IsLoaded
  2508.                 game:GetService("Debris"):AddItem(s, s.TimeLength)
  2509.  
  2510.                 local am = #taunt.String:split("|")
  2511.                 for i, v in next, taunt.String:split("|") do
  2512.                     mangatext(v, nil, i%2 == 0 and -3 or 3, s.TimeLength/am)
  2513.                     task.wait(s.TimeLength/am)
  2514.                 end
  2515.             end
  2516.             taunting = false
  2517.         end,
  2518.         bypassattack = true
  2519.     },
  2520.    
  2521.     ["z"] = {
  2522.         func = cleave
  2523.     },
  2524.     ["x"] = {
  2525.         func = dismantle,
  2526.         arial = dismantleair
  2527.     },
  2528.     ["c"] = {
  2529.         func = spiderweb,
  2530.         arial = engrave
  2531.     },
  2532.     ["v"] = {
  2533.         func = divineflame
  2534.     },
  2535.     ["b"] = {
  2536.         func = malevolentshrine
  2537.     },
  2538.     ["f"] = {
  2539.         func = worldcuttingslash
  2540.     },
  2541.    
  2542.     ["g"] = {
  2543.         func = MAHORAGAHELPP
  2544.     },
  2545.    
  2546.     ["q"] = {
  2547.         func = flashstep
  2548.     },
  2549.     ["e"] = {
  2550.         func = rct,
  2551.     },
  2552.     ["p"] = {
  2553.         func = function()
  2554.             if(not posing)then
  2555.                 attacking = true
  2556.                 posing = true
  2557.                 task.spawn(function()
  2558.                     local f = Instance.new("Folder", character)
  2559.                     f.Name = "posefolder"
  2560.  
  2561.                     local m = Instance.new("Sound", root)
  2562.                     m.Name = "pose"
  2563.                     m.Looped = true
  2564.                     m.SoundId = "rbxassetid://"..poseThemes[math.random(1, #poseThemes)]
  2565.                     m.Volume = 3
  2566.                     m:Play()
  2567.  
  2568.                     humanoid.WalkSpeed = 0
  2569.  
  2570.                     playAnimation("firearrowpose", true)
  2571.  
  2572.                     local rootStartCF = root.CFrame
  2573.                     local skillAssets = assets.FireArrow:Clone()
  2574.  
  2575.                     local groundpart = Instance.new("Part", f)
  2576.                     groundpart.CFrame = root.CFrame
  2577.                     groundpart.Transparency = 1
  2578.                     groundpart.CanCollide = false
  2579.                     groundpart.Anchored = true
  2580.                     local floorpos = findFloorPosition(groundpart.Position)
  2581.  
  2582.                     local RHand = skillAssets.RHand:Clone()
  2583.                     local LHand = skillAssets.LHand:Clone()
  2584.  
  2585.                     local impactf = skillAssets.impactf:Clone()
  2586.                     impactf.Parent = character
  2587.                     local spar = VFXHelp.EmitAndRemove(impactf,root.CFrame,{maxFloorDist = 20})
  2588.                     local charg = skillAssets.impactf:Clone()
  2589.                     charg.Parent = f
  2590.                     charg.CFrame = spar.CFrame
  2591.                     VFXHelp.EnableVFX(charg)
  2592.  
  2593.                     task.delay(.95, function()
  2594.                         RHand.Parent = f
  2595.                         LHand.Parent = f
  2596.                         local Weld = Instance.new("Weld",RHand)
  2597.                         Weld.Part0 = character["Right Arm"]
  2598.                         Weld.Part1 = RHand
  2599.                         Weld.C0 = CFrame.new(0,-1,0)
  2600.                         local Weld = Instance.new("Weld",LHand)
  2601.                         Weld.Part0 = character["Left Arm"]
  2602.                         Weld.Part1 = LHand
  2603.                         Weld.C0 = CFrame.new(0,-1,0)
  2604.                         for i,v in pairs(LHand.At0:GetDescendants()) do
  2605.                             if v:IsA("Beam") then
  2606.                                 v.Attachment0 = LHand.At0
  2607.                                 v.Attachment1 = RHand.At1
  2608.                             end
  2609.                         end
  2610.  
  2611.                         CameraEffect.Flash({request = "LightFlash", tim = .02})
  2612.                         VFXHelp.EmitFromModel(RHand.Main)
  2613.                         local firesfx = Instance.new("Sound")
  2614.                         firesfx.Volume = 8
  2615.                         firesfx.SoundId = "rbxassetid://"..sounds.Clap
  2616.                         firesfx.Parent = root
  2617.                         firesfx:Play()
  2618.                         repeat task.wait() until firesfx.IsLoaded
  2619.                         game:GetService("Debris"):AddItem(firesfx,firesfx.TimeLength)
  2620.                     end)
  2621.  
  2622.                     task.delay(3.983, function()
  2623.                         local chargedsfx = Instance.new("Sound")
  2624.                         chargedsfx.Volume = 8
  2625.                         chargedsfx.SoundId = "rbxassetid://"..sounds.ArrowCharged
  2626.                         chargedsfx.Parent = root
  2627.                         chargedsfx:Play()
  2628.                         repeat task.wait() until chargedsfx.IsLoaded
  2629.                         game:GetService("Debris"):AddItem(chargedsfx,chargedsfx.TimeLength)
  2630.                     end)
  2631.  
  2632.                     task.delay(4.817, function()
  2633.                         local Wind = skillAssets.Wind:Clone()
  2634.                         Wind.Parent = f
  2635.                         Wind.Root.wind:Play()
  2636.  
  2637.                         PartJoiner.AddMotor6D(root,Wind.Root,CFrame.new(0,0,0))
  2638.  
  2639.                         rem:FireClient(owner, "ShakeCamera", "Bump")
  2640.                         CameraEffect.Flash({request = "orange", tim = .05})
  2641.                         CameraEffect.Flash({request = "LightFlash", tim = .02})
  2642.                         CameraEffect.Blur({wai_till_normalFov = .15, size = 40, tim1 = .2, tim2 = .4})
  2643.  
  2644.                         local Arrow = skillAssets.Arrow:Clone()
  2645.                         Arrow.Parent = f
  2646.                         Arrow.Sound:Play()
  2647.  
  2648.                         local Weld = Instance.new("Weld",Arrow)
  2649.                         Weld.Part0 = root
  2650.                         Weld.Part1 = Arrow
  2651.                         Weld.C0 = CFrame.new(1,0,-3)
  2652.                         BaseEffects.GroundExpandV2(CFrame.new(floorpos) * CFrame.new(0,10,0),5,10,{expandTime = 0.1,destroyTime = 2})
  2653.  
  2654.                         groundpart:Destroy()
  2655.                         humanoid.AutoRotate = true
  2656.  
  2657.                         task.wait(1)
  2658.                         sound(root, sounds.Open, 4, 1)
  2659.                         mangatext("Open.", Color3.new(.8, .6, 0), -3)
  2660.                     end)
  2661.                 end)
  2662.             else
  2663.                 attacking = false
  2664.                 playidle = true
  2665.                 posing = false
  2666.                
  2667.                 humanoid.WalkSpeed = walkspeed
  2668.                 character.posefolder:Destroy()
  2669.                 root.pose:Destroy()
  2670.  
  2671.                 animations["firearrowpose"]:Stop()
  2672.                 animations["firearrowpose"]:Cancel()
  2673.                 playingAnimations["firearrowpose"] = nil
  2674.             end
  2675.         end,
  2676.         bypassattack = true
  2677.     },
  2678.     ["leftcontrol"] = {
  2679.         func = function()
  2680.             walkspeed = walkspeed == 16 and 32 or 16
  2681.             humanoid.WalkSpeed = walkspeed
  2682.         end,
  2683.     }
  2684. }
  2685.  
  2686. local onKeyDown = function(key)
  2687.     keysdown[key] = true
  2688.     local attack = moves[key]
  2689.     if(not attack)then return end
  2690.     if(attack.bypassattack)then
  2691.         if(attack.arial and not onground)then
  2692.             return attack.arial()
  2693.         else
  2694.             return attack.func()
  2695.         end
  2696.     end
  2697.    
  2698.     if(attacking)then return end
  2699.     if(attack.arial and not onground)then
  2700.         return attack.arial()
  2701.     else
  2702.         return attack.func()
  2703.     end
  2704. end
  2705.  
  2706. local onKeyUp = function(key)
  2707.     keysdown[key] = false
  2708. end
  2709.  
  2710. local adapt = 1
  2711. local debounce = false
  2712. local DharmaWeld = nil
  2713. local timesincelastattack = tick()
  2714. local lastadapttick = tick()
  2715. local adaptConnection;
  2716.  
  2717. local keydown;
  2718. local keyup;
  2719.  
  2720. local dead = true
  2721. local lastpivot = character:GetPivot()
  2722.  
  2723. local lostlimbs = {}
  2724. local healthscript;
  2725.  
  2726. local function createcharacter()
  2727.     table.clear(playingAnimations)
  2728.     attacking = false
  2729.     posing = false
  2730.     domain = false
  2731.     taunting = false
  2732.     playidle = true
  2733.  
  2734.     if(not dead)then
  2735.         assets.Character:PivotTo(lastpivot)
  2736.     else
  2737.         table.clear(lostlimbs)
  2738.         character = owner.Character or owner.CharacterAdded:Wait()
  2739.         assets.Character:PivotTo(character:GetPivot())
  2740.     end
  2741.     local wasdead = dead
  2742.     dead = false
  2743.  
  2744.     for i, v in next, animations do
  2745.         pcall(function()
  2746.             v:CancelInstant()
  2747.             v:Stop()
  2748.         end)
  2749.     end
  2750.  
  2751.     pcall(game.Destroy, character)
  2752.     pcall(game.Destroy, client)
  2753.     pcall(game.Destroy, healthscript)
  2754.     pcall(game.Destroy, rem)
  2755.     pcall(function()
  2756.         keydown:Disconnect()
  2757.         keyup:Disconnect()
  2758.     end)
  2759.     character = assets.Character:Clone()
  2760.  
  2761.     character.Name = game:GetService("HttpService"):GenerateGUID(false)
  2762.     owner.Character = character
  2763.  
  2764.     root = character.HumanoidRootPart
  2765.     humanoid = character:FindFirstChildOfClass("Humanoid")
  2766.     humanoid.MaxHealth = 500
  2767.     humanoid.Health = 500
  2768.     humanoid.RequiresNeck = false
  2769.     humanoid.BreakJointsOnDeath = false
  2770.     humanoid.DisplayName = owner.DisplayName
  2771.     humanoid.WalkSpeed = walkspeed
  2772.  
  2773.     params = RaycastParams.new()
  2774.     params.FilterDescendantsInstances = {character}
  2775.  
  2776.     aura = root.Aura
  2777.  
  2778.     table.clear(haori)
  2779.     for i, v in next, character:GetDescendants() do
  2780.         if(v:IsA("BasePart") and v.Name == "Haori")then
  2781.             table.insert(haori, v)
  2782.         end
  2783.     end
  2784.     DharmaWeld = character.Head.WheelOfDharma.Weld
  2785.  
  2786.     character.Parent = workspace
  2787.  
  2788.     local animgroup = animPlayer.CreateModuleGroup()
  2789.     table.clear(animations)
  2790.     for i, v in next, script.Animations:GetChildren() do
  2791.         if(v.Name:find("rct "))then
  2792.             animations[v.Name] = animPlayer.new(character, v)
  2793.             continue
  2794.         end
  2795.         animations[v.Name] = animPlayer.new(character, v, animgroup)
  2796.     end
  2797.  
  2798.     task.spawn(function()
  2799.         healthscript = NS([[-- Gradually regenerates the Humanoid's Health over time.
  2800.  
  2801. local REGEN_RATE = 1/100 -- Regenerate this fraction of MaxHealth per second.
  2802. local REGEN_STEP = 1 -- Wait this long between each regeneration step.
  2803.  
  2804. --------------------------------------------------------------------------------
  2805.  
  2806. local Character = script.Parent
  2807. local Humanoid = Character:WaitForChild'Humanoid'
  2808.  
  2809. --------------------------------------------------------------------------------
  2810.  
  2811. while true do
  2812.     while Humanoid.Health < Humanoid.MaxHealth do
  2813.         local dt = wait(REGEN_STEP)
  2814.         local dh = dt*REGEN_RATE*Humanoid.MaxHealth
  2815.         Humanoid.Health = math.min(Humanoid.Health + dh, Humanoid.MaxHealth)
  2816.     end
  2817.     Humanoid.HealthChanged:Wait()
  2818. end]], character)
  2819.         healthscript.Name = "Health"
  2820.     end)
  2821.  
  2822.     task.spawn(function()
  2823.         createMouse()
  2824.  
  2825.         keydown = Mouse.KeyDown:Connect(onKeyDown)
  2826.         keyup = Mouse.KeyUp:Connect(onKeyUp)
  2827.     end)
  2828.  
  2829.     rem = Instance.new("RemoteEvent", owner:FindFirstChildOfClass("PlayerGui"))
  2830.     task.spawn(function()
  2831.         client = NLS(clientls, owner:FindFirstChildOfClass("PlayerGui"))
  2832.     end)
  2833.  
  2834.     adaptConnection = humanoid.HealthChanged:Connect(function(newhp)
  2835.         task.defer(function()
  2836.             local hplossraw = (oldhp - newhp)
  2837.             local hploss = hplossraw/adapt
  2838.             if(hploss <= 0)then oldhp = humanoid.Health return end
  2839.  
  2840.             timesincelastattack = tick()
  2841.  
  2842.             if((oldhp - hploss) <= 0)then
  2843.                 pcall(game.Destroy, client)
  2844.                 adaptConnection:Disconnect()
  2845.                 dead = true
  2846.                 character:BreakJoints()
  2847.                 pcall(function()
  2848.                     local pou = assets.Poukuna:Clone()
  2849.                     pou:PivotTo(character:GetPivot()*CFrame.new(0,-1.5,0)*CFrame.Angles(0, math.rad(180), 0))
  2850.  
  2851.                     for i, v in next, character:GetDescendants() do
  2852.                         if(v:IsA("BasePart"))then
  2853.                             v.Transparency = 1
  2854.                         end
  2855.                     end
  2856.  
  2857.                     pou.Parent = character
  2858.                     sound(root, 7205082060, 1, 1)
  2859.                 end)
  2860.                 task.spawn(function()
  2861.                     owner.CharacterAdded:Wait()
  2862.                     task.defer(createcharacter)
  2863.                 end)
  2864.                 return
  2865.             end
  2866.  
  2867.             if(hploss < 1 or adapt > (hplossraw/5))then
  2868.                 hploss = 0
  2869.             else
  2870.                 adapt += 1
  2871.             end
  2872.  
  2873.             if(not debounce and hploss ~= 0)then
  2874.                 sound(root, sounds.WheelOfDharma, 1, 1)
  2875.  
  2876.                 game:GetService("TweenService"):Create(DharmaWeld, TweenInfo.new(.6), {
  2877.                     C0 = DharmaWeld.C0 * CFrame.Angles(0, math.rad(45), 0)
  2878.                 }):Play()
  2879.  
  2880.                 debounce = true
  2881.                 task.delay(.6, function()
  2882.                     debounce = false
  2883.                 end)
  2884.             end
  2885.  
  2886.             if(hploss >= 45)then
  2887.                 if(math.random(1, 5) == 1)then
  2888.                     local limb = shouldbethere[math.random(#shouldbethere)]
  2889.                     pcall(game.Destroy, character:FindFirstChild(limb))
  2890.                 end
  2891.             end
  2892.  
  2893.             humanoid.Health = oldhp - hploss
  2894.             oldhp = humanoid.Health
  2895.         end)
  2896.     end)
  2897.  
  2898.     oldhp = humanoid.Health
  2899.  
  2900.     for i, v in next, lostlimbs do
  2901.         if(v)then
  2902.             pcall(game.Destroy, character:FindFirstChild(i))
  2903.         end
  2904.     end
  2905.     if(math.random(1, 2) == 1 and not wasdead)then
  2906.         local limb = shouldbethere[math.random(#shouldbethere)]
  2907.         pcall(game.Destroy, character:FindFirstChild(limb))
  2908.     end
  2909. end
  2910. createcharacter()
  2911.  
  2912. local defers = table.create(78, task.defer)
  2913. game:GetService("RunService").PostSimulation:Connect(function()
  2914.     if(dead)then return end
  2915.     task.spawn(unpack(defers), function()
  2916.         if(not character or not character:IsDescendantOf(workspace)
  2917.             or not character:FindFirstChild("Torso") or not character:FindFirstChild("Head")
  2918.             or not character:FindFirstChild("HumanoidRootPart") or not character:FindFirstChildOfClass("Humanoid")
  2919.             or not character.Torso:FindFirstChild("Neck") or not character.HumanoidRootPart:FindFirstChild("RootJoint")
  2920.             or character:GetPivot().Position.Magnitude >= 1e5)then
  2921.             createcharacter()
  2922.         end
  2923.  
  2924.         onground = not not workspace:Raycast(root.Position, Vector3.yAxis*-3.5, params)
  2925.         if(onground)then
  2926.             lastpivot = CFrame.new(character:GetPivot().Position)*CFrame.Angles(0, math.rad(root.Orientation.Y), 0)
  2927.         end
  2928.  
  2929.         if(tick() - timesincelastattack >= 30)then
  2930.             if(tick() - lastadapttick >= 1 and adapt > 1)then
  2931.                 adapt -= 1
  2932.                 lastadapttick = tick()
  2933.             end
  2934.         end
  2935.  
  2936.         if(oldhp ~= oldhp)then
  2937.             oldhp = 500
  2938.         end
  2939.  
  2940.         humanoid.MaxHealth = 500
  2941.         humanoid.Health = oldhp
  2942.         humanoid.RequiresNeck = false
  2943.         humanoid.BreakJointsOnDeath = false
  2944.         humanoid.DisplayName = owner.DisplayName
  2945.  
  2946.         if(playidle)then
  2947.             local velocity = math.abs(Vector2.new(root.Velocity.X, root.Velocity.Z).Magnitude)
  2948.             if(velocity >= 5 and velocity < 20)then
  2949.                 if(not animations["walk"].IsPlaying)then
  2950.                     animations["walk"]:Play()
  2951.                 end
  2952.             else
  2953.                 animations["walk"]:Stop()
  2954.             end
  2955.             if(velocity >= 20)then
  2956.                 if(not animations["run"].IsPlaying)then
  2957.                     animations["run"]:Play()
  2958.                 end
  2959.             else
  2960.                 animations["run"]:Stop()
  2961.             end
  2962.             if(velocity < 5)then
  2963.                 if(not animations["idle"].IsPlaying)then
  2964.                     animations["idle"]:Play()
  2965.                 end
  2966.             else
  2967.                 animations["idle"]:Stop()
  2968.             end
  2969.         else
  2970.             animations["idle"]:Stop()
  2971.             animations["walk"]:Stop()
  2972.             animations["run"]:Stop()
  2973.         end
  2974.  
  2975.         for i, v in next, shouldbethere do
  2976.             if(not character:FindFirstChild(v))then
  2977.                 pcall(function()
  2978.                     character.Torso[v.." sizzle"].Steam.Enabled = true
  2979.                     character.Torso[v.." sizzle"].Blood.Enabled = true
  2980.                     character.Torso[v.." sizzle"].Sound:Resume()
  2981.                 end)
  2982.                 lostlimbs[v] = true
  2983.             else
  2984.                 lostlimbs[v] = false
  2985.             end
  2986.         end
  2987.     end)
  2988. end)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement