Social Features
UERPSocialComponent manages per-player social state: roles, friends, blocklists, guilds, and groups.
Player Roles
| Role | Description |
|---|---|
Player | Default role |
GameMaster | Access to GM channels and commands |
Admin | Full 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();