MoviePlayer 'OnMovieClipFinished' broadcasts incorrect movie name

When playing Startup Movies, the Movie Player doesn’t broadcast the OnMovieClipFinished delegate properly.

It insteads broadcasts the name of the movie it’s about to play, not the one that just finished. You can test this yourself by setting two startup movies in a project, packaging it and binding a function to this delegate.

This is beyond annoying, because I’m trying to detect when StartupMovies have completed to load my main menu level.

Hello ,

Can you please provide a step by step reproduction with detailed steps, including code snippets for the code that you’re using to bind this delegate?

Hi Matthew, this is the code I’m using. I’ve added two Startup Movies in project settings. When the first movie finished, the delegate fires but using the name of the second movie, not the first one.

#include "MoviePlayer.h"

void UST_GameInstance::Init()
{
	GetMoviePlayer()->OnMovieClipFinished().AddUObject(this, &UST_GameInstance::OnMovieClipFinished);
}

void UST_GameInstance::OnMovieClipFinished(const FString& MovieName)
{
    // Print Movie Name
}

Thank you for the information. I’ve placed a bug report in for this and you can find it here: UE-46683. You can also track the report’s progress there.

Have a nice day!