AudioComponent

If IsTheCarWorking is true and GetVehicleMovement is 0, the sound will play and set the sound every single tick as long as those conditions are met, it doesn’t matter if something else is playing or not. That’s why it sounds like it’s overlapping. If you only want it to play once, try not putting your engine running sound in tick, instead call a different function that can only run one time. For an engine sound, you’d want a loop that plays as long as the car is on. Set a function that makes a looping engine sound when the car is running, and stops when it’s off.

Also make sure in your other functions to stop playing them when something else is about to play.

For bonus you can change the pitch of the loop when the car is running faster or slower to give a real engine feel!