[UE5] Sound Wave vs Sound Cue: Making Footsteps That Don't Sound Repetitive

Created: 2025-12-12Last updated: 2026-07-20

The same footstep over and over sounds cheap. A Sound Wave is the audio itself; a Sound Cue is the blueprint for how it plays. This article shows how Random and Modulator kill repetition, with a hands-on footstep Cue built from scratch.

Getting a sound to play is the easy part. The wall comes right after: the same footstep repeats endlessly and the game suddenly sounds cheap. When every stride produces the exact same "tap, tap, tap," your ear immediately registers it as one file being replayed.

The fix isn't writing random numbers in Blueprint. UE has an asset type whose entire job is designing how a sound plays, and that's where this belongs. This article covers the split between Sound Wave (the audio itself) and Sound Cue (the blueprint for playback), and how to build footsteps that never sound monotonous.

Illustration of one source sound producing a slightly different result every time it plays

What You'll Learn

  • Sound Wave = the audio itself, Sound Cue = the blueprint for playback
  • The two nodes that kill repetition: Random and Modulator
  • The playback node in Blueprint is identical for both
  • Reverb and delay are not applied inside a Sound Cue
  • Hands-on: building a footstep Cue that plays randomly

Sponsored

A Sound Wave Is the Audio Itself

Dragging a .wav file into the Content Browser creates a Sound Wave. That's the recorded audio data itself, nothing more and nothing less.

Diagram showing a Sound Wave as a single card containing a waveform
  • What it can do: play back as-is, and expose import settings (compression quality, looping, and so on)
  • What it can't do: pick between sounds, vary randomly, or mix several together

Playback takes just two Blueprint nodes.

NodeWhat It DoesWhen to Use It
Play Sound 2DPlays as-is, with no positionUI sounds, music
Play Sound at LocationPlays at a given coordinate (attenuates with distance)Footsteps, explosions, ambience

If a sound should be identical every time, leaving it as a Sound Wave is perfectly fine. Button clicks and dialogue voice lines actually sound more natural when they don't change.

The problem is effects that repeat. Footsteps, gunshots, melee impacts. Replay the same file over and over there and the game instantly sounds artificial.

A Sound Cue Is the Playback Blueprint

A Sound Cue takes Sound Waves as raw material and assembles the rules for how they play. You build it by wiring nodes, so it looks a lot like a Blueprint graph.

Diagram of a Sound Cue where several Sound Waves connect through nodes into a single output

The important part: from Blueprint's point of view, a Sound Wave and a Sound Cue are interchangeable.

Play Sound at Location (Sound: SC_Footstep, Location: foot position)

The Sound pin accepts either. So when you later decide "actually, I want this randomized," you can swap the asset without touching the Blueprint.

That's a big design win. The complexity of how a sound plays lives outside your Blueprint, so gameplay code only has to say "play this sound."

The Two Nodes That Kill Repetition

Sound Cue has plenty of nodes, but only two are worth learning first. These two solve almost all repetition problems.

Diagram showing Random picking a source and Modulator adding pitch and volume jitter

Random picks one input at a time from everything wired into it. Prepare three to five footstep variations, wire them up, and you're no longer replaying the same file.

Modulator takes the sound passing through it and randomizes pitch and volume within a range you specify. Even with identical source audio, a slightly higher or lower pitch changes the impression dramatically.

The standard setup is to stack these two. With only three source files plus pitch jitter, you effectively get a different sound every step.

Everything else you can learn when you need it.

NodeWhat It Does
MixerPlays several sounds at the same time (explosion plus debris)
ConcatenatorPlays several sounds in sequence
AttenuationOverrides the distance falloff settings
LoopingRepeats playback (ambience, music)

Effects Belong Outside the Cue

This one trips people up. There is no node inside a Sound Cue for applying reverb or delay.

Diagram showing Sound Cue handling selection and modulation while reverb is applied by Submix or Audio Volume

A Sound Cue is responsible for which sound plays, at what pitch and volume. Effects that process the audio are applied through separate systems.

SystemWhat It AffectsWhen to Use It
Audio VolumeEverything while you're inside that spaceCave or interior reverb
Submix EffectAll audio routed through that SubmixCompressor across the whole music bus
Source EffectIndividual sound sourcesDistorting one specific sound
Sound ClassA whole categoryLowering only SFX volume

Audio Volume in particular is worth remembering. Place a volume in your cave, set up reverb, and it only echoes while the player is inside. The sound assets need no changes at all.

Why keep them separate? "Echoing in a cave" isn't a property of the sound, it's a property of the place. Bake cave reverb into your footstep Cue and it'll echo outdoors too. Keeping sounds as sounds and spaces as spaces is the natural split.

Distance-based attenuation and turning down just the music with a Submix are covered in detail in 3D Sound and Mixing in UE5.

Sponsored

Hands-On: Footsteps That Never Sound Repetitive

Running in an action game, sneaking in a horror game, crossing the overworld in an RPG. Footsteps are the sound a player hears for the longest total time. If they're monotonous, the whole game feels cheap.

Setup: prepare three to five footstep source files. Free assets work, and so do a few different slices of the same recording.

TypeNameContents
Sound WaveSW_Footstep_0103Footstep source audio (imported)
Sound CueSC_FootstepWhat we're about to build
Animation SequenceWalk and run animationsWhere the notifies go

Step 1: Create the Sound Cue. Right-click in the Content Browser → SoundsSound Cue. Name it SC_Footstep and open it.

Step 2: Add variation with Random. Drag a Random node from the palette into the graph.

Select SW_Footstep_01 through 03 in the Content Browser and drag them straight into the Sound Cue editor. Three Sound Wave nodes appear. Wire each output into the Random node's inputs.

The Random node's input pins grow automatically as you connect to them. If you need more, right-click the node and choose Add Input.

Step 3: Add jitter with Modulator. Place a Modulator node and connect Random's output to it. Then set the jitter ranges in the Details panel.

PropertyValueMeaning
Pitch Min0.92Lowest possible pitch
Pitch Max1.08Highest possible pitch
Volume Min0.85Quietest possible
Volume Max1.0Loudest possible

Keep pitch within about ±10%. Go wider and it starts sounding like a different creature walking.

Finally, connect the Modulator's output to the Output node.

Diagram of a Sound Cue where three Sound Waves feed a Random node, which passes through a Modulator into Output

Step 4: Check it right there. Hit Play Cue in the Sound Cue editor toolbar, and press it repeatedly. If each press sounds slightly different, it's working. One listen tells you nothing. The effect only shows up across repetitions, which is exactly the point of this setup.

Step 5: Trigger it from animation. Footsteps shouldn't be timed with a Blueprint timer. The natural trigger is the moment the foot hits the ground.

Open the walk Animation Sequence and add a Notify on the frame where the foot lands. Right-click the Notifies track under the timeline → Add NotifyPlay Sound, then set Sound to SC_Footstep in that notify's Details panel. The Notify mechanism itself (the types, and how to make a custom notify) is covered in detail in Animation Montage Basics: Timing Hitboxes with Notifies.

Do the same on the frame where the other foot lands, and repeat for the run animation.

Hit Play and walk around. If footsteps land in sync with the feet and sound slightly different every time, you're done.

If something's off, here's how to narrow it down.

  • No sound at all → The notify's Sound is empty, or that animation isn't actually playing
  • Out of sync with the feet → Adjust which frame the notify sits on
  • No audible variation → The Modulator range is too narrow, or your source files are too similar. Widen pitch to ±15% to confirm it's working, then dial it back
  • Sounds overlap when running → Add notifies to the run animation and check that the walk notifies aren't firing on top of them

Two things to take away.

  • Keep randomization inside the asset: Write random numbers in Blueprint and you'll be editing gameplay code every time you tune audio. Keep it inside the Cue and audio tuning stays entirely in audio files
  • Let animation own the timing: Driving footsteps from Event Tick or Delay guarantees drift the moment movement speed changes. Tie them to the actual fact of the foot landing (see Introduction to Animation Blueprints)

When you want different sounds per surface material, replace the Play Sound notify with a custom notify, trace downward from the foot in Blueprint to identify the material, and pick a Cue from there.

Sponsored

Bonus: Good to Know for Later

For anything new, consider MetaSound. UE5 ships MetaSound, the successor to Sound Cue, and that's where Epic's development effort has gone. It's close to a superset of Sound Cue, and it's especially good at dynamic work like passing parameters at runtime to change a sound as it plays.

That said, Sound Cue hasn't gone anywhere, and the concepts (pick a source, modulate it, output it) carry over. Learning the system with Sound Cue first makes MetaSound much faster to pick up. How it differs from Sound Cue, and how to change a sound at runtime by passing parameters from outside, is covered in MetaSounds in UE5.

Don't push Volume Multiplier past 1.0 to fix quiet audio. Setting a playback node's Volume Multiplier above 1.0 causes clipping. If something sounds too quiet, look at the source file's own level or adjust it via Sound Class first.

There's a cap on how many sounds play at once. In a scene where a horde of enemies all produce footsteps, anything past the limit simply won't play. A Sound Concurrency setting lets you declare "at most N of this kind of sound," which is worth configuring for noisy incidental SFX.

For looping ambience, check the Sound Wave's import settings. For something like a flowing river, either enable Looping on the Sound Wave or use the Sound Cue's Looping node. Skip that and loop it from Blueprint instead, and you'll get an audible click at the seam.


Summary

Think of the responsibilities as three layers and you won't get lost.

LayerResponsibilityExample
Sound WaveThe audio itselfThe recorded footstep .wav
Sound CueHow it plays (select, jitter, mix)Random + Modulator
Submix / Audio VolumeSpace and global processingCave reverb

And one practical rule: any sound that repeats should be a Cue. Footsteps, gunshots, and impacts change character just by passing through Random and Modulator. A few minutes of work for an outsized payoff.

Which sound does your player hear the most in your game?