---
source_url: https://www.pubnub.com/docs/sdks/unreal/entities/channel
title: Channel Entity
updated_at: 2026-06-16T12:52:55.410Z
sdk_name: PubNub Unreal SDK
sdk_version: 2.0.5
---

> Documentation Index
> For a curated overview of PubNub documentation, see: https://www.pubnub.com/docs/llms.txt
> For the full list of all documentation pages, see: https://www.pubnub.com/docs/llms-full.txt


# Channel Entity

PubNub Unreal SDK, use the latest version: 2.0.5

As of version 1.1.0, the Unreal Engine software development kit (SDK) supports entities. Entities are SDK objects that bundle operations for a specific resource type and simplify working with PubNub application programming interfaces (APIs).

Use entities to perform common tasks without manually wiring requests. Some PubNub APIs are exposed via entities. Other operations are available on `UPubnubClient` (recommended) or on the `UPubnubSubsystem` object; see [Configuration](https://www.pubnub.com/docs/sdks/unreal/api-reference/configuration) and the API reference for details.

## Create a Channel

Use this factory method to return a local `Channel` entity for a single channel. A Channel entity centralizes common operations—such as subscribing and publishing—so you can prototype and build faster.

```cpp
UPubnubChannelEntity* CreateChannelEntity(FString Channel);
```

| Parameter | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| Channel | FString | Yes |  | Name of the [channel](https://www.pubnub.com/docs/general/channels/overview) for which to create the entity. |

#### Sample code

:::tip Reference code
This example is a self-contained code snippet ready to be run. It includes necessary imports and executes methods with console logging. Use it as a reference when working with other examples in this document.
:::

###### C++

```cpp
void ASample_ChannelEntity::CreateChannelEntitySample()
{
	// snippet.hide
	UPubnubClient* PubnubClient = GetPubnubClient();
	// snippet.show
	
	//Assumes PubnubClient is created and UserID is set

	// Create a channel entity for the channel you want to work with
	FString ChannelName = TEXT("game_lobby");
	UPubnubChannelEntity* ChannelEntity = PubnubClient->CreateChannelEntity(ChannelName);
}
```

###### Blueprint

## Available operations

The `Channel` entity provides operations for PubNub [channels](https://www.pubnub.com/docs/general/channels/overview).

| Operation (click for more information) | Description |
| --- | --- |
| [CreateSubscription(SubscribeSettings)](https://www.pubnub.com/docs/sdks/unreal/api-reference/publish-and-subscribe#subscribe) | Returns a local channel [subscription object](https://www.pubnub.com/docs/general/channels/subscribe#subscription-types) with [optional parameters](https://www.pubnub.com/docs/general/channels/subscribe#subscription-options). You can then subscribe to receive real-time updates for that channel. |
| [PublishMessage(Message, OnPublishMessageResponse, PublishSettings)](https://www.pubnub.com/docs/sdks/unreal/api-reference/publish-and-subscribe#publish) | Sends a message to all channel subscribers. |
| [Signal(Message, OnSignalResponse, SignalSettings)](https://www.pubnub.com/docs/sdks/unreal/api-reference/publish-and-subscribe#signal) | Sends a signal to all subscribers of the channel. |
| [ListUsersFromChannel(ListUsersFromChannelResponse, ListUsersFromChannelSettings)](https://www.pubnub.com/docs/sdks/unreal/api-reference/presence#here-now) | Lists users currently present on the channel. Requires the Presence add-on. |

### Publish a simple message

Create a `Channel` entity and publish a simple text message to it using `PublishMessageAsync`.

#### C++

```cpp
// ACTION REQUIRED: Replace ASample_ChannelEntity with name of your Actor class
void ASample_ChannelEntity::PublishSimpleSample()
{
	// snippet.hide
	UPubnubClient* PubnubClient = GetPubnubClient();
	// snippet.show
	
	//Assumes PubnubClient is created and UserID is set

	// Create a channel entity for the channel you want to work with
	FString ChannelName = TEXT("global_chat");
	UPubnubChannelEntity* ChannelEntity = PubnubClient->CreateChannelEntity(ChannelName);

	// Publish simple text message using the channel entity
	FString SimpleMessage = TEXT("Ready to start the mission!");
	ChannelEntity->PublishMessageAsync(SimpleMessage);
}
```

#### Blueprint

## Terms in this document

* **Channel** - A pathway for sending and receiving messages between devices, created automatically when you first use it, that can handle any number of users and messages for different communication needs, like 1-1 text chats, group conversations, and other data streaming.
* **Channel pattern** - A way to group and analyze channel data to track performance metrics like message counts and user engagement over time with PubNub Insights.
* **Signal** - A non-persistent message limited to 64 bytes designed for high-volume usecases where the the most recent data is relevant, like GPS location updates.