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)