I have a pet that follows the player and interacts with the environment.
- The pet is a model created on the server side
- The owner player is given network ownership of the pet
- The owner’s localscript controls the pet’s movement and animations
I’m facing the issue that the animations aren’t replicating to other clients. Your pet moves fine on your screen but another player will see it T-posing.
Replication is solved if you parent the pet to the player’s character, but that’s a very hacky method which interferes with grouping models.
I looked into documentations for the Animator object:
Loading an Animation on Client or Server
In order for AnimationTracks to replicate correctly, it’s important to know when they should be loaded on the client or on the server:
If an Animator is a descendant of a Humanoid or AnimationController in a player’s Player.Character, animations started on that player’s client will be replicated to the server and other clients.
If the Animator is not a descendant of a player character, its animations must be loaded and started on the server to replicate.
I want to avoid manually working on a replication system since it also interacts with StreamingEnabled edge cases which makes this 10x harder than it needs to be (ex: you need to track a model that’s been loaded in which already has idle playing at time position X). These interactions are already solved by the Roblox implementation.
Can I somehow get the replication to work without a manual system?