FGantryAPI
The game's declared API, at run time: what it offers to its own systems and to side-loaded content, and whether a given type, function or property is part of it.
Read from the manifest (UGantryAPIManifest), resolved through reflection, which cooked builds keep.
Declaring the API
Mark what the game offers in its code:
class ATrain : public AActor
;
GantryAPIon a class, struct or enum puts the type in (its value is the namespace; empty for the module's name). On a function or property it puts that member in, and its type with it.GantryAPIBlueprinton a type puts in every member Blueprint can see: callable, pure and event functions, and visible properties, declared in that type.GantryAPISince = "1.1"andGantryAPIDeprecated = "Use Couple instead"on anything.
What the code cannot be marked for (engine types, other plugins) goes in Project Settings > Plugins > Gantry Core > API Allowlist. Channels are declared in the channel registry. The game's API version is set in the same settings; mods declare the range they target.
Members
GetVersion
static FString
Returns: The API version the game declares.
GetManifest
static const UGantryAPIManifest *
Returns: The manifest.
IsExposed
static bool
Returns: Whether a class, struct or enum is part of the API.
IsExposed
static bool
Returns: Whether a function is part of the API.
IsExposed
static bool
Returns: Whether a property is part of the API.
FindFunction
static UFunction *
A function of the API, by class and name.
Returns: The function, when the class (or a parent) has it and it is part of the API; otherwise null.
FindProperty
static FProperty *
A property of the API, by owning type and name.
Returns: The property, when the type (or a parent) has it and it is part of the API; otherwise null.
Reset
static void
Forgets what was resolved, so the next question reads the manifest again (after it changes).