IniSectionDenylist
IniSectionDenylist
#Overview
name: IniSectionDenylist
The value of this variable can be defined or overridden in .ini config files. 6
.ini config files referencing this setting variable.
It is referenced in 3
C++ source files. Also referenced in 1
C# build file meaning it may affect the build system logic.
#Summary
#Usage in the C++ source code
The purpose of IniSectionDenylist is to specify a list of INI file sections that should be excluded when packaging a project in Unreal Engine 5. This variable is used to control which configuration sections are stripped out during the packaging process, allowing developers to omit certain settings from the final packaged build.
This setting variable is primarily used by the project packaging system, which is part of the Unreal Engine’s build and deployment pipeline. Based on the callsites, it’s evident that the variable is utilized in the following subsystems and modules:
- DeveloperToolSettings module
- PakFileUtilities module
- UnrealEd module
The value of this variable is set in the project’s configuration files, specifically in the section “/Script/UnrealEd.ProjectPackagingSettings” of the game’s INI file (GGameIni). It can be modified through the Project Settings in the Unreal Editor, under the Packaging category.
IniSectionDenylist interacts with another variable called IniKeyDenylist, which is used to specify individual keys to be excluded from the INI files during packaging. Together, these variables provide fine-grained control over which configuration settings are included in the packaged build.
Developers should be aware of the following when using this variable:
- Removing essential sections may cause issues in the packaged build, so careful consideration is needed when populating this list.
- This variable affects the final size and content of the packaged project, which can impact performance and functionality.
- Changes to this list may require re-packaging the project to take effect.
Best practices when using IniSectionDenylist include:
- Only exclude sections that are definitely not needed in the packaged build to avoid potential issues.
- Document any sections added to the denylist to maintain clarity for the development team.
- Regularly review and update the list as project requirements change.
- Test the packaged build thoroughly after making changes to ensure no critical functionality is affected.
- Use in conjunction with IniKeyDenylist for more precise control over configuration stripping.
- Consider version control for the packaging settings to track changes over time.
#Setting Variables
#References In INI files
Location: <Workspace>/Engine/Config/BaseGame.ini:155, section: [/Script/UnrealEd.ProjectPackagingSettings]
- INI Section:
/Script/UnrealEd.ProjectPackagingSettings
- Raw value:
HordeStorageServers
- Is Array:
True
Location: <Workspace>/Engine/Config/BaseGame.ini:156, section: [/Script/UnrealEd.ProjectPackagingSettings]
- INI Section:
/Script/UnrealEd.ProjectPackagingSettings
- Raw value:
StorageServers
- Is Array:
True
Location: <Workspace>/Projects/Lyra/Config/DefaultGame.ini:180, section: [/Script/UnrealEd.ProjectPackagingSettings]
- INI Section:
/Script/UnrealEd.ProjectPackagingSettings
- Raw value:
HordeStorageServers
- Is Array:
True
Location: <Workspace>/Projects/Lyra/Config/DefaultGame.ini:181, section: [/Script/UnrealEd.ProjectPackagingSettings]
- INI Section:
/Script/UnrealEd.ProjectPackagingSettings
- Raw value:
StorageServers
- Is Array:
True
Location: <Workspace>/Projects/Lyra/Config/DefaultGame.ini:183, section: [/Script/UnrealEd.ProjectPackagingSettings]
- INI Section:
/Script/UnrealEd.ProjectPackagingSettings
- Raw value:
HordeStorageServers
- Is Array:
True
Location: <Workspace>/Projects/Lyra/Config/DefaultGame.ini:184, section: [/Script/UnrealEd.ProjectPackagingSettings]
- INI Section:
/Script/UnrealEd.ProjectPackagingSettings
- Raw value:
StorageServers
- Is Array:
True
#References in C++ code
#Callsites
This variable is referenced in the following C++ source code:
#Loc: <Workspace>/Engine/Source/Developer/DeveloperToolSettings/Classes/Settings/ProjectPackagingSettings.h:555
Scope (from outer to inner):
file
class class UProjectPackagingSettings : public UObject
Source code excerpt:
/** List of ini file sections to strip when packaging */
UPROPERTY(config, EditAnywhere, Category = Packaging)
TArray<FString> IniSectionDenylist;
/**
* List of specific files to include with GenerateEarlyDownloaderPakFile
*/
UPROPERTY(config)
TArray<FString> EarlyDownloaderPakFileFiles_DEPRECATED;
#Loc: <Workspace>/Engine/Source/Developer/PakFileUtilities/Private/PakFileUtilities.cpp:5379
Scope (from outer to inner):
file
function bool MakeBinaryConfig
Source code excerpt:
TArray<FString> SectionsDenyList;
GConfig->GetArray(TEXT("/Script/UnrealEd.ProjectPackagingSettings"), TEXT("IniKeyDenylist"), KeyDenyListStrings, GGameIni);
GConfig->GetArray(TEXT("/Script/UnrealEd.ProjectPackagingSettings"), TEXT("IniSectionDenylist"), SectionsDenyList, GGameIni);
TArray<FName> KeysDenyList;
for (const FString& Key : KeyDenyListStrings)
{
KeysDenyList.Add(FName(*Key));
}
#Loc: <Workspace>/Engine/Source/Editor/UnrealEd/Private/Commandlets/MakeBinaryConfigCommandlet.cpp:62
Scope (from outer to inner):
file
function int32 UMakeBinaryConfigCommandlet::Main
Source code excerpt:
TArray<FString> SectionsDenyList;
GConfig->GetArray(TEXT("/Script/UnrealEd.ProjectPackagingSettings"), TEXT("IniKeyDenylist"), KeyDenyListStrings, GGameIni);
GConfig->GetArray(TEXT("/Script/UnrealEd.ProjectPackagingSettings"), TEXT("IniSectionDenylist"), SectionsDenyList, GGameIni);
TArray<FName> KeysDenyList;
for (FString Key : KeyDenyListStrings)
{
KeysDenyList.Add(FName(*Key));
}
#References in C# build files
This variable is referenced in the following C# build files:
Location: <Workspace>/Engine/Source/Programs/AutomationTool/AutomationUtils/DeploymentContext.cs:617
// Read the config deny lists
GameConfig.GetArray(PackagingIniPath, "IniKeyDenylist", out IniKeyDenyList);
GameConfig.GetArray(PackagingIniPath, "IniSectionDenylist", out IniSectionDenyList);
// TODO: Drive these lists from a config file
IniSuffixAllowList = new List<string>
{
".ini",
"compat.ini",