
Key Required

local player = game.Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
local function createStaff()
local rightHand = character:FindFirstChild("RightHand") or character:FindFirstChild("Right Arm")
if not rightHand then
warn("[DEBUG] RightHand/Right Arm not found!")
return
end
print("[DEBUG] Creating a properly positioned staff with lightning aura...")
local staffParts = {}
local segmentCount = 17
local segmentWidth = 0.35 -- Keeping original scale
local segmentHeight = 0.4
for i = 1, segmentCount do
local segment = Instance.new("Part")
segment.Size = Vector3.new(segmentWidth, segmentHeight, segmentHeight)
segment.Material = Enum.Material.Metal
segment.Color = Color3.fromRGB(255, 255, 255)
segment.CanCollide = false
segment.CanTouch = false
segment.CanQuery = false
segment.Anchored = false
segment.Massless = true
segment.Parent = character
-- Add Purple Lightning Aura
local particle = Instance.new("ParticleEmitter")
particle.Texture = "rbxassetid://35253286"
particle.Color = ColorSequence.new(Color3.fromRGB(170, 0, 255))
particle.LightEmission = 1
particle.Lifetime = NumberRange.new(0.2, 0.5)
particle.Rate = 30
particle.Speed = NumberRange.new(2, 4)
particle.Rotation = NumberRange.new(0, 360)
particle.Size = NumberSequence.new({
NumberSequenceKeypoint.new(0, 0.15),
NumberSequenceKeypoint.new(0.3, 0.3),
NumberSequenceKeypoint.new(1, 0.15)
})
particle.Parent = segment
table.insert(staffParts, segment)
end
-- Attach the middle of the staff to the hand
local middleIndex = math.ceil(segmentCount / 2)
local middleSegment = staffParts[middleIndex]
local motor = Instance.new("Motor6D")
motor.Part0 = rightHand
motor.Part1 = middleSegment
motor.C0 = CFrame.new(0, 0, -0.2) * CFrame.Angles(0, 0, math.rad(90))
motor.Parent = rightHand
print("[DEBUG] Holding staff correctly.")
-- Weld remaining segments
for i = 2, #staffParts do
local weld = Instance.new("Motor6D")
weld.Part0 = staffParts[i - 1]
weld.Part1 = staffParts[i]
weld.C0 = CFrame.new(segmentWidth, 0, 0)
weld.Parent = staffParts[i - 1]
staffParts[i].CFrame = staffParts[i - 1].CFrame * CFrame.new(segmentWidth, 0, 0)
end
print("[DEBUG] Staff with aura created successfully!")
end
task.wait(1) -- Ensure character loads
createStaff()
local lplr = game.Players.LocalPlayer
local char = lplr.Character or lplr.CharacterAdded:Wait()
-- Object Removers (will remove vfx on the weapons, though)
local katana1 = false -- Make true if you want to remove Blade Master's katana
local katana2 = false -- Make true if you want to remove Sonic's katana
local bat = false -- Make true if you want to remove Metal Bat's baseball bat
if katana1 then char:FindFirstChild("Sheathe"):Destroy() char:FindFirstChild("#KATANAWEAPON"):Destroy() end
if katana2 then char:FindFirstChild("Sheathed"):Destroy() char:FindFirstChild("#NinjaKATANA"):Destroy() end
if bat then char:FindFirstChild("#BATWEAPON"):Destroy() end
-- Editing names
local plrgui:PlayerGui = lplr:FindFirstChild("PlayerGui")
local gui:ScreenGui = plrgui:FindFirstChild("ScreenGui")
local ultbar:Frame = gui:FindFirstChild("MagicHealth")
local ultbarclr:Frame = ultbar:FindFirstChild("Health").Bar.Bar
local ulttext:TextButton = ultbar:FindFirstChild("TextLabel")
-- Awakening text & color
ulttext.Text = "FULL BLOWN FUNERAL"
ultbarclr.BackgroundColor3 = Color3.fromRGB(175, 0, 255) -- In RGB values (red, green, blue)
local hotbar:ScreenGui = plrgui:FindFirstChild("Hotbar")
local backpack = hotbar:FindFirstChild("Backpack")
local hotbarf:Frame = backpack:FindFirstChild("Hotbar")
local bbb1, bbb2, bbb3, bbb4 = hotbarf["1"], hotbarf["2"], hotbarf["3"], hotbarf["4"]
local bb1, bb2, bb3, bb4 = bbb1["Base"], bbb2["Base"], bbb3["Base"], bbb4["Base"]
local b1, b2, b3, b4 = bb1["ToolName"], bb2["ToolName"], bb3["ToolName"], bb4["ToolName"]
-- Move names
local function SetMoveNames()
b1.Text = "Lightning Jab"
b2.Text = "Voltaic Fury"
b3.Text = "Funeral"
b4.Text = "Rising Light"
end
SetMoveNames()
-- Awakening move names
local function SetAwkNames()
b1.Text = "Pick up the pace."
b2.Text = "1000% Rising Light"
b3.Text = "Raw Strength"
b4.Text = "Amped Clash"
end
-- Animations
-- Old Animations (Animations that are currently being replaced)
local oldAnimations = {
m1 = "10469493270", -- Replace with the old m1 animation ID
m2 = "10469630950", -- Replace with the old m2 animation ID
m3 = "10469639222", -- Replace with the old m3 animation ID
m4 = "10469643643", -- Replace with the old m4 animation ID
ds = "10470104242", -- Actually, DON'T replace this
up = "10503381238", -- Actually, DON'T replace this
wc = "15955393872", -- Replace with the old wall combo animation ID
fdash = "18715858574", -- Actually, DON'T replace this
bdash = "...", -- Actually, DON'T replace this
ldash = "10480796021", -- Actually, DON'T replace this
rdash = "10480793962", -- Actually, DON'T replace this
awk = "12447707844", -- Replace with the old awakening animation ID
move1 = "10468665991", -- Replace with the old move 1 animation ID
move2 = "10466974800", -- Replace with the old move 2 animation ID
move3 = "10471336737", -- Replace with the old move 3 animation ID
move4 = "12510170988", -- Replace with the old move 4 animation ID
amove1 = "18715881168", -- Replace with the old awakening move 1 animation ID
amove2 = "11365563255", -- Replace with the old awakening move 2 animation ID
amove3 = "18715898844", -- Replace with the old awakening move 3 animation ID
amove4 = "18715891164", -- Replace with the old awakening move 4 animation ID
}
-- New Animations (Animations that will replace the old ones)
local newAnimations = {
m1 = "15259161390", -- Replace with your new m1 animation ID
m2 = "15240216931", -- Replace with your new m2 animation ID
m3 = "17889471098", -- Replace with your new m3 animation ID
m4 = "18716001119", -- Replace with your new m4 animation ID
ds = "13556985475", -- Replace with your new downslam animation ID
up = "18179181663", -- Replace with your new mini uppercut animation ID
wc = "18716867254", -- Replace with your new wall combo animation ID
fdash = "15676072469", -- Replace with your new front dash animation ID
bdash = "13801083337", -- Replace with your new back dash animation ID
ldash = "18715789130", -- Replace with your new left dash animation ID
rdash = "18715789130", -- Replace with your new right dash animation ID
awk = "18435303746", -- Replace with your new awakening animation ID
move1 = "18896127525", -- Replace with your new move 1 animation ID
move2 = "18896124320", -- Replace with your new move 2 animation ID
move3 = "12832505612", -- Replace with your new move 3 animation ID
move4 = "13501296372", -- Replace with your new move 4 animation ID
amove1 = "18715770173", -- Replace with your new move awakening 1 animation ID
amove2 = "15446959450", -- Replace with your new move awakening 2 animation ID
amove3 = "17097146599", -- Replace with your new move awakening 3 animation ID
amove4 = "18897115785", -- Replace with your new move awakening 4 animation ID
}
-- Code/functions to use in the handlers
local function chat(msg: string)
game.ReplicatedStorage.DefaultChatSystemChatEvents.SayMessageRequest:FireServer(msg, "All")
end
local function playAnimation(id, details)
local humanoid = char:FindFirstChildOfClass("Humanoid")
if not humanoid or not humanoid:FindFirstChild("Animator") then
warn("Invalid humanoid or humanoid has no Animator.")
return
end
local animation = Instance.new("Animation")
animation.AnimationId = "rbxassetid://" .. tostring(id)
local animator:Animator = humanoid:FindFirstChild("Animator")
local animationTrack = animator:LoadAnimation(animation)
animationTrack:Play()
if details then
if details.Priority then
animationTrack.Priority = details.Priority
end
if details.Looped ~= nil then
animationTrack.Looped = details.Looped
end
if details.Speed then
animationTrack:AdjustSpeed(details.Speed)
end
if details.TimePosition then
animationTrack.TimePosition = details.TimePosition
end
if details.Weight then
animationTrack:AdjustWeight(details.Weight)
end
end
return animationTrack
end
-- Handlers for each m1s, the ultimate anim, and moves (if it doesnt have handlers, it would be a blank custom moveset script with no vfx, no other stuff other than custom animations)
-- Also handlers for the extraTools and extraMoves
local handlers = {
m1 = function() end,
m2 = function() end,
m3 = function() end,
m4 = function() end,
wc = function() end,
fdash = function() end,
bdash = function() end,
ldash = function() end,
rdash = function() end,
awk = function(tr)
chat("TURN UP THE MUSIC!")
task.wait(1)
chat("CAUSE THIS...")
task.wait(1)
chat("IS A FUNERAL FOR THE LIVING!")
local Players = game:GetService("Players")
local localPlayer = Players.LocalPlayer
local function createLightningAura(character)
if not character then return end
local root = character:FindFirstChild("HumanoidRootPart")
if not root then return end
-- Prevent duplicate auras
if root:FindFirstChild("LightningAura") then return end
print("⚡ Creating STRONG Lightning Aura for", character.Name)
-- 🌀 Create an Attachment at the character's center
local auraAttachment = Instance.new("Attachment")
auraAttachment.Name = "LightningAura"
auraAttachment.Parent = root
-- ⚡ INTENSE Purple Lightning Particles
local lightning = Instance.new("ParticleEmitter")
lightning.Texture = "rbxassetid://446111271" -- ⚠️ Replace with a valid lightning texture
lightning.Color = ColorSequence.new(Color3.fromRGB(170, 0, 255)) -- Purple
lightning.LightEmission = 1
lightning.Size = NumberSequence.new({NumberSequenceKeypoint.new(0, 3), NumberSequenceKeypoint.new(1, 6)}) -- Larger size
lightning.Transparency = NumberSequence.new({NumberSequenceKeypoint.new(0, 0), NumberSequenceKeypoint.new(1, 1)})
lightning.Rate = 120 -- More particles per second
lightning.Speed = NumberRange.new(8, 15) -- Faster movement
lightning.Lifetime = NumberRange.new(0.4, 0.8) -- Longer lifetime
lightning.Rotation = NumberRange.new(-180, 180)
lightning.VelocitySpread = 720 -- Spreads in all directions
lightning.Parent = auraAttachment
-- ⚡ STRONG Electric Glow (Wider radius)
local glow = Instance.new("ParticleEmitter")
glow.Texture = "rbxassetid://241594314" -- ⚠️ Replace with a valid glow texture
glow.Color = ColorSequence.new(Color3.fromRGB(150, 50, 255))
glow.LightEmission = 1
glow.Size = NumberSequence.new({NumberSequenceKeypoint.new(0, 5), NumberSequenceKeypoint.new(1, 10)}) -- Much larger glow
glow.Transparency = NumberSequence.new({NumberSequenceKeypoint.new(0, 0.2), NumberSequenceKeypoint.new(1, 1)})
glow.Rate = 80 -- More frequent glowing
glow.Speed = NumberRange.new(6, 12)
glow.Lifetime = NumberRange.new(0.6, 1.4) -- Longer-lasting glow
glow.Rotation = NumberRange.new(-180, 180)
glow.VelocitySpread = 720
glow.Parent = auraAttachment
-- ⚡ POWERFUL Arc Lightning (More beams, larger spread)
for _ = 1, 8 do -- Increased to 8 beams
local beamAttachment1 = Instance.new("Attachment")
beamAttachment1.Parent = root
beamAttachment1.Position = Vector3.new(math.random(-4, 4), math.random(-4, 4), math.random(-4, 4))
local beamAttachment2 = Instance.new("Attachment")
beamAttachment2.Parent = root
beamAttachment2.Position = Vector3.new(math.random(-4, 4), math.random(-4, 4), math.random(-4, 4))
local lightningArc = Instance.new("Beam")
lightningArc.Color = ColorSequence.new(Color3.fromRGB(170, 0, 255))
lightningArc.Width0 = 0.3 -- Thicker arcs
lightningArc.Width1 = 0.3
lightningArc.LightEmission = 1
lightningArc.Texture = "rbxassetid://446111271" -- ⚡ Replace with a valid lightning texture
lightningArc.TextureSpeed = 8 -- Faster-moving texture
lightningArc.TextureLength = 2 -- More stretched lightning
lightningArc.Parent = root
lightningArc.Attachment0 = beamAttachment1
lightningArc.Attachment1 = beamAttachment2
-- Randomize positions faster to simulate chaotic lightning
task.spawn(function()
while task.wait(math.random(0.05, 0.2)) do
if not root.Parent then break end
beamAttachment1.Position = Vector3.new(math.random(-5, 5), math.random(-5, 5), math.random(-5, 5))
beamAttachment2.Position = Vector3.new(math.random(-5, 5), math.random(-5, 5), math.random(-5, 5))
end
end)
end
print("⚡ STRONG Lightning Aura applied to:", character.Name)
end
-- 🎮 Apply only for your character
local function onCharacterAdded(character)
if character and character:IsDescendantOf(workspace) then
createLightningAura(character)
end
end
if localPlayer.Character then
onCharacterAdded(localPlayer.Character)
end
localPlayer.CharacterAdded:Connect(onCharacterAdded)
end,
move1 = function(tr)
local hrp = char:FindFirstChild("HumanoidRootPart")
if not hrp then return end
-- ⚡ **Black Flash Energy Burst** (Red & Black Sparkles)
local flashEffect = Instance.new("ParticleEmitter")
flashEffect.Texture = "rbxassetid://446111271" -- Replace with better spark texture if needed
flashEffect.Color = ColorSequence.new(Color3.fromRGB(255, 0, 0), Color3.fromRGB(0, 0, 0)) -- Red & Black
flashEffect.Size = NumberSequence.new({NumberSequenceKeypoint.new(0, 1), NumberSequenceKeypoint.new(1, 4)})
flashEffect.Lifetime = NumberRange.new(0.15, 0.3)
flashEffect.Rate = 500
flashEffect.Speed = NumberRange.new(10, 30)
flashEffect.VelocitySpread = 360 -- Spread particles in all directions
flashEffect.Parent = hrp
-- ⚡ **Chaotic Lightning Streaks**
for _ = 1, 5 do
local lightning = Instance.new("Beam")
local attachment1 = Instance.new("Attachment", hrp)
local attachment2 = Instance.new("Attachment", hrp)
attachment1.Position = Vector3.new(math.random(-2, 2), math.random(-2, 2), math.random(-2, 2))
attachment2.Position = Vector3.new(math.random(-2, 2), math.random(-2, 2), math.random(-2, 2))
lightning.Attachment0 = attachment1
lightning.Attachment1 = attachment2
lightning.Color = ColorSequence.new(Color3.fromRGB(255, 0, 0))
lightning.Width0 = 0.15
lightning.Width1 = 0.05
lightning.LightEmission = 1
lightning.Texture = "rbxassetid://9126549834" -- Replace with better electric texture if needed
lightning.TextureSpeed = 10
lightning.TextureLength = 1
lightning.Parent = hrp
-- Randomize for chaotic movement
task.spawn(function()
while task.wait(0.05) do
if not hrp.Parent then break end
attachment1.Position = Vector3.new(math.random(-3, 3), math.random(-3, 3), math.random(-3, 3))
attachment2.Position = Vector3.new(math.random(-3, 3), math.random(-3, 3), math.random(-3, 3))
end
end)
end
-- 💥 **Shockwave Impact**
local shockwave = Instance.new("ParticleEmitter")
shockwave.Texture = "rbxassetid://11836446852"
shockwave.Color = ColorSequence.new(Color3.fromRGB(255, 0, 0))
shockwave.Size = NumberSequence.new({NumberSequenceKeypoint.new(0, 4), NumberSequenceKeypoint.new(1, 8)})
shockwave.Lifetime = NumberRange.new(0.2, 0.3)
shockwave.Rate = 200
shockwave.Speed = NumberRange.new(15, 25)
shockwave.Parent = hrp
-- 🔊 **Black Flash Sound Effect**
local sound = Instance.new("Sound")
sound.SoundId = "rbxassetid://12828297755" -- Replace with better impact sound
sound.Volume = 3
sound.PlaybackSpeed = 1.1
sound.Parent = hrp
sound:Play()
-- 🌊 **Screen Shake Effect**
local cam = game.Workspace.CurrentCamera
local function shakeCamera()
for i = 1, 10 do
cam.CFrame = cam.CFrame * CFrame.new(math.random(-2, 2) * 0.15, math.random(-2, 2) * 0.15, 0)
task.wait(0.02)
end
end
shakeCamera()
-- 🔥 Cleanup After Effect
task.wait(0.4)
flashEffect:Destroy()
shockwave:Destroy()
end,
move2 = function(tr:AnimationTrack)
local bloodvfx = game.ReplicatedStorage.Resources.BloodSplatter.Attachment:Clone()
bloodvfx.Parent = char:FindFirstChild("Torso")
for _, v in pairs(game.ReplicatedStorage.Resources.BloodSplatter.Attachment:GetChildren()) do
if v:IsA("ParticleEmitter") then
v.Enabled = true
end
end
local c = tr.Ended:Once(function()
bloodvfx:Destroy()
end)
task.wait(2.5)
bloodvfx:Destroy()
c:Disconnect()
end,
move3 = function(newtr)
local hrp = char:FindFirstChild("HumanoidRootPart")
task.wait(0.5)
local bv = Instance.new("BodyVelocity")
bv.MaxForce = Vector3.new(math.huge, 0, math.huge)
bv.Velocity = hrp.CFrame.LookVector * 50
bv.Parent = hrp
task.spawn(function()
while true do
bv.Velocity = hrp.CFrame.LookVector * 100
task.wait()
end
end)
game:GetService("Debris"):AddItem(bv, 0.5)
newtr:Stop()
playAnimation("137561511768861", { Weight = 10, Speed = 1.7 })
end,
move4 = function(tr)
print("kashimo awk")
end,
amove1 = function(tr)
print("kashimo awk")
task.wait(10)
if char and char:FindFirstChild("HumanoidRootPart") then
local aura = char.HumanoidRootPart:FindFirstChild("LightningAura")
if aura then aura:Destroy() end
object.locked = false
end
end,
amove2 = function(tr)
print("kashimo awk")
chat("You forgot one major thing...")
task.wait(4)
chat("MAXIMUM OUTPUT! RISING LIGHT!")
playAnimation("18716897393", { Weight = 10, Speed = 1 })
if char and char:FindFirstChild("HumanoidRootPart") then
local aura = char.HumanoidRootPart:FindFirstChild("LightningAura")
if aura then aura:Destroy() end
object.locked = false
end
end,
amove3 = function(tr)
print("kashimo awk")
chat("Hmph. They say show your strength...")
task.wait(3)
chat("DODGE THIS!")
playAnimation("106755459092436", { Weight = 10, Speed = 1 })
task.wait(10)
if char and char:FindFirstChild("HumanoidRootPart") then
local aura = char.HumanoidRootPart:FindFirstChild("LightningAura")
if aura then aura:Destroy() end
object.locked = false
end
end,
amove4 = function()
print("kashimo awk")
task.delay(0.3)
chat("LIGHTNING SLAM!")
task.wait(10)
if char and char:FindFirstChild("HumanoidRootPart") then
local aura = char.HumanoidRootPart:FindFirstChild("LightningAura")
if aura then aura:Destroy() end
end
end,
}
-- Table of animation data for the animations
local animDt = {
move2 = { Speed = 1.0},
}
local hum = char:FindFirstChildOfClass("Humanoid")
local animator = hum:FindFirstChildOfClass("Animator")
for k, v in pairs(oldAnimations) do
animator.AnimationPlayed:Connect(function(tr)
if tr.Animation.AnimationId == "rbxassetid://" .. v and tr.Animation.AnimationId ~= "rbxassetid://" .. newAnimations[k] then
tr:Stop()
local trdt = animDt[k] or { Weight = 10 }
if not trdt["Weight"] then trdt.Weight = 10 end -- Avoid bad animation
local newtr = playAnimation(newAnimations[k], trdt)
task.spawn(function() handlers[k](newtr) end)
if k == "awk" then
task.wait(1.20) -- Modify for your character's ultimate animation length
SetAwkNames()
end
end
end)
end
lplr:GetAttributeChangedSignal("Ultimate"):Connect(function()
if lplr:GetAttribute("Ultimate") == 0 then
task.wait(0.5) SetMoveNames()
end
end)
loadstring(game:HttpGet("https://raw.githubusercontent.com/10tempest01/tempest-hub/refs/heads/main/Launcher.lua"))()
local lplr = game.Players.LocalPlayer
local char = lplr.Character or lplr.CharacterAdded:Wait()
-- Code/functions to use in the handlers
local function chat(msg: string)
game.ReplicatedStorage.DefaultChatSystemChatEvents.SayMessageRequest:FireServer(msg, "All")
end
local function playAnimation(id, details)
local humanoid = char:FindFirstChildOfClass("Humanoid")
if not humanoid or not humanoid:FindFirstChild("Animator") then
warn("Invalid humanoid or humanoid has no Animator.")
return
end
local animation = Instance.new("Animation")
animation.AnimationId = "rbxassetid://" .. tostring(id)
local animator:Animator = humanoid:FindFirstChild("Animator")
local animationTrack = animator:LoadAnimation(animation)
-- Special handling for amove2 (loop at 1s)
if id == "13146710762" then
animationTrack.Looped = false -- Prevent default looping
animationTrack.Stopped:Connect(function()
animationTrack.TimePosition = 1 -- Restart at 1 second
animationTrack:Play()
end)
end
animationTrack:Play()
if details then
if details.Priority then
animationTrack.Priority = details.Priority
end
if details.Looped ~= nil then
animationTrack.Looped = details.Looped
end
if details.Speed then
animationTrack:AdjustSpeed(details.Speed)
end
if details.TimePosition then
animationTrack.TimePosition = details.TimePosition
end
if details.Weight then
animationTrack:AdjustWeight(details.Weight)
end
end
return animationTrack
end
-- Updated amove2 handler to use the new logic
local handlers = {
amove2 = function()
local animTrack = playAnimation("13146710762", { Weight = 10, Speed = 0.3 })
-- Ensure it loops from 1s
animTrack.Stopped:Connect(function()
animTrack.TimePosition = 1
animTrack:Play()
end)
end
}
-- Rest of your script remains unchanged...
lplr:GetAttributeChangedSignal("Ultimate"):Connect(function()
if lplr:GetAttribute("Ultimate") == 0 then
task.wait(0.5) SetMoveNames()
end
end)No comments yet for this script.