Evidence management
Important: When using the Vivox Channel Cache in the Moderation Unreal Module, all Vivox AccountIDs and ChannelIDs must be constructed with the Environment ID of the Unity Cloud Project passed into the unityEnvironmentID param. The following is an example of the format to follow:
AccountId(<Issuer>, <Name>, <Domain>,TOptional<FString>(), TOptional<TArray<FString>>(), <UnityEnvironmentId>)
ChannelId(<Issuer>, <Name>, <Domain>, ChannelType::NonPositional, Channel3DProperties(), <UnityEnvironmentId>);When using the Vivox Unreal Module, the SDK automatically includes the list of channels the reporter and reported players are part of. As well as the list of extra players who were part of those channels.
This information is used to add details to the evidence in the report.
To begin the Vivox Channel Cache, pass the AccountId of the current LoginSession to UModerationSubsystem::BeginVivoxCache(AccountId accountIdToCache).
ModerationSubsystem->BeginVivoxCache(UserAccountId);Note: If the AccountId is not included to identify the LoginSession, the Moderation Subsystem will search for an active LoginSession to cache, prioritizing those that are currently LoggedIn.
To better control the report context, you can alter the list of channels and players included in the report before it's sent.
FReport report = ModerationClient->GetReport(ReportedPlayerUASId, reportReason);
for (const TPair<ChannelId, TArray<AccountId>>& pair : report.VivoxChannels) {
//Perform logic on a per-channel basis here, with the Value of each Key being the array of AccountId's of the channel Participants over the period of the cache.
}