Custom Character Walk Noises

So, I am trying to have specific walking sounds and each character needs their own respective walking noise as some of them are robots, and I’d like a more clunky noise for them.

However the issue is every script I have tried I have either put in the wrong place, its in the wrong script format (local, or script), or it just doesn’t work.

I have looked through several scripts and have tried searching on other platforms however all of them deal with StarterCharacterScripts while I am trying to simply do it for specific characters.

I have navigated the developer hub and found this script: (However I am not sure where I am supposed to but this and in what type of script it is supposed to be. When I did try it the way I understood it did not work. So if anyone knows a better alternative or how this script is supposed to operate, please tell me. Thank you!)

local rig = script.Parent
if not humanoid.RootPart then
	humanoid:GetPropertyChangedSignal("RootPart"):Wait()
end
local sound = FootSteps
--You can manually set all the Sound properties in the actual rig's HumanoidRootPart.

humanoid.Running:Connect(function(speed)
	if speed > 0 then
		if sound.IsPaused then
			sound:Resume()
		else
			sound:Play()
		end
	else
		sound:Pause()
	end
end)
6 Likes

could you edit the sounds in the humanoid root part of each character to change the sound id?
i was messing around and trying that and it worked for me

Sorry, I’m not to good with this sort of thing. But were you using the script or is there some sort of setting? And if any of these how did you go about placing them? (Script and audio)

1 Like


quite literally the sounds in the humanoid root part

Basing on what @Exozorcus said,
You can just insert a LocalScript inside StarterPlayer.StarterCharacterScripts (Name it anything) and just paste this inside it:

local Character = script.Parent

local SOUND_ID = 0 -- Your sound ID here

local HumanoidRootPart = Character:WaitForChild('HumanoidRootPart')
local RunningSound: Sound = HumanoidRootPart:FindFirstChild('Running')

if RunningSound then
	RunningSound.SoundId = "rbxassetid://" .. WALK_ID
end

It works, but what what I am trying to achieve doesn’t really include starter character stuff, my goal is to have so if the player is let’s say in a morph when they become that character only that character has the specific walking sound. I’m sorry I may not have been clear enough.

Well whenever the player morphs just change the RunningSound.SoundId the same way I showed before.

I appreciate the help, but when I use the script makes the running sound for all humanoids. But I thought about and I attempted an if statement where if the player has a value by the name robot and if its true than it will proceed with the following stuff (your script) and if they don’t have that value than it skips over that player however it doesn’t seem to work and idea why?

Script:

local Character = script.Parent

local SOUND_ID = 5478066363 – Your sound ID here

local Player = game.Players.LocalPlayer

if Player:FindFirstChild(‘Robot’) and Player.Robot.Value == true then

local HumanoidRootPart = Character:WaitForChild(‘HumanoidRootPart’)
local RunningSound: Sound = HumanoidRootPart:FindFirstChild(‘Running’)

if RunningSound then
RunningSound.SoundId = “rbxassetid://5478066363”

else
	return
end

end

Is there a value inside the player called Robot?

Yeah, there is a BoolValue with a value of true.

maybe make this line:

if Player:WaitForChild(‘Robot’, 10) and Player.Robot.Value == true then

Unfortunately it didn’t work. I am going to keep trying to find something.

1 Like