HttpChunkInstallDataVersion

HttpChunkInstallDataVersion

#Overview

name: HttpChunkInstallDataVersion

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 HttpChunkInstallDataVersion is to specify the version identifier for HTTP chunk install data in Unreal Engine 5’s packaging system. This setting is used to manage and version content that can be downloaded and installed in chunks over HTTP, which is particularly useful for large games or applications that require incremental updates or downloadable content (DLC).

This setting variable is primarily used by the packaging and content delivery subsystems of Unreal Engine 5. Based on the callsites, it is part of the ProjectPackagingSettings class, which is likely part of the DeveloperToolSettings module. It’s also referenced in the TurnkeySupport module, specifically in the context of cooking and packaging content.

The value of this variable is set in the project’s configuration files and can be edited through the Unreal Editor’s Project Settings interface. It’s also automatically set to “release1” if left empty, as seen in the PostEditChangeProperty function of the ProjectPackagingSettings class.

HttpChunkInstallDataVersion interacts with other packaging-related variables, particularly HttpChunkInstallDataDirectory. These two variables work together to define where and how chunk install data is managed.

Developers must be aware that this variable is crucial for versioning HTTP chunk install data. It should be updated appropriately when making significant changes to the chunk install data to ensure proper version control and update management for end-users.

Best practices when using this variable include:

  1. Use a consistent versioning scheme (e.g., semantic versioning) to make it easy to track changes.
  2. Update the version when making significant changes to the chunk install data.
  3. Coordinate the version with your content delivery and update systems to ensure proper distribution of updates.
  4. Document the versioning scheme and update process for your development team to maintain consistency.
  5. Consider automating the version update process as part of your build pipeline to reduce manual errors.

#Setting Variables

#References In INI files

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

Scope (from outer to inner):

file
class        class UProjectPackagingSettings : public UObject

Source code excerpt:

	 */
	UPROPERTY(config, EditAnywhere, Category = Packaging)
	FString HttpChunkInstallDataVersion;

	/** Specifies whether to include an installer for prerequisites of packaged games, such as redistributable operating system components, on platforms that support it. */
	UPROPERTY(config, EditAnywhere, Category=Prerequisites, meta=(DisplayName="Include prerequisites installer"))
	bool IncludePrerequisites;

	/** Specifies whether to include prerequisites alongside the game executable. */

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

Scope (from outer to inner):

file
function     void UProjectPackagingSettings::PostEditChangeProperty

Source code excerpt:

				HttpChunkInstallDataDirectory.Path = CloudInstallDir;
			}
			if (HttpChunkInstallDataVersion.IsEmpty())
			{
				HttpChunkInstallDataVersion = TEXT("release1");
			}
		}
	}
	else if (Name == FName((TEXT("ApplocalPrerequisitesDirectory"))))
	{
		// If a variable is already in use, assume the user knows what they are doing and don't modify the path

#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)
			{

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

					string HttpChunkInstallDataDirectory = Config.GetStructEntryForSetting(SettingsSection, "HttpChunkInstallDataDirectory", "Path");
					string HttpChunkInstallDataVersion;
					Config.GetString(SettingsSection, "HttpChunkInstallDataVersion", out HttpChunkInstallDataVersion);

					CommandLine += $" -manifests -createchunkinstall -chunkinstalldirectory=\"{HttpChunkInstallDataDirectory}\" -chunkinstallversion={HttpChunkInstallDataVersion}";
				}
			}

			if (bStage || bPackage)