Concert.DisplayPresence
Concert.DisplayPresence
#Overview
name: Concert.DisplayPresence
This variable is created as a Console Variable (cvar).
- type:
Var
- help:
Enable display of Concert Presence from remote users.
It is referenced in 3
C++ source files.
#Summary
#Usage in the C++ source code
The purpose of Concert.DisplayPresence is to control the display of Concert Presence from remote users in the Unreal Engine’s Concert system, which is a collaborative framework for multi-user editing scenarios.
This setting variable is primarily used by the Concert system, specifically within the ConcertSyncClient plugin. It’s part of the collaboration features that allow multiple users to work together in real-time within the Unreal Engine editor.
The value of this variable is set as a console variable (CVar) with an initial value of 1, meaning it’s enabled by default. It can be changed at runtime through the console or configuration files.
The associated variable CVarDisplayPresence directly interacts with Concert.DisplayPresence. They share the same value and purpose.
Developers should be aware that this variable affects the visibility of remote users’ presence in the collaborative environment. When set to 0, it will disable the display of presence information from other users, potentially impacting the collaborative experience.
Best practices for using this variable include:
- Keeping it enabled (value 1) in most collaborative scenarios to maintain awareness of other users’ activities.
- Disabling it (value 0) when performance is a concern or when presence information is not needed.
- Considering the interaction with other Concert-related settings, such as Concert.EmitPresence, for a comprehensive collaboration setup.
Regarding the associated variable CVarDisplayPresence:
The purpose of CVarDisplayPresence is identical to Concert.DisplayPresence, as it’s the actual console variable implementation of the setting.
It’s used within the FConcertClientPresenceManager class to determine whether to show presence information. Specifically, in the SynchronizePresenceState function, it’s checked as part of the condition to display presence (CVarDisplayPresence.GetValueOnAnyThread() > 0).
The value is set in the same way as Concert.DisplayPresence, through console commands or configuration files.
CVarDisplayPresence directly controls the behavior of the presence display system. No other variables interact with it beyond Concert.DisplayPresence.
Developers should be aware that changes to CVarDisplayPresence take effect immediately and can be queried from any thread (as evident from the GetValueOnAnyThread() call).
Best practices for CVarDisplayPresence are the same as for Concert.DisplayPresence, as they are essentially the same setting. Developers should use the Console.DisplayPresence syntax when modifying this setting through console commands or configuration files.
#References in C++ code
#Callsites
This variable is referenced in the following C++ source code:
#Loc: <Workspace>/Engine/Plugins/Developer/Concert/ConcertSync/ConcertSyncClient/Source/ConcertSyncClient/Private/ConcertClientPresenceManager.cpp:59
Scope: file
Source code excerpt:
}
static TAutoConsoleVariable<int32> CVarDisplayPresence(TEXT("Concert.DisplayPresence"), 1, TEXT("Enable display of Concert Presence from remote users."));
static TAutoConsoleVariable<int32> CVarEmitPresence(TEXT("Concert.EmitPresence"), 1, TEXT("Enable display update of Concert Presence to remote users."));
const TCHAR* FConcertClientPresenceManager::AssetContainerPath = TEXT("/ConcertSyncClient/ConcertAssets");
FConcertClientPresenceStateEntry::FConcertClientPresenceStateEntry(TSharedRef<FConcertClientPresenceEventBase> InPresenceEvent)
: PresenceEvent(MoveTemp(InPresenceEvent))
#Associated Variable and Callsites
This variable is associated with another variable named CVarDisplayPresence
. They share the same value. See the following C++ source code.
#Loc: <Workspace>/Engine/Plugins/Developer/Concert/ConcertSync/ConcertSyncClient/Source/ConcertSyncClient/Private/ConcertClientPresenceManager.cpp:59
Scope: file
Source code excerpt:
}
static TAutoConsoleVariable<int32> CVarDisplayPresence(TEXT("Concert.DisplayPresence"), 1, TEXT("Enable display of Concert Presence from remote users."));
static TAutoConsoleVariable<int32> CVarEmitPresence(TEXT("Concert.EmitPresence"), 1, TEXT("Enable display update of Concert Presence to remote users."));
const TCHAR* FConcertClientPresenceManager::AssetContainerPath = TEXT("/ConcertSyncClient/ConcertAssets");
FConcertClientPresenceStateEntry::FConcertClientPresenceStateEntry(TSharedRef<FConcertClientPresenceEventBase> InPresenceEvent)
: PresenceEvent(MoveTemp(InPresenceEvent))
#Loc: <Workspace>/Engine/Plugins/Developer/Concert/ConcertSync/ConcertSyncClient/Source/ConcertSyncClient/Private/ConcertClientPresenceManager.cpp:315
Scope (from outer to inner):
file
function void FConcertClientPresenceManager::SynchronizePresenceState
Source code excerpt:
const bool bInCurrentWorld = !ActiveWorldPathName.IsNone() && ActiveWorldPathName == EventWorldPathName;
const bool bShowPresence = bIsPresenceEnabled && bInCurrentWorld && PresenceState.bIsConnected && IsPresenceVisible(PresenceState) && (CVarDisplayPresence.GetValueOnAnyThread() > 0);
if (bShowPresence)
{
FConcertSessionClientInfo ClientSessionInfo;
Session->FindSessionClient(RemoteEndpointId, ClientSessionInfo);
if (!PresenceState.PresenceActor.IsValid())