-
Notifications
You must be signed in to change notification settings - Fork 0
FGMPExtra
The per-dispatch context handed to a raw callback alongside the arguments.
Declared in Plugins/GMP/Source/GMP/GMP/GMPStruct.h:490
struct FGMPExtra
{
int32 Size = 0;
float DebugSeconds = 0.f;
const FName* TypeNames = nullptr;
FSigSource Source = FSigSource(nullptr);
FName Key;
FGMPKey Seq = {};
};| Field | Meaning |
|---|---|
Size |
number of entries in the FGMPTypedAddr array — the only reliable way to know the argument count |
DebugSeconds |
timing information for debug tooling |
TypeNames |
pointer to a static table of type names, one per argument, built once per signature |
Source |
the FSigSource the message was sent from |
Key |
the message key |
Seq |
the request sequence when this dispatch is part of a request/response exchange, otherwise zero |

It is the type-name channel that survives Shipping. The per-argument FGMPTypedAddr::TypeName exists
only under GMP_WITH_TYPENAME, so any code that needs types in a packaged build reads TypeNames together
with Size instead.
The table is static and shared per signature (built by FMessageBody::MakeStaticNames), so it is cheap to
carry — the struct holds a pointer, not a copy.
Valid for the duration of the dispatch only, like the argument array. Do not store the pointer.
GMP · Reference wiki — one page per named thing. Guided introduction: project site · 中文站点 · measured dispatch stack Source: repository · README · README 中文
Pages here are generated from wiki/ in the main repository — edit there, not on the wiki.
Concepts
- Why a string key
- Dispatch layers
- Parameter compatibility
- Signature inference
- Key baking
- Transparent rewrite
- Jump tracing
Sending and listening
- NotifyMessage family
- ListenMessage family
- StoreObjectMessage
- MSGKEY
- FSigSource
- FSigHandle
- FGMPKey
- FGMPResponder
Dispatch internals
Reflection and data
Editor
Build