SetTimelinePosition NOT Working in UE5 with FMOD 2.03.06

Hi everyone,

I’ve been testing SetTimelinePosition in Unreal with FMOD, but it doesn’t seem to react at all. No matter what value I pass, the event always starts from the beginning instead of jumping to the desired timeline position.

Here’s how I tested it:

  • Created a custom event that plays an FMOD event attached to a component.

  • Immediately after, I call SetTimelinePosition with different time values (e.g. 1000, 2000, 3000 ms).

  • You can see in the screenshots that I set up different input keys to test specific positions.

But the result is always the same: the playback starts from 0:00 and ignores the timeline position.

Screenshots:

  • Unreal Blueprint setup where I call Play Event Attached + SetTimelinePosition.

  • FMOD Studio event timeline with multiple audio clips at different positions.

Has anyone else run into this? Is there a known limitation or workaround?

Thanks!

Apologies for the delay, we are currently investigating this and will update soon.

Thanks i appreciate some kind of work around since we are trying to use this for the game i working on that is about to release and its very important

The best way to currently work around it is to add a line to the FMODAudioComponent.cpp in the PlayInternal function:

void UFMODAudioComponent::PlayInternal(EFMODSystemContext::Type Context, bool bReset)
{
    ...
            verifyfmod(StudioInstance->setUserData(this));
            verifyfmod(StudioInstance->start());
            verifyfmod(IFMODStudioModule::Get().GetStudioSystem(Context)->flushCommands()); /*<---------------- Add this line */
            UE_LOG(LogFMOD, Verbose, TEXT("Playing component %p"), this);
    ...
}

Hey Cameron thanks a lot for the response !

The workaround definitely fixed the issue of the timeline position not being set BUT after testing it had a huge impact on performance… It seems that flush is perma requesting streaming loading for the events, which causes huge time increase in loading assets, and it seems that flush also makes the game thread hold for the flushing to finish which means we have terrible FPS/performance.
After debbuging we detected “FStreamableDelegateDelayHelper” goes crazy which also makes FTimerManager go crazy…
For now, we have used a workaround to only flush for events that need it, but that it might cause hitches due to the same behavior (we just reduced the number of situations where it can happen)

Any idea if this will be resolved soon so we can update ? Or any other tip you can give me to avoid this huge perfecormance cost ?

I believe the issue is caused by the sample data for the event taking longer than expected to load.

You can test this by making sure to load the sample data of the bank which contains the event, or by loading all sample data if you have the option in the settings to load all banks enabled.