GenericMessagePlugin(GMP): A complete message solution for UE4


overview** [ol]
[li]unified access to C++ blueprint script, seamlessly use[/li][li]zero cost abstraction , C++ layer has very little performance loss[/li][li]communications between C++ and scripts(blueprints) also has minimize performance loss[/li][li]dynamic type checking[LIST=1][/li][li]avoid code dependencies and unnecessary time-consuming compilation[/li][li]you can turn off the dynamic type checking for release versions[/li][/ol]
[li]blueprint self-explanatory, base on MessageTag[/li][li]provides custom blueprint nodes to facilitate blueprint message communication[/li][li]providing type safe dynamic invocation (C++)[/li][li]Additional highlights[ol][/li][li]SendWorldMessage / SendObjectMessage, support filtering by World or Object[/li][li]a variety of Listen support, support for automatic adaptive callback function[/li][li]watch times preset, and ‘stop listening’ line[/li][li]debug display when blueprint node is debugged[/li][/ol]

The Blueprint

Use NotifyMessage /ListenMessage blueprint node directly The message type is then selected by a tree drop-down

Create a message in the blueprint

Display during debugging

show listener on the notify node

shows the listening state, as well as historical callback on the listen node

The Code

Send message

FGMPHelper::SendObjectMessage/ FGMPHelper::NotifyMessage /FGMPHelper::SendWorldMessage Listen for messages


Generic support

Unified generic interface, only MSGKEY is needed to map the message

Supported types

Supports types and containers supported by various blueprints


Because of the uniqueness of the UObject class, secure automatic type conversion is particularly supported

image20200410155920757.pngCurrent usage limit [ol]
[li]In order to be compatible with the blueprint system, the pointer only supports UObject and its derived classes. All other types usereference[/li][li]For compatibility with blueprints, only containers supported by blueprints are supported, using the default allocator[/li][li]In addition to the UObject class using Pointers, arguments that listen to callbacks must use the reference type to reduce unnecessary copying[/li][li]The parameters of the monitor callback use the reference type, so it supports write-back monitor parameters[/li][li]Enumeration is currently underlay_type processing // to be optimized[/li][li]Blueprint Write-back monitoring parameters requires additional operations // to be optimized[/li][/ol]other scripts support

It is easy to add support for other scripts(such as lua), as well as a consistent usage experience RPC Support

Currently only support used in C++, work in progress for Blueprint

Hello, When can we expect a 4.26 update for this?

It’s already updated