Hello. Today I was working on a custom character system in which the server only stores information for the Humanoid and the HumanoidRootPart, whereas the client(s) are responsible for all other information (eg. on the server only the Humanoid and HumanoidRootPart exists, whereas on the clients all the limbs are present).
I chose to do this as I wanted to experiment with simulating ragdolls and animations for my upcoming game only on the client, however I came across two roadblocks.
The first of which was Animator behavior. When an Animator is located in Player.Character, it will automatically replicate to the server, however the server does not have the limbs that are being animated present. I believe this impacted how animations played on other clients regardless of that. Non-the-less, this problem isn’t as much of a concern as there have been luau implementation of animations via CFrames and writing to Motor6D transforms.
The bigger of the two roblox came in the form of network ownership replication. When testing my ragdoll in the Local Server Emulator, I came across an issue that could best be described as the Ragdoll working on the Player’s client but not any other players client. The expected behavior is for the Player to reset, and the CollisionConstraints on the fake limbs handle the ragdoll on each players client, however what ends up happening can be seen below.
As can be seen in the images, the server has the RootParts in their expected position, as do the clients. However, on Player1’s client the limbs connected to Player2’s Torso (which itself is welded to Player2’s RootPart) are not following with the ragdoll in a fashion remotely similar to what is seen on Player2’s client.
If anybody has an explanation as to why this may be happening or alternative routes I could explore, I have attached a file to this post showcasing what I believe to be are engine bugs.
Also in the image, Owners are shown is enabled, hence the outlines on the parts and the post title. (since limbs are only rendered on the client).
MAKE SURE TO DISABLE STREAMING ENABLED ALSO
BrokenNetworkOwnership.rbxl (80.0 KB)