I recently implemented a ragdoll system into No-Scope Sniping (a game of mine), that is 99% run from client. This includes constraints and blood.
While it works fine on solo play in studio, the constraints don’t hold together when actually playing NSS in-game. Is there any possible explanation? Do constraints have to be treated differently on client?
I think I need a bit more info here. When you say 99% run from client, what operations are performed on the client, and what operations are performed on the server?
That’s correct. It may also help you to know that the client always properly gets the information, and no errors are produced from any of these scripts.
This is a very old post of mine, glad you asked for a solution.
In short, all of my projects recently use a ragdolling method that clones a character, creates collision data, creates constraints, and parents to the client-sided workspace. To do this a remote informs all clients that a player has died, passing on the player name to minimize packet size.
Here is your bucket list for creating a cloned-character ragdoll
On the server, disable Humanoid.BreakJointsOnDeath
On the server, set Player.Character.Archivable to true
On the server, inform the players that there has been a death
On the client, clone the character and apply the ragdoll to the new clone
On the client, if you would like, apply velocity, blood, gore, and/or any other effects to the clone.
On the client, parent the cloned ragdoll as a descendant of workspace