Haven’t ran into this issue yet, that sounds like something that just shouldn’t happen out of the box on a clean project. My thoughts is that you might be able to set display preferences through the RHI library but I don’t immediately see anything here. I access that through the global pointer GDynamicRHI when I need to play with resolution values.
It’s simpler to do, read, write, share. It can be accessable to end users by just notepad. I’d say it is the preferred method and the gameusersettings does this as well. Must say I avoid anything binary when I can as well because of versioning software and because unreal too often screws them binary files up. The old input system and many project settings also write to ini. Should be:
GConfig->SetString(*Section, *Setting, *Value, GGameUserSettingsIni);
GConfig->Flush(true, GGameUserSettingsIni);
Some others have similar questions and attempts
You don’t have to inherit from it, it’s possible but personally I just write to ini files from my subsystem that manages certain additional settings. I regard the gameusersettings as a tool I control from that subsystem.
Edit*
You might want to see this:
Before diving into that see if your problem exists on a clean project, or if it’s your own bug.