I have been trying to find a better way to flip my sprites so my animations will no longer bug and I don't need 2 separate animations for left and right (body parts are separate objects) so when I do Player.scale = Vector2(lastX, 1) (lastX equals to the last button press left for -1 right for 1) it will start to bug out as seen in the gif below.

  • You are scaling the whole player. Scaling collision shapes causes glitches with the physics engine (they should never be scaled).

    What you want to do is only scale the visual appearance of the sprites, none of the other objects. Since you have different parts of the body on different layers, what you might want to do is create a parent object and put only the body parts in that. It could be just a Node2D or maybe a CanvasGroup if you wish to do any coloring or transparency. You'll have to edit the animation though since it will break the links.

    https://docs.godotengine.org/en/stable/classes/class_canvasgroup.html

You are scaling the whole player. Scaling collision shapes causes glitches with the physics engine (they should never be scaled).

What you want to do is only scale the visual appearance of the sprites, none of the other objects. Since you have different parts of the body on different layers, what you might want to do is create a parent object and put only the body parts in that. It could be just a Node2D or maybe a CanvasGroup if you wish to do any coloring or transparency. You'll have to edit the animation though since it will break the links.

https://docs.godotengine.org/en/stable/classes/class_canvasgroup.html

    cybereality I figured out after this is I selected position in the animation player and added "BodyParts/" to the start which is the name of the node2D it relinked them!