TitleStorageTags
TitleStorageTags
#Overview
name: TitleStorageTags
The value of this variable can be defined or overridden in .ini config files. 14
.ini config files referencing this setting variable.
It is referenced in 6
C++ source files.
#Summary
#Usage in the C++ source code
The purpose of TitleStorageTags is to define tag combinations for paged queries in title file enumerations within the Epic Online Services (EOS) subsystem of Unreal Engine 5.
This setting variable is primarily used by the Online Subsystem EOS plugin, which is part of Unreal Engine’s online services infrastructure. Specifically, it’s utilized in the title file management system.
The value of this variable is set in the engine configuration files (GEngineIni) and can be accessed through the UEOSSettings class. It’s loaded in the ManualGetSettings function of the EOSSettings.cpp file.
TitleStorageTags interacts with other variables in the EOS subsystem, particularly those related to title file enumeration and management. It’s used in conjunction with the EnumerateFiles function in the OnlineTitleFileEOS class.
Developers must be aware that:
- TitleStorageTags is an array of strings, where each string can contain multiple tags separated by ‘+’ symbols.
- If TitleStorageTags is empty, title file enumeration will fail.
- The variable is used for paged queries, so developers need to consider pagination when working with large numbers of title files.
Best practices when using this variable include:
- Ensure that TitleStorageTags is properly configured in the engine settings before attempting to enumerate title files.
- Use meaningful and consistent tag combinations to organize title files effectively.
- Consider the impact of the number and complexity of tags on performance, especially for large-scale projects.
- Test title file enumeration thoroughly with various tag combinations to ensure robust functionality.
#Setting Variables
#References In INI files
Location: <Workspace>/Projects/Lyra/Config/Custom/EOS/DefaultEngine.ini:31, section: [/Script/OnlineSubsystemEOS.EOSSettings]
- INI Section:
/Script/OnlineSubsystemEOS.EOSSettings
- Raw value:
ClearArray
- Is Array:
True
Location: <Workspace>/Projects/Lyra/Config/Custom/EOS/DefaultEngine.ini:32, section: [/Script/OnlineSubsystemEOS.EOSSettings]
- INI Section:
/Script/OnlineSubsystemEOS.EOSSettings
- Raw value:
"OSS"
- Is Array:
True
Location: <Workspace>/Projects/Lyra/Config/Custom/EOS/DefaultEngine.ini:33, section: [/Script/OnlineSubsystemEOS.EOSSettings]
- INI Section:
/Script/OnlineSubsystemEOS.EOSSettings
- Raw value:
"UI"
- Is Array:
True
Location: <Workspace>/Projects/Lyra/Config/Custom/EOS/DefaultEngine.ini:34, section: [/Script/OnlineSubsystemEOS.EOSSettings]
- INI Section:
/Script/OnlineSubsystemEOS.EOSSettings
- Raw value:
"UI+OSS"
- Is Array:
True
Location: <Workspace>/Projects/Lyra/Config/Custom/EOS/DefaultEngine.ini:35, section: [/Script/OnlineSubsystemEOS.EOSSettings]
- INI Section:
/Script/OnlineSubsystemEOS.EOSSettings
- Raw value:
"OSS+UI"
- Is Array:
True
Location: <Workspace>/Projects/Lyra/Config/Custom/EOS/DefaultEngine.ini:36, section: [/Script/OnlineSubsystemEOS.EOSSettings]
- INI Section:
/Script/OnlineSubsystemEOS.EOSSettings
- Raw value:
"HOTFIX"
- Is Array:
True
Location: <Workspace>/Projects/Lyra/Config/Custom/EOS/DefaultEngine.ini:37, section: [/Script/OnlineSubsystemEOS.EOSSettings]
- INI Section:
/Script/OnlineSubsystemEOS.EOSSettings
- Raw value:
"HOTFIX+UI"
- Is Array:
True
Location: <Workspace>/Projects/Lyra/Config/Custom/SteamEOS/DefaultEngine.ini:36, section: [/Script/OnlineSubsystemEOS.EOSSettings]
- INI Section:
/Script/OnlineSubsystemEOS.EOSSettings
- Raw value:
ClearArray
- Is Array:
True
Location: <Workspace>/Projects/Lyra/Config/Custom/SteamEOS/DefaultEngine.ini:37, section: [/Script/OnlineSubsystemEOS.EOSSettings]
- INI Section:
/Script/OnlineSubsystemEOS.EOSSettings
- Raw value:
"OSS"
- Is Array:
True
Location: <Workspace>/Projects/Lyra/Config/Custom/SteamEOS/DefaultEngine.ini:38, section: [/Script/OnlineSubsystemEOS.EOSSettings]
- INI Section:
/Script/OnlineSubsystemEOS.EOSSettings
- Raw value:
"UI"
- Is Array:
True
Location: <Workspace>/Projects/Lyra/Config/Custom/SteamEOS/DefaultEngine.ini:39, section: [/Script/OnlineSubsystemEOS.EOSSettings]
- INI Section:
/Script/OnlineSubsystemEOS.EOSSettings
- Raw value:
"UI+OSS"
- Is Array:
True
Location: <Workspace>/Projects/Lyra/Config/Custom/SteamEOS/DefaultEngine.ini:40, section: [/Script/OnlineSubsystemEOS.EOSSettings]
- INI Section:
/Script/OnlineSubsystemEOS.EOSSettings
- Raw value:
"OSS+UI"
- Is Array:
True
Location: <Workspace>/Projects/Lyra/Config/Custom/SteamEOS/DefaultEngine.ini:41, section: [/Script/OnlineSubsystemEOS.EOSSettings]
- INI Section:
/Script/OnlineSubsystemEOS.EOSSettings
- Raw value:
"HOTFIX"
- Is Array:
True
Location: <Workspace>/Projects/Lyra/Config/Custom/SteamEOS/DefaultEngine.ini:42, section: [/Script/OnlineSubsystemEOS.EOSSettings]
- INI Section:
/Script/OnlineSubsystemEOS.EOSSettings
- Raw value:
"HOTFIX+UI"
- Is Array:
True
#References in C++ code
#Callsites
This variable is referenced in the following C++ source code:
#Loc: <Workspace>/Engine/Plugins/Online/OnlineSubsystemEOS/Source/OnlineSubsystemEOS/Private/EOSSettings.cpp:194
Scope (from outer to inner):
file
function const FEOSSettings& UEOSSettings::ManualGetSettings
Source code excerpt:
GConfig->GetBool(INI_SECTION, TEXT("bMirrorPresenceToEAS"), CachedSettings->bMirrorPresenceToEAS, GEngineIni);
// Artifacts explicitly skipped
GConfig->GetArray(INI_SECTION, TEXT("TitleStorageTags"), CachedSettings->TitleStorageTags, GEngineIni);
GConfig->GetArray(INI_SECTION, TEXT("AuthScopeFlags"), CachedSettings->AuthScopeFlags, GEngineIni);
}
return *CachedSettings;
}
#Loc: <Workspace>/Engine/Plugins/Online/OnlineSubsystemEOS/Source/OnlineSubsystemEOS/Private/EOSSettings.cpp:226
Scope (from outer to inner):
file
function FEOSSettings UEOSSettings::ToNative
Source code excerpt:
Native.bMirrorPresenceToEAS = bMirrorPresenceToEAS;
Algo::Transform(Artifacts, Native.Artifacts, &FArtifactSettings::ToNative);
Native.TitleStorageTags = TitleStorageTags;
Native.AuthScopeFlags = AuthScopeFlags;
return Native;
}
bool UEOSSettings::GetSelectedArtifactSettings(FEOSArtifactSettings& OutSettings)
#Loc: <Workspace>/Engine/Plugins/Online/OnlineSubsystemEOS/Source/OnlineSubsystemEOS/Private/OnlineTitleFileEOS.cpp:120
Scope (from outer to inner):
file
function bool FOnlineTitleFileEOS::EnumerateFiles
Source code excerpt:
FString ErrorStr;
bool bStarted = true;
TArray<FString> TitleStorageTags = UEOSSettings::GetSettings().TitleStorageTags;
if (TitleStorageTags.Num() == 0)
{
ErrorStr = TEXT("No tags defined");
bStarted = false;
}
else if (Page.Start >= TitleStorageTags.Num())
{
ErrorStr = FString::Printf(TEXT("Unknown tag page %d"), Page.Start);
bStarted = false;
}
if (!bStarted)
#Loc: <Workspace>/Engine/Plugins/Online/OnlineSubsystemEOS/Source/OnlineSubsystemEOS/Private/OnlineTitleFileEOS.cpp:144
Scope (from outer to inner):
file
function bool FOnlineTitleFileEOS::EnumerateFiles
Source code excerpt:
// Find all tags defined for the start page
FString& PageTagsRaw = TitleStorageTags[Page.Start];
const TCHAR* TagDelims[1] = { TEXT("+") };
TArray<FString> PageTags;
PageTagsRaw.ParseIntoArray(PageTags, TagDelims, 1, false);
TArray<FTCHARToUTF8> PageTagsBuffer;
TArray<const char*> AnsiTags;
#Loc: <Workspace>/Engine/Plugins/Online/OnlineSubsystemEOS/Source/OnlineSubsystemEOS/Public/EOSSettings.h:86
Scope: file
Source code excerpt:
bool bMirrorPresenceToEAS;
TArray<FEOSArtifactSettings> Artifacts;
TArray<FString> TitleStorageTags;
TArray<FString> AuthScopeFlags;
};
UCLASS(Config=Engine, DefaultConfig)
class ONLINESUBSYSTEMEOS_API UEOSSettings :
public URuntimeOptionsBase
#Loc: <Workspace>/Engine/Plugins/Online/OnlineSubsystemEOS/Source/OnlineSubsystemEOS/Public/EOSSettings.h:135
Scope (from outer to inner):
file
class class UEOSSettings : public URuntimeOptionsBase
Source code excerpt:
/** Tag combinations for paged queries in title file enumerations, separate tags within groups using `+` */
UPROPERTY(Config, EditAnywhere, BlueprintReadOnly, Category="EOS Settings")
TArray<FString> TitleStorageTags;
/** Chunk size used when reading a title file */
UPROPERTY(Config, EditAnywhere, BlueprintReadOnly, Category="EOS Settings")
int32 TitleStorageReadChunkLength = 0;
/** Per artifact SDK settings. A game might have a FooStaging, FooQA, and public Foo artifact */