There’s actually classes you can use other than GameMode that are made for handling settings. For example, **GameUserSettings **already has video settings and you can easily extend this to have more specific settings for your game. Then, you can get the same object by just calling “GetGameUserSettings”. InputSettings remains mostly accessible to C++ unless you want to rely on a plugin though.
Uh. I mean, yeah. If you just need the functionality of the parent class, that could work (and implicitly does most of the time, and you can call parent class if you need to). But inheriting from the same class as some separate instance does not give you any help with referring to that other instance.
Right, because you need a reference before you can use either of them. The benefit of using either of those is that:
1 (Dispatcher): You can bind to an instance of a known class to receive events that are triggered by that instance- but that instance doesn’t have to “know” about you.
2 (Interface): You can interact with an instance of unknown type without having to cast (at least not explicitly in BP). This makes it so the same code can process multiple classes without needed to handle each case separately.
And, from Slackers:
Multiplayer? Throw all the things people said about GameMode… replace it with GameInstance. Probably not the best solution, but *GameMode *is server-only. GameInstance also is valid through the entire game session, even through map transitions. (Edit): Actually MP automatically means that you’ll have to put far more thought into this- but yeah, for now GI will work OK (/Edit)
As far as widget management itself goes, I am a fan of the widget switcher. However, if you don’t want to use it because it keeps the widgets “live”, then you can use a “NamedSlot”. Basically acts as a placeholder for any given widget, and you can manage your widget just like you do now, except you add/remove it to this slot. This also helps you so that you can have these settings not have to be at the bottom of your scrollbox. You can also just manage visibility. These are all valid options.
Taking the time to familiarize yourself with UE4 will greatly reduce frustration. Learning how to engage with certain parts of the community (timing, formatting, etc) would also reduce frustration. Your question here is well formed. Your question (that I could see) in slackers was not. Your call if you ever want to revisit there- but if you ask your question in a better format (even copying over some of the stuff would have been fine) you’ll probably get a better response.