OmniGRPC

OmniGRPC is an Unreal Engine 5 plugin for communicating with gRPC servers from Blueprint. You can build basic communication entirely in Blueprint, so you do not need to write C++ code.

When you import a .proto file that describes your communication into the Content Browser, OmniGRPC automatically generates the Structs, Enums, and Service Assets you can use in Blueprint. Connect the generated data to nodes to call the server’s features.

The “Omni” in the product name reflects our aim of making a single communication setup usable across multiple platforms. In the Full Edition, you can use the same .proto, generated assets, and Blueprint on Windows, Linux, macOS, Android, and iOS. This is OmniGRPC’s biggest feature.

What you want to do firstPage to read
Try communicating from BlueprintRun Login against the GUI server in the Quick Start
Use your own .protoCheck asset generation and Method selection in Setup
Look up how to use nodes while implementingCheck inputs, outputs, and events in the Blueprint API Reference

Editions (Free Edition and Full Edition)

OmniGRPC is available in a free Free Edition and a Full Edition that provides every feature. Both editions share the same Blueprint-only workflow, from importing a .proto file to running a Unary RPC.

The Free Edition lets you try OmniGRPC on Windows (Win64) and use Unary RPCs at production quality. The Full Edition adds Streaming RPCs (Server Streaming, Client Streaming, and Bidi Streaming), Server Reflection imports, and Health Checks, and it runs the same Blueprint on Linux, macOS, Android, and iOS in addition to Windows.

FeatureFree EditionFull Edition
Importing .proto files and generating Structs, Enums, and Service Assets○○
Unary RPC○○
TLS/mTLS encryption, access tokens, and Metadata○○
Timeouts, cancellation, automatic retries, and connection state checks○○
Server Streaming, Client Streaming, and Bidi Streaming−○
Importing with Server Reflection−○
Health Check−○
Supported platformsWindowsWindows, Linux, macOS, Android, iOS

The Free Edition is provided free of charge and is generally not covered by technical support. If you need support, please use the Full Edition.

Projects created with the Free Edition can be migrated to the Full Edition as-is. The names of generated Structs, Enums, Service Assets, and Blueprint nodes are the same in both editions, so you do not need to rewrite assets or Blueprints. Replacing the plugin with the Full Edition is all it takes to use Streaming RPCs and additional platforms.

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.

The diagram below shows the basic OmniGRPC workflow. Assets and Blueprints generated from a .proto file can be shared across every supported platform.

    flowchart TB
	  subgraph Build["1. Generate assets"]
	    Proto[".proto file"] --> Import["Import into Content Browser"]
	    Import --> Assets["Struct / Enum / Service Asset"]
	  end
	
	  subgraph Logic["2. Communicate in Blueprint"]
	    Config["Configure Channel<br/>Host / Port / TLS"] --> Call["Call gRPC node"]
	    Assets --> Request["Create Request"]
	    Request --> Call
	    Call --> Result["Process Response / Status"]
	  end
	
	  Call <-->|gRPC communication| Server["gRPC Server"]
	  Result --> Shared["Reuse the same assets and Blueprint"]
	
	  subgraph Platforms["3. Supported platforms"]
	    Shared --> Supported["Windows / Linux / macOS (Apple Silicon / Intel)<br/>Android / iOS"]
	  end

Basic terminology

TermMeaning in this documentation
.protoA file that describes the data sent to and received from the server, and the features it exposes
ServiceA group of features provided by the server
MethodA single feature within a Service, such as Login or GetUser
RequestData sent to the server
ResponseData received from the server
ChannelAn object that manages the connection to the server
RPCA call that invokes a server Method
StreamingCommunication that sends or receives data multiple times in succession

Multi-platform support represented by “Omni”

Full Edition only

Support for all five platforms is a Full Edition feature. The Free Edition supports only Windows (Win64).

With OmniGRPC (Full Edition), you do not need to rebuild your communication logic for each platform. For example, a Service Asset and Blueprint created for Windows generally work on Android and iOS as they are.

CategorySupported platforms
PCWindows (Win64), Linux, macOS
MobileAndroid, iOS
macOS CPU targetsApple Silicon (arm64), Intel (x86_64)
Shared across platforms.proto, generated assets, communication Blueprints

To use OmniGRPC on Android and iOS, enable the network features each OS requires in your project settings, such as the internet permission on Android and the network settings on iOS. After that, you can use the same Blueprints as on Windows, Linux, and macOS to select the feature to call, create request data, and process received data.

What you can do with OmniGRPC

  • Generate the assets you need from .proto files. You do not need to prepare Structs, Enums, or Service Assets by hand.
  • Use Unary RPCs. This is the most basic communication method: send data once and receive the result once.
  • Use secure communication. You can configure TLS/mTLS encryption and authentication with access tokens.
  • Build reliable communication. Timeouts, cancellation, automatic retries, and connection state checks are available.
  • Use three types of Streaming RPCs. Full Edition only You can build logic that sends or receives data continuously.
  • Run on five platforms. Full Edition only Works on Windows, Linux, macOS (Apple Silicon / Intel), Android, and iOS.
  • Reuse the same Blueprint. Full Edition only Reduce the work of writing separate communication logic for each platform.

OmniGRPC is well suited to games and simulators that connect to existing gRPC servers. You can use login, user data, cloud storage, AI services, remote device control, and more from Unreal Engine.

It is especially useful for teams that develop primarily with Blueprint. If the server team shares the .proto files, you can regenerate the assets whenever the communication fields change.

Basic workflow

  1. Install the plugin and enable OmniGRPC.
  2. Import the .proto file and generate the Blueprint assets.
  3. Set the data to send to the server in the generated Struct.
  4. Create a Channel with the destination Host and Port.
  5. Set the Service on the Call gRPC node, then choose the feature to call from Method Name in the Details panel.
  6. Handle the data on success and the error on failure.
  7. Close the Channel when you no longer need the connection. For Full Edition Streaming RPCs, close the Stream before closing the Channel.

For the shortest path, see the Quick Start. For installation and generated assets, see Setup.

How to read this documentation

GoalPage
Follow the steps to run the Login RPCQuick Start
Install the plugin and generate assetsSetup and Asset Generation
Find an implementation for your use caseUse Case Guides
Look up nodes, classes, methods, and typesBlueprint API Reference
Check type conversion, secure communication, and retriesData Types and Production Settings

Supported environments

ItemSupport
Unreal Engine5.6 / 5.7 / 5.8
WindowsWin64
Linuxx86-64 (Full Edition)
macOSApple Silicon (arm64), Intel Mac (x86_64) (Full Edition)
MobileAndroid / iOS (Full Edition)
RPCUnary / Server Streaming / Client Streaming / Bidi Streaming

The Free Edition supports only Unary RPCs and only Windows (Win64). Streaming RPCs and support for Linux, macOS, Android, and iOS are Full Edition features.

Choose the Fab package that matches the Unreal Engine version you use.

Implementing in Blueprint

For normal use, you do not need to generate C++ code for gRPC or add anything to your game’s C++ modules. You can import the .proto file, connect, send, receive, and handle errors entirely in Blueprint.

The plugin uses the official gRPC library internally. Its Blueprint-friendly interface means you do not need to know the details of gRPC internals to use it.

Current limitations

  • Because of the numeric range that Blueprint can handle, large uint64/fixed64 values (2^63 and above) cannot be stored.
  • Enum fields in generated Structs are stored as Bytes, so their value range is 0 to 255.
  • Some special types, such as google.protobuf.Any, do not have Blueprint-specific conversions.
  • For Client Streaming and Bidi Streaming, save the return value of the start node to a variable, then use Send Message and Close Send.
  • Insecure connections are not encrypted. Use TLS in production.

See Data Types and Production Settings for details.

Distribution and licensing

OmniGRPC is distributed on Fab. A free Free Edition and a full-featured Full Edition are available. Choose the edition that fits your purpose.

This product is provided under the Epic Games license terms that apply when you purchase or obtain it on Fab. For the scope of use and redistribution conditions, see the product page on Fab and the latest license terms provided by Epic Games.

The gRPC, protobuf, BoringSSL, and other components included in the plugin are covered by their respective licenses. The relevant license documents are included in the Fab distribution package.