FGantryContentMetadata
Build information and compatibility for one experience or plugin, as shipped: which engine and game version it was cooked for, and which game versions it supports.
Gantry uses it to decide whether content can run here. A DLC pack cooked for an older engine, or for game versions outside its range, shows as Incompatible instead of failing to load.
Two halves
- Written when the content is cooked: engine version, game version, build number and release version, and on a plugin's Gantry Game Feature Data also its schema hashes and content hash. You never edit these; the Details panel shows them read-only.
- Set by you: Required Game Version, the range of game versions this content supports, and Capabilities, your game's own tags.
In C++
Compatibility can be checked without loading the asset: the metadata is copied into the asset registry. A class that holds this struct overrides GetAssetRegistryTags and calls AppendAssetRegistryTags; FromAssetData reads it back.
Properties
| Property | Type | Default | Description |
|---|---|---|---|
EngineVersion read-only | FString | Engine version this was cooked for, as Major.Minor.Patch ("5.6.0"). | |
GameVersion read-only | FString | Game version when this was cooked, from | |
BuildNumber read-only | int32 | 0 | Build number, set by your build server through the GANTRY_BUILD_NUMBER environment variable when cooking. Zero for a local build. |
ReleaseVersion read-only | FString | The release this cook made (-createreleaseversion, for the game's own content) or was based on (-basedonreleaseversion, for side-loaded content cooked as DLC). Empty when the cook named none. | |
SchemaHashes read-only | FString | The code modules this content uses, each with the hash of its types' shape when cooked ("Module=hash,..."; see GantrySchema). Checked against the running build at mount. Written only on a plugin's Gantry Game Feature Data ( | |
ContentHash read-only | FString | What the content is, independent of platform and cook: a hash of the editor's saved packages under the plugin's root, written when cooked. Two cooks of the same source (a Linux server and a Windows client) carry the same hash; see HashContentUnder. Written only on a plugin's Gantry Game Feature Data ( | |
RequiredGameVersion read-only | FGantryVersionRange | () | The game versions this content supports. Empty ends mean no limit. Content outside the range shows as Incompatible. A range, rather than one exact version, lets content keep working across game patches without being cooked again. |
RequiredAPIVersion read-only | FGantryVersionRange | () | The versions of the game's API ( Empty ends mean no limit. |
Capabilities read-only | FGameplayTagContainer | () | Your game's own tags for what this content provides or needs, such as a platform, a storefront or an age rating. Gantry never reads these. Your game checks them to decide what to offer. They are not copied into the asset registry, so metadata read back without loading the asset has none. |
C++
Public C++ members that Blueprint does not see.
EngineVersionTag
const FName
Asset registry tag holding EngineVersion.
GameVersionTag
const FName
Asset registry tag holding GameVersion.
BuildNumberTag
const FName
Asset registry tag holding BuildNumber, as a numerical tag.
ReleaseVersionTag
const FName
Asset registry tag holding ReleaseVersion.
SchemaHashesTag
const FName
Asset registry tag holding SchemaHashes.
ContentHashTag
const FName
Asset registry tag holding ContentHash.
MinAPIVersionTag
const FName
Asset registry tag holding RequiredAPIVersion.MinVersion.
MaxAPIVersionTag
const FName
Asset registry tag holding RequiredAPIVersion.MaxVersion.
MinGameVersionTag
const FName
Asset registry tag holding RequiredGameVersion.MinVersion.
MaxGameVersionTag
const FName
Asset registry tag holding RequiredGameVersion.MaxVersion.
IsStamped
bool
Returns: True once the build information has been written, which happens when the content is cooked.
Stamp
void
Writes the build information from the running process: engine version, game version, build number and release version.
Schema hashes and content hash are not written here; UGantryGameFeatureData writes them. Call from PreSave when cooking, never at runtime: written on load, it would describe the wrong build.
CheckCompatibility
EGantryCompatibility
Checks this content against the running build: the engine version first when it has build information (major and minor must match, patch may differ), then the code it was cooked against (SchemaHashes), then RequiredGameVersion and RequiredAPIVersion either way, so the editor refuses what a packaged game refuses.
Uncooked content that passes is Unstamped.
OutReason:Fit to show a player on failure; cleared on Compatible.
Returns: The verdict.
AppendAssetRegistryTags
void
Mirrors this struct into an owner's asset registry tags.
Capabilities are not mirrored.
FromAssetData
static bool
Reads metadata back from an asset's registry tags, so compatibility can be checked without loading it.
Uncooked assets carry only their authored ranges.
AssetData:The asset's registry entry.
OutMetadata:Filled in when found; untouched otherwise.
Returns: False when the asset carries no Gantry metadata.
HashContentUnder
static FString
Hashes the content under a content root ("/MyMod/") as the editor saved it: every package's saved hash, by package name.
The same source gives the same hash on every machine and for every platform it is cooked for. Editor only: a cooked game reads ContentHash instead.
Returns: 16 hex digits, or empty when the root holds no packages.