I’m attempting to create a way for a player to pick up another player (e.g. carry on shoulders)
I’ve tried welding players HumanoidRootParts together, disabling jumping and setting humanoid state to physics. This causes some network issues and appears to make the carrying player “laggy”.
Also tried using constraints such as AlignPosition/Orientation however I didn’t get promising results either, I may be doing that wrong too.
Basically, what would be the best method of picking up another player
The reason for the “laggy” appearance of the carrying player is because you have a mechanism involving two assemblies of different network ownership where one is trying to influence or take control of another’s physics. Replication control is being contested in this mechanism. You will need to set the network ownership of the carried character to the carrying player to get rid of that.
Please try searching for answers to your questions first - would save you the time and a thread bump. A quick 5 second search can lead you to the Developer Hub page on Network Ownership which contains the method on how to determine a part’s network owner, SetNetworkOwner.