bBuildHttpChunkInstallData

bBuildHttpChunkInstallData

#Overview

name: bBuildHttpChunkInstallData

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 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 bBuildHttpChunkInstallData is to control whether HTTP chunk install data should be built during the packaging process of an Unreal Engine project. This setting is primarily used for content streaming and distribution, allowing developers to create downloadable chunks of game content that can be installed over HTTP.

This setting variable is part of the UProjectPackagingSettings class, which belongs to the DeveloperToolSettings module. It is primarily used in the packaging and deployment process of Unreal Engine projects.

The value of this variable is set in the project’s configuration files and can be edited through the Project Settings interface in the Unreal Editor. It is defined as a UPROPERTY with the ‘config’ and ‘EditAnywhere’ specifiers, making it accessible and modifiable through both code and the editor UI.

bBuildHttpChunkInstallData interacts with several other packaging-related variables:

  1. bGenerateChunks: When bBuildHttpChunkInstallData is enabled, bGenerateChunks is also set to true.
  2. UsePakFile: This is set to true when bBuildHttpChunkInstallData is enabled.
  3. HttpChunkInstallDataDirectory: This variable specifies the directory where the HTTP chunk install data will be built.
  4. HttpChunkInstallDataVersion: This variable is used to set the version of the chunk install data.

Developers should be aware of the following when using this variable:

  1. Enabling this option will increase build times and storage requirements, as additional data needs to be generated.
  2. It requires proper setup of content streaming and chunking in the project.
  3. It affects the deployment process and how content is delivered to end-users.

Best practices when using this variable include:

  1. Only enable it when you actually need HTTP chunk installation for your project.
  2. Ensure that the HttpChunkInstallDataDirectory is set to a valid path when enabling this option.
  3. Coordinate the use of this feature with your content delivery strategy and infrastructure.
  4. Test the chunked content installation thoroughly to ensure it works as expected on target platforms.
  5. Keep the HttpChunkInstallDataVersion updated appropriately to manage different versions of your chunked content.

#Setting Variables

#References In INI files

Location: <Workspace>/Projects/Lyra/Config/DefaultGame.ini:102, section: [/Script/UnrealEd.ProjectPackagingSettings]

#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:311

Scope (from outer to inner):

file
class        class UProjectPackagingSettings : public UObject

Source code excerpt:

	 */
	UPROPERTY(config, EditAnywhere, Category=Packaging)
	bool bBuildHttpChunkInstallData;

	/** 
	 * When "Build HTTP Chunk Install Data" is enabled this is the directory where the data will be build to.
	 */	
	UPROPERTY(config, EditAnywhere, Category = Packaging)
	FDirectoryPath HttpChunkInstallDataDirectory;

#Loc: <Workspace>/Engine/Source/Developer/DeveloperToolSettings/Private/ProjectPackagingSettings.cpp:123

Scope (from outer to inner):

file
function     void UProjectPackagingSettings::PostEditChangeProperty

Source code excerpt:

		{
			bGenerateChunks = false;
			bBuildHttpChunkInstallData = false;
		}
	}
	else if (Name == FName(TEXT("bBuildHTTPChunkInstallData")))
	{
		if (bBuildHttpChunkInstallData)
		{
			UsePakFile = true;
			bGenerateChunks = true;
			//Ensure data is something valid
			if (HttpChunkInstallDataDirectory.Path.IsEmpty())
			{

#Loc: <Workspace>/Engine/Source/Editor/TurnkeySupport/Private/TurnkeySupportModule.cpp:477

Scope (from outer to inner):

file
class        class FTurnkeySupportCallbacks
function     static void CookOrPackage

Source code excerpt:

			}

			if (PackagingSettings->bBuildHttpChunkInstallData)
			{
				BuildCookRunParams += FString::Printf(TEXT(" -manifests -createchunkinstall -chunkinstalldirectory=\"%s\" -chunkinstallversion=%s"), *(PackagingSettings->HttpChunkInstallDataDirectory.Path), *(PackagingSettings->HttpChunkInstallDataVersion));
			}

			EProjectPackagingBuildConfigurations BuildConfig = PlatformsSettings->GetBuildConfigurationForPlatform(IniPlatformName);
			// if PPBC_MAX is set, then the project default should be used instead of the per platform build config

#References in C# build files

This variable is referenced in the following C# build files:

Location: <Workspace>/Engine/Source/Programs/AutomationTool/Turnkey/Commands/CreateBuild.cs:331


				bool bBuildHttpChunkInstallData;
				Config.GetBool(SettingsSection, "bBuildHttpChunkInstallData", out bBuildHttpChunkInstallData);
				if (bBuildHttpChunkInstallData)
				{
					string HttpChunkInstallDataDirectory = Config.GetStructEntryForSetting(SettingsSection, "HttpChunkInstallDataDirectory", "Path");
					string HttpChunkInstallDataVersion;
					Config.GetString(SettingsSection, "HttpChunkInstallDataVersion", out HttpChunkInstallDataVersion);