So, a few months ago, @uglyburger0 made a footstep module that adds very nice footstep sounds to the game. One question I have is, how do I actually activate it and make them work?!
Link to the module: Footstep Module - Roblox
Humanoid.FloorMaterial (roblox.com)
use floor material and check if the player is walking by doing this
Humanoid.Running:Connect(function(Speed)
if Speed >= 5 then
Walking = true
return
end
Walking = false
end)
Do I need to create my own script and copy and paste all of the asset IDs? Seems like he would’ve made it easier to activate than that.
Oh, no. you gotta require the module script.
his example video shows you how to do that/
Uglyburger had made a video documenting it and you could take a look at the basic examples he showed
I saw that video, but he didn’t seem to show how to activate them as a default while walking on the materials, rather he pressed a button to play the sounds.
Then when the humanoid enters the Running humanoidstatetype, toggle a bool to be true, false vice versa. And have a loop playing a random sound at an interval
Is this close to what I should do? If so, what should I add to make the sounds play?
local footsteps = require(game.ReplicatedStorage.Footstep)
local character = workspace:WaitForChild(game.Players.LocalPlayer.Name)
local player = game:GetService("Players").LocalPlayer
local Walking = nil
game.Players.PlayerAdded:Connect(function(Player)
Player.CharacterAdded:Connect(function(Character)
local humanoid = Character:WaitForChild("Humanoid")
humanoid.Running:Connect(function(Speed)
if Speed >= 5 then
Walking = true
return
end
Walking = false
end)
end)
end)
Sorry for the late reply, i was experimenting with the footstep module and made a localscript in startercharacterscripts that play’s it when you move. Try it to see if it works for your case or you could modify it.
local Run = game:GetService("RunService")
local Debris = game:GetService("Debris")
local Char = script.Parent
local Hum: Humanoid = Char:WaitForChild("Humanoid")
local FootSteps = require(game.ReplicatedStorage:WaitForChild("FootstepModule"))
local SOUND_DELAY = 0.21
local isRunning = false
local soundPlaying = false
local function CreateSound(id)
local sound = Instance.new("Sound")
sound.SoundId = id
sound.Volume = 2.4
sound.Parent = workspace
return sound
end
Hum:GetPropertyChangedSignal("MoveDirection"):Connect(function()
if Hum.MoveDirection.Magnitude > 0 then
isRunning = true
else
isRunning = false
end
end)
Run.RenderStepped:Connect(function()
if isRunning and not soundPlaying then
if Hum.FloorMaterial == Enum.Material.Air then return end
local materialTbl = FootSteps:GetTableFromMaterial(Hum.FloorMaterial)
local soundId = FootSteps:GetRandomSound(materialTbl)
local sound = CreateSound(soundId)
sound:Play()
soundPlaying = true
Debris:AddItem(sound, sound.TimeLength)
task.wait(SOUND_DELAY)
soundPlaying = false
end
end)
I’ve hopped off my PC for the night. I’ll try your script tomorrow morning and get back to you if it works or not. Thanks in advance!
That doesn’t seem to be working it just plays the default plastic footstep sound.
Edit: Found that I renamed the module to just “Footstep” instead of “FootstepModule”. The script is now working! Thanks!
hey, I tried this myself idk how it worked for him? do u know any problems cause i cant find anything
i’m not the guy who scripted the working thing, but do you have any errors or anything? try debugging using print statements to see if parts of the script are working. i put a print under the part where the sound plays saying “footstep sound should be playing”
It does not create the sound in general.
so when you play the game, in the workspace, sounds should be constantly created and destroyed, is that not happening for you?
no
imma remake it. but thanks for the reply
alright if you have any questions feel free to ask