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
| Type | What it does | Edition |
|---|---|---|
UOmniGrpcLibrary | Configure connections, create Channels, and start Unary calls | Free / Full Edition |
UOmniGrpcStreamingLibrary | Start Streaming calls | Full Edition only |
UOmniGrpcChannel | Hold the destination, inspect the connection state, and close the connection | Free / Full Edition |
UOmniGrpcServiceAsset | Hold the list of features that can be called on the server | Free / Full Edition |
| Unary Action | Receive call results and end calls | Free / Full Edition |
| Streaming Action | Receive results, send data, and end calls | Full Edition only |
| Wait Action | Wait until the Channel can connect | Free / Full Edition |
| Health Action | Check whether the server is available | Full Edition only |
| Configuration Structs/Enums | Configure connections, authentication, timeouts, and more | Free / 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 event | Description |
|---|---|
| Channel | A valid UOmniGrpcChannel |
| Service | The generated Service Asset |
| Request | Data sent to the server |
| Metadata | Additional communication information, only when needed |
| Timeout | Seconds to wait for completion. 0 or below means no time limit |
| Options | Connection waiting and a Token used only for this call |
| On Success | Receives the Response on success |
| On Error | Receives error information on failure |
| Action | UOmniGrpcCallUnaryAction. Save to a variable to cancel the call |
Call gRPC Server Streaming
Full Edition onlyStarts a call that sends data once and receives results from the server multiple times. This is suitable for progress displays and continuous list reception.
| Event | Description |
|---|---|
| On Message Received | Called each time data is received |
| On Completed | Called once when the call completes normally |
| On Error | Called once when the call ends with an error |
| Action | UOmniGrpcCallServerStreamingAction. Save to a variable to cancel |
Call gRPC Client Streaming
Full Edition onlyStarts 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 onlyStarts 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
| Node | Request at start | Additional sends | Receive event | Normal completion | Failure |
|---|---|---|---|---|---|
| Unary | 1 | None | On Success | On Success | On Error |
| Server Streaming | 1 | None | On Message Received | On Completed | On Error |
| Client Streaming | None | Send Message on Action | On Message Received | On Completed | On Error |
| Bidi Streaming | None | Send Message on Action | On Message Received | On Completed | On 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 onlyOn 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 onlySend 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 onlySend 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.
| Result | Event that fires |
|---|---|
| Connection succeeded | On Connected (Success = true) |
| Connection failed or timed out | On 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 onlyCheck 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
| Item | Description |
|---|---|
| Host / Port | Destination |
| Security | No encryption, TLS, or TLS with a custom certificate |
| RootCertificatePem | Custom root certificate |
| ClientCertificatePem / ClientPrivateKeyPem | Client certificate and private key used with mTLS |
| AuthorityOverride | Advanced setting that overrides the certificate’s destination name |
| ChannelArgs | Additional gRPC Channel settings |
| CompressionAlgorithm | None / Deflate / Gzip |
| MaxReceiveMessageBytes / MaxSendMessageBytes | Maximum data sizes for receive and send |
| AccessToken | Access token used for every call on this Channel |
| LoadBalancingPolicy | How to choose among multiple servers |
| RetryPolicy / RetryPolicyServiceName | Automatic retry settings for temporary failures |
| ServiceConfigJson | Advanced settings for users familiar with gRPC |
FOmniGrpcCallOptions
| Item | Description |
|---|---|
| bWaitForReady | Wait until Ready when a connection is not immediately available |
| AccessToken | Token used only for this call. Takes precedence over the Channel setting |
FOmniGrpcMetadataEntry
| Item | Description |
|---|---|
| Key | Metadata name. Add -bin at the end for binary data |
| Value | Value sent as a string |
| BinaryValue | Value sent as a byte array |
| bIsBinary | True when sending as binary |
FOmniGrpcStatus
| Item | Description |
|---|---|
| Code | Success or the type of error |
| Message | Details from the server or call handling |
| InitialMetadata / TrailerMetadata | Additional information from the server |
| InitialMetadataEntries / TrailerMetadataEntries | Additional 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).
| Enum | Values |
|---|---|
EOmniGrpcMethodType | Unary / Server Streaming / Client Streaming / Bidi Streaming |
EOmniGrpcChannelSecurity | Insecure / TLS / TLS Custom Root |
EOmniGrpcCompressionAlgorithm | None / Deflate / Gzip |
EOmniGrpcChannelState | Idle / Connecting / Ready / Transient Failure / Shutdown |
EOmniGrpcServingStatus | Unknown / Serving / Not Serving / Service Unknown |
EOmniGrpcLoadBalancingPolicy | Default / Pick First / Round Robin |
EOmniGrpcStatusCode | OK, 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 |