Anchoring and unanchoring with animations causes mysterious physics bug

I encountered this weird bug while scripting a game that I’m on. I tried debugging within the game expecting it to be a logic error from my part elsewhere. I later debugged in an empty baseplate with the following code(don’t mind its ugliness, I was testing) :

local player = game.Players.LocalPlayer
local uis = game.UserInputService

uis.InputBegan:Connect(function(input)
	if input.KeyCode == Enum.KeyCode.T then
		local anim = player.Character:FindFirstChildWhichIsA("Animator", true):LoadAnimation(game.ReplicatedStorage.UltimateThree)
		print(anim.IsPlaying, anim.TimePosition, anim.Length)
		anim:Play()
		
		player.Character.HumanoidRootPart.Anchored = true
		
		task.wait(0.5)
		
		player.Character.HumanoidRootPart.Anchored = false
	end
end)

playing an animation(with a lot of movement) → anchor character(doesn’t matter which part) → unanchor before animation.Ended(yes animation.Ended instead of .Stopped) and voila there’s a mysterious force that pulls on the character whenever you try jumping around and moving. Additionally, it gets fixed when you make a physical change to the character’s assembly.

Bug occurring clip


“Fixing” the bug through a physical change(toggle anchor in this case)

#bug-reports

I think this is because anchored baseparts are automatically owned by the server. But yeah a bug definitely.

1 Like

Sorry for bumping this 6 months later, however I couldn’t find anything on this issue for the longest time. Thank you for providing how you went about fixing this bug!! I hope it can be officially addressed in the future, as this gave me quite the headache