I made vr arms, but I can't manage to replicate their movements to the server

Hi, I’m trying to create vr hand movements and I’ve figured out the controller tracking, but the movements don’t replicate to the server.

As you can see in the video I tried to set the network ownership of the player’s body parts to the player using the script I made here

	for i, v in pairs(workspace:WaitForChild(player.Name):GetChildren()) do
		if v:IsA("MeshPart") then

so that the arms can be moved by the player, in a local script
but also as you saw in the video despite setting network ownership of the parts to the player. it still doesn’t work. I have no anchored parts and they aren’t welded to anything anchored is there any reason why the player doesn’t replicate movements to the server

1 Like

Joint movement doesn’t replicate to the server, if you’re removing the arm joints and moving them with physics then you also need to remove the joints on the server. If you’re manipulating the joint c0 and c1 then you’re going to have to update this through remote events.

yes I understand, but doing this through remote events can cause lag and add stress onto the server. Hence why I’m trying to figure out why setnetworkowner isn’t working. That way I don’t have to spam remote events. Because if you read the network ownership api that I talked about which you can read about here it’s supposed to replicate local script actions on a part to the server.

also if you watched the video, you’ll know that I disabled the Motor6Ds as the arms move just fine on the server.

Are you sure you disabled the joints on the server?
removing/disabling joints on the client does not replicate.

Also it doesn’t really matter how many times you signal a remote, what matters is how much data you’re sending through them. (though it’s still preferred to cap signals to 30 fps and no higher)

(quick note : using cframe to set a network owned part every frame can cause it to jitter like crazy, just not on your screen ofc)

well you see I tried disabling joints on the server but still, the cframe of the parts didn’t change. they just fell to the ground and didn’t move

That’s because network ownership doesn’t directly replicate cframe but instead the physics of said object. Use things like align position / align orientation so it can replicate properly between client sever boundaries.

Example of network ownership not quite behaving very well with cframing

1 Like

alright I’ll try that, thanks mate