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
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.
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