Client network transform (C.N.T) does not collide with another C.N.T

I am doing an FPS to learn NFGO and when spawning two players are not able to collide with each other due to the aforementioned component, once it is deactivated the collision works again.

I need the most beginner friendly solution to this problem, thanks!

I solved the problem by making my own Network Transform adapted to my needs, I attach the code in case someone needs it, I am using the CharacterController to move my player, explanations are commented in the code. If anyone can optimize it I would appreciate it. Thank you!

using UnityEngine;
using Unity.Netcode;

[RequireComponent(typeof(CharacterMotor))]
public class NetworkTransformCustom : NetworkBehaviour
{

    [SerializeField] private bool _serverAuth;
    [SerializeField] private float _cheapInterpolationTime = 0.1f;

    private NetworkVariable<PlayerNetworkState> _playerState;
    private CharacterMotor motor;

    private void Awake()
    {
        motor = GetComponent<CharacterMotor>();

        var permission = _serverAuth ? NetworkVariableWritePermission.Server : NetworkVariableWritePermission.Owner;
        _playerState = new NetworkVariable<PlayerNetworkState>(writePerm: permission);
    }

    private void Update()
    {
        if (IsOwner) TransmitState();
        else ConsumeState();
    }

    #region Transmit State

    private void TransmitState()
    {
        var state = new PlayerNetworkState
        {
            Position = motor.transform.position,
            Rotation = transform.rotation.eulerAngles
        };

        if (IsServer || !_serverAuth)
            _playerState.Value = state;
        else
            TransmitStateServerRpc(state);
    }

    [ServerRpc]
    private void TransmitStateServerRpc(PlayerNetworkState state)
    {
        _playerState.Value = state;
    }

    #endregion

    #region Interpolate State

    private Vector3 _posVel;
    private float _rotVelY;

    private void ConsumeState()
    {
        // Here you'll find the cheapest, dirtiest interpolation you'll ever come across. Please do better in your game
        // 'TeleportPlayer' disable CharacterController, change the position of transform with 'transform.position = newPosition' and enable the controller
        motor.TeleportPlayer(Vector3.SmoothDamp(motor.transform.position, _playerState.Value.Position, ref _posVel, _cheapInterpolationTime));

        transform.rotation = Quaternion.Euler(
            0, Mathf.SmoothDampAngle(transform.rotation.eulerAngles.y, _playerState.Value.Rotation.y, ref _rotVelY, _cheapInterpolationTime), 0);
    }

    #endregion

    private struct PlayerNetworkState : INetworkSerializable
    {
        private float _posX, _posY, _posZ;
        private short _rotY;

        internal Vector3 Position
        {
            get => new(_posX, _posY, _posZ);
            set
            {
                _posX = value.x;
                _posY = value.y;
                _posZ = value.z;
            }
        }

        internal Vector3 Rotation
        {
            get => new(0, _rotY, 0);
            set => _rotY = (short)value.y;
        }

        public void NetworkSerialize<T>(BufferSerializer<T> serializer) where T : IReaderWriter
        {
            serializer.SerializeValue(ref _posX);
            serializer.SerializeValue(ref _posY);
            serializer.SerializeValue(ref _posZ);

            serializer.SerializeValue(ref _rotY);
        }
    }
}