-- Services local Players = game:GetService("Players") local TextChatService = game:GetService("TextChatService") -- Variables local player = Players.LocalPlayer local backpack = player:WaitForChild("Backpack") -- Helper Function to Create Tools local function createTool(name, animationId, sayText, additionalFunction) local tool = Instance.new("Tool") tool.Name = name tool.RequiresHandle = false tool.CanBeDropped = false local animation = Instance.new("Animation") animation.AnimationId = animationId tool.Activated:Connect(function() if sayText then if TextChatService.ChatVersion == Enum.ChatVersion.LegacyChatService then player:Chat(sayText) else TextChatService.TextChannels.RBXGeneral:SendAsync(sayText) end end local humanoid = player.Character and player.Character:FindFirstChildOfClass("Humanoid") if humanoid then local animTrack = humanoid:LoadAnimation(animation) animTrack:Play() if additionalFunction then additionalFunction(animTrack) end end end) tool.Parent = backpack end -- Tool 1: Cleave createTool("Cleave", "rbxassetid://28090053", "Cleave") -- Tool 2: Dismantle createTool("Dismantle", "rbxassetid://48108208", "Dismantle") -- Tool 3: Domain Expansion createTool("Domain Expansion", "rbxassetid://78574417", "Domain Expansion: Malevolent Shrine", function(animTrack) local character = player.Character if character then local root = character:FindFirstChild("HumanoidRootPart") if root then -- Create BodyPosition for floating local bodyPosition = Instance.new("BodyPosition") bodyPosition.MaxForce = Vector3.new(4000, 4000, 4000) bodyPosition.Position = root.Position + Vector3.new(0, 20, 0) -- Float 20 studs in the air bodyPosition.P = 10000 bodyPosition.D = 1000 bodyPosition.Parent = root -- Wait for 20 seconds task.wait(20) -- Stop animation and reset BodyPosition animTrack:Stop() bodyPosition.Position = root.Position - Vector3.new(0, 20, 0) -- Gently return to the ground task.wait(2) -- Allow time to descend bodyPosition:Destroy() end end end) -- Tool 4: Dragon Combo createTool("Dragon Combo", "rbxassetid://78574417", nil, function(animTrack) local humanoid = player.Character and player.Character:FindFirstChildOfClass("Humanoid") if humanoid then -- Play first animation (Domain Animation) animTrack:Play() -- Sequential Chat Messages task.wait(2) if TextChatService.ChatVersion == Enum.ChatVersion.LegacyChatService then player:Chat("Scale of the dragon") task.wait(1) player:Chat("Recoil") task.wait(1) player:Chat("Twin Meteors") else local generalChannel = TextChatService:FindFirstChild("TextChannels") if generalChannel and generalChannel:FindFirstChild("RBXGeneral") then generalChannel.RBXGeneral:SendAsync("Scale of the dragon") task.wait(1) generalChannel.RBXGeneral:SendAsync("Recoil") task.wait(1) generalChannel.RBXGeneral:SendAsync("Twin Meteors") end end -- Switch to second animation task.wait(2) animTrack:Stop() local secondAnim = Instance.new("Animation") secondAnim.AnimationId = "rbxassetid://28090053" local secondAnimTrack = humanoid:LoadAnimation(secondAnim) secondAnimTrack:Play() -- Final Chat Message task.wait(1) if TextChatService.ChatVersion == Enum.ChatVersion.LegacyChatService then player:Chat("Think fast.") else local generalChannel = TextChatService:FindFirstChild("TextChannels") if generalChannel and generalChannel:FindFirstChild("RBXGeneral") then generalChannel.RBXGeneral:SendAsync("Think fast.") end end end end)