UE::EPayloadFilter

Trailer Format The [FPackageTrailer](API\Runtime\CoreUObject\UObject\FPackageTrailer) is a container that will commonly be appended to the end of a package file.

Choose your operating system:

Windows

macOS

Linux

References

Module

CoreUObject

Header

/Engine/Source/Runtime/CoreUObject/Public/UObject/PackageTrailer.h

Include

#include "UObject/PackageTrailer.h"

Syntax

namespace UE
{
    enum EPayloadFilter
    {
        All,
        Local,
        Referenced,
        Virtualized,
    }
}

Values

Name

Description

All

All payload types.

Local

All payloads stored locally in the package trailer.

Referenced

All payloads that are a reference to payloads stored in the workspace domain trailer

Virtualized

All payloads stored in a virtualized backend.

Remarks

Trailer Format The FPackageTrailer is a container that will commonly be appended to the end of a package file. The main purpose of the trailer is to store the bulkdata payloads contained by the package until they are virtualized or moved to an additional storage location.

By storing the payloads in a data format adjacent to the rest of the package we can perform the virtualization process without needing to re-save the package itself which in turn should allow for external tools to be able to perform the virtualization process themselves rather than needing to force it through engine code.

The package trailer is intended to an easy format for external code/script to be able to manipulate. To make things clearer we do not serialize containers directly but write out each data structure one at a time so that it should be easy to see how to manipulate the file.

The file is split into three parts:

[Header] The header contains the useful info about the trailer and the payloads in general. UE::FLookupTableEntry for details about the look up table's data.

[Payload Data] If the trailer is in the workspace domain package then we will store all non-virtualized payloads here. If the trailer is in the editor domain then there will be no payload data section and the header will be referencing the trailer in the workspace domain instead.

[Footer] The footer allows for us to load the trailer in reverse and replicates the end of package file tag (PACKAGE_FILE_TAG), it should only be used for finding the start of the trailer or validation.

CurrentVersion UE::EPackageTrailerVersion::INITIAL | [Header] | | Tag | uint64 | Should match FHeader::HeaderTag, used to identify that the data being read is an FPackageTrailer | | Version | uint32 | Version number of the format