Skip to main content

Channels Guide

ElysChat routes messages through configurable channels, each with its own scope, permissions, and formatting.

Channel Scopes

ScopeRoutingUse Case
ProximityPlayers within ProximityRadius world units from senderLocal roleplay, overheard dialogue
GlobalAll connected playersServer announcements, OOC chat
GroupMembers of the sender's current groupParty/raid coordination
GuildPlayers sharing the same GuildIdGuild communication
DirectMessageSingle target playerPrivate whispers
GameMasterPlayers with GameMaster or Admin roleStaff coordination

Defining Channels

Channels are defined in your UERPChatConfig Data Asset:

FERPChannelDefinition LocalChannel;
LocalChannel.ChannelId = TEXT("local");
LocalChannel.DisplayName = FText::FromString("Local");
LocalChannel.Scope = ERPChannelScopeEnum::Proximity;
LocalChannel.ProximityRadius = 2000.0f; // 20 meters
LocalChannel.SlashCommands = { TEXT("local"), TEXT("l") };
LocalChannel.RequiredRole = ERPPlayerRoleEnum::Player;
LocalChannel.FormatTemplate = TEXT("[{Channel}] {Sender}: {Message}");
LocalChannel.ChannelColor = FLinearColor(0.8f, 0.8f, 0.8f);

Channel Permissions

Each channel has a RequiredRole:

RoleAccess
PlayerDefault — all players
GameMasterGMs and Admins only
AdminAdmins only

Switching Channels

Players switch channels using slash commands or programmatically:

/global Hello everyone!
/l *waves to nearby adventurers*
/w PlayerName Secret message

Or via code:

ChatComponent->SetActiveChannel(TEXT("global"));