Packaged Games in 4.14 Start in 'Windowed' Mode

We recently attempted to port our production product to 4.14, but have run into an issue where regardless of project settings on packaging, the game always starts in windowed mode.

This is a regression from 4.12, where the game started in Borderless mode and therefore took advantage of the full screen size. While we can change this in the GameUserSettings.ini, it isn’t respecting the default values that we setup in our custom GameUserSettings.cpp class.

To repro, just package a game in 4.12 and play it (it will start fullscreen).
Package the same project in 4.14, it will start in windowed mode.

,

I have reproduced this issue yesterday and logged a report for it here UE-38704. The Developers came back and stated that there was code changes and this is by design.

Thanks!

Hi ,

IT appears this is correct. In order for games to override this the proper way (without command line args), they need to create there own GameUserSettings class and override this function:

EWindowMode::Type UGameUserSettings::GetDefaultWindowMode()
{
return EWindowMode::Windowed;
}

changing it to:

EWindowMode::Type UGameUserSettings::GetDefaultWindowMode()
{
return EWindowMode::WindowedFullscreen;
}

Thanks

Okay so it turns out GetDefaultWindowMode() isn’t virtual.

Can I make the request to make all of the ‘GetDefault’ functions in GameUserSettings virtual? Otherwise it’s not possible to easily change this behaviour.

Can you give me an alternative as non programmer? I can work with blueprints. I used to be able to get a resolution of 5760x1080 (for a 3 monitor setup) by using the ‘Execute console command’ node and inputting r.fullscreenmode 1 and having another one of those nodes and inputting r.setRes 5760x1080f. Now i can’t get the same effect which will be detrimental to this project.

@EstherZuidgeest : A BP solution to this would be to Get GameUserSettings at startup. Then use the retrieved GameUserSettings reference to set SetFullscreenMode to WindowedFullscreen.
Another way to solve this would be to go into your Game/Saved/Config/{ThePlatform}/GameUserSettings.ini and insert/change [/Script/Engine.GameUserSettings]FullscreenMode=2 to 1.
Hope this helps.

‘r.fullscreenmode 1’ - 1 corresponds to “windowed” fullscreen (borderless window) and ‘r.setRes 5760x1080f’ - f here means fullscreen and therefore contradicts your first command. use ‘r.setRes 5760x1080wf’

Packaged games will not have a GameUserSettings.ini until one is saved by the engine/ interaction. I believe the correct solution in general here is to have the “default” (i.e. pre- changing settings) be a 5760x1080 fullscreen or windowed fullscreen. To do this set r.setRest under the [SystemSettings] section in Game/Config/DefaultEngine.ini or Game/Config//Engine.ini

Packaged games will default to this prior to changes of game settings.