So I have a bunch of characters inside ReplicatedStorage. I want to duplicate these on the client only, and put it in Workspace. However, when I put tools in said characters, and try to play animations on them, the animations simply don’t play. Is this actually a limitation by Roblox preventing you to do stuff like this to characters on the client only or is it some mistake with my code?
I am doing this on the client to make everything a lot smoother, preventing unnecessary things to be on the server like these characters as an example.
Not a Roblox limitation.
It’s almost always because your cloned client NPC is missing proper animation setup.
Animations only play if the rig has:
Humanoid + Animator or
AnimationController + Animator
If that’s missing, :Play() does nothing.
Also:
- Tools don’t behave properly on fake client-only characters (they’re designed for real server characters).
- Client NPCs are fine visually, but tool + animation systems expect full character setups.
Make sure your cloned model has an Animator under either Humanoid or AnimationController, then load animations through that.h that.
Pretty much, yes.
- Client-only NPCs = visuals only, tools/animations can be unreliable
- Server NPCs = tools + animations work properly and replicate correctly
So if you want normal Tool behaviour, put the characters on the server.
This Alfiepro98234 is obviously using chatgpt
You can play animations on characters with tools 100% on the client without doing anything from the server
i was suspecting that, a shame people are sad enough to use it
im gonna try it again and let you know if it works cuz maybe it was just a coding mistake then
for whatever reason, creating/duplicating characters on the client makes the tool disappear? i even tried in a baseplate test place and it still happens so it cannot be a mistake by me
update: i figured it out. if you wanna add a client tool to a client character, you also need to create a weld called “RightGrip”, add it to the RightHand, Part0 should be RightHand, Part1 should be the handle of the tool. i do not know why this isnt just done on the client but whatever thanks roblox