ConfigFilesPluginsCannotOverride
ConfigFilesPluginsCannotOverride
#Overview
name: ConfigFilesPluginsCannotOverride
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 2
C++ source files.
#Summary
#Setting Variables
#References In INI files
Location: <Workspace>/Engine/Config/BaseEngine.ini:3472, section: [Plugins]
- INI Section:
Plugins
- Raw value:
EditorPerProjectUserSettings
- Is Array:
True
#References in C++ code
#Callsites
This variable is referenced in the following C++ source code:
#Loc: <Workspace>/Engine/Source/Runtime/Projects/Private/PluginManager.cpp:1903
Scope (from outer to inner):
file
function bool FPluginManager::ConfigureEnabledPlugins
Source code excerpt:
}
TArray<FString> ConfigFilesPluginsCannotOverride;
GConfig->GetArray(TEXT("Plugins"), TEXT("ConfigFilesPluginsCannotOverride"), ConfigFilesPluginsCannotOverride, GEngineIni);
TSet<FString> AllIniFiles;
if (PluginSystemDefs::IsCachingIniFilesForProcessing())
{
SCOPED_BOOT_TIMING("ParallelPluginEnabling::FindIniFiles");
#Loc: <Workspace>/Engine/Source/Runtime/Projects/Private/PluginManager.cpp:1936
Scope (from outer to inner):
file
function bool FPluginManager::ConfigureEnabledPlugins
lambda-function
Source code excerpt:
// Mount all the enabled plugins
ParallelFor(PluginsArray.Num(), [&PluginsArray, &ConfigCS, &PluginPakCS, &PendingConfigsCS, &PendingConfigs, &ConfigFilesPluginsCannotOverride, &AllIniFiles, this](int32 Index)
{
FString PlatformName = FPlatformProperties::PlatformName();
FPlugin& Plugin = *PluginsArray[Index];
UE_LOG(LogPluginManager, Log, TEXT("Mounting %s plugin %s"), *EnumToString(Plugin.Type), *Plugin.GetName());
UE_LOG(LogPluginManager, Verbose, TEXT("Plugin path: %s"), *Plugin.FileName);
auto AppendPluginConfigData = [&ConfigFilesPluginsCannotOverride](FConfigFile& DestinationPluginConfig, const FString& DestinationPluginConfigFilename, const FString& SourcePluginName, const FString& SourcePluginConfigDir, const FString& SourcePluginConfigFile)
{
UE_LOG(LogPluginManager, Log, TEXT("Found config from plugin[%s] %s"), *SourcePluginName, *DestinationPluginConfigFilename);
FString BaseConfigFile = *FPaths::GetBaseFilename(SourcePluginConfigFile);
if (ConfigFilesPluginsCannotOverride.Contains(BaseConfigFile))
{
// Not allowed, skip it
FText FailureMessage = FText::Format(LOCTEXT("PluginOverrideFailureFormat", "Plugin '{0}' cannot override config file: '{1}'"), FText::FromString(SourcePluginName), FText::FromString(BaseConfigFile));
FText DialogTitle = LOCTEXT("PluginConfigFileOverride", "Plugin config file override");
UE_LOG(LogPluginManager, Error, TEXT("%s"), *FailureMessage.ToString());
FMessageDialog::Open(EAppMsgType::Ok, FailureMessage, DialogTitle);