I don’t know if there is a correct way, but considering that you shouldn’t directly set position and rotation of rigidbodies (See here), I’d only simulate physics on the server and on clients use no rigidbodies at all and instead only sync the position of meshinstances, or kinematicbodies on client with rigidbodies on the server.
Thank you for the answer! I’ll try to sync mesh instances instead.
I am also finding the correct way to sync physics, but the error is cause by your function call from wrong peer
ERROR: _process_rpc: Condition ` !_can_call_mode(p_node, rpc_mode, p_from) ` is true.
Look like your server receive the RPC from the client, and server (master) will not allow client (puppet) to call (because you have set puppet on the func), try to add a check so client will not call the RPC
func _physics_process(delta):
if get_tree().is_network_server():
rpc_unreliable("update_pos_rot", translation, rotation)