Kinematic child won't work when parent is moving

Hello,
I am making a character with a baseball bat. The character is supposed to be moving and swing the bat while doing so.

My setup consists of:

A parent, which is basically the Baseballer with a standard movement code:

	void Start () {

		rb = GetComponent<Rigidbody> ();
	}

    void FixedUpdate(){

        if (rb.velocity.magnitude < speedLimit)
        {
            float moveHorizontal = Input.GetAxis("Horizontal");
            float moveVertical = Input.GetAxis("Vertical");

            Vector3 movement = new Vector3(moveHorizontal, 0f, moveVertical);

            rb.AddForce(movement * speed);
        }
	}

and a child, which is the bat, with IsKinematic checked, with the following code:

    void Start()
    {
        rb = GetComponent<Rigidbody>();
    }

    void FixedUpdate()
    {
        //read RIGHT stick inputs
        float moveHorizontal = Input.GetAxis("Horizontal2");
        float moveVertical = Input.GetAxis("Vertical2");

        Vector3 movement = new Vector3(moveHorizontal, 0f, moveVertical);

        if (movement != Vector3.zero)
        {
            
            rb.MoveRotation(Quaternion.Slerp(transform.rotation, Quaternion.LookRotation(movement), Time.deltaTime * rotateSpeed));
            
        }
    }

For some reason, I can only move the bat with the right stick when the baseballer is NOT moving. What could it be? If I untick IsKinematic it works correctly, but I need the bat to be Kinematic.

So, to get the best results, here’s what I’m going to recommend… disable kinematic on the bat and add a configurable joint. If you do that, it will allow the bat to run via the physics engine and affect the physics engine while keeping it attached to the player. You’ll need to add/remove torque from input, but that shouldn’t be too hard, and you can even use the joint’s motor function to do so.