How to make segments of a model be spaced but move as i want it to?

So, for fun I’m making slither on roblox.
A problem I’ve encountered is the insane amount of segments required to even get the snake off screen.

This is due to my current code for “spacing” the segments apart.

local PartAheadCFrame = workspace.Snakes[PlayerToUpdate.Name].Snake.Base.CFrame

for Index, Model in pairs(workspace.Snakes[PlayerToUpdate.Name].Following:GetChildren()) do
	local MoveTo = PartAheadCFrame
	PartAheadCFrame = Model.Base.CFrame
	Model:PivotTo(MoveTo)
end

Well, there isn’t any spacing in my code.

The problem is that if I attempt to add spacing, the snake doesn’t rotate properly.

This is how the snake should function:

And this is how it shouldn’t function, which is where im stuck.

I want the parts to be spaced like in the second video, but move like in the first.

I may be stupid, but how do I do this?

It’s because you’re pivoting it into the base.

Also that second clip is literally 22 minutes after the first clip can’t you just revert it?

I did revert it, I just want to know exactly how to position it correctly.

Yes I know that, that isnt the solution I was looking for but thanks.

The snake is literally 2 inches long why would it be swerving all over the place like the first clip

The first clip controls like the actual slither, the second on doesn’t.
Plus the first clip is just better to play, because running into another players body kills you and being able to just turn your entire body like in the second clip would just be unfair.