bShowHiddenPropertiesWhilePlaying
bShowHiddenPropertiesWhilePlaying
#Overview
name: bShowHiddenPropertiesWhilePlaying
The value of this variable can be defined or overridden in .ini config files. 1
.ini config file referencing this setting variable.
It is referenced in 7
C++ source files.
#Summary
#Usage in the C++ source code
The purpose of bShowHiddenPropertiesWhilePlaying is to control the visibility of hidden and non-editable properties in the Unreal Engine editor’s Details panel when the game is in Play or Simulate mode. This setting is primarily used for debugging purposes, allowing developers to see and inspect properties that are usually hidden during gameplay.
This setting variable is primarily used by the Property Editor subsystem of Unreal Engine, specifically within the Details View component. It’s part of the editor’s user interface and debugging tools.
The value of this variable is set in multiple places:
- It’s defined as a config property in the UEditorStyleSettings class, which means its value can be saved and loaded from the editor’s configuration files.
- It can be modified through the SDetailsView class, which handles the Details panel in the editor.
This variable interacts with other settings and variables related to property visibility in the editor, such as:
- FPropertySettings::ShowHiddenProperties()
- DetailsViewArgs.bForceHiddenPropertyVisibility
Developers should be aware of the following when using this variable:
- Enabling this setting can expose properties that are normally hidden, which might include sensitive or internal data.
- It only affects objects that belong to a simulating world (i.e., objects in Play or Simulate mode).
- Changing this setting will trigger a refresh of the entire Details panel, which could impact performance if done frequently.
Best practices when using this variable include:
- Use it primarily for debugging purposes and disable it when not needed to avoid confusion or potential performance impacts.
- Be cautious when modifying exposed properties, as changes to normally hidden properties might have unexpected consequences.
- Consider creating a custom editor configuration for debugging that includes this setting, separate from the default editing configuration.
- When sharing projects or editor configurations, be aware that this setting might expose internal data if enabled.
#Setting Variables
#References In INI files
Location: <Workspace>/Engine/Config/BaseEditorPerProjectUserSettings.ini:97, section: [/Script/UnrealEd.EditorStyleSettings]
- INI Section:
/Script/UnrealEd.EditorStyleSettings
- Raw value:
False
- Is Array:
False
#References in C++ code
#Callsites
This variable is referenced in the following C++ source code:
#Loc: <Workspace>/Engine/Source/Editor/PropertyEditor/Private/DetailsViewConfig.h:41
Scope: file
Source code excerpt:
/** When Playing or Simulating, shows all properties (even non-visible and non-editable properties), if the object belongs to a simulating world. This is useful for debugging. */
UPROPERTY()
bool bShowHiddenPropertiesWhilePlaying { false };
/** Show all category children if the category matches the filter. */
UPROPERTY()
bool bShowAllChildrenIfCategoryMatches { false };
/** Show only keyable properties. */
#Loc: <Workspace>/Engine/Source/Editor/PropertyEditor/Private/SDetailsView.cpp:981
Scope (from outer to inner):
file
function void SDetailsView::PostSetObject
Source code excerpt:
ColorPropertyNode = nullptr;
// Are we editing PIE objects? If the bShowHiddenPropertiesWhilePlaying setting is enabled, we may want to
// show all of the properties that would normally be hidden for objects that are part of the PIE world.
bool bShowHiddenPropertiesWhilePlaying = false;
if (IsShowHiddenPropertiesWhilePlayingChecked())
{
for( int32 RootNodeIndex = 0; RootNodeIndex < RootPropertyNodes.Num(); ++RootNodeIndex )
{
FObjectPropertyNode* RootPropertyNode = RootPropertyNodes[ RootNodeIndex ]->AsObjectNode();
if( RootPropertyNode != nullptr )
#Loc: <Workspace>/Engine/Source/Editor/PropertyEditor/Private/SDetailsView.cpp:997
Scope (from outer to inner):
file
function void SDetailsView::PostSetObject
Source code excerpt:
if( Object->GetOutermost()->HasAnyPackageFlags( PKG_PlayInEditor ) )
{
bShowHiddenPropertiesWhilePlaying = true;
break;
}
}
}
}
}
#Loc: <Workspace>/Engine/Source/Editor/PropertyEditor/Private/SDetailsView.cpp:1013
Scope (from outer to inner):
file
function void SDetailsView::PostSetObject
Source code excerpt:
InitParams.bForceHiddenPropertyVisibility =
FPropertySettings::Get().ShowHiddenProperties() ||
bShowHiddenPropertiesWhilePlaying ||
DetailsViewArgs.bForceHiddenPropertyVisibility;
switch ( DetailsViewArgs.DefaultsOnlyVisibility )
{
case EEditDefaultsOnlyNodeVisibility::Hide:
InitParams.bCreateDisableEditOnInstanceNodes = false;
#Loc: <Workspace>/Engine/Source/Editor/PropertyEditor/Private/SDetailsView.cpp:1092
Scope (from outer to inner):
file
function bool SDetailsView::IsShowHiddenPropertiesWhilePlayingChecked
Source code excerpt:
if (ViewConfig != nullptr)
{
return ViewConfig->bShowHiddenPropertiesWhilePlaying;
}
return GetDefault<UEditorStyleSettings>()->bShowHiddenPropertiesWhilePlaying;
}
void SDetailsView::OnShowHiddenPropertiesWhilePlayingClicked()
{
const bool bNewValue = !IsShowHiddenPropertiesWhilePlayingChecked();
#Loc: <Workspace>/Engine/Source/Editor/PropertyEditor/Private/SDetailsView.cpp:1105
Scope (from outer to inner):
file
function void SDetailsView::OnShowHiddenPropertiesWhilePlayingClicked
Source code excerpt:
if (ViewConfig != nullptr)
{
ViewConfig->bShowHiddenPropertiesWhilePlaying = bNewValue;
SaveViewConfig();
}
GConfig->SetBool(TEXT("/Script/UnrealEd.EditorStyleSettings"), TEXT("bShowHiddenPropertiesWhilePlaying"), bNewValue, GEditorPerProjectIni);
// Force a refresh of the whole details panel, as the entire set of visible properties may be different
ForceRefresh();
}
void SDetailsView::OnShowSectionsClicked()
#Loc: <Workspace>/Engine/Source/Editor/UnrealEd/Classes/Settings/EditorStyleSettings.h:153
Scope (from outer to inner):
file
class class UEditorStyleSettings : public UObject
Source code excerpt:
/** When Playing or Simulating, shows all properties (even non-visible and non-editable properties), if the object belongs to a simulating world. This is useful for debugging. */
UPROPERTY(config)
uint32 bShowHiddenPropertiesWhilePlaying : 1;
/** New asset editor tabs will open at the specified location. */
UPROPERTY(EditAnywhere, config, Category=UserInterface)
EAssetEditorOpenLocation AssetEditorOpenLocation;
/** Should editor tabs be colorized according to the asset type */