Why do changes to a Motor6D within the LocalPlayer's character not replicate?

I’m new to messing around with joints, and confused by some behavior.

I have a LocalScript that changes the C0 of the character’s waist joint, according to the LookVector of the camera. Because the player is the network owner of the character, I would expect this change to replicate.

Apparently this isn’t actually the behavior. Why is this the case, when a local change to the character’s HumanoidRootPart for example would replicate? Additionally, I thought that animations played locally also replicate automatically – is that not (in effect) just changing the joints locally?

I understand this is a bit of a strange question, but hopefully somebody could shed some light on this :slight_smile:

Network ownership only pertains towards BaseParts and physics replication, not other properties. C0 is a motor property and follows standard replication rules. The client having network ownership over the parts a weld connects is irrelevant: the property change will not be seen.

Animations replicate when the client plays them because of the Animator object. The server creates this upon any first attempt to use LoadAnimation on a Humanoid or AnimationController. The Animator object gives the client authority to play animations which the server receives and replicates automatically.

4 Likes

The wish for more network control continues :man_facepalming:

2 Likes

How can the OP solve this problem then?

A Client Side solution if possible

Either by using animations as noted by @ScriptingSupport or by doing them server side also as noted by @ScriptingSupport

Just gonna update it server-side too, since client-side updates the joint every Heartbeat. If it was a more complicated situation than that, I would probably be highly annoyed lol

Are there any defects of running all animations server sided?