Spline question. Why is it that my code behaves like this?

Ok so basically i followed tuts on youtube about having your playable character being constraint to a spline and finally to realize that i only need the “find closest tangent” bp node to get a direction vector for my movement.

But there’s a problem, my character will change it’s direction every time he passes through a spline point (one that has an angle, as in the pics ) but it changes again when i move back by an offset, and then again when i go forwards and on and on. The offset seems to be related to the character’s speed, the bigger the speed, the bigger the offset. I’d like to figure out why this happens. I don’t want to use the set world location for my character as this causes it to move by itself.