Does anybody knows how the Lyra settings work. I want to learn how they work and understand why it works like it does. Whenever I load up the game the settings are fully fleshed out, but whenever I find anything settings related in the content browser it is all blank. Does anybody know where the Lyra settings are located?
Same, actually. If I find anything I will post here, but look into the blueprints maybe you might find something.
This is the path of the settings: Content/UI/Settings
The only way for now to find out how they work is to explore blueprints and C++ code.
I too would love to see how to build a settings menu like they have using the in editor UI tools.
I looked through pretty much every widget blueprint in the editor and couldn’t find where they were pulling the settings menu information from so I started digging in the project folder outside the engine.
It looks like the information that gets populated into the settings menu comes from here:
LyraStarterGame\Source\LyraGame\Settings\CustomSettings
So I’m guessing they did quite a bit of the menu as C++ coding. Unfortunately my coding background is in web development so I couldn’t really digest how this gets integrated into the in editor blueprints they have setup, but it’s the only place that I could actually find the ‘settings’ they have. Here’s a snippet of the code to give as example.
void ULyraSettingValueDiscrete_OverallQuality::OnInitialized()
{
Super::OnInitialized();
ULyraSettingsLocal* UserSettings = ULyraSettingsLocal::Get();
const int32 MaxQualityLevel = UserSettings->GetMaxSupportedOverallQualityLevel();
auto AddOptionIfPossible = [&](int Index, FText&& Value) { if ((MaxQualityLevel < 0) || (Index <= MaxQualityLevel)) { Options.Add(Value); }};
AddOptionIfPossible(0, LOCTEXT("VideoQualityOverall_Low", "Low"));
AddOptionIfPossible(1, LOCTEXT("VideoQualityOverall_Medium", "Medium"));
AddOptionIfPossible(2, LOCTEXT("VideoQualityOverall_High", "High"));
AddOptionIfPossible(3, LOCTEXT("VideoQualityOverall_Epic", "Epic"));
OptionsWithCustom = Options;
OptionsWithCustom.Add(LOCTEXT("VideoQualityOverall_Custom", "Custom"));
const int32 LowestQualityWithFrameRateLimit = UserSettings->GetLowestQualityWithFrameRateLimit();
if (Options.IsValidIndex(LowestQualityWithFrameRateLimit))
{
SetWarningRichText(FText::Format(LOCTEXT("OverallQuality_Mobile_ImpactsFramerate", "<strong>Note: Changing the Quality setting to {0} or higher might limit your framerate.</>"), Options[LowestQualityWithFrameRateLimit]));
}
}
I definitely think that setting up an in-depth settings menu like the one in the Lyra game example would be a great tutorial for Epic to do.
It doesnt save from session to session. they stopped short of integrating it with GameUserSettings.
That really sucks.
This Might help for writing it.
Someone please make a blueprint tutorial for this. I dismantled the whole thing trying to find out how it populates. C++ is a no go territory for me.