Client Motion Controllers don't track

We’ve been trying to replicate motion controllers starting with the base VR template. We were running into the classic one controller controls both pawns. Another issue we were noticing was that the game would spawn an extra set of motion controllers. Two pawns would spawn but 6 motion controllers would be spawns somehow from those two pawns.

So as a way to simplify what was going on and to not have to edit any code inside the engine, we decided to create a motion controller component derivative to place on our VR pawn directly.

We started by creating the component and then moving all the code from the VR template motion controller actor to this new component. Then we placed two of them on the pawn (left and right) along with all the components found inside the template motion controller actor. On begin play we are able to check ownership against the pawn and use a replicated variable to increment our pawn index that we pass to the motion controllers. We also pass all our references to the left and right motion controller components respectively to make sure they can handle all the same input and logic that the actor was handling previously.

This works perfectly for single player. When we booted up a LAN multiplayer session we noticed that the server and client now control their own pawn correctly (so we fixed that initial problem), but now the clients motion controller components don’t track his actual VR controllers. However, when they press buttons, such as teleport, it works. It’s just that the teleport comes out of the position where the motion controller component is… which is around the pawn VR origin.

At this point we are not sure how to go about getting this to work. It seems like the motion controller components themselves are just not tracking but we have verified that our other input is working correctly for the client.

Any help on this would be appreciated. We’re trying to keep this a pure blueprint project so we can distribute this to anyone with ease.