Skip to main content

Write Party Data

Last updated on

Write Party Data is an exclusive feature for the game server. It's possible that multiple servers can write to the same party at the same time. To avoid this, our SDK has a timestamp in the backend to ensure that the latest write data will never be overwritten with older data.

This function you can modify from Previous Data that we called oldPartyData that you can get from the lambda or even you can input your own new Party Data.

FString PartyId = FString("SomePartyId");

FRegistry::ServerLobby.WritePartyStorage(PartyId, [](FJsonObjectWrapper OldPartyData)
{
// You can choose either to create new PartyDataStorage or modified from OldPartyDataStorage
/*FJsonObjectWrapper NewPartyData;
TSharedPtr<FJsonObject> MyNewJsonValue;
MyNewJsonValue->SetStringField(FString("MyNewFieldName"), FString("MyNewStringValue"));
NewPartyData.JsonObject->SetObjectField(FString("NewField"), MyNewJsonValue);
return NewPartyData;*/

FJsonObjectWrapper ModifiedPartyData = OldPartyData;
TSharedPtr<FJsonObject> MyNewJsonValue;
MyNewJsonValue->SetStringField(FString("MyNewFieldName"), FString("MyNewStringValue"));
ModifiedPartyData.JsonObject->SetObjectField(FString("NewField"), MyNewJsonValue);
return OldPartyData;
}, THandler<FAccelByteModelsPartyDataNotif>::CreateLambda([](const FAccelByteModelsPartyDataNotif& Result)
{
// Do something if WritePartyStorage has been successful
}), FErrorHandler::CreateLambda([](int32 ErrorCode, const FString ErrorMessage)
{
// Do something if WritePartyStorage has an error
UE_LOG(LogTemp, Log, TEXT("Error WritePartyStorage, Error Code: %d Error Message: %s"), ErrorCode, *ErrorMessage);
}));