Scripting HelpersARCHIVE
A little piece of Roblox history. Preserved for everyone, one question at a time.Read about the archive →
COMMUNITY QUESTION

How would you ensure that a script replicates a Character.Animate ID change?

First thing's first, I know very little about animation in Roblox. This is my first attempt to try and expand my knowledge, and I've come across an issue I can't quite fix. I'm not quite sure if my issue is because of my code, or because of something I don't know of yet involved with animating.

Here's my code:

local character = script.Parent
--//Script is stored in ServerStorage, and at some point, Clone()'d and placed in the player's character
local bool = true
character.Humanoid.WalkSpeed = 10
--//Sets up some basic variables and changes to speed

local animation = Instance.new("Animation")
animation.AnimationId = "http://www.roblox.com/Asset?ID=2851176317"
local CustomAnim1 = character.Humanoid:LoadAnimation(animation)

local animation2 = Instance.new("Animation")
animation2.AnimationId = "http://www.roblox.com/Asset?ID=2851319404"
local CustomAnim2 = character.Humanoid:LoadAnimation(animation2)
--//Creates two animation objects, which replicate fine

local function myFunc() --//This gets called elsewhere
	bool = false
	character.Humanoid.WalkSpeed = 1
	character.Head.Sound1:Stop()
	character.Head.Sound2:Play()
	CustomAnim1:Play()
	--//Again, custom animation played this way works fine

	wait(30)

	character.Head.Sound3:Play()
	character.Humanoid.WalkSpeed = 35
	CustomAnim1:Stop()
	script.Active.Value = true

	local humanoid = character:WaitForChild("Humanoid")
	for _, playingTracks in pairs(humanoid:GetPlayingAnimationTracks()) do
		playingTracks:Stop(0)
	end
	--//No prior animations are used, so stop everything

	local animateScript = character:WaitForChild("Animate")
	animateScript.run.RunAnim.AnimationId = "http://www.roblox.com/Asset?ID=507767714"
	--//Player is currently using the Rthro walk animation, so change the ID in the Animate script to the Rthro run animation ***This only loads for the local client

	CustomAnim2:Play()
	--//Plays my custom upper-body animation perfectly fine	

	wait(25)

	CustomAnim2:Stop()
	--//Custom animation stops

	local humanoid = character:WaitForChild("Humanoid")
	for _, playingTracks in pairs(humanoid:GetPlayingAnimationTracks()) do
		playingTracks:Stop(0)
	end
	--//All new animations are no longer needed, so stop all of them

	animateScript.run.RunAnim.AnimationId = "http://www.roblox.com/Asset?ID=2851440199"
	--//Since animateScript was already initialized, change the running animation ID back to the Rthro walking animation ID ***This only loads for the local client

	character.Head.Sound3:Stop()
	character.Humanoid.WalkSpeed = 10
	script.Active.Value = false
	wait(10)
	character.Head.Sound1:Play()
	bool = true
	--//Other sound and variable management
end

There are two ways animations are being ran in my script. One of these ways creates Animation objects, loads them into the player's Humanoid, and when I set the script to, :Play()'s it. These play for everyone, and seem to work fine. These animations however, are supposed to only affect the upper torso (R15) and arm bits, while leaving the legs handled by the default Roblox Rthro walk & run animations. This is where my issue arises. On my client, I can see my custom anims playing over the walk (and then run) anims just fine, but to every other player, I lack any leg animation whatsoever and just slide around. I suppose I could use the prior method of playing animations to force a walk animation on the Humanoid, but then the walk cycle would continue if the player stopped moving, and I want to avoid that.

Since only the local player sees the animations, I'd assume it was a replication error, but I'm using a Script (not a LocalScript), so I'd think that these changes would be replicated regardless. I've seen some people with similar issues, but they never seem to have any resolutions. Any help would be greatly appreciated!

1 answer

I know you posted this about a year ago but I just wanted to say your the most talented scripter ive ever seen. I look up to you.

This discussion is preserved as it was. New answers, comments, and votes are closed.