bMirrorStatsToEOS
bMirrorStatsToEOS
#Overview
name: bMirrorStatsToEOS
The value of this variable can be defined or overridden in .ini config files. 2
.ini config files referencing this setting variable.
It is referenced in 8
C++ source files.
#Summary
#Usage in the C++ source code
The purpose of bMirrorStatsToEOS is to control whether player statistics are mirrored (i.e., copied) to the Epic Online Services (EOS) platform in addition to the default platform. This setting is part of the cross-platform integration features provided by the OnlineSubsystemEOS plugin in Unreal Engine 5.
The OnlineSubsystemEOS plugin relies on this setting variable. Specifically, it’s used in the stats system within the EOS integration.
The value of this variable is set in the engine configuration files (typically DefaultEngine.ini) under the [OnlineSubsystemEOS] section. It can also be modified through the Unreal Engine editor in the project settings under the “Plugins > Online Subsystem EOS” category.
This variable interacts closely with other EOS-related settings, particularly:
- bUseEOSConnect: Must be true for bMirrorStatsToEOS to have any effect.
- bMirrorAchievementsToEOS: Similar setting for achievements.
- bUseEOSSessions: Another EOS integration setting.
Developers must be aware that enabling this setting will cause additional network traffic and processing as stats are sent to both the default platform and EOS. This could have performance implications, especially for games with frequently updated stats.
Best practices when using this variable include:
- Only enable it if cross-platform stat tracking via EOS is required.
- Ensure that bUseEOSConnect is also enabled when using this feature.
- Test thoroughly to ensure that stats are correctly mirrored and that there’s no significant performance impact.
- Consider the implications on data consistency across platforms and how to handle potential conflicts or synchronization issues.
- Be aware of any additional costs or limitations imposed by EOS for stat tracking services.
#Setting Variables
#References In INI files
Location: <Workspace>/Projects/Lyra/Config/Custom/EOS/DefaultEngine.ini:27, section: [/Script/OnlineSubsystemEOS.EOSSettings]
- INI Section:
/Script/OnlineSubsystemEOS.EOSSettings
- Raw value:
True
- Is Array:
False
Location: <Workspace>/Projects/Lyra/Config/Custom/SteamEOS/DefaultEngine.ini:32, section: [/Script/OnlineSubsystemEOS.EOSSettings]
- INI Section:
/Script/OnlineSubsystemEOS.EOSSettings
- Raw value:
True
- Is Array:
False
#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:141
Scope (from outer to inner):
file
function FEOSSettings::FEOSSettings
Source code excerpt:
, bUseEOSConnect(false)
, bUseEOSSessions(false)
, bMirrorStatsToEOS(false)
, bMirrorAchievementsToEOS(false)
, bMirrorPresenceToEAS(false)
{
}
#Loc: <Workspace>/Engine/Plugins/Online/OnlineSubsystemEOS/Source/OnlineSubsystemEOS/Private/EOSSettings.cpp:190
Scope (from outer to inner):
file
function const FEOSSettings& UEOSSettings::ManualGetSettings
Source code excerpt:
GConfig->GetBool(INI_SECTION, TEXT("bUseEOSConnect"), CachedSettings->bUseEOSConnect, GEngineIni);
GConfig->GetBool(INI_SECTION, TEXT("bUseEOSSessions"), CachedSettings->bUseEOSSessions, GEngineIni);
GConfig->GetBool(INI_SECTION, TEXT("bMirrorStatsToEOS"), CachedSettings->bMirrorStatsToEOS, GEngineIni);
GConfig->GetBool(INI_SECTION, TEXT("bMirrorAchievementsToEOS"), CachedSettings->bMirrorAchievementsToEOS, GEngineIni);
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);
}
#Loc: <Workspace>/Engine/Plugins/Online/OnlineSubsystemEOS/Source/OnlineSubsystemEOS/Private/EOSSettings.cpp:222
Scope (from outer to inner):
file
function FEOSSettings UEOSSettings::ToNative
Source code excerpt:
Native.bUseEOSConnect = bUseEOSConnect;
Native.bUseEOSSessions = bUseEOSSessions;
Native.bMirrorStatsToEOS = bMirrorStatsToEOS;
Native.bMirrorAchievementsToEOS = bMirrorAchievementsToEOS;
Native.bMirrorPresenceToEAS = bMirrorPresenceToEAS;
Algo::Transform(Artifacts, Native.Artifacts, &FArtifactSettings::ToNative);
Native.TitleStorageTags = TitleStorageTags;
Native.AuthScopeFlags = AuthScopeFlags;
#Loc: <Workspace>/Engine/Plugins/Online/OnlineSubsystemEOS/Source/OnlineSubsystemEOS/Private/EOSSettings.cpp:430
Scope (from outer to inner):
file
function void UEOSSettings::PostEditChangeProperty
Source code excerpt:
{
bMirrorAchievementsToEOS = false;
bMirrorStatsToEOS = false;
bUseEOSSessions = false;
}
}
// These all require EOS turned on if they are on
if (PropertyChangedEvent.Property->GetFName() == FName(TEXT("bMirrorAchievementsToEOS")) ||
#Loc: <Workspace>/Engine/Plugins/Online/OnlineSubsystemEOS/Source/OnlineSubsystemEOS/Private/EOSSettings.cpp:440
Scope (from outer to inner):
file
function void UEOSSettings::PostEditChangeProperty
Source code excerpt:
PropertyChangedEvent.Property->GetFName() == FName(TEXT("bUseEOSSessions")))
{
if (bMirrorAchievementsToEOS || bMirrorStatsToEOS || bUseEOSSessions)
{
bUseEOSConnect = true;
}
}
Super::PostEditChangeProperty(PropertyChangedEvent);
#Loc: <Workspace>/Engine/Plugins/Online/OnlineSubsystemEOS/Source/OnlineSubsystemEOS/Public/EOSSettings.h:82
Scope: file
Source code excerpt:
bool bUseEOSConnect;
bool bUseEOSSessions;
bool bMirrorStatsToEOS;
bool bMirrorAchievementsToEOS;
bool bMirrorPresenceToEAS;
TArray<FEOSArtifactSettings> Artifacts;
TArray<FString> TitleStorageTags;
TArray<FString> AuthScopeFlags;
};
#Loc: <Workspace>/Engine/Plugins/Online/OnlineSubsystemEOS/Source/OnlineSubsystemEOS/Public/EOSSettings.h:159
Scope (from outer to inner):
file
class class UEOSSettings : public URuntimeOptionsBase
Source code excerpt:
/** Set to true to write stats to EOS as well as the default platform */
UPROPERTY(Config, EditAnywhere, BlueprintReadOnly, Category="Crossplay Settings")
bool bMirrorStatsToEOS = false;
/** Set to true to write achievement data to EOS as well as the default platform */
UPROPERTY(Config, EditAnywhere, BlueprintReadOnly, Category="Crossplay Settings")
bool bMirrorAchievementsToEOS = false;
/** Set to true to use EOS for session registration with data mirrored to the default platform */
#Loc: <Workspace>/Engine/Plugins/Online/OnlineSubsystemEOS/Source/OnlineSubsystemEOSPlus/Private/OnlineStatsEOSPlus.cpp:66
Scope (from outer to inner):
file
function void FOnlineStatsEOSPlus::UpdateStats
Source code excerpt:
const FEOSSettings& EOSSettings = UEOSSettings::GetSettings();
if (EOSSettings.bMirrorStatsToEOS)
{
// Also write the data to EOS
IOnlineStatsPtr EOSStats = EOSPlus->EosOSS->GetStatsInterface();
if (EOSStats.IsValid())
{
// We send a processed copy of the updated stats to the EOS interface, with the corresponding EOS user ids