Instant networked rigidbody movement

I’m looking to instantly ‘teleport’ a rigidbody without interpolation. In a non-networked environment I’d simply set the rigidbody’s position, which the documentation for MovePosition suggests:

Set Rigidbody.position instead, if you want to teleport a rigidbody from one position to another, with no intermediate positions being rendered.

This approach however does result in interpolation on the server-side, whereby I see the object move from it’s previous position to the new rigidbody.position over a series of frames. My working theory is that this is the result of the NetworkTransform script (which I have set to Sync Rigidbody 3D) attempting to smooth the position change. Normally this would be the desired behaviour to enable players to move smoothly, but in this instance I’d like to avoid it.

Is this what’s happening? If so, is there any way to make a temporary exception, or to avoid it entirely?

there are parameters on the NetworkTransform component which by using them you can set distances which interpolation happen in them and you can change interpolation factor at runtime as well. If you can modify these at runtime then you can disable interpolation for a second and do what you want and re enable it but I have not tested it, maybe you can not change it at runtime and maybe the variables are not synced, also you can try to do this using a command and then send RPC from server to everyone to instantly change position, then the sync script can be disabled for a second and then change position and reenabled.

The second solution of Ashkan_gc seems better.
Send a teleport message to force the new position. You probably have to wait the teleportation answer from the server before to allow the player to move his character to prevent the NetworkTransform to continue to send position.

something like that:

public void Teleport(Vector3 position)
{
    canMove = false;
    CmdTeleport(position);
}

[Command]
private void CmdTeleport(Vector3 position)
{
    RpcTeleport(position);
}

[ClientRpc]
private void RpcTeleport(position)
{
    transform.position = position;
    canMove = true;
}