Blueprint API Reference

This page describes OmniGRPC’s Blueprint nodes, settings, and events. Find the relevant entry by node or setting name.

Class names are shown in the form UOmniGrpcLibrary. You do not need to write C++ code to use them in Blueprint. Each feature heading shows the node name displayed in Blueprint.

This documentation marks features that are available only in the Full Edition with the following badge. Full Edition only Features without this badge are also available in the Free Edition.

How the API fits together

TypeWhat it doesEdition
UOmniGrpcLibraryConfigure connections, create Channels, and start Unary callsFree / Full Edition
UOmniGrpcStreamingLibraryStart Streaming callsFull Edition only
UOmniGrpcChannelHold the destination, inspect the connection state, and close the connectionFree / Full Edition
UOmniGrpcServiceAssetHold the list of features that can be called on the serverFree / Full Edition
Unary ActionReceive call results and end callsFree / Full Edition
Streaming ActionReceive results, send data, and end callsFull Edition only
Wait ActionWait until the Channel can connectFree / Full Edition
Health ActionCheck whether the server is availableFull Edition only
Configuration Structs/EnumsConfigure connections, authentication, timeouts, and moreFree / Full Edition
    flowchart TD
	  Config[Channel Config] --> Channel[Create and hold a Channel]
	  Service[Service Asset + Method Name] --> Call[Call gRPC node]
	  Channel --> Call
	  Request[Request Struct] --> Call
	  Call --> Action[Save the Action output]
	  Call --> Event[Handle Response / Status in result events]
	  Action --> Control[Send Message / Close Send / Cancel]

Send Message and Close Send are used with Client and Bidi Streaming Actions. For Unary and Server Streaming, pass the Request to the start node.

UOmniGrpcLibrary

These are the basic nodes shown when you right-click a Blueprint graph and search for gRPC.

Create Channel

Creates a Channel from connection settings. A Channel is an object that manages the connection to the server. Save the created Channel to a variable and reuse it for communication with the same server. If creation fails, such as when Host is empty, the return value is empty.

A valid Channel does not mean the connection succeeded. Check unreachable destinations and certificate errors when waiting for the connection or running an RPC.

Close Channel

Closes the Channel. Call this when the game ends or when you change the destination. A closed Channel cannot start new communication. RPCs that are already in progress continue, so call Cancel on each Action first if you want to stop them. Calling this multiple times is safe.

Make Insecure Channel Config

Creates a connection config without encryption. Use this for development checks, such as running the sample server on a local PC. Do not use it in production.

Make TLS Channel Config

Creates a TLS connection config that encrypts communication. Use this to connect to servers that use the same kind of certificate as publicly available web services.

Make TLS Custom Root Channel Config

Creates a connection config that encrypts communication using a custom certificate. Use this for internal servers or self-signed certificates, specifying a PEM-format root certificate.

Status to String

Converts a call result Code to a string. This is useful for debug display. For players, avoid showing the raw Code; replace it with a clear message such as “Could not connect to the server.”

Load Service Descriptor Set

Loads Service Asset information in advance. Normal Call gRPC nodes load it automatically, so you usually do not need this node. Use it when a special initialization step needs to load the information first.

Decode Response

Converts received protobuf bytes into a Blueprint Response Struct. Normal Call gRPC nodes already return a converted Response, so you do not use this node for them. It is intended for advanced processing that handles raw bytes directly.

Call gRPC nodes

Common configuration

Set the generated Service Asset in the Service pin, select the node, and choose a Method from gRPC → Method Name in the Details panel. The candidates show only the Methods that match the node’s communication method. After you choose one, the Request and Response types and the node name update.

Method Name is a node setting, not an input pin. It is not meant to be replaced by a string at runtime; it fixes the Method to call at edit time.

Call gRPC Unary

Starts a call that sends data once and receives the result once. When you choose a Service and Method, the Request and Response pins automatically switch to the corresponding Structs.

Pin or eventDescription
ChannelA valid UOmniGrpcChannel
ServiceThe generated Service Asset
RequestData sent to the server
MetadataAdditional communication information, only when needed
TimeoutSeconds to wait for completion. 0 or below means no time limit
OptionsConnection waiting and a Token used only for this call
On SuccessReceives the Response on success
On ErrorReceives error information on failure
ActionUOmniGrpcCallUnaryAction. Save to a variable to cancel the call

Call gRPC Server Streaming

Full Edition only

Starts a call that sends data once and receives results from the server multiple times. This is suitable for progress displays and continuous list reception.

EventDescription
On Message ReceivedCalled each time data is received
On CompletedCalled once when the call completes normally
On ErrorCalled once when the call ends with an error
ActionUOmniGrpcCallServerStreamingAction. Save to a variable to cancel

Call gRPC Client Streaming

Full Edition only

Starts a call that sends multiple records and receives a result from the server at the end. Save the return value of the start node to a variable, then call Send Message on that variable to send data.

Call gRPC Bidi Streaming

Full Edition only

Starts a call that keeps sending and receiving at the same time. Save the return value of the start node to a variable and send with Send Message. Data from the server arrives through On Message Received.

Comparing inputs, outputs, and end events

NodeRequest at startAdditional sendsReceive eventNormal completionFailure
Unary1NoneOn SuccessOn SuccessOn Error
Server Streaming1NoneOn Message ReceivedOn CompletedOn Error
Client StreamingNoneSend Message on ActionOn Message ReceivedOn CompletedOn Error
Bidi StreamingNoneSend Message on ActionOn Message ReceivedOn CompletedOn Error

All four types take Channel, Service, Metadata, Timeout, and Options, and output an Action. For Client and Bidi Streaming, save the Action from Then to a variable and continue to the send logic. The start node’s Then does not mean the call has completed.

Image coming soon: Comparison of the four Call nodes

Image replacement marker

Place the Unary, Server Streaming, Client Streaming, and Bidi Streaming nodes side by side or in a 2×2 grid, with readable differences in input pins, output events, and Action return values.

Recommended filename
images/OmniGRPC/api-four-call-nodes.png
Alt text
The four types of gRPC Blueprint Call nodes provided by OmniGRPC

UOmniGrpcChannel

Get Config

Gets the connection settings used when the Channel was created. You can check Host, Port, Security, and more. Do not show access tokens or private keys on screen or in logs.

Is Valid

Returns true when the Channel was created correctly. Even when true, the server may not be reachable. Check the current connection state with Get Channel State.

Close

Closes this Channel. This has the same purpose as the Library’s Close Channel.

Get Channel State

Returns the current connection state. Setting Try to Connect to true also attempts a connection when one has not started yet. Ready means communication is possible. Before creation or after Close, the state is Shutdown.

UOmniGrpcServiceAsset

Find Method

Gets detailed information about a Method from its name. Returns true if found. Use this when implementing a Method selection screen or a debug screen.

Get Method Names

Returns a list of the Method names in the Service. This is useful for Method selection menus.

UOmniGrpcCallUnaryAction

On Success / On Error

Events that receive the result of a Unary call. Exactly one of On Success or On Error is called once.

Cancel

Cancels a running call. When cancelled, On Error is usually called with Cancelled. Returns false if the call has already finished.

UOmniGrpcCallServerStreamingAction

Full Edition only

On Message Received

Called each time data is received from the server. The call may also complete normally without receiving any data.

On Completed / On Error

On Completed is called when the call ends normally, and On Error when it ends with an error.

Cancel

Cancels a running call. Call this when you close a screen and no longer need to receive data.

UOmniGrpcCallClientStreamingAction

Full Edition only

Send Message

Sends one record to the server. Pass the Request Struct of the Method you started. You can call this repeatedly while the call is active and before Close Send. A return value of true means the message was accepted into the send queue; it does not guarantee that the server processed it successfully. If it returns false, check the connection state and the Request type.

Close Send

Tells the server that the data from this side is finished. You must call this to receive a result in Client Streaming.

On Message Received

Called when a result arrives from the server. In typical Client Streaming, there is one result.

On Completed / On Error

Called when the call ends. Use these separately from the result event to update the screen and clean up variables.

Cancel

Aborts the entire call. Close Send ends sending normally, while Cancel aborts the call itself.

UOmniGrpcCallBidiStreamingAction

Full Edition only

Send Message

Sends one record to the server. You can call it as many times as needed, independently of data received from the server.

Close Send

Tells the server that the data from this side is finished. After that, you can still receive the remaining data from the server.

On Message Received / On Completed / On Error

On Message Received is called each time data is received. Normal completion arrives through On Completed, and error completion through On Error. For the relationship between sent data and received data, check the specification of the server you connect to.

Cancel

Aborts the bidirectional call.

UOmniGrpcWaitForConnectedAction

Wait for gRPC Channel Connected

Waits until the Channel reaches the Ready state and can communicate. The game keeps running while it waits. If the Channel is empty or invalid, an Action cannot be created, so check validity before calling this.

ResultEvent that fires
Connection succeededOn Connected (Success = true)
Connection failed or timed outOn Timeout (false), then On Connected (false)

Normally, branch on the Success output of On Connected only. Connecting the same failure handling to both events runs it twice. Set Timeout Seconds for the connection wait to a positive value such as 5.0.

UOmniGrpcHealthCheckAction

Full Edition only

Check gRPC Health

Checks whether the server is running normally. Leaving Service Name empty checks the entire server, while entering a Service name checks only that Service. You do not need to add a .proto file for this check.

Confirm that Status in On Result is OK, then check Serving Status. If Status is an error, the server state could not be retrieved.

Public Structs

The following Structs can be configured and inspected with Blueprint’s Make and Break nodes. Set the fields you need and leave unused fields at their defaults.

FOmniGrpcChannelConfig

ItemDescription
Host / PortDestination
SecurityNo encryption, TLS, or TLS with a custom certificate
RootCertificatePemCustom root certificate
ClientCertificatePem / ClientPrivateKeyPemClient certificate and private key used with mTLS
AuthorityOverrideAdvanced setting that overrides the certificate’s destination name
ChannelArgsAdditional gRPC Channel settings
CompressionAlgorithmNone / Deflate / Gzip
MaxReceiveMessageBytes / MaxSendMessageBytesMaximum data sizes for receive and send
AccessTokenAccess token used for every call on this Channel
LoadBalancingPolicyHow to choose among multiple servers
RetryPolicy / RetryPolicyServiceNameAutomatic retry settings for temporary failures
ServiceConfigJsonAdvanced settings for users familiar with gRPC

FOmniGrpcCallOptions

ItemDescription
bWaitForReadyWait until Ready when a connection is not immediately available
AccessTokenToken used only for this call. Takes precedence over the Channel setting

FOmniGrpcMetadataEntry

ItemDescription
KeyMetadata name. Add -bin at the end for binary data
ValueValue sent as a string
BinaryValueValue sent as a byte array
bIsBinaryTrue when sending as binary

FOmniGrpcStatus

ItemDescription
CodeSuccess or the type of error
MessageDetails from the server or call handling
InitialMetadata / TrailerMetadataAdditional information from the server
InitialMetadataEntries / TrailerMetadataEntriesAdditional information that also preserves order and binary values

FOmniGrpcRetryPolicy

Configures the number and interval of automatic retries and the error types to retry. When MaxAttempts = 1, no retry is performed. See Data Types and Production Settings for details.

FOmniGrpcMethodDescriptor

Holds the information needed to call a Method, such as the Method name, the Structs sent and received, and the communication method. It is normally used automatically when you choose a Service Asset and Method.

Public Enums

Enums appear as choices in Blueprint. The main values are listed below. EOmniGrpcServingStatus is used by the Health Check (Full Edition only).

EnumValues
EOmniGrpcMethodTypeUnary / Server Streaming / Client Streaming / Bidi Streaming
EOmniGrpcChannelSecurityInsecure / TLS / TLS Custom Root
EOmniGrpcCompressionAlgorithmNone / Deflate / Gzip
EOmniGrpcChannelStateIdle / Connecting / Ready / Transient Failure / Shutdown
EOmniGrpcServingStatusUnknown / Serving / Not Serving / Service Unknown
EOmniGrpcLoadBalancingPolicyDefault / Pick First / Round Robin
EOmniGrpcStatusCodeOK, Cancelled, Unknown, Invalid Argument, Deadline Exceeded, Not Found, Already Exists, Permission Denied, Resource Exhausted, Failed Precondition, Aborted, Out of Range, Unimplemented, Internal, Unavailable, Data Loss, Unauthenticated