Social: Friends, Presence & Party

UCrimsonOnlineFriendsService

Wraps IOnlineFriends. Reads and refreshes the platform friend list; queries presence; sends and responds to friend requests.

FunctionDescription
ReadFriendsList(LocalPlayerIndex, ListName, Delegate)Refreshes the cached friend list from the platform
GetFriendsList(LocalPlayerIndex, ListName)Returns TArray<FCrimsonFriendInfo> from the cache
GetFriend(LocalPlayerIndex, FriendId, ListName)Returns FCrimsonFriendInfo for a specific friend
IsFriend(LocalPlayerIndex, UniqueId, ListName)Returns bool
SendInvite(LocalPlayerIndex, FriendId, ListName, Delegate)Sends a friend request
AcceptInvite(LocalPlayerIndex, FriendId, ListName, Delegate)Accepts an incoming friend request
RejectInvite(LocalPlayerIndex, FriendId, ListName, Delegate)Rejects an incoming friend request
DeleteFriend(LocalPlayerIndex, FriendId, ListName, Delegate)Removes a friend
QueryRecentPlayers(LocalPlayerIndex, Namespace, Delegate)Queries the platform recent-players list
OnFriendsChangeDelegate broadcast when the friend list changes
OnInviteReceivedDelegate: LocalPlayerIndex + SenderId

FCrimsonFriendInfo

FieldTypeDescription
UniqueIdTSharedPtr<const FUniqueNetId>Platform ID
DisplayNameFStringLocalised display name
PresenceECrimsonFriendPresenceOnline / Playing / Away / Offline
RichPresenceTextFStringCurrent game / lobby status string
bIsPlayingThisGameboolSame game title

UCrimsonOnlinePresenceService

Wraps IOnlinePresence. Sets and queries rich presence strings for local and remote players.

FunctionDescription
SetPresence(LocalPlayerIndex, PresenceData, Delegate)Publishes a presence string to the platform
QueryPresence(LocalPlayerIndex, UserId, Delegate)Fetches presence for a remote player
GetCachedPresence(LocalPlayerIndex, UserId)Returns the last-fetched presence string; empty if not cached
OnPresenceReceivedDelegate: LocalPlayerIndex + UserId

UCrimsonOnlinePartyService

Wraps IOnlineParty. Manages party creation, membership, leader transfer, and kick.

FunctionDescription
CreateParty(LocalPlayerIndex, PartyConfig, Delegate)Creates a new party for the local player
JoinParty(LocalPlayerIndex, PartyId, Delegate)Joins an existing party by ID
LeaveParty(LocalPlayerIndex, PartyId, Delegate)Leaves the current party
KickMember(LocalPlayerIndex, PartyId, MemberId, Delegate)Removes a member (leader only)
TransferLeadership(LocalPlayerIndex, PartyId, NewLeaderId, Delegate)Transfers party leader role
InviteToParty(LocalPlayerIndex, PartyId, RecipientId, Delegate)Sends a party invite
GetPartyMembers(LocalPlayerIndex, PartyId)Returns TArray<FCrimsonPartyMemberInfo>
GetPartyLeader(LocalPlayerIndex, PartyId)Returns FCrimsonPartyMemberInfo for the current leader
OnPartyMemberJoinedDelegate: PartyId + MemberId
OnPartyMemberLeftDelegate: PartyId + MemberId + Reason
OnPartyInviteReceivedDelegate: LocalPlayerIndex + SenderId + PartyId
OnPartyLeaderChangedDelegate: PartyId + NewLeaderId