Skip to content

Sound

Four clips, sequenced to the start:

Clip When
Alert The 6 s warning horn, before the starter engages
Start Cranking through to running
Running Loops once the set reaches rated speed
Stop Fuel cut, through to a stop
Alert
Start
Running (loop)
Stop

Start and Running crossfade over 0.8 s at the moment the set comes up to speed, so there is no gap and no cut. If that lands early or late for your clips, Sounds.HandoverDelay shifts it in seconds.

The running loop is never pitch-shifted

A generator holds 1800 rpm whatever the load, so varying the pitch would be wrong. Only the level moves, slightly, as the set works harder.

How it is built

Audio uses Roblox's current audio API: an AudioPlayer per clip through its own fader into one emitter.

flowchart LR
  A[AudioPlayer: Alert] --> FA[Fader] --> E[AudioEmitter]
  S[AudioPlayer: Start] --> FS[Fader] --> E
  R[AudioPlayer: Running] --> FR[Fader] --> E
  P[AudioPlayer: Stop] --> FP[Fader] --> E
  E -. heard by .-> L[AudioListener<br/>on your camera]

An AudioListener is placed on your camera automatically, and duplicates are guarded against, so two generators and a switch still give you exactly one listener. For more on how this works, see the Roblox Audio API manual.

Range and volume

Set at the top of Control > Audio:

Setting Default Effect
MASTER_GAIN 0.4 Scales everything
ROLLOFF_STUDS 20 Where it fades to silence

The falloff holds up close and tapers evenly over the full distance rather than dropping off a cliff near the machine.

Using your own clips

  1. Replace the asset IDs in Config.Sounds.
  2. Set each Length to the clip's real duration. That is what the handover timing reads.

An empty ID is skipped, so a partly filled config still runs.