AlignPosition Acting Improper

Hello, so I’m trying to make a pet follow me but after a few seconds of me walking around with the pet it seems to be stuck onto me and not dragging alongside me smoothly anymore, is there a fix to this?

Video of it happening - [:basketball:] Recreation Center Basketball - Roblox Studio

Screenshot of AlignPosition Properties -

im noticing a WeldConstraint. what’s that for?

That’s the brick that the pet is following, it’s an invisible brick that is right above my shoulder. It’s welding to its parent (weld part0) and my humanoidrootpart (weld part1).

Bumping, still having issues with this.

It’s because your AlignPosition object’s MaxVelocity is inf, which is why it’s reaching its destination immediately. Set it to something low, like 10. This value is in studs per second, so setting it to 10 will allow it to travel at a max speed of 10 studs per second. Either that, or lower the Responsiveness of the AlignPosition, so it responds more slowly to movement.

You can also just put an attachment in your HumanoidRootPart and offset it appropriately for the AlignPosition object to follow, you don’t need to create an entirely separate part and weld it to your root part.

The attachment to replace the part worked thank you for that, but lowering the max velocity and responsiveness didn’t. This works temporarily but after like 20 seconds the pet seems to become stuck onto one position with no delay of drag movement like before. I connected a video of it happening in this post.

1 Like

Oh I saw this post and was about to lose hope

LOL

But it seems to have something to do with network ownership.
I am also making something similar to a pet following the player with an intentional slight delay, and same issue where after 20 seconds it follows and sticks to the player like weld.

Well I found a solution, set the network ownership of the pet model and including the parent of the align position to the server. This fixed the issue for me and it should resolve yours too.

This is the code I used, up to you if you wanna use it lol.

local player = game.Players:GetPlayerFromCharacter(StandModel.Parent)

for _, part in ipairs(StandModel:GetDescendants()) do
    if part:IsA("BasePart") then
        part:SetNetworkOwner(player)
    end
end

Hope this helps! :blush:

(Its been a year? Idk lol)