local player = game.Players.LocalPlayer if not player then return end local function makeTool() local backpack = player:WaitForChild("Backpack") if backpack:FindFirstChild("DanceTool") then return end local tool = Instance.new("Tool") tool.Name = "DanceTool" tool.RequiresHandle = false tool.CanBeDropped = false tool.ToolTip = "Let's Dance!" local track local function isR15(character) local hum = character:FindFirstChildOfClass("Humanoid") return hum and hum.RigType == Enum.HumanoidRigType.R15 end local function playDance() local char = player.Character if not char then return end local hum = char:FindFirstChildOfClass("Humanoid") if not hum then return end local animator = hum:FindFirstChildOfClass("Animator") or Instance.new("Animator", hum) local anim = Instance.new("Animation") anim.AnimationId = isR15(char) and "rbxassetid://507771019" or "rbxassetid://33796059" track = animator:LoadAnimation(anim) track.Looped = true track:Play() track:AdjustSpeed(1.1) end local function stopDance() if track then track:Stop() track = nil end end tool.Equipped:Connect(function() playDance() end) tool.Unequipped:Connect(function() stopDance() end) tool.AncestryChanged:Connect(function(_, parent) if not parent or parent == backpack then stopDance() end end) tool.Activated:Connect(function() if track then stopDance() task.wait(0.1) playDance() end end) tool.Parent = backpack end player.CharacterAdded:Connect(function() task.wait(1) makeTool() end) if player.Character then task.wait(1) makeTool() end