ApplySettings/SaveSettings Don't Update .ini File

I’m currently working on a settings menu for my project and, for some reason, the ApplySettings and SaveSettings nodes don’t seem to be working the way they’re supposed to in my project as they do not update the GameUserSettings.ini file. I know this because not only do the settings inside the .ini file not reflect the settings changes I’ve just “saved”, the file’s modification date/time doesn’t change, either.

I’ve already tried deleting the file, that hasn’t worked. I’ve tried deleting parts of (and then all of) EditorPerProjectUserSettings.ini as suggested [here][1] which hasn’t fixed it. My menu algorithm is a bit complex and convoluted so I thought maybe I had taken a wrong turn somewhere but I made two tests. First, I set up a new, clean project with a super simple setup that sets a few settings and applies them. That updated the .ini file just like it should. Then I created a new, empty level and a new widget in my proper project, replicated the exact same test setup and nothing happened. The .ini file wasn’t updated.

So clearly there’s something going on with my project specifically that keeps the file from being updated and I haven’t got the foggiest idea what it might be. I’ve gone through my project and editor settings but couldn’t find anything that sounded like it might cause this issue, I’ve checked if the file is read-only - it isn’t, I’ve watched and rewatched a bunch of videos on Game User Settings and how to use them, none of which have helped explain this issue, I’m just at a complete loss. Does anyone know of anything else that could affect the GameUserSettings.ini? Has anyone stumbled across this problem before? Is it a bug?

This is my test setup which worked in a fresh project but not in mine:

(One more thing I should mention (though I don’t know if it’s got anything to do with this problem) is that, for a few weeks, I had been unable to change the Engine Scalability settings inside the editor. The settings for Texture Quality, Shadow Quality and Effects quality had somehow set themselves to low and whenever I tried to change them back, the editor would crash, though changing them in-game worked just fine. This was fixed by updating from 4.22.0 to 4.22.3. That update did not fix my .ini problem, however, so it’s probably not related. Still, I thought I should mention it just in case. This was part of the error message it gave me when crashing (unfortunately, I haven’t saved the whole thing): Assertion failed: OutUniformExpressionCache.UniformBuffer->GetLayout() == UniformBufferStruct.GetLayout() )

I’ve just tried upgrading to 4.24.2 (using Open Copy) and that hasn’t fixed it, either.

I notice you have no SaveSettings node, I assume you need that… :wink:

Thanks for the suggestion but I’m afraid that’s not it. You only need to use the SaveSettings node if you’re using the Apply Non-Resolution Settings/Apply Resolution Settings nodes. If you’re using the Apply Settings node, it saves it for you. Like I said, I tried the exact same setup in a clean project and in my project and it worked perfectly fine in the clean project so it must be project-specific, not a problem with the blueprint.

Strange…

So I have just figured out that, if I run the game in the viewport instead of in a standalone window, it does save the .ini file properly. The reason I hadn’t discovered this before is that, to actually see changes to settings like fullscreen mode, you need to run the game in a standalone window so that’s what I’d been doing while testing the menu. I don’t know if this is standard behaviour or a bug. I’ll need to test if it actually works in a packaged build but if it does, I’ll check this answer as accepted.

Yup, it works fine in the packaged build. So I guess it’s just a standalone window thing.