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 first | Page to read |
|---|---|
| Try communicating from Blueprint | Run Login against the GUI server in the Quick Start |
Use your own .proto | Check asset generation and Method selection in Setup |
| Look up how to use nodes while implementing | Check 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.
| Feature | Free Edition | Full 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 platforms | Windows | Windows, 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
| Term | Meaning in this documentation |
|---|---|
.proto | A file that describes the data sent to and received from the server, and the features it exposes |
| Service | A group of features provided by the server |
| Method | A single feature within a Service, such as Login or GetUser |
| Request | Data sent to the server |
| Response | Data received from the server |
| Channel | An object that manages the connection to the server |
| RPC | A call that invokes a server Method |
| Streaming | Communication that sends or receives data multiple times in succession |
Multi-platform support represented by “Omni”
Full Edition onlySupport 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.
| Category | Supported platforms |
|---|---|
| PC | Windows (Win64), Linux, macOS |
| Mobile | Android, iOS |
| macOS CPU targets | Apple 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
.protofiles. 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.
Recommended for projects like these
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
- Install the plugin and enable OmniGRPC.
- Import the
.protofile and generate the Blueprint assets. - Set the data to send to the server in the generated Struct.
- Create a Channel with the destination Host and Port.
- Set the Service on the Call gRPC node, then choose the feature to call from
Method Namein the Details panel. - Handle the data on success and the error on failure.
- 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
| Goal | Page |
|---|---|
| Follow the steps to run the Login RPC | Quick Start |
| Install the plugin and generate assets | Setup and Asset Generation |
| Find an implementation for your use case | Use Case Guides |
| Look up nodes, classes, methods, and types | Blueprint API Reference |
| Check type conversion, secure communication, and retries | Data Types and Production Settings |
Supported environments
| Item | Support |
|---|---|
| Unreal Engine | 5.6 / 5.7 / 5.8 |
| Windows | Win64 |
| Linux | x86-64 (Full Edition) |
| macOS | Apple Silicon (arm64), Intel Mac (x86_64) (Full Edition) |
| Mobile | Android / iOS (Full Edition) |
| RPC | Unary / 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/fixed64values (2^63and above) cannot be stored. - Enum fields in generated Structs are stored as Bytes, so their value range is
0to255. - 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 MessageandClose Send. Insecureconnections 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.