Body position too elastic

So, I’ve got a body position to move my train here, the start and finish is marked with a black part. The problem I have, is when the train reaches the finish, it always goes past the goal, and springs back. I’ve tried increasing the force and it works to some degree, but that makes it go too fast for my liking. Anyone able to help?

local model = script.Parent.Parent
local platform = model.Main
local start = model.Start
local finish = model.Finish
local bodyPos = platform.BodyPosition
local timer = 20

while true do
	bodyPos.position = start.Position
	wait(timer)
	bodyPos.position = finish.Position
	wait(timer)
end

Maybe you could make the parts on the train massless.

Had no effect on the movement sadly

Add a BodyVelocity in your train, set the BodyVelocity’s properties to this:

MaxForce: 4000, 4000, 4000
P: 1250
Velocity: 0, 0, 0

Would I get rid of the body position and put that instead?

Or would I keep the body position and its values?

Keep the BodyPosition. That’s what makes the train go smoothly to an object’s position instead of going to the position in a frame.

Would I keep the body position’s values all the same?

Yes. The values are enough to make the train stable

Cool! The bouncing back seems to have gone down a lot now, but there is still a bit of bouncing back when it reaches the finish.

Is there a way to make it even less elastic? There’s still some bounciness when it comes to stopping.

Honestly, I don’t think using a BodyPosition for moving a train is a good idea.

Have you considered using AlignPosition instead? It has a MaxVelocity property which could solve your speed problem.

How would I use the AlignPosition exactly?

It’s like a BodyPosition, but instead of a part and a position it’s being pulled towards, there’s an Attachment that is pulled towards another Attachment.

Unless you need to customize MaxForce for each axis, AlignPosition is superior and you should use it.

I don’t see how I could implement this system into my train.

I’d sughest putting Attachment0 of the AlignPosition on the train and Attachment1 on the starting part.

Then, when you want the train to move, change Attachment1’s parent to the finish part, so the attachment changes it’s location.

Alright, I’'ll see if I can make it work.

One question however, would it bring the player along with it when the train moves?

It should work the same as BodyPosition, so yes, it should.

If you increase dampening (BodyPosition.D), you can get rid of this effect, but it’ll slow down as it reaches its target. Alternatively, you could also use tweening if you don’t want to deal with body movers.