Animations not replicating from client

Okaayyyy, it seems like there are a mess of responses

Not sure if somebody said this, but I guess I’ll go ahead and make something clear:
Animations replicate onto client. When an animation is played, for example, from a PlayerGui, it will work.

However, instances that are not part of the StarterCharacter will not replicate, unless it is a part whitelisted scenarios and instances by the core server and core client alike. In your case, like most others, the pet is not a part of the StarterCharacter (a whitelisted scenario). You will have to play the animation from the server if you would like others to see it.

If you need a more in-depth description, lemme know dude :wink:

1 Like

Animations played on one client do not replicate to other clients. Please take a look at what the default animate script is doing before you make that statement.

-- connect events
Humanoid.Died:connect(onDied)
Humanoid.Running:connect(onRunning)
Humanoid.Jumping:connect(onJumping)
Humanoid.Climbing:connect(onClimbing)
Humanoid.GettingUp:connect(onGettingUp)
Humanoid.FreeFalling:connect(onFreeFall)
Humanoid.FallingDown:connect(onFallingDown)
Humanoid.Seated:connect(onSeated)
Humanoid.PlatformStanding:connect(onPlatformStanding)
Humanoid.Swimming:connect(onSwimming)

It is not replicating animations to the other clients. It is actually replicating the humanoid states to the other clients so that they can play the animation associated with the current humanoid state.

The only thing that the client has control over is the position of a part that they have network ownership over. The network ownership of StarterCharacter's primary part is automatically asigned to the character belongs to, unless you decide to use a custom starter character, in which case you would have to assign network ownership manually.

:man_shrugging: they all have different ids as well

It is not replicating animations to the other clients. It is actually replicating the humanoid states to the other clients so that they can play the animation associated with the current humanoid state.

Looking around the default animation script, you will see that it plays animations locally. There are a lot of these discussions on this dev forum and you’ll find there’s one general thing that is consistent among findings (mentioned below). I don’t see how the pasted code relates to your claim, is there any documentation detailing this “implicit replication?”

Animations played on one client do not replicate to other clients.

Animations played on one client DO replicate to other clients for characters that are player-owned .

Do take a read here:
https://developer.roblox.com/en-us/api-reference/function/Humanoid/LoadAnimation

Are you even bothering to read the default animation script? Animations played by one client do not replicate to any other. Why do you think it isn’t working for the OP? You could go ahead and even try it on a custom rig right now in fact. If they DID replicate, you’d see a lot more exploiters using animations wouldn’t you?

THE ONLY THING THAT DOES REPLICATE ARE THE HUMANOID STATES

Stop giving false information and actually read up on network ownership before you make those statements.

That has nothing to do with the OP’s post. We are talking about animating custom rigs with an animation controller, not humanoids. Animations PLAYED ON A CLIENT’S ANIMATION CONTROLLER will not replicate to other players.

1 Like

Here is what @regularwolf said:

And here is what I said:

I am a pretty experienced developer. I don’t want anybody here to get false information. I can tell anybody here that from my experience, animations playing the LocalPlayer's character will be seen by everybody else. This does not work, however, for other parts added into the character after or at spawn.

Now, I can explain a general idea of how exploiters are not able to play animations. Before a server is run, Roblox will first run a scan and keep reference as too what scripts are part of the game. When an animation is called, Roblox will try to check which script is requesting for it to be played. If it can verify that it is a legit script from the developer’s code, it will replicate. Otherwise, it will play locally to play it safe. The system works well actually, to make sure developers can play animations well and exploiters can’t abuse the system.

I hope this can be a solution to everything here. If you are confused, or think I have a mistake, lemme know dudes.

2 Likes

That is only if it is played on the default roblox character. The OP is talking about a custom rig with an animation controller, not the default character that uses humanoids.

1 Like

It will work with custom characters if they are named “StarterCharacter” and put under StarterPlayer. They must have a verified RootPart with proper Attachments and Motor6Ds.

You’re incorrect.

AnimationTest.rbxl (21.4 KB)

That’s because the LocalPlayer has implicit network ownership of their character. Clients can play and replicate animations on anything they have network ownership over.

Source? I can tell you right now a chunk of this is false. Roblox does not keep references to LuaSourceContainers. Exploiters can pass off code to the interpreter the same way your own code from Studio does. Replication has nothing to do with the interpreter, so this is off-topic.

StarterCharacter simply changes the assembly of the character. The backend still passes network ownership over. Having a StarterCharacter changes nothing. Attachments are irrelevant. Motor6Ds are transformed by animations, so yes you will need those to animate at the very minimum.

I can see you do not proper setup for Attachments, Motor6Ds, or Humanoid.
It hes to be set up correctly.

The OP isn’t using a humanoid and the character model is the cloned roblox character with it’s humanoid removed. You’re honestly just making this stuff up at this point.

2 Likes

Oops, you are right about attachments. I looked; sorry 'bout that.
However, Motor6Ds and the Humanoid have to be properly set up in order to replicate. Otherwise, it will play Locally.
Want me to give an example? I’ll set up demo if you want :wink:

Client animations only replicate if their character is using a humanoid.

As you can see in my previous post, the player has full network ownership of all parts in the character.

As I’ve said multiples times, the OP DOES NOT want to use humanoids.

This is because of the Animator object created in the Humanoid. If I recall correctly, creating one on the server can resolve the replication issue. Apply the same to an AnimationController.

2 Likes

I’m not making stuff up, I promise.
I think we are also getting off topic with talking about the humanoid (don’t know who did get towards that way, but it’s fine). Remember, we are trying to help @Acreol. Let’s do that bros.

Overall, the AnimationController won’t replicate animations (at least that’s what I would know).
Its not super complicated, it’s how it works.

That just answered the OP’s post so now we can move on from this conversation.

I did not know the animator object existed since most of my projects don’t revolve around animations, but at least I learned something new today :thinking:.

I ditto that.

Lemme grab some quotes that should be the answer to this question.

Hope that works out :slight_smile:

2 Likes