HttpChunkInstallDataDirectory

HttpChunkInstallDataDirectory

#Overview

name: HttpChunkInstallDataDirectory

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.

#Summary

#Usage in the C++ source code

The purpose of HttpChunkInstallDataDirectory is to specify the directory path where HTTP chunk install data will be stored during the packaging process of an Unreal Engine project.

This setting variable is primarily used by the project packaging system in Unreal Engine. It is part of the UProjectPackagingSettings class, which is responsible for managing various packaging-related configurations.

The value of this variable is set in the project’s configuration files and can be modified through the Project Settings menu in the Unreal Editor. It is represented as a FDirectoryPath property, which allows users to specify a directory path.

HttpChunkInstallDataDirectory interacts with other packaging-related variables, particularly bBuildHttpChunkInstallData and HttpChunkInstallDataVersion. When bBuildHttpChunkInstallData is set to true, the engine uses the HttpChunkInstallDataDirectory path to store chunk install data.

Developers should be aware that:

  1. This variable is crucial for projects utilizing HTTP chunk installation.
  2. The directory path should be set to a valid location with appropriate write permissions.
  3. If left empty, the engine will attempt to set a default path relative to the project file location.

Best practices when using this variable include:

  1. Ensuring the specified directory is excluded from version control to avoid conflicts.
  2. Regularly reviewing and updating the path as needed, especially when project structure changes.
  3. Coordinating with the team to maintain consistency in chunk install data location across different development environments.
  4. Considering platform-specific requirements when setting this path for multi-platform projects.

#Setting Variables

#References In INI files

Location: <Workspace>/Projects/Lyra/Config/DefaultGame.ini:103, 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:317

Scope (from outer to inner):

file
class        class UProjectPackagingSettings : public UObject

Source code excerpt:

	 */	
	UPROPERTY(config, EditAnywhere, Category = Packaging)
	FDirectoryPath HttpChunkInstallDataDirectory;

	/**
	* Whether to write staging metadata back to the asset registry. This metadata contains information such as
	* the actual compressed chunk sizes of the assets as well as some bulk data diff blame support information.
	*/
	UPROPERTY(config, EditAnywhere, Category = Packaging, AdvancedDisplay)

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

Scope (from outer to inner):

file
function     void UProjectPackagingSettings::PostEditChangeProperty

Source code excerpt:

			bGenerateChunks = true;
			//Ensure data is something valid
			if (HttpChunkInstallDataDirectory.Path.IsEmpty())
			{
				auto CloudInstallDir = FPaths::ConvertRelativePathToFull(FPaths::GetPath(FPaths::GetProjectFilePath())) / TEXT("ChunkInstall");
				HttpChunkInstallDataDirectory.Path = CloudInstallDir;
			}
			if (HttpChunkInstallDataVersion.IsEmpty())
			{
				HttpChunkInstallDataVersion = TEXT("release1");
			}
		}

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

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
			if (BuildConfig == EProjectPackagingBuildConfigurations::PPBC_MAX)
			{