When playing an animation (that moves the torso) and anchoring any part of the character, if you unanchor before the animation finishes (using Animation.Ended
as a reference), the character’s assembly mass becomes incorrectly calculated.
This can cause unexpected physics behavior.
Visual Aids:
streamable
Reproduction Steps:
- Play an animation that moves the torso.
- Anchor any character part (e.g.,
HumanoidRootPart
) while the animation is still playing. - Unanchor the part before
Animation.Ended
fires. - Observe mass and physics glitches.
Reproduction Files:
Roblox Place
Test Place (59,0 КБ)
Code to Reproduce:
local player = game:GetService("Players").LocalPlayer
local animation = game:GetService("ReplicatedStorage").Animation
game:GetService("UserInputService").InputBegan:Connect(function(input, isProcessed)
if isProcessed then return end
if input.KeyCode == Enum.KeyCode.T then
local rootPart = player.Character:FindFirstChild("HumanoidRootPart")
if not rootPart then return end
local track = player.Character:FindFirstChildWhichIsA("Animator", true):LoadAnimation(animation)
track:Play()
rootPart.Anchored = true
print("Anchored state: ".. tostring(rootPart.Anchored))
task.wait(0.5)
rootPart.Anchored = false
print("Anchored state: ".. tostring(rootPart.Anchored))
end
end)
Additional Information:
- Happens both in Studio and live games.
- Still happens with all plugins disabled.
- No browser or user-specific factors involved.
Expected behavior
Character’s assembly and physics behavior should remain stable after anchoring/unanchoring, regardless of animations playing.