local client = nil
local clientls = NLS([==[
local plr = game:GetService("Players").LocalPlayer
local character = plr.Character
local rem = script.Parent:WaitForChild("RemoteEvent")
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)()
local shaker = camshaker.new(Enum.RenderPriority.Camera.Value+1, function(cf)
workspace.CurrentCamera.CFrame = workspace.CurrentCamera.CFrame * cf
end)
shaker:Start()
rem.OnClientEvent:Connect(function(type, data)
if(type == "ShakeCamera")then
shaker:Shake(camshaker.Presets[data])
end
end)
game:GetService("RunService").RenderStepped:Connect(function()
if(not character:FindFirstChild("HumanoidRootPart") or not character:FindFirstChild("Head"))then return end
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)
end)
]==]);
local realsc = script
local script = require(13233384945):Get("Sukuna")
script.Parent = nil
local assets = script:WaitForChild("Assets")
local trueanimations = {}
local fpose = script.Animations.firearrow:Clone()
fpose.Name = "firearrowpose"
for _, keyframe in next, fpose:GetChildren() do
if(keyframe.Time >= 5.817)then
keyframe:Destroy()
end
end
local arrowk = fpose.Arrow:Clone()
arrowk.Time = 1e5
arrowk.Parent = fpose
fpose.Parent = script.Animations
local tocheck = {"Head", "Torso", "HumanoidRootPart", "Left Arm", "Left Leg", "Right Arm", "Right Leg"}
for _, anim in next, script.Animations:GetChildren() do
local istrue = true
local has = {}
for _, keyframe in next, anim:GetDescendants() do
for _, name in next, tocheck do
if(keyframe.Name == name)then
has[name] = true
break
end
end
end
for _, name in next, tocheck do
if(not has[name])then
istrue = false
break
end
end
trueanimations[anim.Name] = istrue
end
local function grayscaleColor(col)
if(typeof(col) == "Color3")then
local gray = 0.3 * col.R + 0.59 * col.G + 0.11 * col.B
return Color3.new(gray, gray, gray)
elseif(typeof(col) == "ColorSequence")then
local keypoints = {}
for i, v in next, col.Keypoints do
keypoints[i] = ColorSequenceKeypoint.new(v.Time, grayscaleColor(v.Value))
end
return ColorSequence.new(keypoints)
elseif(typeof(col) == "ColorSequenceKeypoint")then
return ColorSequenceKeypoint.new(col.Time, grayscaleColor(col.Value))
end
end
for _, v in ipairs(assets:GetDescendants()) do
if v.Name == "WheelOfDharma" then
end
if v:IsA("BasePart") then
v.Color = grayscaleColor(v.Color)
end
if v:IsA("UIGradient") then
v.Color = ColorSequence.new(grayscaleColor(v.Color.Keypoints[1].Value))
end
if v:IsA("ImageLabel") or v:IsA("ImageButton") then
v.ImageColor3 = grayscaleColor(v.ImageColor3)
end
if v:IsA("TextLabel") or v:IsA("TextButton") or v:IsA("TextBox") then
v.TextColor3 = grayscaleColor(v.TextColor3)
v.TextStrokeColor3 = grayscaleColor(v.TextStrokeColor3)
end
end
local owner = owner or script:FindFirstAncestorOfClass("Player") or game:GetService("Players"):WaitForChild("TheFakeFew")
task.wait()
realsc.Parent = nil
mouse, Mouse, Client, MouseEventConnections = nil, nil, nil, nil
local function createMouse()
mouse, Mouse, Client, MouseEventConnections = nil, nil, nil, nil
local Player = owner
if(not Player)then
return
end
do
MouseEventConnections = {}
Client = NLS([[
local Player = game:GetService('Players').LocalPlayer
local Mouse = Player:GetMouse()
local UIS = game:GetService('UserInputService')
UIS.InputBegan:Connect(function(io, gpe)
if(not gpe)then
if(string.lower(io.KeyCode.Name) == "unknown")and(io.UserInputType ~= Enum.UserInputType.MouseButton1)then return end
script.Remote.Value:FireServer("KeyEvent", {
Key = ((io.UserInputType == Enum.UserInputType.MouseButton1)and("mouse1")or(string.lower(io.KeyCode.Name))),
Hit = Mouse.Hit,
Target = Mouse.Target,
Up = false
})
end
end)
UIS.InputEnded:Connect(function(io, gpe)
if(not gpe)then
if(string.lower(io.KeyCode.Name) == "unknown")and(io.UserInputType ~= Enum.UserInputType.MouseButton1)then return end
script.Remote.Value:FireServer("KeyEvent", {
Key = ((io.UserInputType == Enum.UserInputType.MouseButton1)and("mouse1")or(string.lower(io.KeyCode.Name))),
Hit = Mouse.Hit,
Target = Mouse.Target,
Up = true
})
end
end)
game:GetService('RunService').RenderStepped:Connect(function()
script.Remote.Value:FireServer("MouseUpdate", {
Hit = Mouse.Hit,
Target = Mouse.Target
})
end)
]], Player:FindFirstChildOfClass("PlayerGui"))
local r = Instance.new("ObjectValue", Client)
r.Name = "Remote"
local Event = Instance.new("RemoteEvent", Player.Character)
Event.Name = "_MouseEvent"
Client.Remote.Value = Event
Client.Disabled = false
local fakemouse = {}
fakemouse.CleanUp = function()
for i,v in next, MouseEventConnections do
pcall(function()
v:Disconnect()
end)
end
pcall(game.Destroy, Event)
pcall(function()
Client.Disabled = true
Client:Destroy()
end)
end
fakemouse.KeyDown = {}
fakemouse.KeyUp = {}
fakemouse.Button1Down = {}
fakemouse.Button1Up = {}
local function setfakemouseenv(data)
fakemouse.Hit = data.Hit or CFrame.identity
fakemouse.Target = data.Target or nil
end
setfakemouseenv({})
function fakemouse.KeyDown:Connect(func)
local returned = {}
local ev = Event.OnServerEvent:Connect(function(Plr, type, data)
if(Plr ~= Player)then return end
if(type == "KeyEvent")and(data.Key ~= "mouse1")then
if(not data.Up)then
setfakemouseenv(data)
func(data.Key)
end
end
end)
table.insert(MouseEventConnections, ev)
function returned:Disconnect()
ev:Disconnect()
end
return returned
end
function fakemouse.KeyUp:Connect(func)
local returned = {}
local ev = Event.OnServerEvent:Connect(function(Plr, type, data)
if(Plr ~= Player)then return end
if(type == "KeyEvent")and(data.Key ~= "mouse1")then
if(data.Up)then
setfakemouseenv(data)
func(data.Key)
end
end
end)
table.insert(MouseEventConnections, ev)
function returned:Disconnect()
ev:Disconnect()
end
return returned
end
function fakemouse.Button1Down:Connect(func)
local returned = {}
local ev = Event.OnServerEvent:Connect(function(Plr, type, data)
if(Plr ~= Player)then return end
if(type == "KeyEvent")then
if(not data.Up)and(data.Key == "mouse1")then
setfakemouseenv(data)
func()
end
end
end)
table.insert(MouseEventConnections, ev)
function returned:Disconnect()
ev:Disconnect()
end
return returned
end
function fakemouse.Button1Up:Connect(func)
local returned = {}
local ev = Event.OnServerEvent:Connect(function(Plr, type, data)
if(Plr ~= Player)then return end
if(type == "KeyEvent")then
if(data.Up)and(data.Key == "mouse1")then
setfakemouseenv(data)
func()
end
end
end)
table.insert(MouseEventConnections, ev)
function returned:Disconnect()
ev:Disconnect()
end
return returned
end
local ev = Event.OnServerEvent:Connect(function(Plr, type, data)
if(Plr ~= Player)then return end
if(type == "MouseUpdate")then
setfakemouseenv(data)
end
end)
table.insert(MouseEventConnections, ev)
mouse, Mouse = fakemouse, fakemouse
mouse = fakemouse
Mouse = fakemouse
end
end
local animPlayer = require("animPlayer")
local VFXHelp = require("vfxHelp")
local PartJoiner = (function()
local PartJoiner = {}
function PartJoiner.CalcWeldC0(cf0: CFrame, cf1: CFrame): CFrame
return cf0:ToObjectSpace(cf1)
end
local function joinParts(
className: "Motor6D" | "Weld" | "WeldConstraint",
p0: BasePart,
p1: BasePart,
c0: CFrame?,
c1: CFrame?,
parent: Instance?
): Instance
local joinObject = Instance.new(className)
if className == "WeldConstraint" then
local wc = joinObject :: WeldConstraint
wc.Part0 = p0
wc.Part1 = p1
wc.Parent = parent or p0
return wc
else
local joint = joinObject :: Weld -- works for Weld + Motor6D (shared members)
joint.Part0 = p0
joint.Part1 = p1
joint.C0 = c0 or PartJoiner.CalcWeldC0(p0.CFrame, p1.CFrame)
if c1 then
joint.C1 = c1
end
joint.Parent = parent or p0
return joint
end
end
function PartJoiner.AddMotor6D(
p0: BasePart,
p1: BasePart,
c0: CFrame?,
c1: CFrame?,
parent: Instance?
): Motor6D
return joinParts("Motor6D", p0, p1, c0, c1, parent) :: Motor6D
end
function PartJoiner.Weld(
p0: BasePart,
p1: BasePart,
c0: CFrame?,
c1: CFrame?,
parent: Instance?
): Weld
return joinParts("Weld", p0, p1, c0, c1, parent) :: Weld
end
function PartJoiner.AddWeldConstraint(
p0: BasePart,
p1: BasePart,
parent: Instance?
): WeldConstraint
return joinParts("WeldConstraint", p0, p1, nil, nil, parent) :: WeldConstraint
end
return PartJoiner
end)()
return PartJoiner
local CameraEffect = (function()
--// Services
local TS = game:GetService("TweenService")
local Lighting = game:GetService('Lighting')
local module = {}
module.Flash = function(data)
local camera = Lighting
local tim = data.tim or 1
local request = data.request
if request and assets.CameraEffects:FindFirstChild(request) then
local effect = assets.CameraEffects[request]:Clone()
effect.Parent = camera
effect.Enabled = true
game:GetService("Debris"):AddItem(effect, tim)
end
end
module.Blur = function(data)
local camera = Lighting
local tim1,tim2 = data.tim1 or .5, data.tim2
local EasingStyleDirc = data.EasingStyleDirc or Enum.EasingDirection.Out
local EasingStyleDirc2 = data.EasingStyleDirc or EasingStyleDirc
local EasingStyle = data.EasingStyle or Enum.EasingStyle.Sine
local EasingStyle2 = data.EasingStyle2 or EasingStyle
local size = data.size or 7
local wai_till_normalFov = data.wai_till_normalFov or tim1
coroutine.wrap(function()
local blur = assets.CameraEffects["Blur"]:Clone()
blur.Parent = camera
blur.Size = 0
-- tween
TS:Create(blur,TweenInfo.new(tim1, EasingStyle,EasingStyleDirc, 0, false, 0), {Size = size}):Play()
task.wait(wai_till_normalFov)
TS:Create(blur,TweenInfo.new(tim2 or tim1, EasingStyle2,EasingStyleDirc, 0, false, 0), {Size = 0}):Play()
game:GetService("Debris"):AddItem(blur,tim2 or tim1)
end)()
end
return module
end)()
local BaseEffects = require("baseEffects")
local function IsPointInVolume(point: Vector3, volumeCenter: CFrame, volumeSize: Vector3): boolean
local volumeSpacePoint = volumeCenter:PointToObjectSpace(point)
return volumeSpacePoint.X >= -volumeSize.X/2
and volumeSpacePoint.X <= volumeSize.X/2
and volumeSpacePoint.Y >= -volumeSize.Y/2
and volumeSpacePoint.Y <= volumeSize.Y/2
and volumeSpacePoint.Z >= -volumeSize.Z/2
and volumeSpacePoint.Z <= volumeSize.Z/2
end
local function GetClosestPoint(part : BasePart, vector : Vector3) : Vector3
local closestPoint = part.CFrame:PointToObjectSpace(vector)
local size = part.Size / 2
closestPoint = Vector3.new(
math.clamp(closestPoint.x, -size.x, size.x),
math.clamp(closestPoint.y, -size.y, size.y),
math.clamp(closestPoint.z, -size.z, size.z)
)
return part.CFrame:PointToWorldSpace(closestPoint)
end
local function MagnitudeAoe(Position, Range)
local Descendants = workspace:GetDescendants()
local PositionV = (typeof(Position) == "CFrame" and Position.Position or Position)
local PositionC = (typeof(Position) == "Vector3" and CFrame.new(Position.X,Position.Y,Position.Z) or Position)
local Range = (typeof(Range) == "Vector3" and Range or Vector3.new(Range, Range, Range))
local IsA = game.IsA
local parts = {}
for i, Object in next, Descendants do
if not IsA(Object, "Terrain") and IsA(Object, "BasePart") then
local ClosestPoint = GetClosestPoint(Object, PositionV)
local Magnitude = (Object.Position - PositionV).Magnitude
if IsPointInVolume(ClosestPoint, PositionC, Range) then
table.insert(parts, Object)
end
end
end
return parts
end
local character = owner.Character or owner.CharacterAdded:Wait()
local root;
local humanoid;
local onground = true
local params;
local rem;
local aura;
local haori = {}
local animations = {}
local attacking = false
local playidle = false
local taunting = false
local domain = false
local keysdown = {}
local basedomainrange = 180
local domainrange = basedomainrange
local walkspeed = 16
local playingAnimations = {}
local function playAnimation(name, ends, ...)
playingAnimations[name] = true
if(trueanimations[name])then
playidle = false
end
local function endanim()
if(trueanimations[name])then
playidle = true
end
animations[name]:Stop()
animations[name]:Cancel()
playingAnimations[name] = nil
end
animations[name]:Play()
if(not ends)then
task.delay(animations[name].Length, endanim)
end
return animations[name], endanim
end
local images = {
["scale of the dragon."] = "http://www.roblox.com/asset/?id=121751214675335",
["recoil."] = "http://www.roblox.com/asset/?id=119687809879934",
["twin meteors."] = "http://www.roblox.com/asset/?id=123700678758682",
["cleave."] = {"rbxassetid://75127446771447", "http://www.roblox.com/asset/?id=102258269424294"},
["dismantle."] = {"http://www.roblox.com/asset/?id=85731838632564", "http://www.roblox.com/asset/?id=91221784546899"},
["malevolent shrine!"] = {"http://www.roblox.com/asset/?id=100673576811233", "http://www.roblox.com/asset/?id=96715391635046"}
}
local marks = {
scale = "http://www.roblox.com/asset/?id=76182904326540",
recoil = "http://www.roblox.com/asset/?id=80018213239935",
twin = "http://www.roblox.com/asset/?id=73016945571479"
}
local function mark(texture)
local att = Instance.new("Attachment", root)
att.CFrame = CFrame.new(0, 3.872, 0)
local particle = Instance.new("ParticleEmitter", att)
particle.Brightness = 30
particle.Texture = texture
particle.Orientation = Enum.ParticleOrientation.FacingCamera
particle.Size = NumberSequence.new(2)
particle.Transparency = NumberSequence.new({
NumberSequenceKeypoint.new(0, 1, 0),
NumberSequenceKeypoint.new(.2, .24, 0),
NumberSequenceKeypoint.new(.407, 0, 0),
NumberSequenceKeypoint.new(.703, .486, .219),
NumberSequenceKeypoint.new(1, 1, 0)
})
particle.ZOffset = 2
particle.EmissionDirection = Enum.NormalId.Top
particle.Lifetime = NumberRange.new(.65)
particle.Speed = NumberRange.new(.1)
particle.Enabled = false
particle:Emit(1)
task.delay(.65, pcall, game.Destroy, att)
end
assets.Manga.ZIndexBehavior = Enum.ZIndexBehavior.Global
local mangaimage = Instance.new("ImageLabel", assets.Manga)
mangaimage.Image = "rbxassetid://86036048560958"
mangaimage.BackgroundTransparency = 1
mangaimage.AnchorPoint = Vector2.new(.5, .5)
mangaimage.Position = UDim2.fromScale(.5, .5)
mangaimage.Size = UDim2.fromScale(1, 1)
mangaimage.ResampleMode = Enum.ResamplerMode.Pixelated
local mangatex = assets.Manga.TextLabel
mangatex.Parent = mangaimage
mangatex.Position = UDim2.fromScale(.49, .49)
mangatex.Size = UDim2.fromScale(0.61, 0.84)
mangatex.BorderSizePixel = 0
mangatex.FontFace = Font.new("rbxasset://fonts/families/ComicNeueAngular.json", Enum.FontWeight.Bold, Enum.FontStyle.Normal)
local mangapad = Instance.new("UIPadding", mangatex)
mangapad.PaddingTop = UDim.new(0, 3)
mangapad.PaddingLeft = UDim.new(0, 3)
mangapad.PaddingRight = UDim.new(0, 3)
mangapad.PaddingBottom = UDim.new(0, 3)
local function mangatext(text, col, offset, time, yoffset)
local manga = assets.Manga:Clone()
manga.Adornee = root
manga.StudsOffset = Vector3.new(offset or 3, yoffset or 2, 0)
manga.Size = UDim2.fromScale(2.4, 2.4)
manga.Parent = character
manga.ImageLabel.ImageTransparency = 1
manga.ImageLabel.TextLabel.BackgroundTransparency = 1
manga.ImageLabel.TextLabel.TextTransparency = 1
game:GetService("TweenService"):Create(manga, TweenInfo.new(.5), {
StudsOffset = Vector3.new(offset or 3, (yoffset or 2) + .5, 0)
}):Play()
local image = images[text:lower()]
if(image)then
if(type(image) ~= "table")then
manga.ImageLabel.Image = image
manga.ImageLabel.TextLabel:Destroy()
game:GetService("TweenService"):Create(manga.ImageLabel, TweenInfo.new(.5), {
ImageTransparency = 0,
}):Play()
task.delay(time or 1, function()
game:GetService("TweenService"):Create(manga.ImageLabel, TweenInfo.new(.5), {
ImageTransparency = 1
}):Play()
task.delay(.5, pcall, game.Destroy, manga)
end)
else
manga.ImageLabel.TextLabel:Destroy()
local ic = manga.ImageLabel:Clone()
manga.ImageLabel:Destroy()
for index, img in next, image do
if(index == 2)then
local origmanga = manga
manga = manga:Clone()
manga.Brightness = 5
manga.StudsOffset = Vector3.new(offset or 3, yoffset or 2, .01)
manga.Parent = origmanga.Parent
game:GetService("TweenService"):Create(manga, TweenInfo.new(.5), {
StudsOffset = Vector3.new(offset or 3, (yoffset or 2) + .5, .01)
}):Play()
end
local i = ic:Clone()
i.Image = img
i.ZIndex = index
i.LayoutOrder = index
i.Parent = manga
game:GetService("TweenService"):Create(i, TweenInfo.new(.5), {
ImageTransparency = 0,
}):Play()
task.delay(time or 1, function()
game:GetService("TweenService"):Create(i, TweenInfo.new(.5), {
ImageTransparency = 1
}):Play()
task.delay(.5, pcall, game.Destroy, manga)
end)
end
end
else
manga.ImageLabel.TextLabel.Text = text
manga.ImageLabel.TextLabel.TextColor3 = grayscaleColor(col or Color3.new(0,0,0))
game:GetService("TweenService"):Create(manga.ImageLabel.TextLabel, TweenInfo.new(.5), {
BackgroundTransparency = 0,
TextTransparency = 0
}):Play()
game:GetService("TweenService"):Create(manga.ImageLabel, TweenInfo.new(.5), {
ImageTransparency = 0,
}):Play()
task.delay(time or 1, function()
game:GetService("TweenService"):Create(manga.ImageLabel.TextLabel, TweenInfo.new(.5), {
BackgroundTransparency = 1,
TextTransparency = 1
}):Play()
game:GetService("TweenService"):Create(manga.ImageLabel, TweenInfo.new(.5), {
ImageTransparency = 1
}):Play()
task.delay(.5, pcall, game.Destroy, manga)
end)
end
end
local sounds = {
Cleave = 83772631349135,
Open = 108898639724030,
WheelOfDharma = 112517706425993,
Laugh = 80347867704337,
TestOfFirepower = 101848199754113,
Clap = 139479639277869,
ArrowCharged = 3748209484,
ArrowSwoosh = 96009362643761,
Explosion1 = 77521864794311,
Explosion2 = 100681615290227,
ShrineEnd = 101500235613485,
WCS = 109229685208640,
WCSStartup = 92770039710076,
WCSVoice = 124265527510765,
Massacre = 91409028205792,
Annoying = 135703502669615,
Praise = 91230473868025,
Hostile = 99664017301623,
Era = 100189795085376,
BestInTheFlesh = 108337610290644,
WhatShouldIDoFirst = 91467590554678,
WorldSmells = 91952531888177,
Priests = 112328908655367,
ImFree = 119270369029907,
MalevolentShrine = 18628257420,
ThunderClap = 73073884515658,
TheScariest = 87567651015594,
Mahoraga = 99492525040118,
HELPP = 122486378585943
}
local poseThemes = {sounds.ThunderClap, sounds.MalevolentShrine, sounds.TheScariest}
local function sound(par, id, vol, pit)
local s = Instance.new("Sound", par)
s.SoundId = "rbxassetid://"..id
s.Volume = vol
s.Pitch = pit
s.PlayOnRemove = true
s:Destroy()
end
local Taunts = {
{
String = "Marvelous!|It'll be a massacre!",
Id = sounds.Massacre
},
{
String = "What a thoroughly annoying brat...",
Id = sounds.Annoying
},
{
String = "Are you pleased?|Do you want some praise?",
Id = sounds.Praise
},
{
String = "You're being awfully hostile, arent you?",
Id = sounds.Hostile
},
{
String = "What a wonderful era to be awakened in!|Humans and weaklings are crawling like maggots!",
Id = sounds.Era
},
{
Function = function()
attacking = true
humanoid.WalkSpeed = 0
sound(root, sounds.Laugh, 3, 1)
mangatext("*laughter*", nil, 3, 8)
task.wait(0.5)
local anim, stop = playAnimation("awake")
task.wait(10.2)
stop()
humanoid.WalkSpeed = walkspeed
attacking = false
end,
},
{
String = "Ah, I knew it! The light truly feels best in the flesh!",
Id = sounds.BestInTheFlesh
},
{
String = "HAHAHAHAHA! Finally, Im free!",
Id = sounds.ImFree
},
{
String = "What should I do first? Help north korea?",
Id = sounds.WhatShouldIDoFirst
},
{
String = "Huh? Why does this world smell gayer all of a sudden?",
Id = sounds.WorldSmells
},
{
String = "You like that I murdered 500 priests?!",
Id = sounds.Priests
}
}
local function damage(hum, dmg, truedamage, firearrow)
hum:TakeDamage(dmg)
if(truedamage)then
hum.Health -= hum.MaxHealth/truedamage
end
task.defer(function()
if(hum.Health <= 1 and not hum.Parent:FindFirstChild("DeadTag"))then
local tag = Instance.new("BoolValue", hum.Parent)
tag.Name = "DeadTag"
if(not firearrow)then
for i, v in next, hum.Parent:GetChildren() do
if(v:IsA("BasePart"))then
v.Anchored = true
end
end
local c = assets.Cleave:Clone()
c.Parent = workspace
c.Size = Vector3.one*6
task.delay((.1*5) + .5, pcall, game.Destroy, c)
c.Position = hum.Parent:FindFirstChildWhichIsA("BasePart").Position
for i = 1, 5 do
for i, v in next, c:GetChildren() do
v.Color = grayscaleColor(ColorSequence.new(Color3.new(math.random(), 0, 0)))
v.Enabled = false
v:Emit(5)
end
sound(c, 6282561520, math.random(90, 110)/100, math.random(90, 110)/100)
task.wait(.1)
end
sound(hum.Parent:FindFirstChildWhichIsA("BasePart"), 6148096445, 2, 1)
for i, v in next, hum.Parent:GetChildren() do
if(v:IsA("BasePart"))then
local p = Instance.new("Part", character)
p.Size = v.Size
p.CFrame = v.CFrame
p.Anchored = true
p.CanCollide = false
p.Transparency = 1
v.Transparency = 1
local b = assets.Blood:Clone()
b.Parent = p
b:Emit(20)
task.delay(1.5, pcall, game.Destroy, p)
end
end
hum.Parent:BreakJoints()
else
hum.Parent:BreakJoints()
for i, v in next, hum.Parent:GetChildren() do
if(v:IsA("BasePart"))then
v.Color = Color3.new(0,0,0)
assets.Fire:Clone().Parent = v
local s = Instance.new("Sound", v)
s.SoundId = "rbxassetid://9068935533"
s.Looped = true
s.Volume = .25
s:Play()
end
end
end
end
end)
end
local function cleave()
attacking = true
playAnimation("cleave")
task.wait(.5)
mangatext("Cleave.")
attacking = false
local size = not domain and 8 or 20
local cle = assets.Cleave:Clone()
cle.Parent = character
cle.Size = Vector3.one*size
cle.CFrame = root.CFrame*CFrame.new(0,0,-size/2)
for i, v in next, cle:GetChildren() do
v.Color = grayscaleColor(ColorSequence.new(Color3.new(.2+math.random(), 0, 0)))
v.Enabled = false
v:Emit(10)
end
task.delay(.3, pcall, game.Destroy, cle)
for i = 1, 3 do
sound(cle, 6282561520, math.random(90, 110)/100, math.random(90, 110)/100)
end
local slices = {}
for i = 1, 6 do
local slice = Instance.new("Part")
slice.Size = Vector3.new(size, .5, size)
slice.CFrame = cle.CFrame * CFrame.Angles(0,0,math.random(0, 360))
table.insert(slices, slice)
end
local damaged = {}
local aoe = workspace:GetPartBoundsInBox(cle.CFrame, cle.Size)
for i, v in next, aoe do
task.spawn(pcall, function()
if(v:FindFirstAncestorOfClass("Model") and not v:IsDescendantOf(character) and v:FindFirstAncestorOfClass("Model"):FindFirstChildOfClass("Humanoid") and not damaged[v:FindFirstAncestorOfClass("Model"):FindFirstChildOfClass("Humanoid")])then
if(v:FindFirstAncestorOfClass("Model"):FindFirstChildOfClass("Humanoid").Health > v:FindFirstAncestorOfClass("Model"):FindFirstChildOfClass("Humanoid").MaxHealth/3)then
damage(v:FindFirstAncestorOfClass("Model"):FindFirstChildOfClass("Humanoid"), 0, 3)
damaged[v:FindFirstAncestorOfClass("Model"):FindFirstChildOfClass("Humanoid")] = true
else
damage(v:FindFirstAncestorOfClass("Model"):FindFirstChildOfClass("Humanoid"), 0, 1)
local parts = game:GetService("GeometryService"):SubtractAsync(v, slices, {
CollisionFidelity = Enum.CollisionFidelity.Default,
RenderFidelity = Enum.RenderFidelity.Automatic,
FluidFidelity = Enum.FluidFidelity.Automatic,
SplitApart = true
})
for _, a in next, parts do
a.Parent = v.Parent
a.Anchored = false
a.CanCollide = true
a.UsePartColor = true
end
v:Destroy()
end
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
local parts = game:GetService("GeometryService"):SubtractAsync(v, slices, {
CollisionFidelity = Enum.CollisionFidelity.Default,
RenderFidelity = Enum.RenderFidelity.Automatic,
FluidFidelity = Enum.FluidFidelity.Automatic,
SplitApart = true
})
for _, a in next, parts do
a.Parent = v.Parent
a.Anchored = false
a.CanCollide = true
a.UsePartColor = true
end
v:Destroy()
end
end)
end
end
local function dismantle()
attacking = true
playAnimation("dismantle")
task.wait(.7)
mangatext("Dismantle.")
sound(root, sounds.Cleave, not domain and 8 or 10, 1)
local size = 20
if(not domain)then
local cle = assets.Cleave:Clone()
cle.Parent = character
cle.Size = Vector3.one*size
cle.CFrame = root.CFrame
local speed = 100
local con = game:GetService("RunService").Heartbeat:Connect(function(dt)
speed = speed/(1+1/120)
cle.CFrame *= CFrame.new(0,0,(-speed/60)*(60*dt))
end)
task.spawn(function()
repeat
task.wait(.1)
local damaged = {}
local aoe = workspace:GetPartBoundsInRadius(cle.Position, size)
for i, v in next, aoe do
pcall(function()
if(v:FindFirstAncestorOfClass("Model") and v:FindFirstAncestorOfClass("Model") ~= character and v:FindFirstAncestorOfClass("Model"):FindFirstChildOfClass("Humanoid") and not damaged[v:FindFirstAncestorOfClass("Model"):FindFirstChildOfClass("Humanoid")])then
damage(v:FindFirstAncestorOfClass("Model"):FindFirstChildOfClass("Humanoid"), 12)
damaged[v:FindFirstAncestorOfClass("Model"):FindFirstChildOfClass("Humanoid")] = true
end
end)
end
until not cle:IsDescendantOf(workspace)
end)
local doing = true
task.spawn(function()
repeat
local ray = workspace:Raycast(cle.Position, Vector3.new(0,-size, 0), params)
if(ray)then
pcall(function()
local dirt = assets.DirtFloor:Clone()
dirt.Position = ray.Position
dirt.Size = Vector3.new(size*1.3, 0, size*1.3)
dirt.Orientation += Vector3.new(0,math.random(-360, 360),0)
dirt.Decal.Color3 = ray.Instance.Color
dirt.Parent = character
task.delay(1, function()
pcall(function()
game:GetService("TweenService"):Create(dirt.Decal, TweenInfo.new(1), {
Transparency = 1,
Color3 = Color3.new()
}):Play()
end)
task.delay(1, pcall, game.Destroy, dirt)
end)
end)
end
sound(cle, 5989940988, math.random(90, 110)/100, math.random(90, 110)/100)
sound(cle, 6282561520, math.random(90, 110)/100, math.random(90, 110)/100)
task.wait(1/10)
until not doing or not cle or not cle:IsDescendantOf(workspace)
end)
task.delay(2, function()
doing = false
con:Disconnect()
for i, v in next, cle:GetDescendants() do
pcall(function()
v.Enabled = false
end)
end
task.wait(.3)
pcall(game.Destroy, cle)
end)
else
local damaged = {}
local aoe = workspace:GetPartBoundsInRadius(character.domaineff.Shrine:GetPivot().Position, domainrange)
for i, v in next, aoe do
task.spawn(pcall, function()
if(v:FindFirstAncestorOfClass("Model") and v:FindFirstAncestorOfClass("Model") ~= character and v:FindFirstAncestorOfClass("Model"):FindFirstChildOfClass("Humanoid") and not damaged[v:FindFirstAncestorOfClass("Model"):FindFirstChildOfClass("Humanoid")])then
damaged[v:FindFirstAncestorOfClass("Model"):FindFirstChildOfClass("Humanoid")] = true
for i = 1, 20 do
local cle = assets.Cleave:Clone()
cle.Parent = v:FindFirstAncestorOfClass("Model")
cle.Size = Vector3.one*size
cle.CFrame = v.CFrame
for i, v in next, cle:GetChildren() do
v.Enabled = false
v:Emit(10)
end
sound(cle, 5989940988, math.random(90, 110)/100, math.random(90, 110)/100)
sound(cle, 6282561520, math.random(90, 110)/100, math.random(90, 110)/100)
task.delay(.5, pcall, game.Destroy, cle)
damage(v:FindFirstAncestorOfClass("Model"):FindFirstChildOfClass("Humanoid"), 1)
task.wait()
end
end
end)
end
end
attacking = false
end
local function dismantleair()
attacking = true
sound(root, 4571259077, 3, 1)
local bodypos = Instance.new("BodyPosition", root)
bodypos.Position = root.Position + Vector3.new(0, 10, 0) + (root.CFrame.lookVector*-30)
bodypos.MaxForce = Vector3.one*math.huge
task.delay(.9, pcall, game.Destroy, bodypos)
local anim = playAnimation("dismantleair")
task.wait(.3)
mangatext("Dismantle.")
sound(root, sounds.Cleave, not domain and 8 or 10, 1)
task.wait(.3)
sound(root, 6051772613, 2, math.random(90, 110)/100)
local part = Instance.new("Part")
part.Anchored = true
part.CanCollide = false
part.Size = Vector3.new(20, 30, 60)
part.CFrame = root.CFrame*CFrame.new(0,0,-part.Size.Z/2)
local aoe = workspace:GetPartBoundsInBox(part.CFrame, part.Size)
local damaged = {}
for i, v in next, aoe do
if(v:FindFirstAncestorOfClass("Model") and not v:IsDescendantOf(character) and v:FindFirstAncestorOfClass("Model"):FindFirstChildOfClass("Humanoid") and not damaged[v:FindFirstAncestorOfClass("Model"):FindFirstChildOfClass("Humanoid")])then
damage(v:FindFirstAncestorOfClass("Model"):FindFirstChildOfClass("Humanoid"), 0, 3)
pcall(function()
local slash = assets.Slash:Clone()
slash.CFrame = v.Parent:FindFirstChild("HumanoidRootPart").CFrame
slash.Parent = character
sound(slash, 7171761940, 3, math.random(90, 110)/100)
for i, v in next, slash:GetChildren() do
if(v:IsA("ParticleEmitter"))then
v:Emit(15)
end
end
task.delay(1, pcall, game.Destroy, slash)
end)
damaged[v:FindFirstAncestorOfClass("Model"):FindFirstChildOfClass("Humanoid")] = true
end
end
task.wait(anim.Length - .8)
sound(root, 268933841, 5, 1)
task.wait(.2)
attacking = false
end
local function spiderweb()
attacking = true
playAnimation("spiderweb")
mangatext("Spiderweb.")
task.wait(.3)
local size = not domain and 20 or 60
local cle = assets.Cleave:Clone()
cle.Parent = character
cle.Size = Vector3.one*size
cle.CFrame = root.CFrame
for i = 1, 5 do
for i = 1, 2 do
sound(cle, 6282561520, math.random(90, 110)/100, math.random(90, 110)/100)
end
for i, v in next, cle:GetChildren() do
pcall(function()
v.Color = grayscaleColor(ColorSequence.new(Color3.new(.2+math.random(), 0, 0)))
v.Enabled = false
v:Emit(10)
end)
end
local slice = Instance.new("Part")
slice.Size = Vector3.new(size, .5, size)
slice.CFrame = cle.CFrame * CFrame.Angles(math.random(0, 360), math.random(0, 360),math.random(0, 360))
local sliceaoe = workspace:GetPartBoundsInBox(slice.CFrame, slice.Size)
for i, v in next, sliceaoe do
task.spawn(pcall, function()
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
local parts = game:GetService("GeometryService"):SubtractAsync(v, {slice}, {
CollisionFidelity = Enum.CollisionFidelity.Default,
RenderFidelity = Enum.RenderFidelity.Automatic,
FluidFidelity = Enum.FluidFidelity.Automatic,
SplitApart = true
})
for _, a in next, parts do
a.Parent = v.Parent
a.Anchored = false
a.CanCollide = true
a.UsePartColor = true
end
v:Destroy()
end
end)
end
local damaged = {}
local aoe = workspace:GetPartBoundsInBox(cle.CFrame, cle.Size)
for i, v in next, aoe do
task.spawn(pcall, function()
if(v:FindFirstAncestorOfClass("Model") and not v:IsDescendantOf(character) and v:FindFirstAncestorOfClass("Model"):FindFirstChildOfClass("Humanoid") and not damaged[v:FindFirstAncestorOfClass("Model"):FindFirstChildOfClass("Humanoid")])then
if(v:FindFirstAncestorOfClass("Model"):FindFirstChildOfClass("Humanoid").Health > v:FindFirstAncestorOfClass("Model"):FindFirstChildOfClass("Humanoid").MaxHealth/6)then
damage(v:FindFirstAncestorOfClass("Model"):FindFirstChildOfClass("Humanoid"), 0, 6)
damaged[v:FindFirstAncestorOfClass("Model"):FindFirstChildOfClass("Humanoid")] = true
else
damage(v:FindFirstAncestorOfClass("Model"):FindFirstChildOfClass("Humanoid"), 0, 1)
local parts = game:GetService("GeometryService"):SubtractAsync(v, {slice}, {
CollisionFidelity = Enum.CollisionFidelity.Default,
RenderFidelity = Enum.RenderFidelity.Automatic,
FluidFidelity = Enum.FluidFidelity.Automatic,
SplitApart = true
})
for _, a in next, parts do
a.Parent = v.Parent
a.Anchored = false
a.CanCollide = true
a.UsePartColor = true
end
v:Destroy()
end
end
end)
end
task.wait(1/20)
end
task.delay(.3, pcall, game.Destroy, cle)
attacking = false
end
local function engrave()
local anim, endanim = playAnimation("engrave", true)
local bodypos = Instance.new("BodyPosition", root)
bodypos.Position = root.Position + Vector3.new(0, 10, 0)
bodypos.MaxForce = Vector3.one*math.huge
task.wait(1)
mangatext("Engrave.", Color3.new(.6, 0, 0))
task.wait(1)
local size = 0
local cle = assets.Cleave:Clone()
cle.Parent = character
cle.Size = Vector3.one*size
cle.CFrame = root.CFrame
for i = 1, 60 do
size += not domain and 1.25 or 2.5
cle.Size = Vector3.one*size
for i = 1, 2 do
sound(cle, 6282561520, math.random(90, 110)/100, math.random(90, 110)/100)
end
for i, v in next, cle:GetChildren() do
pcall(function()
v.Enabled = false
v:Emit(10)
end)
end
local slice = Instance.new("Part")
slice.Size = Vector3.new(size, .5, size)
slice.CFrame = cle.CFrame * CFrame.Angles(math.random(0, 360), math.random(0, 360),math.random(0, 360))
local sliceaoe = workspace:GetPartBoundsInBox(slice.CFrame, slice.Size)
for i, v in next, sliceaoe do
task.spawn(pcall, function()
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
local parts = game:GetService("GeometryService"):SubtractAsync(v, {slice}, {
CollisionFidelity = Enum.CollisionFidelity.Default,
RenderFidelity = Enum.RenderFidelity.Automatic,
FluidFidelity = Enum.FluidFidelity.Automatic,
SplitApart = true
})
for _, a in next, parts do
a.Parent = v.Parent
a.Anchored = false
a.CanCollide = true
a.UsePartColor = true
end
v:Destroy()
end
end)
end
local damaged = {}
local aoe = workspace:GetPartBoundsInBox(cle.CFrame, cle.Size)
for i, v in next, aoe do
task.spawn(pcall, function()
if(v:FindFirstAncestorOfClass("Model") and not v:IsDescendantOf(character) and v:FindFirstAncestorOfClass("Model"):FindFirstChildOfClass("Humanoid") and not damaged[v:FindFirstAncestorOfClass("Model"):FindFirstChildOfClass("Humanoid")])then
if(v:FindFirstAncestorOfClass("Model"):FindFirstChildOfClass("Humanoid").Health > v:FindFirstAncestorOfClass("Model"):FindFirstChildOfClass("Humanoid").MaxHealth/10)then
damage(v:FindFirstAncestorOfClass("Model"):FindFirstChildOfClass("Humanoid"), 0, 10)
damaged[v:FindFirstAncestorOfClass("Model"):FindFirstChildOfClass("Humanoid")] = true
else
damage(v:FindFirstAncestorOfClass("Model"):FindFirstChildOfClass("Humanoid"), 0, 1)
local parts = game:GetService("GeometryService"):SubtractAsync(v, {slice}, {
CollisionFidelity = Enum.CollisionFidelity.Default,
RenderFidelity = Enum.RenderFidelity.Automatic,
FluidFidelity = Enum.FluidFidelity.Automatic,
SplitApart = true
})
for _, a in next, parts do
a.Parent = v.Parent
a.Anchored = false
a.CanCollide = true
a.UsePartColor = true
end
v:Destroy()
end
end
end)
end
task.wait(1/20)
end
task.wait(.5)
bodypos:Destroy()
endanim()
task.delay(.3, pcall, game.Destroy, cle)
end
local function findFloorPosition(startingPosition)
local raycastParams = RaycastParams.new()
raycastParams.FilterDescendantsInstances = {character}
local raycastResult = workspace:Raycast(startingPosition + Vector3.new(0,0,0), Vector3.new(0, -100000000000000000, 0),raycastParams)
if raycastResult then
return raycastResult.Position
else
return nil
end
end
local function divineflame()
attacking = true
local mus = Instance.new("Sound", root)
mus.Volume = 0
mus.SoundId = "rbxassetid://"..sounds.ThunderClap
mus.Looped = true
mus.TimePosition = 21
mus:Play()
game:GetService("TweenService"):Create(mus, TweenInfo.new(2), {
Volume = 2
}):Play()
local f = Instance.new("Folder", character)
humanoid.WalkSpeed = 0
local animationplay = playAnimation("firearrow")
sound(root, sounds.TestOfFirepower, 8, 1)
mangatext("Lets have a contest, of firepower")
local rootStartCF = root.CFrame
local skillAssets = assets.FireArrow:Clone()
local groundpart = Instance.new("Part", f)
groundpart.CFrame = root.CFrame
groundpart.Transparency = 1
groundpart.CanCollide = false
groundpart.Anchored = true
local floorpos = findFloorPosition(groundpart.Position)
local RHand = skillAssets.RHand:Clone()
local LHand = skillAssets.LHand:Clone()
local impactf = skillAssets.impactf:Clone()
impactf.Parent = character
local spar = VFXHelp.EmitAndRemove(impactf,root.CFrame,{maxFloorDist = 20})
local charg = skillAssets.impactf:Clone()
charg.Parent = f
charg.CFrame = spar.CFrame
VFXHelp.EnableVFX(charg)
task.delay(.95, function()
RHand.Parent = f
LHand.Parent = f
local Weld = Instance.new("Weld",RHand)
Weld.Part0 = character["Right Arm"]
Weld.Part1 = RHand
Weld.C0 = CFrame.new(0,-1,0)
local Weld = Instance.new("Weld",LHand)
Weld.Part0 = character["Left Arm"]
Weld.Part1 = LHand
Weld.C0 = CFrame.new(0,-1,0)
for i,v in pairs(LHand.At0:GetDescendants()) do
if v:IsA("Beam") then
v.Attachment0 = LHand.At0
v.Attachment1 = RHand.At1
end
end
CameraEffect.Flash({request = "LightFlash", tim = .02})
VFXHelp.EmitFromModel(RHand.Main)
local firesfx = Instance.new("Sound")
firesfx.Volume = 8
firesfx.SoundId = "rbxassetid://"..sounds.Clap
firesfx.Parent = root
firesfx:Play()
repeat task.wait() until firesfx.IsLoaded
game:GetService("Debris"):AddItem(firesfx,firesfx.TimeLength)
end)
task.delay(3.983, function()
local chargedsfx = Instance.new("Sound")
chargedsfx.Volume = 8
chargedsfx.SoundId = "rbxassetid://"..sounds.ArrowCharged
chargedsfx.Parent = root
chargedsfx:Play()
repeat task.wait() until chargedsfx.IsLoaded
game:GetService("Debris"):AddItem(chargedsfx,chargedsfx.TimeLength)
end)
task.delay(4.817, function()
local Wind = skillAssets.Wind:Clone()
Wind.Parent = f
Wind.Root.wind:Play()
PartJoiner.AddMotor6D(root,Wind.Root,CFrame.new(0,0,0))
rem:FireClient(owner, "ShakeCamera", "Bump")
CameraEffect.Flash({request = "orange", tim = .05})
CameraEffect.Flash({request = "LightFlash", tim = .02})
CameraEffect.Blur({wai_till_normalFov = .15, size = 40, tim1 = .2, tim2 = .4})
local Arrow = skillAssets.Arrow:Clone()
Arrow.Parent = f
Arrow.Sound:Play()
local Weld = Instance.new("Weld",Arrow)
Weld.Part0 = root
Weld.Part1 = Arrow
Weld.C0 = CFrame.new(1,0,-3)
BaseEffects.GroundExpandV2(CFrame.new(floorpos) * CFrame.new(0,10,0),5,10,{expandTime = 0.1,destroyTime = 2})
groundpart:Destroy()
task.wait(1)
sound(root, sounds.Open, 4, 1)
mangatext("Open.", Color3.new(.8, .6, 0), -3)
end)
task.delay(8.333, function()
VFXHelp.DisableVFX(charg)
local shotsfx = Instance.new("Sound")
shotsfx.Volume = 8
shotsfx.SoundId = "rbxassetid://"..sounds.ArrowSwoosh
shotsfx.Parent = root
shotsfx:Play()
task.spawn(function()
repeat task.wait() until shotsfx.IsLoaded
game:GetService("Debris"):AddItem(shotsfx,shotsfx.TimeLength)
end)
CameraEffect.Flash({request = "Dark 50%", tim = .05})
CameraEffect.Flash({request = "LightFlash", tim = .02})
CameraEffect.Blur({wai_till_normalFov = .15, size = 40, tim1 = .2, tim2 = .4})
RHand:Destroy()
LHand:Destroy()
f.Wind:Destroy()
f.Arrow:Destroy()
BaseEffects.GroundExpandV2(CFrame.new(floorpos) * CFrame.new(0,10,0),10,20,{baseHeight = 3,baseLength = 7,expandTime = 0.1,destroyTime = 2})
local slamef = VFXHelp.EmitAndRemove(skillAssets.upex,CFrame.new(floorpos))
rem:FireClient(owner, "ShakeCamera", "Bump")
local Range = 500
local DefaultTravelTime = 1
local TravelTime
local Destination
local Distance
--
local Projectile = skillAssets.Arrow:Clone()
Projectile.Parent = f
Projectile.CFrame = root.CFrame
local Origin = root.Position
local Direction = (root.CFrame*CFrame.new(0,0,-Range)).Position - Origin
local RayParam = RaycastParams.new()
RayParam.FilterDescendantsInstances = {character}
RayParam.FilterType = Enum.RaycastFilterType.Exclude
local result = workspace:Raycast(Origin, Direction, RayParam)
if result then --if raycast hit
Distance = (root.Position - result.Position).Magnitude
TravelTime = Distance / (Range * (1/ DefaultTravelTime))
Destination = result.Position
elseif not result then -- if raycast didn't hit
Distance = Range
TravelTime = DefaultTravelTime
Destination = root.CFrame * CFrame.new(0,0,-Range).Position
end
local Tween = game:GetService("TweenService"):Create(Projectile,TweenInfo.new(TravelTime, Enum.EasingStyle.Linear),
{
["Position"] = Destination
}
)
Tween:Play()
Tween.Completed:Connect(function(playbackstate)
if playbackstate == Enum.PlaybackState.Completed then
local floorpos1 = findFloorPosition(Projectile.Position)
if(not floorpos1)then return end
local Ball = skillAssets.Ball:Clone()
Ball.Parent = f
Ball.VFX.CFrame = Projectile.CFrame * CFrame.new(0,10,0)
Ball.VFX.Rotation = Vector3.new(0,0,90)
local BWind = skillAssets.WindBig:Clone()
BWind.Parent = f
BWind.bottomstuff.CFrame = Projectile.CFrame * CFrame.new(0,-3,0)
BWind.bottomstuff.Rotation = Vector3.new(0,0,90)
local ex1 = Instance.new("Sound")
ex1.Volume = 2
ex1.SoundId = "rbxassetid://"..sounds.Explosion1
ex1.Parent = f
ex1:Play()
BaseEffects.GroundExpandV2(CFrame.new(floorpos1) * CFrame.new(0,10,0),20,20,{baseHeight = 8,baseLength = 20,expandTime = 0.3,destroyTime = 2})
CameraEffect.Flash({request = "Dark 50%", tim = .05})
CameraEffect.Flash({request = "LightFlash", tim = .02})
rem:FireClient(owner, "ShakeCamera", "Bump")
local hitcontent = workspace:GetPartBoundsInBox(Ball.VFX.CFrame, Vector3.new(65,65,65))
local hitlist = {}
for _,v in pairs(hitcontent) do
if v.Parent:FindFirstChild("Humanoid") and v.Parent ~= character then
if not hitlist[v.Parent.Humanoid] then
hitlist[v.Parent.Humanoid] = true
damage(v.Parent.Humanoid, 27, nil, true)
end
end
end
task.wait(2)
Ball:Destroy()
CameraEffect.Blur({wai_till_normalFov = .3, size = 40, tim1 = .2, tim2 = .4})
local Beam = skillAssets.Beam:Clone()
Beam.Position = floorpos1
Beam.Parent = f
game:GetService("TweenService"):Create(Beam.End, TweenInfo.new(0, Enum.EasingStyle.Linear, Enum.EasingDirection.In), {Position = Beam.Position + Vector3.new(0,300,0)}):Play()
local Cylinder = skillAssets.cylinder:Clone()
Cylinder.Parent = f
Cylinder.CFrame = Beam.CFrame * CFrame.new(150,0,0)
Cylinder.Rotation = Vector3.new(0,180,0)
game:GetService("TweenService"):Create(Cylinder, TweenInfo.new(.3, Enum.EasingStyle.Linear, Enum.EasingDirection.In), {Size = Vector3.new(60,300,60)}):Play()
VFXHelp.EnableVFX(Cylinder)
VFXHelp.EnableVFX(Beam)
BaseEffects.GroundExpandV2(CFrame.new(floorpos1) * CFrame.new(0,10,0),50,20,{baseHeight = 15,baseLength = 50,expandTime = 0.3,destroyTime = 6})
local ex2 = Instance.new("Sound")
ex2.Volume = 3
ex2.SoundId = "rbxassetid://"..sounds.Explosion2
ex2.Parent = f
ex2:Play()
task.spawn(function()
repeat task.wait() until ex2.IsLoaded
game:GetService("Debris"):AddItem(ex2,ex2.TimeLength)
end)
rem:FireClient(owner, "ShakeCamera", "Explosion")
Projectile:Destroy()
local hitcontent = workspace:GetPartBoundsInBox(Cylinder.CFrame, Vector3.new(70,300,70))
local hitlist = {}
for _,v in pairs(hitcontent) do
if v.Parent:FindFirstChild("Humanoid") and v.Parent ~= character then
if not hitlist[v.Parent.Humanoid] then
hitlist[v.Parent.Humanoid] = true
if(not domain)then
task.spawn(function()
for i = 1, 3 do
damage(v.Parent.Humanoid, 27, nil, true)
task.wait(.7)
end
end)
else
v.Parent:BreakJoints()
end
end
end
end
task.wait(2)
for i,v in pairs(Beam:GetDescendants()) do
if v:IsA("Beam") then
game:GetService("TweenService"):Create(v,TweenInfo.new(1),{Width0 = 0,Width1 = 0}):Play()
end
end
for i,v in pairs(BWind:GetDescendants()) do
if v:IsA("Beam") then
game:GetService("TweenService"):Create(v,TweenInfo.new(1),{Width0 = 0,Width1 = 0}):Play()
elseif v:IsA("PointLight") then
game:GetService("TweenService"):Create(v,TweenInfo.new(1),{Brightness = 0}):Play()
end
end
game:GetService("TweenService"):Create(Cylinder,TweenInfo.new(1),{Transparency = 1}):Play()
VFXHelp.DisableVFX(Cylinder)
VFXHelp.DisableVFX(Beam)
VFXHelp.DisableVFX(BWind)
game:GetService("Debris"):AddItem(Beam,3)
game:GetService("Debris"):AddItem(Cylinder,3)
game:GetService("Debris"):AddItem(BWind,3)
task.delay(5, pcall, game.Destroy, f)
task.wait(5)
game:GetService("TweenService"):Create(mus, TweenInfo.new(2), {
Volume = 0
}):Play()
task.delay(2, pcall, game.Destroy, mus)
end
end)
end)
task.wait(animationplay.Length)
humanoid.WalkSpeed = walkspeed
attacking = false
end
local fearframes = {
[1] = "http://www.roblox.com/asset/?id=100669883057211",
[2] = "http://www.roblox.com/asset/?id=98146842737958",
[3] = "http://www.roblox.com/asset/?id=134078983312898",
[4] = "http://www.roblox.com/asset/?id=123216692524077",
[5] = "http://www.roblox.com/asset/?id=125955042773370",
[6] = "http://www.roblox.com/asset/?id=109181203041935",
[7] = "http://www.roblox.com/asset/?id=90739573094350",
[8] = "http://www.roblox.com/asset/?id=130643257792933",
[9] = "http://www.roblox.com/asset/?id=77566364110013",
[10] = "http://www.roblox.com/asset/?id=136027809275308",
[11] = "http://www.roblox.com/asset/?id=71613591246780",
[12] = "http://www.roblox.com/asset/?id=140545576313341",
[13] = "http://www.roblox.com/asset/?id=81082742636518",
[14] = "http://www.roblox.com/asset/?id=93357445320302",
[15] = "http://www.roblox.com/asset/?id=137768891493696",
[16] = "http://www.roblox.com/asset/?id=133251095642604"
}
local function malevolentshrine()
attacking = true
if(not domain)then
domain = true
humanoid.WalkSpeed = 0
local f = Instance.new("Folder", character)
f.Name = "domaineff"
sound(root, 7817341182, 1, 1)
local anim, endanim = playAnimation("domain", true)
mangatext("Domain expansion.")
local malevolentshrine = assets.MalevolentShrine:Clone()
local range = malevolentshrine.Domain:Clone()
range.Anchored = true
range.Size = Vector3.zero
range.CanCollide = false
range.CanQuery = false
range.Material = Enum.Material.ForceField
range.CFrame = root.CFrame
range.CastShadow = false
range.Transparency = 0
range.Reflectance = .2
range:ClearAllChildren()
range.Parent = character
game:GetService("TweenService"):Create(range, TweenInfo.new(1, Enum.EasingStyle.Linear), {
Size = Vector3.one*domainrange*2
}):Play()
task.wait(1)
repeat
task.wait()
domainrange += 3
range.Size = Vector3.one*domainrange*2
until not keysdown["b"] or domainrange >= 1024
pcall(game.Destroy, range)
local p = Instance.new("Part", character)
p.CFrame = root.CFrame
p.Anchored = true
p.CanCollide = false
p.Transparency = 1
sound(p, 7817336081, 1, 1)
task.delay(.5, pcall, game.Destroy, p)
task.delay(.5, function()
local p = Instance.new("Part", character)
p.CFrame = root.CFrame
p.Anchored = true
p.CanCollide = false
p.Transparency = 1
sound(p, 8181034930, 4, 1)
task.delay(.5, pcall, game.Destroy, p)
end)
local aoe = workspace:GetPartBoundsInRadius(root.Position, domainrange)
local done = {}
for _, p in next, aoe do
if(p:FindFirstAncestorOfClass("Model"))then
local plr = game:GetService("Players"):GetPlayerFromCharacter(p:FindFirstAncestorOfClass("Model"))
if(plr and not done[plr])then
done[plr] = true
task.spawn(pcall, function()
sound(workspace, 7817336081, 3, 1)
task.delay(.5, function()
sound(workspace, 8181034930, 4, 1)
end)
local s = Instance.new("ScreenGui", plr:FindFirstChildOfClass("PlayerGui"))
s.IgnoreGuiInset = true
s.ResetOnSpawn = false
local f = Instance.new("Frame", s)
f.Size = UDim2.fromScale(1,1)
f.BackgroundColor3 = Color3.new(0,0,0)
f.BackgroundTransparency = 1
game:GetService("TweenService"):Create(f, TweenInfo.new(.5), {
BackgroundTransparency = 0
}):Play()
task.wait(.5)
for i, v in next, fearframes do
local f = Instance.new("ImageLabel", s)
f.Size = UDim2.fromScale(1,1)
f.BackgroundColor3 = Color3.new(0,0,0)
f.BackgroundTransparency = 1
f.Image = v
f.Name = i
f.ZIndex = -1
end
task.wait(.5)
for i, v in next, fearframes do
if(i ~= 1)then
s[tostring(i - 1)]:Destroy()
end
s[tostring(i)].ZIndex = 1
task.wait(1/10)
end
s[tostring(#fearframes)]:Destroy()
task.wait(1)
game:GetService("TweenService"):Create(f, TweenInfo.new(.5), {
BackgroundTransparency = 1
}):Play()
task.delay(.5, pcall, game.Destroy, s)
end)
end
end
end
task.wait(1.5)
humanoid.WalkSpeed = walkspeed
endanim()
local shrine = malevolentshrine.Shrine
shrine:PivotTo(root.CFrame*CFrame.new(0,7,0))
character:PivotTo(shrine:GetPivot()*CFrame.new(0,30,0))
shrine.Parent = f
for i, v in next, haori do
v.Transparency = 1
end
task.delay(4, function()
mangatext("Malevolent Shrine!", Color3.new(.8, 0, 0), nil, 5)
end)
local ball = malevolentshrine.Domain:Clone()
ball.Size = Vector3.one*(domainrange*2)
ball.Anchored = true
ball.CanCollide = false
ball.CastShadow = false
ball.CFrame = shrine:GetPivot()
ball.Parent = shrine
local ball2 = malevolentshrine.Domain
ball2.Size = Vector3.one*(domainrange*2)
ball2.Material = Enum.Material.ForceField
ball2.Transparency = .749
ball2:ClearAllChildren()
ball2.Anchored = true
ball2.CanCollide = false
ball2.CastShadow = true
ball2.CFrame = shrine:GetPivot()
ball2.Reflectance = 0
ball2.Parent = shrine
task.wait(4)
local muspart = Instance.new("Part", character)
muspart.Name = "domain"
muspart.Anchored = true
muspart.Size = ball.Size
muspart.Shape = "Ball"
muspart.CanCollide = false
muspart.CanQuery = false
muspart.CFrame = ball.CFrame
muspart.Transparency = 1
local music = Instance.new("Sound", muspart)
music.Volume = 10
music.Pitch = 0.2
music.RollOffMaxDistance = 200
music.SoundId = "rbxassetid://"..sounds.MalevolentShrine
music.Looped = true
music:Play()
local floor = malevolentshrine.Ground
floor.CFrame = shrine:GetPivot()*CFrame.new(0, -10, 0)
floor.Size = Vector3.new(domainrange*2, 0, domainrange*2)
floor.Parent = shrine
local slashes = malevolentshrine.Slashes
slashes.Size = Vector3.new((domainrange*2)-20, domainrange/2, (domainrange*2)-20)
slashes.CFrame = shrine:GetPivot()
slashes.Parent = shrine
task.spawn(function()
repeat
task.wait(.2)
local slice = Instance.new("Part")
slice.Size = Vector3.new(domainrange, .5, domainrange)
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))
local sliceaoe = workspace:GetPartBoundsInBox(slice.CFrame, slice.Size)
for i, v in next, sliceaoe do
task.spawn(pcall, function()
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
local parts = game:GetService("GeometryService"):SubtractAsync(v, {slice}, {
CollisionFidelity = Enum.CollisionFidelity.Default,
RenderFidelity = Enum.RenderFidelity.Automatic,
FluidFidelity = Enum.FluidFidelity.Automatic,
SplitApart = true
})
for _, a in next, parts do
a.Parent = v.Parent
a.Anchored = false
a.CanCollide = true
a.UsePartColor = true
end
v:Destroy()
end
end)
end
local damaged = {}
local aoe = workspace:GetPartBoundsInRadius(shrine:GetPivot().Position, domainrange)
for i, v in next, aoe do
pcall(function()
if(v:FindFirstAncestorOfClass("Model") and v:FindFirstAncestorOfClass("Model") ~= character and v:FindFirstAncestorOfClass("Model"):FindFirstChildOfClass("Humanoid") and not damaged[v:FindFirstAncestorOfClass("Model"):FindFirstChildOfClass("Humanoid")])then
damage(v:FindFirstAncestorOfClass("Model"):FindFirstChildOfClass("Humanoid"), 0, domainrange/8)
local cl = assets.Cleave:Clone()
cl.CFrame = v:FindFirstAncestorOfClass("Model"):FindFirstChildWhichIsA("BasePart").CFrame
cl.Parent = v:FindFirstAncestorOfClass("Model")
cl.Size = Vector3.one*4
for i, v in next, cl:GetChildren() do
v.Enabled = false
v:Emit(5)
end
sound(cl, 5989940988, math.random(90, 110)/100, math.random(90, 110)/100)
sound(cl, 6282561520, math.random(90, 110)/100, math.random(90, 110)/100)
task.delay(.5, pcall, game.Destroy, cl)
damaged[v:FindFirstAncestorOfClass("Model"):FindFirstChildOfClass("Humanoid")] = true
end
end)
end
until not domain
end)
attacking = false
else
attacking = false
domain = false
pcall(function()
local p = Instance.new("Part", character)
p.CFrame = character.domaineff.Shrine:GetPivot()
p.Anchored = true
p.CanCollide = false
p.Transparency = 1
sound(p, sounds.ShrineEnd, 10, 1)
task.wait()
p:Destroy()
local aoe = workspace:GetPartBoundsInRadius(character.domaineff.Shrine:GetPivot().Position, domainrange)
local done = {}
for _, p in next, aoe do
if(p:FindFirstAncestorOfClass("Model"))then
local plr = game:GetService("Players"):GetPlayerFromCharacter(p:FindFirstAncestorOfClass("Model"))
if(plr and not done[plr])then
done[plr] = true
task.spawn(pcall, function()
sound(workspace, sounds.ShrineEnd, 2, 1)
local s = Instance.new("ScreenGui", plr:FindFirstChildOfClass("PlayerGui"))
s.IgnoreGuiInset = true
s.ResetOnSpawn = false
local f = Instance.new("Frame", s)
f.Size = UDim2.fromScale(2, 2)
f.BackgroundColor3 = Color3.new(0,0,0)
f.BackgroundTransparency = 1
game:GetService("TweenService"):Create(f, TweenInfo.new(.5), {
BackgroundTransparency = 0
}):Play()
task.wait(1)
game:GetService("TweenService"):Create(f, TweenInfo.new(.5), {
BackgroundTransparency = 1
}):Play()
task.delay(.5, pcall, game.Destroy, s)
end)
end
end
end
local origrange = domainrange
domainrange = basedomainrange
local pos = character.domaineff.Shrine:GetPivot().Position
task.wait(.5)
character.domaineff:Destroy()
for i = 1, math.random(domainrange/10, domainrange/2) do
local a = Instance.new("WedgePart", character)
a.Position = pos+Vector3.new(math.random(-origrange,origrange),math.random(-origrange,origrange),math.random(-origrange,origrange))
a.Orientation = Vector3.new(math.random(-360,360),math.random(-360,360),math.random(-360,360))
a.Anchored = false
a.CanCollide = false
a.Material = Enum.Material.Glass
a.Size = Vector3.new(math.random(1, origrange/30),math.random(1, origrange/3),math.random(1,origrange/3))
a.Color = Color3.new(1,1,1)
a.Transparency = 0.6
a.Color = Color3.new(1,0,0)
a.AssemblyAngularVelocity = a.Orientation/8
assets.MalevolentShrine.Domain.Highlight:Clone().Parent = a
game:GetService('Debris'):AddItem(a,5)
end
end)
for i, v in next, haori do
v.Transparency = 0
end
game:GetService("TweenService"):Create(character.domain.Sound, TweenInfo.new(1), {
Volume = 0
}):Play()
task.delay(1, pcall, game.Destroy, character.domain)
end
end
local function growback(affectedlimb)
affectedlimb.Transparency = 1
for i, v in next, affectedlimb:GetDescendants() do
if(v:IsA("BasePart"))then
v.Transparency = 1
end
end
pcall(function()
character.Torso[affectedlimb.Name.." sizzle"].Sound:Stop()
end)
pcall(function()
character.Torso[affectedlimb.Name.." sizzle"].Steam.Enabled = false
end)
pcall(function()
character.Torso[affectedlimb.Name.." sizzle"].Blood.Enabled = false
end)
local muscle = Instance.new("Part", affectedlimb)
muscle.Size = Vector3.zero
muscle.Color = grayscaleColor(Color3.new(.5, 0, 0))
muscle.CanCollide = false
muscle.Material = Enum.Material.Slate
sound(muscle, 6148096445, 1, math.random(90, 110)/100)
local w = Instance.new("Weld", muscle)
w.C0 = CFrame.new(0, -2, 0)
w.Part0 = muscle
w.Part1 = affectedlimb
game:GetService("TweenService"):Create(muscle, TweenInfo.new(.3, Enum.EasingStyle.Quint), {
Size = affectedlimb.Size - Vector3.one*.2
}):Play()
game:GetService("TweenService"):Create(w, TweenInfo.new(.3, Enum.EasingStyle.Quint), {
C0 = CFrame.new(0, -.1, 0)
}):Play()
task.wait(.3)
local skin = Instance.new("Part", affectedlimb)
skin.Size = Vector3.zero
skin.CanCollide = false
skin.Color = affectedlimb.Color
local w = Instance.new("Weld", skin)
w.C0 = CFrame.new(0, -2, 0)
w.Part0 = skin
w.Part1 = affectedlimb
game:GetService("TweenService"):Create(skin, TweenInfo.new(.3, Enum.EasingStyle.Quint), {
Size = affectedlimb.Size
}):Play()
game:GetService("TweenService"):Create(w, TweenInfo.new(.3, Enum.EasingStyle.Quint), {
C0 = CFrame.new(0, 0, 0)
}):Play()
task.wait(.3)
muscle:Destroy()
skin:Destroy()
affectedlimb.Transparency = 0
for i, v in next, affectedlimb:GetDescendants() do
if(v:IsA("BasePart"))then
v.Transparency = 0
end
end
end
local oldhp = 500
local limbbackups = {}
local limbwelds = {}
local shouldbethere = {
"Right Arm", "Left Arm", "Right Leg", "Left Leg"
}
local limbbackups = {
["Right Arm"] = assets.Character["Right Arm"]:Clone(),
["Left Arm"] = assets.Character["Left Arm"]:Clone(),
["Right Leg"] = assets.Character["Right Leg"]:Clone(),
["Left Leg"] = assets.Character["Left Leg"]:Clone(),
}
local limbwelds = {
["Right Arm"] = assets.Character["Torso"]["Right Shoulder"]:Clone(),
["Left Arm"] = assets.Character["Torso"]["Left Shoulder"]:Clone(),
["Right Leg"] = assets.Character["Torso"]["Right Hip"]:Clone(),
["Left Leg"] = assets.Character["Torso"]["Left Hip"]:Clone(),
}
local function rct(limb)
local lostlimb = nil
for i, v in next, shouldbethere do
if(not character:FindFirstChild(v))then
lostlimb = v
break
end
end
if(not lostlimb)then
for i, v in next, character:GetDescendants() do
if(v.Name == "RCT")then
v.Enabled = true
end
end
repeat
task.wait()
oldhp += 1
until not keysdown["e"]
for i, v in next, character:GetDescendants() do
if(v.Name == "RCT")then
v.Enabled = false
end
end
return
end
attacking = true
local lastc0 = {}
for i, v in next, character:GetDescendants() do
if(v:IsA("Motor6D"))then
lastc0[v] = v.C0
end
end
for i, v in next, animations do
pcall(function()
v:CancelInstant()
v:Stop()
end)
end
local cloned = limbbackups[lostlimb]:Clone()
cloned.Parent = character
local weld = limbwelds[lostlimb]:Clone()
pcall(game.Destroy, character["Torso"]:FindFirstChild(weld.Name))
weld.Part0 = character["Torso"]
weld.Part1 = cloned
weld.Parent = character["Torso"]
table.clear(haori)
for i, v in next, character:GetDescendants() do
if(v:IsA("BasePart") and v.Name == "Haori")then
table.insert(haori, v)
end
end
table.clear(playingAnimations)
local animgroup = animPlayer.CreateModuleGroup()
table.clear(animations)
for i, v in next, script.Animations:GetChildren() do
if(v.Name:find("rct "))then
animations[v.Name] = animPlayer.new(character, v)
continue
end
animations[v.Name] = animPlayer.new(character, v, animgroup)
end
for i, v in next, lastc0 do
pcall(function()
i.C0 = v
end)
end
if(animations["rct "..lostlimb])then
local anim = animations["rct "..lostlimb]
anim:Play()
task.delay(.8, function()
anim:Cancel()
end)
end
growback(cloned)
task.wait(.2)
attacking = false
end
local function worldcuttingslash()
attacking = true
humanoid.WalkSpeed = 0
playAnimation("worldcuttingslash")
sound(root, sounds.WCSStartup, 2, 1)
sound(root, sounds.WCSVoice, 3, 1)
for i, v in next, aura.Mark:GetChildren() do
v.Enabled = true
end
local h = Instance.new("Highlight", character)
h.FillColor = Color3.new(1,1,1)
h.OutlineColor = Color3.new(1,1,1)
h.FillTransparency = 1
h.OutlineTransparency = 1
task.wait(.3)
mangatext("Scale of the dragon.", nil, nil, .6)
mark(marks.scale)
game:GetService("TweenService"):Create(h, TweenInfo.new(.25,Enum.EasingStyle.Quint, Enum.EasingDirection.In, 0, true), {
FillTransparency = .5,
OutlineTransparency = 0
}):Play()
task.wait(.5)
mark(marks.recoil)
mangatext("Recoil.", nil, -3, .6, 0)
game:GetService("TweenService"):Create(h, TweenInfo.new(.25,Enum.EasingStyle.Quint, Enum.EasingDirection.In, 0, true), {
FillTransparency = .5,
OutlineTransparency = 0
}):Play()
task.wait(.5)
mark(marks.twin)
for i, v in next, aura.Mark:GetChildren() do
v.Enabled = false
end
mangatext("Twin meteors.", nil, nil, .6, -2)
game:GetService("TweenService"):Create(h, TweenInfo.new(.25,Enum.EasingStyle.Quint, Enum.EasingDirection.In, 0, true), {
FillTransparency = .5,
OutlineTransparency = 0
}):Play()
task.wait(.8)
mangatext("Dismantle.", nil, -3)
game:GetService("TweenService"):Create(h, TweenInfo.new(.6,Enum.EasingStyle.Quint, Enum.EasingDirection.In, 0, true), {
FillTransparency = .5,
OutlineTransparency = 0
}):Play()
task.delay(.6, pcall, game.Destroy, h)
task.wait(.6)
sound(root, sounds.WCS, 3, 1)
humanoid.WalkSpeed = walkspeed
attacking = false
local size = 1024
local splitter = Instance.new("Part")
splitter.Size = Vector3.new(size, .5, size)
splitter.CFrame = root.CFrame*CFrame.new(0,0,-size/2)*CFrame.Angles(0,0,math.rad(math.random(-45, 45)))
splitter.Anchored = true
splitter.CanCollide = false
local splitter2 = Instance.new("Part")
splitter2.Size = Vector3.new(size, .5, size)
splitter2.CFrame = root.CFrame*CFrame.new(0,0,-size/2)*CFrame.Angles(0,0,math.rad(math.random(-45, 45)))
splitter2.Anchored = true
splitter2.CanCollide = false
local aoe = MagnitudeAoe(splitter.CFrame, splitter.Size)
local aoe2 = MagnitudeAoe(splitter2.CFrame, splitter2.Size)
local aoe3 = workspace:GetPartBoundsInBox(splitter.CFrame, splitter.Size)
local aoe4 = workspace:GetPartBoundsInBox(splitter2.CFrame, splitter2.Size)
for i, v in next, aoe2 do
if(not table.find(aoe, v))then
table.insert(aoe, v)
end
end
for i, v in next, aoe4 do
if(not table.find(aoe3, v))then
table.insert(aoe3, v)
end
end
for i, v in next, aoe3 do
if(not table.find(aoe, v))then
table.insert(aoe, v)
end
end
local eff = splitter:Clone()
local h = Instance.new("Highlight", eff)
h.OutlineTransparency = 1
h.FillTransparency = 0
h.FillColor = Color3.new(1,1,1)
eff.Material = Enum.Material.Glass
eff.Size = Vector3.zero
eff.CFrame = CFrame.new(root.CFrame.Position)*splitter.CFrame.Rotation
eff.Parent = workspace
eff.Transparency = 5
eff.Reflectance = 1
game:GetService("TweenService"):Create(eff, TweenInfo.new(.5, Enum.EasingStyle.Quint), {
CFrame = splitter.CFrame,
Size = splitter.Size+Vector3.new(0,.5,0)
}):Play()
game:GetService("TweenService"):Create(eff, TweenInfo.new(2, Enum.EasingStyle.Quint), {
Transparency = 1
}):Play()
game:GetService("TweenService"):Create(h, TweenInfo.new(.5, Enum.EasingStyle.Quint), {
FillTransparency = 1
}):Play()
task.delay(1.2, pcall, game.Destroy, eff)
local eff = splitter2:Clone()
local h = Instance.new("Highlight", eff)
h.OutlineTransparency = 1
h.FillTransparency = 0
h.FillColor = Color3.new(1,1,1)
eff.Material = Enum.Material.Glass
eff.Size = Vector3.zero
eff.CFrame = CFrame.new(root.CFrame.Position)*splitter2.CFrame.Rotation
eff.Parent = workspace
eff.Transparency = 5
eff.Reflectance = 1
game:GetService("TweenService"):Create(eff, TweenInfo.new(.8, Enum.EasingStyle.Quint), {
CFrame = splitter2.CFrame,
Size = splitter2.Size+Vector3.new(0,.5,0)
}):Play()
game:GetService("TweenService"):Create(eff, TweenInfo.new(2, Enum.EasingStyle.Quint), {
Transparency = 1
}):Play()
game:GetService("TweenService"):Create(h, TweenInfo.new(.8, Enum.EasingStyle.Quint), {
FillTransparency = 1
}):Play()
task.delay(1.2, pcall, game.Destroy, eff)
for i, v in next, aoe do
if(v.Name:lower() ~= "baseplate" and v.Name:lower() ~= "base" and not v:IsDescendantOf(character))then
task.spawn(pcall, function()
local parts = game:GetService("GeometryService"):SubtractAsync(v, {splitter, splitter2}, {
CollisionFidelity = Enum.CollisionFidelity.Default,
RenderFidelity = Enum.RenderFidelity.Automatic,
FluidFidelity = Enum.FluidFidelity.Automatic,
SplitApart = true
})
for _, a in next, parts do
a.Parent = v.Parent
a.Anchored = false
a.CanCollide = true
a.UsePartColor = true
end
v:Destroy()
end)
end
end
task.wait(1)
splitter:Destroy()
end
local function flashstep()
attacking = true
sound(root, 1753619491, 2, math.random(80, 120)/100)
local function fade(b)
b.Anchored = true
b.CanCollide = false
b.Transparency = 0
b.Material = Enum.Material.Neon
b.Color = Color3.new(1,1,1)
game:GetService("TweenService"):Create(b, TweenInfo.new(.5), {
Transparency = 1,
Color = Color3.new()
}):Play()
task.delay(.5, pcall, game.Destroy, b)
end
for i, v in next, {"Left Arm", "Head", "Right Arm", "Right Leg", "Left Leg", "Torso"} do
if(character:FindFirstChild(v))then
local v = character:FindFirstChild(v):Clone()
v.Name = ""
for _, j in next, v:GetDescendants() do
if(j:IsA("JointInstance"))then
pcall(game.Destroy, j)
elseif(j:IsA("FaceInstance"))then
pcall(game.Destroy, j)
elseif(j:IsA("BasePart"))then
j.Name = ""
fade(j)
end
end
v.Parent = workspace
fade(v)
end
end
local flash = assets.Flashstep:Clone()
flash.CFrame = root.CFrame
flash.Parent = character
task.spawn(function()
for i = 1, 5 do
flash.FlashStep:Emit(30)
task.wait(.06)
end
end)
task.delay(.3, pcall, game.Destroy, flash)
local transparencies = {}
for _, limb in next, character:GetChildren() do
if(limb:IsA("BasePart"))then
transparencies[limb] = limb.Transparency
limb.Transparency = 1
for _, child in next, limb:GetDescendants() do
if(child:IsA("BasePart"))then
transparencies[child] = child.Transparency
child.Transparency = 1
end
end
end
end
root.Position = root.Position + (humanoid.MoveDirection*50)
task.wait(.25)
for limb, transparency in next, transparencies do
limb.Transparency = transparency
end
local flash = assets.Flashstep:Clone()
flash.CFrame = root.CFrame
flash.Parent = character
task.spawn(function()
for i = 1, 5 do
flash.FlashStep:Emit(30)
task.wait(.06)
end
end)
task.delay(.3, pcall, game.Destroy, flash)
for i, v in next, {"Left Arm", "Head", "Right Arm", "Right Leg", "Left Leg", "Torso"} do
if(character:FindFirstChild(v))then
local v = character:FindFirstChild(v):Clone()
v.Name = ""
v.Anchored = true
v.CanCollide = false
for _, j in next, v:GetDescendants() do
if(j:IsA("JointInstance"))then
pcall(game.Destroy, j)
elseif(j:IsA("FaceInstance"))then
pcall(game.Destroy, j)
elseif(j:IsA("BasePart"))then
j.Name = ""
fade(j)
end
end
v.Parent = workspace
fade(v)
end
end
attacking = false
end
local mahoragaevent = nil
local halted = false
local mahoraga = nil
local mahoraganpc = game:GetService("HttpService"):GetAsync("https://raw.githubusercontent.com/TheFakeFew/Scripts/refs/heads/main/MahoragaNPC.lua")
local function MAHORAGAHELPP()
if(keysdown["r"])then
if(mahoragaevent and mahoragaevent:IsDescendantOf(workspace))then
halted = not halted
mahoragaevent:Fire({Action = halted and "Halt" or "Resume"})
mangatext(halted and "Halt." or "Resume.")
if(halted)then
playAnimation("halt")
else
playAnimation("resume")
end
return
end
end
if(mahoraga and mahoraga:IsDescendantOf(workspace))then
if(mahoraga:FindFirstChildWhichIsA("BasePart", true))then
local pos = mahoraga:FindFirstChildWhichIsA("BasePart", true).Position
local unsummon = assets.Mahoraga.Effects.Unsummon.Smoke:Clone()
unsummon.Parent = workspace
unsummon.Position = pos
for i, v in next, unsummon:GetDescendants() do
if(v:IsA("ParticleEmitter"))then
v:Emit(10)
end
end
task.delay(1, pcall, game.Destroy, unsummon)
end
mahoraga:Destroy()
mahoragaevent = nil
halted = false
return
end
mahoragaevent = nil
halted = false
attacking = true
local anim = playAnimation("mahoraga")
humanoid.AutoRotate = false
humanoid.WalkSpeed = 0
local rnd = math.random(1, 10)
if(math.random(1, 5) ~= 1)then
local s = Instance.new("Sound", root)
s.SoundId = "rbxassetid://"..sounds.Mahoraga
s.PlaybackRegionsEnabled = true
s.Volume = 3
s.RollOffMaxDistance = 300
s.PlaybackRegionsEnabled = true
s.PlaybackRegion = NumberRange.new(4.833, 19.7)
s.Name = "Summon"
s:Play()
else
local s = Instance.new("Sound", root)
s.SoundId = "rbxassetid://"..sounds.HELPP
s.PlaybackRegionsEnabled = true
s.Volume = 4
s.RollOffMaxDistance = 300
s.PlaybackRegionsEnabled = true
s.PlaybackRegion = NumberRange.new(0, 13.702)
s.Name = "Summon"
task.delay(.8, function()
s:Play()
end)
end
local high = Instance.new("Highlight")
high.FillColor = Color3.new(1,1,1)
high.FillTransparency = .99
high.OutlineTransparency = .99
high.OutlineColor = Color3.new(1,1,1)
high.DepthMode = Enum.HighlightDepthMode.Occluded
local aoe = workspace:GetPartBoundsInRadius(root.Position, 50)
local done = {}
for i, v in next, aoe do
if(v:FindFirstAncestorOfClass("Model") and v:FindFirstAncestorOfClass("Model"):FindFirstChildOfClass("Humanoid") and not done[v:FindFirstAncestorOfClass("Model")])then
local highlight = high:Clone()
highlight.Adornee = v:FindFirstAncestorOfClass("Model")
highlight.Parent = v:FindFirstAncestorOfClass("Model")
done[v:FindFirstAncestorOfClass("Model")] = true
task.delay(anim.Length+2, pcall, game.Destroy, highlight)
end
end
local mahomodel = Instance.new("Model", workspace)
Instance.new("Humanoid", mahomodel)
local highlight = high:Clone()
highlight.Adornee = mahomodel
highlight.Parent = mahomodel
local maho = script:FindFirstChild("MahoragaNPC") and script:FindFirstChild("MahoragaNPC"):Clone() or NS(mahoraganpc, mahomodel)
maho.Parent = mahomodel
maho.Disabled = false
maho:SetAttribute("owner", owner.Name)
mahoraga = maho
local mahoassets = assets.Mahoraga:Clone()
mahoassets.Name = "MahoragaAssets"
mahoassets.Parent = game:GetService("ServerStorage")
task.spawn(function()
mahoragaevent = maho:WaitForChild("Mahoraga"):WaitForChild("MahoragaEvent", 60)
end)
task.spawn(function()
repeat
task.wait(.5)
for i, v in next, maho:GetDescendants() do
if(v:IsA("BasePart") and not v.Anchored)then
pcall(function()
v:SetNetworkOwner(nil)
end)
end
end
until not maho or not maho:IsDescendantOf(workspace)
end)
local domain = assets.MalevolentShrine.Domain:Clone()
domain.Highlight.FillTransparency = 1
domain.Highlight.FillColor = Color3.new()
domain.Highlight.DepthMode = Enum.HighlightDepthMode.AlwaysOnTop
domain.Size = Vector3.one*100
domain.CFrame = root.CFrame
domain.Material = Enum.Material.Neon
domain.Color = Color3.new()
domain.Transparency = 0
domain.CanQuery = false
domain.Parent = workspace
game:GetService("TweenService"):Create(domain.Highlight, TweenInfo.new(3), {
FillTransparency = 0
}):Play()
game:GetService("TweenService"):Create(domain, TweenInfo.new(3), {
Transparency = 0
}):Play()
task.wait(anim.Length)
maho.Parent = workspace
task.delay(2, function()
mahomodel:Destroy()
end)
game:GetService("TweenService"):Create(domain.Highlight, TweenInfo.new(2), {
FillTransparency = 1
}):Play()
game:GetService("TweenService"):Create(domain, TweenInfo.new(3), {
Transparency = 1
}):Play()
task.delay(3, pcall, game.Destroy, domain)
attacking = false
humanoid.AutoRotate = true
humanoid.WalkSpeed = walkspeed
end
local posing = false
local moves = {
["n"] = {
func = function()
if(taunting)then return end
local taunt = Taunts[Random.new():NextInteger(1, #Taunts)]
if(math.random(2) == 1)then
taunt = Taunts[Random.new():NextInteger(#Taunts - 4, #Taunts)]
end
taunting = true
if(taunt.Function)then
taunt.Function()
else
local s = Instance.new("Sound", root)
s.SoundId = "rbxassetid://"..taunt.Id
s.Volume = 3
s:Play()
repeat task.wait() until s.IsLoaded
game:GetService("Debris"):AddItem(s, s.TimeLength)
local am = #taunt.String:split("|")
for i, v in next, taunt.String:split("|") do
mangatext(v, nil, i%2 == 0 and -3 or 3, s.TimeLength/am)
task.wait(s.TimeLength/am)
end
end
taunting = false
end,
bypassattack = true
},
["z"] = {
func = cleave
},
["x"] = {
func = dismantle,
arial = dismantleair
},
["c"] = {
func = spiderweb,
arial = engrave
},
["v"] = {
func = divineflame
},
["b"] = {
func = malevolentshrine
},
["f"] = {
func = worldcuttingslash
},
["g"] = {
func = MAHORAGAHELPP
},
["q"] = {
func = flashstep
},
["e"] = {
func = rct,
},
["p"] = {
func = function()
if(not posing)then
attacking = true
posing = true
task.spawn(function()
local f = Instance.new("Folder", character)
f.Name = "posefolder"
local m = Instance.new("Sound", root)
m.Name = "pose"
m.Looped = true
local randomID = poseThemes[math.random(1, #poseThemes)]
if randomID == 18628257420 then
m.PlaybackSpeed = 0.2
end
m.SoundId = "rbxassetid://"..randomID
m.Volume = 3
m:Play()
humanoid.WalkSpeed = 0
playAnimation("firearrowpose", true)
local rootStartCF = root.CFrame
local skillAssets = assets.FireArrow:Clone()
local groundpart = Instance.new("Part", f)
groundpart.CFrame = root.CFrame
groundpart.Transparency = 1
groundpart.CanCollide = false
groundpart.Anchored = true
local floorpos = findFloorPosition(groundpart.Position)
local RHand = skillAssets.RHand:Clone()
local LHand = skillAssets.LHand:Clone()
local impactf = skillAssets.impactf:Clone()
impactf.Parent = character
local spar = VFXHelp.EmitAndRemove(impactf,root.CFrame,{maxFloorDist = 20})
local charg = skillAssets.impactf:Clone()
charg.Parent = f
charg.CFrame = spar.CFrame
VFXHelp.EnableVFX(charg)
task.delay(.95, function()
RHand.Parent = f
LHand.Parent = f
local Weld = Instance.new("Weld",RHand)
Weld.Part0 = character["Right Arm"]
Weld.Part1 = RHand
Weld.C0 = CFrame.new(0,-1,0)
local Weld = Instance.new("Weld",LHand)
Weld.Part0 = character["Left Arm"]
Weld.Part1 = LHand
Weld.C0 = CFrame.new(0,-1,0)
for i,v in pairs(LHand.At0:GetDescendants()) do
if v:IsA("Beam") then
v.Attachment0 = LHand.At0
v.Attachment1 = RHand.At1
end
end
CameraEffect.Flash({request = "LightFlash", tim = .02})
VFXHelp.EmitFromModel(RHand.Main)
local firesfx = Instance.new("Sound")
firesfx.Volume = 8
firesfx.SoundId = "rbxassetid://"..sounds.Clap
firesfx.Parent = root
firesfx:Play()
repeat task.wait() until firesfx.IsLoaded
game:GetService("Debris"):AddItem(firesfx,firesfx.TimeLength)
end)
task.delay(3.983, function()
local chargedsfx = Instance.new("Sound")
chargedsfx.Volume = 8
chargedsfx.SoundId = "rbxassetid://"..sounds.ArrowCharged
chargedsfx.Parent = root
chargedsfx:Play()
repeat task.wait() until chargedsfx.IsLoaded
game:GetService("Debris"):AddItem(chargedsfx,chargedsfx.TimeLength)
end)
task.delay(4.817, function()
local Wind = skillAssets.Wind:Clone()
Wind.Parent = f
Wind.Root.wind:Play()
PartJoiner.AddMotor6D(root,Wind.Root,CFrame.new(0,0,0))
rem:FireClient(owner, "ShakeCamera", "Bump")
CameraEffect.Flash({request = "orange", tim = .05})
CameraEffect.Flash({request = "LightFlash", tim = .02})
CameraEffect.Blur({wai_till_normalFov = .15, size = 40, tim1 = .2, tim2 = .4})
local Arrow = skillAssets.Arrow:Clone()
Arrow.Parent = f
Arrow.Sound:Play()
local Weld = Instance.new("Weld",Arrow)
Weld.Part0 = root
Weld.Part1 = Arrow
Weld.C0 = CFrame.new(1,0,-3)
BaseEffects.GroundExpandV2(CFrame.new(floorpos) * CFrame.new(0,10,0),5,10,{expandTime = 0.1,destroyTime = 2})
groundpart:Destroy()
humanoid.AutoRotate = true
task.wait(1)
sound(root, sounds.Open, 4, 1)
mangatext("Open.", Color3.new(.8, .6, 0), -3)
end)
end)
else
attacking = false
playidle = true
posing = false
humanoid.WalkSpeed = walkspeed
character.posefolder:Destroy()
root.pose:Destroy()
animations["firearrowpose"]:Stop()
animations["firearrowpose"]:Cancel()
playingAnimations["firearrowpose"] = nil
end
end,
bypassattack = true
},
["leftcontrol"] = {
func = function()
walkspeed = walkspeed == 16 and 32 or 16
humanoid.WalkSpeed = walkspeed
end,
}
}
local onKeyDown = function(key)
keysdown[key] = true
local attack = moves[key]
if(not attack)then return end
if(attack.bypassattack)then
if(attack.arial and not onground)then
return attack.arial()
else
return attack.func()
end
end
if(attacking)then return end
if(attack.arial and not onground)then
return attack.arial()
else
return attack.func()
end
end
local onKeyUp = function(key)
keysdown[key] = false
end
local adapt = 1
local debounce = false
local DharmaWeld = nil
local timesincelastattack = tick()
local lastadapttick = tick()
local adaptConnection;
local keydown;
local keyup;
local dead = true
local lastpivot = character:GetPivot()
local lostlimbs = {}
local healthscript;
local function createcharacter()
table.clear(playingAnimations)
attacking = false
posing = false
domain = false
taunting = false
playidle = true
if(not dead)then
assets.Character:PivotTo(lastpivot)
else
table.clear(lostlimbs)
character = owner.Character or owner.CharacterAdded:Wait()
assets.Character:PivotTo(character:GetPivot())
end
local wasdead = dead
dead = false
for i, v in next, animations do
pcall(function()
v:CancelInstant()
v:Stop()
end)
end
pcall(game.Destroy, character)
pcall(game.Destroy, client)
pcall(game.Destroy, healthscript)
pcall(game.Destroy, rem)
pcall(function()
keydown:Disconnect()
keyup:Disconnect()
end)
character = assets.Character:Clone()
character.Name = game:GetService("HttpService"):GenerateGUID(false)
owner.Character = character
root = character.HumanoidRootPart
humanoid = character:FindFirstChildOfClass("Humanoid")
humanoid.MaxHealth = 500
humanoid.Health = 500
humanoid.RequiresNeck = false
humanoid.BreakJointsOnDeath = false
humanoid.DisplayName = owner.DisplayName
humanoid.WalkSpeed = walkspeed
params = RaycastParams.new()
params.FilterDescendantsInstances = {character}
aura = root.Aura
table.clear(haori)
for i, v in next, character:GetDescendants() do
if(v:IsA("BasePart") and v.Name == "Haori")then
table.insert(haori, v)
end
end
DharmaWeld = character.Head.WheelOfDharma.Weld
character.Parent = workspace
local animgroup = animPlayer.CreateModuleGroup()
table.clear(animations)
for i, v in next, script.Animations:GetChildren() do
if(v.Name:find("rct "))then
animations[v.Name] = animPlayer.new(character, v)
continue
end
animations[v.Name] = animPlayer.new(character, v, animgroup)
end
task.spawn(function()
healthscript = NS([[-- Gradually regenerates the Humanoid's Health over time.
local REGEN_RATE = 1/100 -- Regenerate this fraction of MaxHealth per second.
local REGEN_STEP = 1 -- Wait this long between each regeneration step.
--------------------------------------------------------------------------------
local Character = script.Parent
local Humanoid = Character:WaitForChild'Humanoid'
--------------------------------------------------------------------------------
while true do
while Humanoid.Health < Humanoid.MaxHealth do
local dt = wait(REGEN_STEP)
local dh = dt*REGEN_RATE*Humanoid.MaxHealth
Humanoid.Health = math.min(Humanoid.Health + dh, Humanoid.MaxHealth)
end
Humanoid.HealthChanged:Wait()
end]], character)
healthscript.Name = "Health"
end)
task.spawn(function()
createMouse()
keydown = Mouse.KeyDown:Connect(onKeyDown)
keyup = Mouse.KeyUp:Connect(onKeyUp)
end)
rem = Instance.new("RemoteEvent", owner:FindFirstChildOfClass("PlayerGui"))
task.spawn(function()
client = NLS(clientls, owner:FindFirstChildOfClass("PlayerGui"))
end)
adaptConnection = humanoid.HealthChanged:Connect(function(newhp)
task.defer(function()
local hplossraw = (oldhp - newhp)
local hploss = hplossraw/adapt
if(hploss <= 0)then oldhp = humanoid.Health return end
timesincelastattack = tick()
if((oldhp - hploss) <= 0)then
pcall(game.Destroy, client)
adaptConnection:Disconnect()
dead = true
character:BreakJoints()
pcall(function()
local pou = assets.Poukuna:Clone()
pou:PivotTo(character:GetPivot()*CFrame.new(0,-1.5,0)*CFrame.Angles(0, math.rad(180), 0))
for i, v in next, character:GetDescendants() do
if(v:IsA("BasePart"))then
v.Transparency = 1
end
end
pou.Parent = character
sound(root, 7205082060, 1, 1)
end)
task.spawn(function()
owner.CharacterAdded:Wait()
task.defer(createcharacter)
end)
return
end
if(hploss < 1 or adapt > (hplossraw/5))then
hploss = 0
else
adapt += 1
end
if(not debounce and hploss ~= 0)then
sound(root, sounds.WheelOfDharma, 1, 1)
game:GetService("TweenService"):Create(DharmaWeld, TweenInfo.new(.3), {
C0 = DharmaWeld.C0 * CFrame.Angles(0, math.rad(45), 0)
}):Play()
sound(root, 95870665075757, 1, 1)
debounce = true
task.delay(.6, function()
debounce = false
end)
end
if(hploss >= 45)then
if(math.random(1, 5) == 1)then
local limb = shouldbethere[math.random(#shouldbethere)]
pcall(game.Destroy, character:FindFirstChild(limb))
end
end
humanoid.Health = oldhp - hploss
oldhp = humanoid.Health
end)
end)
oldhp = humanoid.Health
for i, v in next, lostlimbs do
if(v)then
pcall(game.Destroy, character:FindFirstChild(i))
end
end
if(math.random(1, 2) == 1 and not wasdead)then
local limb = shouldbethere[math.random(#shouldbethere)]
pcall(game.Destroy, character:FindFirstChild(limb))
end
end
createcharacter()
local defers = table.create(78, task.defer)
game:GetService("RunService").PostSimulation:Connect(function()
if(dead)then return end
task.spawn(unpack(defers), function()
if(not character or not character:IsDescendantOf(workspace)
or not character:FindFirstChild("Torso") or not character:FindFirstChild("Head")
or not character:FindFirstChild("HumanoidRootPart") or not character:FindFirstChildOfClass("Humanoid")
or not character.Torso:FindFirstChild("Neck") or not character.HumanoidRootPart:FindFirstChild("RootJoint")
or character:GetPivot().Position.Magnitude >= 1e5)then
createcharacter()
end
onground = not not workspace:Raycast(root.Position, Vector3.yAxis*-3.5, params)
if(onground)then
lastpivot = CFrame.new(character:GetPivot().Position)*CFrame.Angles(0, math.rad(root.Orientation.Y), 0)
end
if(tick() - timesincelastattack >= 30)then
if(tick() - lastadapttick >= 1 and adapt > 1)then
adapt -= 1
lastadapttick = tick()
end
end
if(oldhp ~= oldhp)then
oldhp = 500
end
humanoid.MaxHealth = 500
humanoid.Health = oldhp
humanoid.RequiresNeck = false
humanoid.BreakJointsOnDeath = false
humanoid.DisplayName = owner.DisplayName
if(playidle)then
local velocity = math.abs(Vector2.new(root.Velocity.X, root.Velocity.Z).Magnitude)
if(velocity >= 5 and velocity < 20)then
if(not animations["walk"].IsPlaying)then
animations["walk"]:Play()
end
else
animations["walk"]:Stop()
end
if(velocity >= 20)then
if(not animations["run"].IsPlaying)then
animations["run"]:Play()
end
else
animations["run"]:Stop()
end
if(velocity < 5)then
if(not animations["idle"].IsPlaying)then
animations["idle"]:Play()
end
else
animations["idle"]:Stop()
end
else
animations["idle"]:Stop()
animations["walk"]:Stop()
animations["run"]:Stop()
end
for i, v in next, shouldbethere do
if(not character:FindFirstChild(v))then
pcall(function()
character.Torso[v.." sizzle"].Steam.Enabled = true
character.Torso[v.." sizzle"].Blood.Enabled = true
character.Torso[v.." sizzle"].Sound:Resume()
end)
lostlimbs[v] = true
else
lostlimbs[v] = false
end
end
end)
end)