Whats causing this?

Could be because of multiple tweens running at the same time on the same model

This is likely as I’m playing a tween every .2 second, How exactly do i stop all of the current playing tweens?

What tween are you playing every .2 seconds?

1 Like

The tween to position the character. TweenService:Create(enemy.PrimaryPart, TweenInfo.new(.2, Enum.EasingStyle.Linear),{CFrame = Goal}):Play()

1 Like

You should only do one tween to move it to the destination, and detect when that tween is completion using tween.Completed

You should really use Humanoid:MoveTo instead

1 Like

That makes the humanoid walk to a position. That does not tween an anchored character

1 Like

Well it seems like he is making a TDS type of game, why not use Humanoid:MoveTo for the characters moving?

1 Like

I’m sticking with this method for optimization reasons.

Running a tween every .2 seconds isn’t that optimized

1 Like

Or do you mean his method?

Specifically @KdudeDev’s method. I Spent 3 Months Making A Tower Defense Game | Vault TD Devlog #1 - YouTube

Yuh Just use Humanoid:MoveTo() event.

I’m sticking with this method. Changing to Humanoid:MoveTo() is not a fix. I’m specifically looking for a fix not a different method.

Are there Multiple Tweens running at once?

I believe so. How would I stop all playing tweens? Store them in a table and manually stop them when I play a new one?

No. Theres Tween:Pause() and Tween:Cancel() events for further info read here How can I stop my tween?

Since there’s just a known route, you can use the event tween.Completed to then signal the next waypoint on the path. This object is usually returned after creating a tween. Rather than trying to constantly play a new set of tweens every .2 seconds

local tween = TweenService:Create(..., currentGoal)
-- next goal

The tweens are running on the client.

That doesn’t matter. You can still apply the same logic either side. It’s sort of hard to create a solution without the actual code.