Cannot set network ownership of character humanoidrootpart?

Hey so whenever I set the network owner of the humanoidrootpart of a character to another player it will automatically set itself back after a few seconds. How can I prevent this?

5 Likes

I don’t really understand why this is necessary but you could probably use RunService.Heartbeat to set it every single frame. This is not very efficient but it’s the first thing I thought of.

Hope this helps

2 Likes

This is the worse case alternative. But others dont have this issue. This is necessary for a carrying system in my game.

try Character.Archivable = true

1 Like

Is there a particular reason you’re trying to do this? Every descendant of the Player’s Character is automatically under that Player’s network ownership. This is done to update the Player’s Character position, orientation, any animations, etc. It wouldn’t be smooth for the client otherwise.

1 Like

This doesnt solve the issue. Just tried it.

I need to for my carrying system. I use align positions. The carried player will be delayed behind the carrying player if the network ownership is not set.

I cannot use weldconstraints as that makes it so if one player dies they both die.

did you try it on the person being carried??

Why not just weld the root parts? It shouldn’t cause either player to die if the other one does. But as another alternative, even though it shouldn’t be needed, you can just create a proxy (clone) of the character being carried.

1 Like

The cloning thing wouldn’t be ideal for my game. And you cant weld the root parts. Thats what I was doing before.

What do you mean? You can weld root parts just fine. (Just tested to be sure.)

1 Like

Try to reset with one of them now. . Both will die

The more you know. Alternatively, you could use a remote and have the clients weld to each other. That seemed to work fine in Studio. However, that may give each client a different weld result, unless the server gives specific parameters for said weld.

I just ran into the exact same issue, also trying to implement a carry system. I feel like the accepted RunService.Heartbeat solution is a bit too excessive for this use case, so if anyone else is still looking for another simple solution, here’s mine:

You can toggle the other character’s parts CanCollide to false, when they’re being carried and then back to true once you release them. This will stop the characters from colliding with each other and prevent the glitchy behavior.

If you need the other player to be collideable, for whatever reason, you can still use this trick, except toggle it locally.

Caveat: remember that not all character parts should be CanCollide = true when you reset it after releasing a player.

3 Likes