Setting rigidbody position with ".MovePosition()" a single time results in a desync between clients.
This successfully moves the rb to the desired position to the owner of the object but not the other clients.
RealtimeTransform component. When you're dealing with a Rigidbody, RealtimeTransform works a bit differently. Instead of synchronizing the and properties of the transform, it synchronizes the and properties of the Rigidbody, which are in world space instead of local space. This is because PhysX, the physics engine used by Unity, simulates all rigidbodies in world space (source (https://normcore.io/documentation/realtime/networked-physics#realtimetransform--physics)).RealtimeTransform that it should not clear ownership when the object goes to sleep (source (https://normcore.io/documentation/realtime/networked-physics#realtimetransform--physics)).RealtimeTransform treats the client that owns the object as the source of truth. All other clients follow along with the owner's copy of the transform or rigidbody (source (https://normcore.io/documentation/realtime/realtimetransform#how-it-works)).RealtimeTransform component on it, you must be the owner of the RealtimeTransform component. You can request ownership of a RealtimeTransform component by calling RequestOwnership() (source (https://normcore.io/documentation/realtime/realtimetransform#how-it-works)).RequestOwnership(), setting the position of a transform, and then immediately calling , nothing will happen because Normcore doesn’t send changes to the server immediately when you change ownership or the value on a model. Instead, it synchronizes at 20hz and sends the latest state. If you change something and then change it back immediately, nothing will be sent to the server (source (https://normcore.io/documentation/realtime/common-questions#im-calling-requestownership-setting-the-position-of-a-transform-and-then-immediately-calling-clearownershipbut-nothing-happens-how-can-i-fix-this)).RealtimeTransform component to the GameObject.RealtimeTransform component.localPositionlocalRotationpositionrotationClearOwnership()