Skip to main content

Social Features

UERPSocialComponent manages per-player social state: roles, friends, blocklists, guilds, and groups.

Player Roles

RoleDescription
PlayerDefault role
GameMasterAccess to GM channels and commands
AdminFull access
SocialComponent->Role = ERPPlayerRoleEnum::GameMaster;

Friends & Blocklist

// Friends
SocialComponent->AddFriend(TEXT("player-guid-123"));
bool bIsFriend = SocialComponent->IsFriend(TEXT("player-guid-123"));
SocialComponent->SetFriendOnlineStatus(TEXT("player-guid-123"), true);

// Blocking — blocked players' messages are filtered server-side
SocialComponent->BlockPlayer(TEXT("player-guid-456"));
bool bBlocked = SocialComponent->IsBlocked(TEXT("player-guid-456"));

Groups

Groups are runtime entities managed by the subsystem:

UERPChatSubsystem* ChatSub = GetGameInstance()->GetSubsystem<UERPChatSubsystem>();

// Create a group
FString GroupId = ChatSub->CreateGroup(TEXT("Dungeon Party"));

// Join/leave
SocialComponent->JoinGroup(GroupId);
SocialComponent->LeaveGroup();

// Query
TArray<FString> Members = ChatSub->GetGroupInfo(GroupId);

Guilds

Guilds are persistent identifiers (managed externally):

SocialComponent->JoinGuild(TEXT("Silver Dawn"));
FString GuildId = SocialComponent->GetGuildId();
SocialComponent->LeaveGuild();