Mac Editor Splash ignores platform-specific EdSplash.bmp and always loads EdSplash.png when present

Summary

When configuring separate Editor Splash images for Windows and macOS platforms, the macOS Unreal Editor does not use the configured BMP splash if an EdSplash.png file exists in Content/Splash.

The Project Settings UI exposes separate platform-specific Editor Splash settings:

  • Windows Editor Splash accepts PNG
  • Mac Editor Splash accepts BMP

However, the editor splash loading behavior does not appear to respect this platform distinction. The generic splash loader prioritizes EdSplash.png over EdSplash.bmp regardless of platform.

The issue appears to originate from FGenericPlatformSplash::GetSplashPath() in Engine/Source/Runtime/ApplicationCore/Private/GenericPlatform/GenericPlatformSplash.cpp. The helper function GetSplashFilename() resolves splash assets by extension order (.png, .jpg, .bmp) rather than by platform-specific configuration, causing EdSplash.png to override the Mac-configured EdSplash.bmp.

What Type of Bug are you experiencing?

Platform Other

Steps to Reproduce

  1. Create a new Unreal Engine project.
  2. Configure a Mac Editor Splash image using a BMP file in Project Settings.
  3. Configure a different Windows Editor Splash image using a PNG file.
  4. Verify that the project contains:
    Content/Splash/EdSplash.bmp
    Content/Splash/EdSplash.png
  5. Launch Unreal Editor on macOS.

Expected Result

The macOS editor should display the splash image configured under the Mac platform settings (EdSplash.bmp).

Observed Result

The editor displays EdSplash.png instead, ignoring the Mac-specific BMP splash.

Affects Versions

5.8

Platform(s)

Mac

Additional Notes

Relevant code:

Engine/Source/Runtime/ApplicationCore/Private/GenericPlatform/GenericPlatformSplash.cpp

static const TCHAR* SupportedSplashImageExt =
{
TEXT(“.png”),
TEXT(“.jpg”),
TEXT(“.bmp”),
nullptr
};

/**

  • Return the filename found (look for PNG, JPG and BMP in that order, try to avoid BMP, use more space…)
    */
    FString GetSplashFilename(const FString& ContentDir, const FString& Filename)
    {
    int32 Index = 0;
    const FString ImageName = ContentDir / Filename;
    FString Path;

    while (SupportedSplashImageExt[Index])
    {
    Path = ImageName + SupportedSplashImageExt[Index++];

     if (FPaths::FileExists(Path))
     {
         return Path;
     }
    

    }

    // if no image was found, we assume it’s a BMP (default)
    return ImageName + TEXT(“.bmp”);
    }