Why does a rigidbody not like its position and rotation being set?

:information_source: Attention Topic was automatically imported from the old Question2Answer platform.
:bust_in_silhouette: Asked By Fireflash

I have a simple player FPS controller set up like so:

RigidBody
-CollisionShape
-MeshInstance
--Armature
---BoneAttachment
----Camera
-----Position3d

The neck bone is rotated up and down which in turn makes the camera rotate up and down (for y axis camera movement)
The player moves using _integrate_forces.
A rigidbody (in this instance, of course, a gun) is created as the child of the root node and set to kinematic mode, its position and rotation are updated inside the player _integrate_forces function.
When the player is translating, the gun sticks to the point it is set to, as expected. When the player/camera is rotating, the gun jitters around and seems to go further then it should (gif provided)


Some other (unanswered) questions I had a while ago have similar issues, that being the same general premise: any physics body does not like its position/rotation being set by the player for whatever reason. This forum does not allow embedding mp4s, so I will just link the two videos.
In the first video, the camera has a child rigidbody set to static mode (the sphere wireframe in the middle of the screen) and a 6dofjoint as a child of the rigidbody - the gun is then a child of the root node and set to one of the joint’s connected nodes. The gun “lags” behind where it should be this is not caused by the joint as you can see in the second video. (I enabled all of the axis locks)
In the second video, the scene is exactly the same, except the joint is connected directly to the player rigidbody, and not a child of the camera.

Why does this happen and how can I make it not happen? (eg the gun stays locked to the point in front of the camera - preferably with a joint for some custom axis locks etc.)