GantrySchema
The shape of a code module's reflected types, as a hash: what cooked content depends on.
Cooks write properties without version information, laid out by the types as they were when the content was cooked. Content cooked against one build of a module and loaded by another whose types differ is misread, not refused. Gantry stamps a mod with the hashes of the modules its packages use (at cook) and compares them with the running build's (at mount), so such a mod is refused with a reason instead.
The hash covers every native class and struct in the module: its name, its parent, and each property that is saved in cooked builds (name, C++ type, array size), in order. Editor-only, transient and deprecated properties are left out, so the editor that cooks and the game that loads agree. Names are compared without case, as the engine compares FNames.
Members
HashModule
uint32
The hash of a module's reflected types.
ModuleName:The module ("MyGame", "GantryExperience").
Returns: The hash; 0 for a module with no reflected types in this build.
FormatHashes
FString
Hashes in the form a mod's metadata stamps them: "Module=hash" entries, comma-separated, sorted.
Modules:The modules to hash.
Returns: The formatted hashes; empty when Modules is empty.
FindChangedModules
TArray< FString >
The modules whose stamped hash differs from this build's.
Stamped:What a mod's metadata says ("Module=hash,...").
Returns: The modules that changed since; empty when every one matches.
Reset
void
Forgets the hashes worked out, for code that changes types at run time (hot reload).