Running Humanoid:MoveTo() on another player from client side

Right now am trying to make a handcuff detain system, right now the detainer gets network ownership of the detainee, and moves the detainee from the client. However there is no walking animation so I would like to make it use a :MoveTo() function instead to move the detainee from the client, however the :MoveTo() function doesn’t seem to work when you use it on the detainee’s humanoid from the client even though you have network ownership over them.

I don’t want to send a remote event so the server runs :MoveTo() as that would cause a delay + it would run a remote event on every frame which is baddd.


Instead of MoveTo(), why not use HRP.CFrame?

There’s no animations when you just set the CFrame + it just looks kind of unrealistic

I didn’t understand this

Done on a very short delay such as RenderStepped or something should teleport the character with no delay. And done on the server, since I remember that setting it is not replicated on the client-server boundary.

I meant walking animations, there’s no walking animations and so the detainee just glides around

I have an idea. And that is my last idea.

Move the player on server without any RemoteEvents, do the MoveTo() on server in a while loop with a 0.5 delay. If you really don’t want that, then just fire the event when the player is moving, so it doesn’t fire when it shouldn’t.

I’ve tried having the server handle the movement and that won’t work either as only the client has the most recent position, there’s a lil bit of a delay between what the server thinks the client’s position is and what the client thinks it’s position is.

Have you set the NetworkOwner to the player? In this moment I am not sure who of the 2 players should get the ownership.

Yes I am setting the primarypart’s network ownership

As that was my last idea, I don’t know what to say. Maybe look at some tutorials on YouTube to see how they do it.

To be honest I don’t think you can/should set the networkownership of other player’s characters, as they automatically get networkownership of their own character. Tbh I never tried it though.

You could send just one remote event to the server, and keep following from there. Actually since you set networkownership you can go from there instead without the remote event. Yes it would stream on every update (maybe doing so every heartbeat is a little overdone), but that would kind of happen anyway. Yes there is slightly more latency on the players side, but maybe you could still hide that with some local behaviour.

It would probably be tedious to make a clone of the other player’s character and use that instead. Not sure if this helps, but good luck!

In my opinion characters are one of the most rigid and least customizable things in roblox. Also why would u need the remote every frame? Plus the delay is there in every multiplayer game, can’t help it much. Just fire the remote everytime u want the player to move the npc then move the npc there on the server, won’t require it to be sent every frame.

Edit: nevermind misread your post, maybe u could go inside the animate script inside the detainees character then get the walk animation and play it?