ObjectDeliverer
ObjectDeliverer is a data transmission / reception library for Unreal Engine (C ++, Blueprint).
Install / Use
/learn @AyumaxSoft/ObjectDelivererREADME
ObjectDeliverer
⚠️ Important Notice: Repository Archived
This repository has been archived and is now read-only.
Current status:
- This open-source version is no longer actively maintained
- The repository remains publicly accessible in read-only mode
- You can continue to fork, clone, and use the code under the MIT License terms
For Continued Support and Updates
If you wish to continue receiving updates and support, the commercial version is available on the Unreal Engine Marketplace:
The commercial version includes:
- Ongoing development and updates
- Official support
- Additional features
For Current Users
If you plan to continue using this open-source version:
- Please fork or clone this repository for your own use
- All existing code remains available under the MIT License
- You are free to maintain your own fork
Thank you for your support and contributions to this project.
ObjectDeliverer is a flexible data communication library for Unreal Engine. It's available for both C++ and Blueprint.
Table of Contents
- Overview
- Supported UE Versions
- How to Obtain
- Installation Guide
- Quick Start
- Feature Details
- Usage Examples
- Detailed Documentation
- License
- Contributing
Overview
ObjectDeliverer excels as a data communication library with these key advantages:
- Easy Protocol Switching - Seamlessly switch between TCP/IP, UDP, shared memory, and other protocols
- Flexible Data Division Rules - Support for fixed size, header+body, terminal symbol, and more
- Various Serialization Methods - Handle byte arrays, UTF-8 strings, JSON objects, and more
- C++ and Blueprint Support - Use your preferred development method
It simplifies network communication logic, allowing you to focus on application development.
Supported UE Versions
Note: This plugin is updated and maintained only for the latest 3 versions of Unreal Engine.
| UE Version | Support Status | Branch Name | |------------|---------------|------------| | UE 5.7 | ✅ Supported | UE5.7 | | UE 5.6 | ✅ Supported | UE5.6 | | UE 5.5 | ✅ Supported | UE5.5 | | UE 5.4 | ❌ End of Support (v1.8.0) | UE5.4 | | UE 5.3 | ❌ End of Support (v1.6.1) | UE5.3 | | Others | 🔄 Check docs | master |
Branch Structure
master (latest UE version) ──┐
├─ UE5.5 (UE5.5 specific)
├─ UE5.4 (UE5.4 specific)
└─ UE5.3 (UE5.3 specific)
- master branch: Always compatible with the latest Unreal Engine version
- UEX.X branches: Stable versions for specific UE versions
- Note: Older version branches may not include the latest features
How to Obtain
UE Marketplace
https://www.fab.com/ja/listings/b6ffd7d7-80da-483f-a7fa-09cb46b72651
If you acquire this plugin through the Marketplace, you will be charged the specified fee.
GitHub
You can clone this repository and use it for free.
Installation Guide
From Marketplace
- Purchase and download the plugin from the Marketplace
- Add it to your project from the "Library" section in the UE Launcher
- Open your project and enable ObjectDeliverer from "Edit" → "Plugins"
From GitHub
- Clone this repository:
git clone https://github.com/ayumax/ObjectDeliverer.git - Copy the
Pluginsdirectory from the cloned repository to your project folder - Build the plugin (requires C++ build environment)
- Open your project and enable ObjectDeliverer from "Edit" → "Plugins"
Compatibility Check
Choose the appropriate branch based on your UE version:
# Example for UE5.4
git checkout UE5.4
Quick Start
Basic Usage Steps
- Create an ObjectDelivererManager
- Set up event handlers (connect, disconnect, data receive)
- Configure communication protocol and packet rule, then start

Feature Details
Communication Protocols
The following protocols are available by default (you can also add your own):
- TCP/IP Server - Connects to multiple clients
- TCP/IP Client - Connects to a server
- WebSocket Client - Connects to a WebSocket server
- UDP (Sender) - Sends UDP data
- UDP (Receiver) - Receives UDP data
- Shared Memory - Process-to-process communication in Windows
- File Writer - Saves data to a file
- File Reader - Reads data from a file
Data Division Rules
Rules for appropriate packet division and reconstruction of received data:
FixedSize
Example) When using a fixed size of 1024 bytes

Header(BodySize) + Body
Example) When the size area is 4 bytes

Split by terminal symbol
Example) When 0x00 is the end

No division
Uses the received buffer as-is without any packet splitting or combining operations.
Serialization Methods
- Byte Array - Raw binary data
- UTF-8 String - Text data
- Object (JSON) - Structured data
Usage Examples
C++ Example
void UMyClass::Start()
{
auto deliverer = UObjectDelivererManager::CreateObjectDelivererManager();
// Set up event handlers
deliverer->Connected.AddDynamic(this, &UMyClass::OnConnect);
deliverer->Disconnected.AddDynamic(this, &UMyClass::OnDisConnect);
deliverer->ReceiveData.AddDynamic(this, &UMyClass::OnReceive);
// Start communication
// Protocol: TCP/IP Server
// Data division rule: Header(Size) + Body
// Serialization method: Byte array
deliverer->Start(UProtocolFactory::CreateProtocolTcpIpServer(9099),
UPacketRuleFactory::CreatePacketRuleSizeBody());
}
void UMyClass::OnConnect(UObjectDelivererProtocol* ClientSocket)
{
// Send data
TArray<uint8> buffer;
deliverer->Send(buffer);
}
void UMyClass::OnDisConnect(UObjectDelivererProtocol* ClientSocket)
{
// Handle disconnection
UE_LOG(LogTemp, Log, TEXT("closed"));
}
void UMyClass::OnReceive(UObjectDelivererProtocol* ClientSocket, const TArray<uint8>& Buffer)
{
// Handle received data
}
Blueprint Example

Detailed Documentation
For detailed usage of each feature, please refer to the Wiki:
License
- This plugin is provided under the MIT License
- However, if you download and use it from the Epic Games Marketplace, the Epic Games license terms will apply
Contributing
We welcome contributions from everyone who wants to improve ObjectDeliverer!
Contribution Process
- Fork the repository
- Create your feature branch from the
masterbranch - Make your changes
- Submit a pull request targeting the
masterbranch
Contribution Guidelines
- All pull requests should be directed to the
masterbranch - For major changes, please open an issue first to discuss what you would like to change(English or Japanese)
- Follow the code style of the existing codebase
- Add or update tests when possible
Testing
ObjectDeliverer includes automated tests for WebSocket functionality. To run tests with a real WebSocket server:
Environment Variables for Testing
| Variable | Description | Example |
|----------|-------------|---------|
| OBJECTDELIVERER_TEST_WS_URL | WebSocket server URL for testing | wss://your-websocket-server.com |
| OBJECTDELIVERER_TEST_WS_TOKEN | Authentication token for WebSocket server | your-secure-token |
Running Tests Locally
-
Without WebSocket server (default):
# Tests will use ws://localhost:8080 as mock server /path/to/UnrealEditor-Cmd YourProject.uproject -ExecCmds="Automation RunTests ObjectDeliverer.ProtocolWebSocket; quit" -
With WebSocket server:
export OBJECTDELIVERER_TEST_WS_URL="wss://your-server.com" export OBJECTDELIVERER_TEST_WS_TOKEN="your-token" /path/to/UnrealEditor-Cmd YourProject.uproject -ExecCmds="Automation RunTests ObjectDeliverer.ProtocolWebSocket; quit"
CI/CD Configuration
For GitHub Actions or other CI systems, set the environment variables as secrets:
env:
OBJECTDELIVERER_TEST_WS_URL: ${{ secrets.WEBSOCKET_TEST_URL }}
OBJECTDELIVERER_TEST_WS_TOKEN: ${{ secrets.WEBSOCKET_TEST_TOKEN }}
UE Version Support
When adding new features, please try to make them work across multiple UE versions when possible. If a feature is specific to a particular UE version, please note this clearly.
We appreciate all contributions - bug fixes, feature additions, documentation improvements, suggestions, and more!
