I just can’t figure it out. All I want to do is have a certain console command (t.maxfps, some lumen commands etc) be set everytime I open my project. DefaultEngine.ini is supposed to be the answer, but it seems useless. The commands in that file apparently need to be under the right heading to work? How the heck are you supposed to know what heading a command goes under? The official console command documentation offered by epic is woefully incomplete, nor is there any documentation on modifying defaultEngine. The whole thing is a complete mess. It was hard enough just to find a 3rd party list of what commands were available. Why the… why would epic not release that? Of course, even if I managed to get those commands working in defaultEngine, you’ve got the scalability settings overwriting some variables. Some variables which aren’t even listed in BaseScalability.ini! So where the heck are they being set from? This is insane. Is there anyone who understands this, even at epic?
The config system at it’s core has an inheritance scheme. Where DefaultEngine.ini exists in the engine directory all the way down to your project directory, where the projects version of DefaultEngine.ini has the last say.
Yes I have also noticed some plugins that forcefully overwrite config depending on their loading phase (I’ve had to do this myself to keep other plugins in check)
Generally how I approach this problem is one of two ways.
If the variables are settable via project settings UI, I’ll make a default and then save that config to desktop just in case something tries to change it later.
If I can’t set it with the UI I’ll make a “ConsoleManager” either as an actor or editor utility widget that uses blueprint to set a bunch of console commands either on begin play or some custom widget.
Yes, that’s what I ended up doing, just making a blueprint to force change settings after loading. Just seems so wrong.