API Reference of GS2-Ranking2 SDK for Game Engine

Model

EzGlobalRankingData

Global Ranking

TypeRequireDefaultLimitationDescription
rankingNamestring~ 128 charsRanking Name
seasonlong~ 9223372036854775805Season
userIdstring~ 128 charsUser Id
indexint~ 2147483646Index of Ranking
rankint~ 2147483646Rank of Ranking
scorelong~ 9223372036854775805Score
metadatastring~ 512 charsmetadata
updatedAtlongNowDatetime of last update (Unix time unit:milliseconds)

EzGlobalRankingModel

Global Ranking Model

The global ranking is a model that allows you to create a ranking that targets all players. You can display the top 1000 rankings.

By associating it with the repeat event of GS2-Schedule, you can reset the ranking according to the number of repetitions.

TypeRequireDefaultLimitationDescription
globalRankingModelIdstring~ 1024 charsGlobal Ranking GRN
namestring~ 128 charsRanking Name
metadatastring~ 1024 charsmetadata
rankingRewardsList<EzRankingReward>{entryPeriodEventId} != null~ 100 itemsList of ranking rewards
entryPeriodEventIdstring~ 1024 charsGS2-Schedule Event GRN
accessPeriodEventIdstring~ 1024 charsGS2-Schedule Event GRN

EzGlobalRankingReceivedReward

Global Ranking Reward Received History

TypeRequireDefaultLimitationDescription
rankingNamestring~ 128 charsRanking Name
seasonlong~ 9223372036854775805Season
userIdstring~ 128 charsUser Id
receivedAtlongNowDatetime of creation (Unix time unit:milliseconds)

EzGlobalRankingScore

Global Ranking Score

TypeRequireDefaultLimitationDescription
rankingNamestring~ 128 charsRanking Name
seasonlong~ 9223372036854775805Season
userIdstring~ 128 charsUser Id
scorelong~ 9223372036854775805Score
metadatastring~ 512 charsmetadata
updatedAtlongNowDatetime of last update (Unix time unit:milliseconds)

EzClusterRankingData

Cluster Ranking

TypeRequireDefaultLimitationDescription
rankingNamestring~ 128 charsRanking Name
clusterNamestring~ 1024 charsCluster Name
seasonlong~ 9223372036854775805Season
userIdstring~ 128 charsUser Id
indexint~ 2147483646Index of Ranking
rankint~ 2147483646Rank of Ranking
scorelong~ 9223372036854775805Score
metadatastring~ 512 charsmetadata
updatedAtlongNowDatetime of last update (Unix time unit:milliseconds)

EzClusterRankingModel

Cluster Ranking Model

The cluster ranking mode is a model for realizing rankings targeting players in guilds or gatherings. You can display the top 1000 rankings.

By associating it with the repeat event of GS2-Schedule, you can reset the ranking according to the number of repetitions.

TypeRequireDefaultLimitationDescription
clusterRankingModelIdstring~ 1024 charsCluster Ranking GRN
namestring~ 128 charsRanking Name
metadatastring~ 1024 charsmetadata
clusterTypeenum {
    “Raw”,
    “Gs2Guild::Guild”,
    “Gs2Matchmaking::SeasonGathering”
}
~ 128 charsCluster Type
rankingRewardsList<EzRankingReward>{entryPeriodEventId} != null~ 100 itemsList of ranking rewards
entryPeriodEventIdstring~ 1024 charsGS2-Schedule Event GRN
accessPeriodEventIdstring~ 1024 charsGS2-Schedule Event GRN

Enumeration type definition to specify as clusterType

Enumerator String DefinitionDescription
RawNo verification
Gs2Guild::GuildGS2-Guild Guild
Gs2Matchmaking::SeasonGatheringGS2-Matchmaking Season Gathering

EzClusterRankingReceivedReward

Cluster Ranking Reward Received History

TypeRequireDefaultLimitationDescription
rankingNamestring~ 128 charsRanking Name
clusterNamestring~ 1024 charsCluster Name
seasonlong~ 9223372036854775805Season
userIdstring~ 128 charsUser Id
receivedAtlongNowDatetime of creation (Unix time unit:milliseconds)

EzClusterRankingScore

Cluster Ranking Score

TypeRequireDefaultLimitationDescription
rankingNamestring~ 128 charsRanking Name
clusterNamestring~ 1024 charsCluster Name
seasonlong~ 9223372036854775805Season
userIdstring~ 128 charsUser Id
scorelong~ 9223372036854775805Score
metadatastring~ 512 charsmetadata
updatedAtlongNowDatetime of last update (Unix time unit:milliseconds)

EzSubscribeRankingData

Subscribe Ranking

TypeRequireDefaultLimitationDescription
rankingNamestring~ 128 charsRanking Name
seasonlong~ 9223372036854775805Season
userIdstring~ 128 charsUser Id
indexint~ 2147483646Index of Ranking
rankint~ 2147483646Rank of Ranking
scorelong~ 9223372036854775805Score
metadatastring~ 512 charsmetadata
updatedAtlongNowDatetime of last update (Unix time unit:milliseconds)

EzSubscribeRankingModel

Subscribe Ranking Model

A model that aggregates the scores of other players who have subscribed and creates a ranking.

TypeRequireDefaultLimitationDescription
subscribeRankingModelIdstring~ 1024 charsSubscribe Ranking GRN
namestring~ 128 charsRanking Name
metadatastring~ 1024 charsmetadata
entryPeriodEventIdstring~ 1024 charsGS2-Schedule Event GRN
accessPeriodEventIdstring~ 1024 charsGS2-Schedule Event GRN

EzSubscribeRankingScore

Subscribe Ranking Score

TypeRequireDefaultLimitationDescription
rankingNamestring~ 128 charsRanking Name
seasonlong~ 9223372036854775805Season
userIdstring~ 128 charsUser Id
scorelong~ 9223372036854775805Score
metadatastring~ 512 charsmetadata
updatedAtlongNowDatetime of last update (Unix time unit:milliseconds)

EzRankingReward

Ranking Reward Model

Set the rewards that can be received during the reference period when the score registration period is set in the ranking. If the repeat setting is enabled, the most recently ended period ranking will be the target for receiving rewards.

TypeRequireDefaultLimitationDescription
thresholdRankint1 ~ 1001Rank threshold
metadatastring~ 1024 charsmetadata
acquireActionsList<EzAcquireAction>[]~ 100 itemsList of actions to be performed when rewards are received

EzAcquireAction

Acquire Action

TypeRequireDefaultLimitationDescription
actionenum {
"Gs2AdReward:AcquirePointByUserId",
"Gs2Dictionary:AddEntriesByUserId",
"Gs2Enchant:ReDrawBalanceParameterStatusByUserId",
"Gs2Enchant:SetBalanceParameterStatusByUserId",
"Gs2Enchant:ReDrawRarityParameterStatusByUserId",
"Gs2Enchant:AddRarityParameterStatusByUserId",
"Gs2Enchant:SetRarityParameterStatusByUserId",
"Gs2Enhance:DirectEnhanceByUserId",
"Gs2Enhance:UnleashByUserId",
"Gs2Enhance:CreateProgressByUserId",
"Gs2Exchange:ExchangeByUserId",
"Gs2Exchange:IncrementalExchangeByUserId",
"Gs2Exchange:CreateAwaitByUserId",
"Gs2Exchange:AcquireForceByUserId",
"Gs2Exchange:SkipByUserId",
"Gs2Experience:AddExperienceByUserId",
"Gs2Experience:SetExperienceByUserId",
"Gs2Experience:AddRankCapByUserId",
"Gs2Experience:SetRankCapByUserId",
"Gs2Experience:MultiplyAcquireActionsByUserId",
"Gs2Formation:AddMoldCapacityByUserId",
"Gs2Formation:SetMoldCapacityByUserId",
"Gs2Formation:AcquireActionsToFormProperties",
"Gs2Formation:SetFormByUserId",
"Gs2Formation:AcquireActionsToPropertyFormProperties",
"Gs2Friend:UpdateProfileByUserId",
"Gs2Grade:AddGradeByUserId",
"Gs2Grade:ApplyRankCapByUserId",
"Gs2Grade:MultiplyAcquireActionsByUserId",
"Gs2Guild:IncreaseMaximumCurrentMaximumMemberCountByGuildName",
"Gs2Guild:SetMaximumCurrentMaximumMemberCountByGuildName",
"Gs2Idle:IncreaseMaximumIdleMinutesByUserId",
"Gs2Idle:SetMaximumIdleMinutesByUserId",
"Gs2Idle:ReceiveByUserId",
"Gs2Inbox:SendMessageByUserId",
"Gs2Inventory:AddCapacityByUserId",
"Gs2Inventory:SetCapacityByUserId",
"Gs2Inventory:AcquireItemSetByUserId",
"Gs2Inventory:AcquireItemSetWithGradeByUserId",
"Gs2Inventory:AddReferenceOfByUserId",
"Gs2Inventory:DeleteReferenceOfByUserId",
"Gs2Inventory:AcquireSimpleItemsByUserId",
"Gs2Inventory:SetSimpleItemsByUserId",
"Gs2Inventory:AcquireBigItemByUserId",
"Gs2Inventory:SetBigItemByUserId",
"Gs2JobQueue:PushByUserId",
"Gs2Limit:CountDownByUserId",
"Gs2Limit:DeleteCounterByUserId",
"Gs2LoginReward:DeleteReceiveStatusByUserId",
"Gs2LoginReward:UnmarkReceivedByUserId",
"Gs2Lottery:DrawByUserId",
"Gs2Lottery:ResetBoxByUserId",
"Gs2Mission:RevertReceiveByUserId",
"Gs2Mission:IncreaseCounterByUserId",
"Gs2Mission:SetCounterByUserId",
"Gs2Money:DepositByUserId",
"Gs2Money:RevertRecordReceipt",
"Gs2Money2:DepositByUserId",
"Gs2Quest:CreateProgressByUserId",
"Gs2Schedule:TriggerByUserId",
"Gs2Script:InvokeScript",
"Gs2SerialKey:RevertUseByUserId",
"Gs2SerialKey:IssueOnce",
"Gs2Showcase:DecrementPurchaseCountByUserId",
"Gs2Showcase:ForceReDrawByUserId",
"Gs2SkillTree:MarkReleaseByUserId",
"Gs2Stamina:RecoverStaminaByUserId",
"Gs2Stamina:RaiseMaxValueByUserId",
"Gs2Stamina:SetMaxValueByUserId",
"Gs2Stamina:SetRecoverIntervalByUserId",
"Gs2Stamina:SetRecoverValueByUserId",
"Gs2StateMachine:StartStateMachineByUserId",
}
~ 128 charsTypes of actions to be performed in the acquire action
requeststring~ 1048576 charsJSON of request

EzConfig

Configration

Set values to be applied to transaction variables

TypeRequireDefaultLimitationDescription
keystring~ 64 charsName
valuestring~ 51200 charsValue

EzSubscribeUser

Subscribe Information

TypeRequireDefaultLimitationDescription
rankingNamestring~ 128 charsRanking Name
userIdstring~ 128 charsUser Id
targetUserIdstring~ 128 charsSubscribe Target User ID

EzVerifyActionResult

Verify action execution result

TypeRequireDefaultLimitationDescription
actionenum {
}
~ 128 charsTypes of actions to be performed in the verify task
verifyRequeststring~ 1048576 charsJSON of request
statusCodeint~ 999Status code
verifyResultstring~ 1048576 charsResult payload

Enumeration type definition to specify as action

Enumerator String DefinitionDescription

EzConsumeActionResult

Consume action execution result

TypeRequireDefaultLimitationDescription
actionenum {
}
~ 128 charsTypes of actions to be performed in the consume action
consumeRequeststring~ 1048576 charsJSON of request
statusCodeint~ 999Status code
consumeResultstring~ 1048576 charsResult payload

Enumeration type definition to specify as action

Enumerator String DefinitionDescription

EzAcquireActionResult

Acquire action execution result

TypeRequireDefaultLimitationDescription
actionenum {
}
~ 128 charsTypes of actions to be performed in the acquire action
acquireRequeststring~ 1048576 charsJSON of request
statusCodeint~ 999Status code
acquireResultstring~ 1048576 charsResult payload

Enumeration type definition to specify as action

Enumerator String DefinitionDescription

EzTransactionResult

Transaction execution results

Transaction execution results executed using server-side transaction auto-execution functionality

TypeRequireDefaultLimitationDescription
transactionIdstring36 ~ 36 charsTransaction ID
verifyResultsList<EzVerifyActionResult>~ 10 itemsList of verify action execution results
consumeResultsList<EzConsumeActionResult>~ 10 itemsList of consume action execution results
acquireResultsList<EzAcquireActionResult>~ 100 itemsList of acquire action execution results

Methods

getGlobalRankingRank

Get Global Ranking

Request

TypeRequireDefaultLimitationDescription
namespaceNamestring~ 128 charsNamespace name
rankingNamestring~ 128 charsRanking Name
seasonlong~ 9223372036854775805Season
accessTokenstring~ 128 charsUser Id

Result

TypeDescription
itemEzGlobalRankingDataGlobal Ranking

Implementation Example

    var domain = gs2.Ranking2.Namespace(
        namespaceName: "namespace-0001"
    ).GlobalRankingModel(
        rankingName: "ranking-0001"
    ).GlobalRankingSeason(
        season: null
    ).GlobalRankingData(
        userId: "user-0001"
    );
    var result = await domain.GetGlobalRankingRankAsync(
    );
    var item = await result.ModelAsync();
    var domain = gs2.Ranking2.Namespace(
        namespaceName: "namespace-0001"
    ).GlobalRankingModel(
        rankingName: "ranking-0001"
    ).GlobalRankingSeason(
        season: null
    ).GlobalRankingData(
        userId: "user-0001"
    );
    var future = domain.GetGlobalRankingRankFuture(
    );
    yield return future;
    if (future.Error != null)
    {
        onError.Invoke(future.Error, null);
        yield break;
    }
    var future2 = future.Result.Model();
    yield return future2;
    if (future2.Error != null)
    {
        onError.Invoke(future2.Error, null);
        yield break;
    }
    var result = future2.Result;
    const auto Domain = Gs2->Ranking2->Namespace(
        "namespace-0001" // namespaceName
    )->GlobalRankingModel(
        "ranking-0001" // rankingName
    )->GlobalRankingSeason(
        nullptr // season
    )->GlobalRankingData(
        "user-0001" // userId
    );
    const auto Future = Domain->GetGlobalRankingRank(
    );
    Future->StartSynchronousTask();
    if (Future->GetTask().IsError())
    {
        return false;
    }

    // obtain changed values / result values
    const auto Future2 = Future->GetTask().Result()->Model();
    Future2->StartSynchronousTask();
    if (Future2->GetTask().IsError())
    {
        return Future2->GetTask().Error();
    }
    const auto Result = Future2->GetTask().Result();

listGlobalRankings

List Global Rankings

Request

TypeRequireDefaultLimitationDescription
namespaceNamestring~ 128 charsNamespace name
rankingNamestring~ 128 charsRanking Name
seasonlong~ 9223372036854775805Season
accessTokenstring~ 128 charsUser Id
pageTokenstring~ 1024 charsToken specifying the position from which to start acquiring data
limitint301 ~ 1000Number of data acquired

Result

TypeDescription
itemsList<EzGlobalRankingData>List of Global Rankings
nextPageTokenstringPage token to retrieve the rest of the listing

Implementation Example

    var domain = gs2.Ranking2.Namespace(
        namespaceName: "namespace-0001"
    ).GlobalRankingModel(
        rankingName: "ranking-0001"
    ).GlobalRankingSeason(
        season: null
    );
    var items = await domain.GlobalRankingsAsync(
    ).ToListAsync();
    var domain = gs2.Ranking2.Namespace(
        namespaceName: "namespace-0001"
    ).GlobalRankingModel(
        rankingName: "ranking-0001"
    ).GlobalRankingSeason(
        season: null
    );
    var it = domain.GlobalRankings(
    );
    List<EzGlobalRankingData> items = new List<EzGlobalRankingData>();
    while (it.HasNext())
    {
        yield return it.Next();
        if (it.Error != null)
        {
            onError.Invoke(it.Error, null);
            break;
        }
        if (it.Current != null)
        {
            items.Add(it.Current);
        }
        else
        {
            break;
        }
    }
    const auto Domain = Gs2->Ranking2->Namespace(
        "namespace-0001" // namespaceName
    )->GlobalRankingModel(
        "ranking-0001" // rankingName
    )->GlobalRankingSeason(
        nullptr // season
    );
    const auto It = Domain->GlobalRankings(
    );
    TArray<Gs2::UE5::Ranking2::Model::FEzGlobalRankingDataPtr> Result;
    for (auto Item : *It)
    {
        if (Item.IsError())
        {
            return false;
        }
        Result.Add(Item.Current());
    }

getGlobalRankingModel

Get Global Ranking Model

Request

TypeRequireDefaultLimitationDescription
namespaceNamestring~ 128 charsNamespace name
rankingNamestring~ 128 charsRanking Name

Result

TypeDescription
itemEzGlobalRankingModelGlobal Ranking Model

Implementation Example

    var domain = gs2.Ranking2.Namespace(
        namespaceName: "namespace-0001"
    ).GlobalRankingModel(
        rankingName: "ranking-0001"
    );
    var item = await domain.ModelAsync();
    var domain = gs2.Ranking2.Namespace(
        namespaceName: "namespace-0001"
    ).GlobalRankingModel(
        rankingName: "ranking-0001"
    );
    var future = domain.Model();
    yield return future;
    var item = future.Result;
    const auto Domain = Gs2->Ranking2->Namespace(
        "namespace-0001" // namespaceName
    )->GlobalRankingModel(
        "ranking-0001" // rankingName
    );
    const auto Future = Domain->Model();
    Future->StartSynchronousTask();
    if (Future->GetTask().IsError())
    {
        return false;
    }
Value change event handling
    var domain = gs2.Ranking2.Namespace(
        namespaceName: "namespace-0001"
    ).GlobalRankingModel(
        rankingName: "ranking-0001"
    );
    
    // Start event handling
    var callbackId = domain.Subscribe(
        value => {
            // Called when the value changes
            // The "value" is passed the value after the change.
        }
    );

    // Stop event handling
    domain.Unsubscribe(callbackId);
    var domain = gs2.Ranking2.Namespace(
        namespaceName: "namespace-0001"
    ).GlobalRankingModel(
        rankingName: "ranking-0001"
    );
    var future = domain.Model();
    yield return future;
    var item = future.Result;
    const auto Domain = Gs2->Ranking2->Namespace(
        "namespace-0001" // namespaceName
    )->GlobalRankingModel(
        "ranking-0001" // rankingName
    );
    
    // Start event handling
    const auto CallbackId = Domain->Subscribe(
        [](TSharedPtr<Gs2::Ranking2::Model::FGlobalRankingModel> value) {
            // Called when the value changes
            // The "value" is passed the value after the change.
        }
    );

    // Stop event handling
    Domain->Unsubscribe(CallbackId);

listGlobalRankingModels

List Global Ranking Models

Request

TypeRequireDefaultLimitationDescription
namespaceNamestring~ 128 charsNamespace name

Result

TypeDescription
itemsList<EzGlobalRankingModel>List of Global Ranking Models

Implementation Example

    var domain = gs2.Ranking2.Namespace(
        namespaceName: null
    );
    var items = await domain.GlobalRankingModelsAsync(
    ).ToListAsync();
    var domain = gs2.Ranking2.Namespace(
        namespaceName: null
    );
    var it = domain.GlobalRankingModels(
    );
    List<EzGlobalRankingModel> items = new List<EzGlobalRankingModel>();
    while (it.HasNext())
    {
        yield return it.Next();
        if (it.Error != null)
        {
            onError.Invoke(it.Error, null);
            break;
        }
        if (it.Current != null)
        {
            items.Add(it.Current);
        }
        else
        {
            break;
        }
    }
    const auto Domain = Gs2->Ranking2->Namespace(
        nullptr // namespaceName
    );
    const auto It = Domain->GlobalRankingModels(
    );
    TArray<Gs2::UE5::Ranking2::Model::FEzGlobalRankingModelPtr> Result;
    for (auto Item : *It)
    {
        if (Item.IsError())
        {
            return false;
        }
        Result.Add(Item.Current());
    }
Value change event handling
    var domain = gs2.Ranking2.Namespace(
        namespaceName: null
    );
    
    // Start event handling
    var callbackId = domain.SubscribeGlobalRankingModels(
        () => {
            // Called when an element of the list changes.
        }
    );

    // Stop event handling
    domain.UnsubscribeGlobalRankingModels(callbackId);
    var domain = gs2.Ranking2.Namespace(
        namespaceName: null
    );
    var it = domain.GlobalRankingModels(
    );
    List<EzGlobalRankingModel> items = new List<EzGlobalRankingModel>();
    while (it.HasNext())
    {
        yield return it.Next();
        if (it.Error != null)
        {
            onError.Invoke(it.Error, null);
            break;
        }
        if (it.Current != null)
        {
            items.Add(it.Current);
        }
        else
        {
            break;
        }
    }
    const auto Domain = Gs2->Ranking2->Namespace(
        nullptr // namespaceName
    );
    
    // Start event handling
    const auto CallbackId = Domain->SubscribeGlobalRankingModels(
        []() {
            // Called when an element of the list changes.
        }
    );

    // Stop event handling
    Domain->UnsubscribeGlobalRankingModels(CallbackId);

getGlobalRankingReceivedReward

Get Global Ranking Received Reward

Request

TypeRequireDefaultLimitationDescription
namespaceNamestring~ 128 charsNamespace name
rankingNamestring~ 128 charsRanking Name
seasonlong~ 9223372036854775805Season
accessTokenstring~ 128 charsUser Id

Result

TypeDescription
itemEzGlobalRankingReceivedRewardGlobal Ranking Reward Received History

Implementation Example

    var domain = gs2.Ranking2.Namespace(
        namespaceName: "namespace-0001"
    ).Me(
        gameSession: GameSession
    ).GlobalRankingReceivedReward(
        rankingName: "ranking-0001",
        season: 0
    );
    var item = await domain.ModelAsync();
    var domain = gs2.Ranking2.Namespace(
        namespaceName: "namespace-0001"
    ).Me(
        gameSession: GameSession
    ).GlobalRankingReceivedReward(
        rankingName: "ranking-0001",
        season: 0
    );
    var future = domain.Model();
    yield return future;
    var item = future.Result;
    const auto Domain = Gs2->Ranking2->Namespace(
        "namespace-0001" // namespaceName
    )->Me(
        GameSession
    )->GlobalRankingReceivedReward(
        "ranking-0001", // rankingName
        0 // season
    );
    const auto Future = Domain->Model();
    Future->StartSynchronousTask();
    if (Future->GetTask().IsError())
    {
        return false;
    }
Value change event handling
    var domain = gs2.Ranking2.Namespace(
        namespaceName: "namespace-0001"
    ).Me(
        gameSession: GameSession
    ).GlobalRankingReceivedReward(
        rankingName: "ranking-0001",
        season: 0
    );
    
    // Start event handling
    var callbackId = domain.Subscribe(
        value => {
            // Called when the value changes
            // The "value" is passed the value after the change.
        }
    );

    // Stop event handling
    domain.Unsubscribe(callbackId);
    var domain = gs2.Ranking2.Namespace(
        namespaceName: "namespace-0001"
    ).Me(
        gameSession: GameSession
    ).GlobalRankingReceivedReward(
        rankingName: "ranking-0001",
        season: 0
    );
    var future = domain.Model();
    yield return future;
    var item = future.Result;
    const auto Domain = Gs2->Ranking2->Namespace(
        "namespace-0001" // namespaceName
    )->Me(
        GameSession
    )->GlobalRankingReceivedReward(
        "ranking-0001", // rankingName
        0 // season
    );
    
    // Start event handling
    const auto CallbackId = Domain->Subscribe(
        [](TSharedPtr<Gs2::Ranking2::Model::FGlobalRankingReceivedReward> value) {
            // Called when the value changes
            // The "value" is passed the value after the change.
        }
    );

    // Stop event handling
    Domain->Unsubscribe(CallbackId);

listGlobalRankingReceivedRewards

List Global Ranking Received Rewards

Request

TypeRequireDefaultLimitationDescription
namespaceNamestring~ 128 charsNamespace name
rankingNamestring~ 128 charsRanking Name
seasonlong~ 9223372036854775805Season
accessTokenstring~ 128 charsUser Id
pageTokenstring~ 1024 charsToken specifying the position from which to start acquiring data
limitint301 ~ 1000Number of data acquired

Result

TypeDescription
itemsList<EzGlobalRankingReceivedReward>List of Global Ranking Rewards Received
nextPageTokenstringPage token to retrieve the rest of the listing

Implementation Example

    var domain = gs2.Ranking2.Namespace(
        namespaceName: "namespace-0001"
    ).Me(
        gameSession: GameSession
    );
    var items = await domain.GlobalRankingReceivedRewardsAsync(
        rankingName: "ranking-0001",
        season: 0L
    ).ToListAsync();
    var domain = gs2.Ranking2.Namespace(
        namespaceName: "namespace-0001"
    ).Me(
        gameSession: GameSession
    );
    var it = domain.GlobalRankingReceivedRewards(
        rankingName: "ranking-0001",
        season: 0L
    );
    List<EzGlobalRankingReceivedReward> items = new List<EzGlobalRankingReceivedReward>();
    while (it.HasNext())
    {
        yield return it.Next();
        if (it.Error != null)
        {
            onError.Invoke(it.Error, null);
            break;
        }
        if (it.Current != null)
        {
            items.Add(it.Current);
        }
        else
        {
            break;
        }
    }
    const auto Domain = Gs2->Ranking2->Namespace(
        "namespace-0001" // namespaceName
    )->Me(
        GameSession
    );
    const auto It = Domain->GlobalRankingReceivedRewards(
        "ranking-0001", // rankingName
        0L // season
    );
    TArray<Gs2::UE5::Ranking2::Model::FEzGlobalRankingReceivedRewardPtr> Result;
    for (auto Item : *It)
    {
        if (Item.IsError())
        {
            return false;
        }
        Result.Add(Item.Current());
    }
Value change event handling
    var domain = gs2.Ranking2.Namespace(
        namespaceName: "namespace-0001"
    ).Me(
        gameSession: GameSession
    );
    
    // Start event handling
    var callbackId = domain.SubscribeGlobalRankingReceivedRewards(
        () => {
            // Called when an element of the list changes.
        }
    );

    // Stop event handling
    domain.UnsubscribeGlobalRankingReceivedRewards(callbackId);
    var domain = gs2.Ranking2.Namespace(
        namespaceName: "namespace-0001"
    ).Me(
        gameSession: GameSession
    );
    var it = domain.GlobalRankingReceivedRewards(
        rankingName: "ranking-0001",
        season: 0L
    );
    List<EzGlobalRankingReceivedReward> items = new List<EzGlobalRankingReceivedReward>();
    while (it.HasNext())
    {
        yield return it.Next();
        if (it.Error != null)
        {
            onError.Invoke(it.Error, null);
            break;
        }
        if (it.Current != null)
        {
            items.Add(it.Current);
        }
        else
        {
            break;
        }
    }
    const auto Domain = Gs2->Ranking2->Namespace(
        "namespace-0001" // namespaceName
    )->Me(
        GameSession
    );
    
    // Start event handling
    const auto CallbackId = Domain->SubscribeGlobalRankingReceivedRewards(
        []() {
            // Called when an element of the list changes.
        }
    );

    // Stop event handling
    Domain->UnsubscribeGlobalRankingReceivedRewards(CallbackId);

getGlobalRankingScore

Get Global Ranking Score

Request

TypeRequireDefaultLimitationDescription
namespaceNamestring~ 128 charsNamespace name
rankingNamestring~ 128 charsRanking Name
seasonlong~ 9223372036854775805Season
accessTokenstring~ 128 charsUser Id

Result

TypeDescription
itemEzGlobalRankingScoreGlobal Ranking Score

Implementation Example

    var domain = gs2.Ranking2.Namespace(
        namespaceName: "namespace-0001"
    ).Me(
        gameSession: GameSession
    ).GlobalRankingScore(
        rankingName: "ranking-0001",
        season: 0
    );
    var item = await domain.ModelAsync();
    var domain = gs2.Ranking2.Namespace(
        namespaceName: "namespace-0001"
    ).Me(
        gameSession: GameSession
    ).GlobalRankingScore(
        rankingName: "ranking-0001",
        season: 0
    );
    var future = domain.Model();
    yield return future;
    var item = future.Result;
    const auto Domain = Gs2->Ranking2->Namespace(
        "namespace-0001" // namespaceName
    )->Me(
        GameSession
    )->GlobalRankingScore(
        "ranking-0001", // rankingName
        0 // season
    );
    const auto Future = Domain->Model();
    Future->StartSynchronousTask();
    if (Future->GetTask().IsError())
    {
        return false;
    }
Value change event handling
    var domain = gs2.Ranking2.Namespace(
        namespaceName: "namespace-0001"
    ).Me(
        gameSession: GameSession
    ).GlobalRankingScore(
        rankingName: "ranking-0001",
        season: 0
    );
    
    // Start event handling
    var callbackId = domain.Subscribe(
        value => {
            // Called when the value changes
            // The "value" is passed the value after the change.
        }
    );

    // Stop event handling
    domain.Unsubscribe(callbackId);
    var domain = gs2.Ranking2.Namespace(
        namespaceName: "namespace-0001"
    ).Me(
        gameSession: GameSession
    ).GlobalRankingScore(
        rankingName: "ranking-0001",
        season: 0
    );
    var future = domain.Model();
    yield return future;
    var item = future.Result;
    const auto Domain = Gs2->Ranking2->Namespace(
        "namespace-0001" // namespaceName
    )->Me(
        GameSession
    )->GlobalRankingScore(
        "ranking-0001", // rankingName
        0 // season
    );
    
    // Start event handling
    const auto CallbackId = Domain->Subscribe(
        [](TSharedPtr<Gs2::Ranking2::Model::FGlobalRankingScore> value) {
            // Called when the value changes
            // The "value" is passed the value after the change.
        }
    );

    // Stop event handling
    Domain->Unsubscribe(CallbackId);

listGlobalRankingScores

List Global Ranking Scores

Request

TypeRequireDefaultLimitationDescription
namespaceNamestring~ 128 charsNamespace name
rankingNamestring~ 128 charsRanking Name
accessTokenstring~ 128 charsUser Id
pageTokenstring~ 1024 charsToken specifying the position from which to start acquiring data
limitint301 ~ 1000Number of data acquired

Result

TypeDescription
itemsList<EzGlobalRankingScore>List of Global Ranking Scores
nextPageTokenstringPage token to retrieve the rest of the listing

Implementation Example

    var domain = gs2.Ranking2.Namespace(
        namespaceName: "namespace-0001"
    ).Me(
        gameSession: GameSession
    );
    var items = await domain.GlobalRankingScoresAsync(
        rankingName: "ranking-0001"
    ).ToListAsync();
    var domain = gs2.Ranking2.Namespace(
        namespaceName: "namespace-0001"
    ).Me(
        gameSession: GameSession
    );
    var it = domain.GlobalRankingScores(
        rankingName: "ranking-0001"
    );
    List<EzGlobalRankingScore> items = new List<EzGlobalRankingScore>();
    while (it.HasNext())
    {
        yield return it.Next();
        if (it.Error != null)
        {
            onError.Invoke(it.Error, null);
            break;
        }
        if (it.Current != null)
        {
            items.Add(it.Current);
        }
        else
        {
            break;
        }
    }
    const auto Domain = Gs2->Ranking2->Namespace(
        "namespace-0001" // namespaceName
    )->Me(
        GameSession
    );
    const auto It = Domain->GlobalRankingScores(
        "ranking-0001" // rankingName
    );
    TArray<Gs2::UE5::Ranking2::Model::FEzGlobalRankingScorePtr> Result;
    for (auto Item : *It)
    {
        if (Item.IsError())
        {
            return false;
        }
        Result.Add(Item.Current());
    }
Value change event handling
    var domain = gs2.Ranking2.Namespace(
        namespaceName: "namespace-0001"
    ).Me(
        gameSession: GameSession
    );
    
    // Start event handling
    var callbackId = domain.SubscribeGlobalRankingScores(
        () => {
            // Called when an element of the list changes.
        }
    );

    // Stop event handling
    domain.UnsubscribeGlobalRankingScores(callbackId);
    var domain = gs2.Ranking2.Namespace(
        namespaceName: "namespace-0001"
    ).Me(
        gameSession: GameSession
    );
    var it = domain.GlobalRankingScores(
        rankingName: "ranking-0001"
    );
    List<EzGlobalRankingScore> items = new List<EzGlobalRankingScore>();
    while (it.HasNext())
    {
        yield return it.Next();
        if (it.Error != null)
        {
            onError.Invoke(it.Error, null);
            break;
        }
        if (it.Current != null)
        {
            items.Add(it.Current);
        }
        else
        {
            break;
        }
    }
    const auto Domain = Gs2->Ranking2->Namespace(
        "namespace-0001" // namespaceName
    )->Me(
        GameSession
    );
    
    // Start event handling
    const auto CallbackId = Domain->SubscribeGlobalRankingScores(
        []() {
            // Called when an element of the list changes.
        }
    );

    // Stop event handling
    Domain->UnsubscribeGlobalRankingScores(CallbackId);

putGlobalRanking

Register Global Ranking Score

Request

TypeRequireDefaultLimitationDescription
namespaceNamestring~ 128 charsNamespace name
rankingNamestring~ 128 charsRanking Name
accessTokenstring~ 128 charsUser Id
scorelong~ 9223372036854775805Score
metadatastring~ 512 charsmetadata

Result

TypeDescription
itemEzGlobalRankingScoreRegistered Global Ranking Score

Implementation Example

    var domain = gs2.Ranking2.Namespace(
        namespaceName: "namespace-0001"
    ).Me(
        gameSession: GameSession
    );
    var result = await domain.PutGlobalRankingAsync(
        rankingName: "ranking-0001",
        score: 100L,
        metadata: null
    );
    var item = await result.ModelAsync();
    var domain = gs2.Ranking2.Namespace(
        namespaceName: "namespace-0001"
    ).Me(
        gameSession: GameSession
    );
    var future = domain.PutGlobalRankingFuture(
        rankingName: "ranking-0001",
        score: 100L,
        metadata: null
    );
    yield return future;
    if (future.Error != null)
    {
        onError.Invoke(future.Error, null);
        yield break;
    }
    var future2 = future.Result.Model();
    yield return future2;
    if (future2.Error != null)
    {
        onError.Invoke(future2.Error, null);
        yield break;
    }
    var result = future2.Result;
    const auto Domain = Gs2->Ranking2->Namespace(
        "namespace-0001" // namespaceName
    )->Me(
        GameSession
    );
    const auto Future = Domain->PutGlobalRanking(
        "ranking-0001", // rankingName
        100L // score
        // metadata
    );
    Future->StartSynchronousTask();
    if (Future->GetTask().IsError())
    {
        return false;
    }

    // obtain changed values / result values
    const auto Future2 = Future->GetTask().Result()->Model();
    Future2->StartSynchronousTask();
    if (Future2->GetTask().IsError())
    {
        return Future2->GetTask().Error();
    }
    const auto Result = Future2->GetTask().Result();

getClusterRankingRank

Get Cluster Ranking

Request

TypeRequireDefaultLimitationDescription
namespaceNamestring~ 128 charsNamespace name
rankingNamestring~ 128 charsRanking Name
clusterNamestring~ 1024 charsCluster Name
seasonlong~ 9223372036854775805Season
accessTokenstring~ 128 charsUser Id

Result

TypeDescription
itemEzClusterRankingDataCluster Ranking

Implementation Example

    var domain = gs2.Ranking2.Namespace(
        namespaceName: "namespace-0001"
    ).ClusterRankingModel(
        rankingName: "ranking-0001"
    ).ClusterRankingSeason(
        clusterName: "cluster-0001",
        season: null
    ).ClusterRankingData(
        userId: "user-0001"
    );
    var result = await domain.GetClusterRankingRankAsync(
    );
    var item = await result.ModelAsync();
    var domain = gs2.Ranking2.Namespace(
        namespaceName: "namespace-0001"
    ).ClusterRankingModel(
        rankingName: "ranking-0001"
    ).ClusterRankingSeason(
        clusterName: "cluster-0001",
        season: null
    ).ClusterRankingData(
        userId: "user-0001"
    );
    var future = domain.GetClusterRankingRankFuture(
    );
    yield return future;
    if (future.Error != null)
    {
        onError.Invoke(future.Error, null);
        yield break;
    }
    var future2 = future.Result.Model();
    yield return future2;
    if (future2.Error != null)
    {
        onError.Invoke(future2.Error, null);
        yield break;
    }
    var result = future2.Result;
    const auto Domain = Gs2->Ranking2->Namespace(
        "namespace-0001" // namespaceName
    )->ClusterRankingModel(
        "ranking-0001" // rankingName
    )->ClusterRankingSeason(
        "cluster-0001", // clusterName
        nullptr // season
    )->ClusterRankingData(
        "user-0001" // userId
    );
    const auto Future = Domain->GetClusterRankingRank(
    );
    Future->StartSynchronousTask();
    if (Future->GetTask().IsError())
    {
        return false;
    }

    // obtain changed values / result values
    const auto Future2 = Future->GetTask().Result()->Model();
    Future2->StartSynchronousTask();
    if (Future2->GetTask().IsError())
    {
        return Future2->GetTask().Error();
    }
    const auto Result = Future2->GetTask().Result();

listClusterRankings

List Cluster Rankings

Request

TypeRequireDefaultLimitationDescription
namespaceNamestring~ 128 charsNamespace name
rankingNamestring~ 128 charsRanking Name
clusterNamestring~ 1024 charsCluster Name
seasonlong~ 9223372036854775805Season
accessTokenstring~ 128 charsUser Id
pageTokenstring~ 1024 charsToken specifying the position from which to start acquiring data
limitint301 ~ 1000Number of data acquired

Result

TypeDescription
itemsList<EzClusterRankingData>List of Cluster Rankings
nextPageTokenstringPage token to retrieve the rest of the listing

Implementation Example

    var domain = gs2.Ranking2.Namespace(
        namespaceName: "namespace-0001"
    ).ClusterRankingModel(
        rankingName: "ranking-0001"
    ).ClusterRankingSeason(
        clusterName: "cluster-0001",
        season: null
    );
    var items = await domain.ClusterRankingsAsync(
    ).ToListAsync();
    var domain = gs2.Ranking2.Namespace(
        namespaceName: "namespace-0001"
    ).ClusterRankingModel(
        rankingName: "ranking-0001"
    ).ClusterRankingSeason(
        clusterName: "cluster-0001",
        season: null
    );
    var it = domain.ClusterRankings(
    );
    List<EzClusterRankingData> items = new List<EzClusterRankingData>();
    while (it.HasNext())
    {
        yield return it.Next();
        if (it.Error != null)
        {
            onError.Invoke(it.Error, null);
            break;
        }
        if (it.Current != null)
        {
            items.Add(it.Current);
        }
        else
        {
            break;
        }
    }
    const auto Domain = Gs2->Ranking2->Namespace(
        "namespace-0001" // namespaceName
    )->ClusterRankingModel(
        "ranking-0001" // rankingName
    )->ClusterRankingSeason(
        "cluster-0001", // clusterName
        nullptr // season
    );
    const auto It = Domain->ClusterRankings(
    );
    TArray<Gs2::UE5::Ranking2::Model::FEzClusterRankingDataPtr> Result;
    for (auto Item : *It)
    {
        if (Item.IsError())
        {
            return false;
        }
        Result.Add(Item.Current());
    }

getClusterRankingModel

Get Cluster Ranking Model

Request

TypeRequireDefaultLimitationDescription
namespaceNamestring~ 128 charsNamespace name
rankingNamestring~ 128 charsRanking Name

Result

TypeDescription
itemEzClusterRankingModelCluster Ranking Model

Implementation Example

    var domain = gs2.Ranking2.Namespace(
        namespaceName: "namespace-0001"
    ).ClusterRankingModel(
        rankingName: "ranking-0001"
    );
    var item = await domain.ModelAsync();
    var domain = gs2.Ranking2.Namespace(
        namespaceName: "namespace-0001"
    ).ClusterRankingModel(
        rankingName: "ranking-0001"
    );
    var future = domain.Model();
    yield return future;
    var item = future.Result;
    const auto Domain = Gs2->Ranking2->Namespace(
        "namespace-0001" // namespaceName
    )->ClusterRankingModel(
        "ranking-0001" // rankingName
    );
    const auto Future = Domain->Model();
    Future->StartSynchronousTask();
    if (Future->GetTask().IsError())
    {
        return false;
    }
Value change event handling
    var domain = gs2.Ranking2.Namespace(
        namespaceName: "namespace-0001"
    ).ClusterRankingModel(
        rankingName: "ranking-0001"
    );
    
    // Start event handling
    var callbackId = domain.Subscribe(
        value => {
            // Called when the value changes
            // The "value" is passed the value after the change.
        }
    );

    // Stop event handling
    domain.Unsubscribe(callbackId);
    var domain = gs2.Ranking2.Namespace(
        namespaceName: "namespace-0001"
    ).ClusterRankingModel(
        rankingName: "ranking-0001"
    );
    var future = domain.Model();
    yield return future;
    var item = future.Result;
    const auto Domain = Gs2->Ranking2->Namespace(
        "namespace-0001" // namespaceName
    )->ClusterRankingModel(
        "ranking-0001" // rankingName
    );
    
    // Start event handling
    const auto CallbackId = Domain->Subscribe(
        [](TSharedPtr<Gs2::Ranking2::Model::FClusterRankingModel> value) {
            // Called when the value changes
            // The "value" is passed the value after the change.
        }
    );

    // Stop event handling
    Domain->Unsubscribe(CallbackId);

listClusterRankingModels

List Cluster Ranking Models

Request

TypeRequireDefaultLimitationDescription
namespaceNamestring~ 128 charsNamespace name

Result

TypeDescription
itemsList<EzClusterRankingModel>List of Cluster Ranking Models

Implementation Example

    var domain = gs2.Ranking2.Namespace(
        namespaceName: null
    );
    var items = await domain.ClusterRankingModelsAsync(
    ).ToListAsync();
    var domain = gs2.Ranking2.Namespace(
        namespaceName: null
    );
    var it = domain.ClusterRankingModels(
    );
    List<EzClusterRankingModel> items = new List<EzClusterRankingModel>();
    while (it.HasNext())
    {
        yield return it.Next();
        if (it.Error != null)
        {
            onError.Invoke(it.Error, null);
            break;
        }
        if (it.Current != null)
        {
            items.Add(it.Current);
        }
        else
        {
            break;
        }
    }
    const auto Domain = Gs2->Ranking2->Namespace(
        nullptr // namespaceName
    );
    const auto It = Domain->ClusterRankingModels(
    );
    TArray<Gs2::UE5::Ranking2::Model::FEzClusterRankingModelPtr> Result;
    for (auto Item : *It)
    {
        if (Item.IsError())
        {
            return false;
        }
        Result.Add(Item.Current());
    }
Value change event handling
    var domain = gs2.Ranking2.Namespace(
        namespaceName: null
    );
    
    // Start event handling
    var callbackId = domain.SubscribeClusterRankingModels(
        () => {
            // Called when an element of the list changes.
        }
    );

    // Stop event handling
    domain.UnsubscribeClusterRankingModels(callbackId);
    var domain = gs2.Ranking2.Namespace(
        namespaceName: null
    );
    var it = domain.ClusterRankingModels(
    );
    List<EzClusterRankingModel> items = new List<EzClusterRankingModel>();
    while (it.HasNext())
    {
        yield return it.Next();
        if (it.Error != null)
        {
            onError.Invoke(it.Error, null);
            break;
        }
        if (it.Current != null)
        {
            items.Add(it.Current);
        }
        else
        {
            break;
        }
    }
    const auto Domain = Gs2->Ranking2->Namespace(
        nullptr // namespaceName
    );
    
    // Start event handling
    const auto CallbackId = Domain->SubscribeClusterRankingModels(
        []() {
            // Called when an element of the list changes.
        }
    );

    // Stop event handling
    Domain->UnsubscribeClusterRankingModels(CallbackId);

getClusterRankingReceivedReward

Get Cluster Ranking Received Reward

Request

TypeRequireDefaultLimitationDescription
namespaceNamestring~ 128 charsNamespace name
rankingNamestring~ 128 charsRanking Name
clusterNamestring~ 1024 charsCluster Name
seasonlong~ 9223372036854775805Season
accessTokenstring~ 128 charsUser Id

Result

TypeDescription
itemEzClusterRankingReceivedRewardCluster Ranking Reward Received History

Implementation Example

    var domain = gs2.Ranking2.Namespace(
        namespaceName: "namespace-0001"
    ).Me(
        gameSession: GameSession
    ).ClusterRankingReceivedReward(
        rankingName: "ranking-0001",
        clusterName: "cluster-0001",
        season: 0
    );
    var item = await domain.ModelAsync();
    var domain = gs2.Ranking2.Namespace(
        namespaceName: "namespace-0001"
    ).Me(
        gameSession: GameSession
    ).ClusterRankingReceivedReward(
        rankingName: "ranking-0001",
        clusterName: "cluster-0001",
        season: 0
    );
    var future = domain.Model();
    yield return future;
    var item = future.Result;
    const auto Domain = Gs2->Ranking2->Namespace(
        "namespace-0001" // namespaceName
    )->Me(
        GameSession
    )->ClusterRankingReceivedReward(
        "ranking-0001", // rankingName
        "cluster-0001", // clusterName
        0 // season
    );
    const auto Future = Domain->Model();
    Future->StartSynchronousTask();
    if (Future->GetTask().IsError())
    {
        return false;
    }
Value change event handling
    var domain = gs2.Ranking2.Namespace(
        namespaceName: "namespace-0001"
    ).Me(
        gameSession: GameSession
    ).ClusterRankingReceivedReward(
        rankingName: "ranking-0001",
        clusterName: "cluster-0001",
        season: 0
    );
    
    // Start event handling
    var callbackId = domain.Subscribe(
        value => {
            // Called when the value changes
            // The "value" is passed the value after the change.
        }
    );

    // Stop event handling
    domain.Unsubscribe(callbackId);
    var domain = gs2.Ranking2.Namespace(
        namespaceName: "namespace-0001"
    ).Me(
        gameSession: GameSession
    ).ClusterRankingReceivedReward(
        rankingName: "ranking-0001",
        clusterName: "cluster-0001",
        season: 0
    );
    var future = domain.Model();
    yield return future;
    var item = future.Result;
    const auto Domain = Gs2->Ranking2->Namespace(
        "namespace-0001" // namespaceName
    )->Me(
        GameSession
    )->ClusterRankingReceivedReward(
        "ranking-0001", // rankingName
        "cluster-0001", // clusterName
        0 // season
    );
    
    // Start event handling
    const auto CallbackId = Domain->Subscribe(
        [](TSharedPtr<Gs2::Ranking2::Model::FClusterRankingReceivedReward> value) {
            // Called when the value changes
            // The "value" is passed the value after the change.
        }
    );

    // Stop event handling
    Domain->Unsubscribe(CallbackId);

listClusterRankingReceivedRewards

List Cluster Ranking Received Rewards

Request

TypeRequireDefaultLimitationDescription
namespaceNamestring~ 128 charsNamespace name
rankingNamestring~ 128 charsRanking Name
clusterNamestring~ 1024 charsCluster Name
seasonlong~ 9223372036854775805Season
accessTokenstring~ 128 charsUser Id
pageTokenstring~ 1024 charsToken specifying the position from which to start acquiring data
limitint301 ~ 1000Number of data acquired

Result

TypeDescription
itemsList<EzClusterRankingReceivedReward>List of Cluster Ranking Rewards Received
nextPageTokenstringPage token to retrieve the rest of the listing

Implementation Example

    var domain = gs2.Ranking2.Namespace(
        namespaceName: "namespace-0001"
    ).Me(
        gameSession: GameSession
    );
    var items = await domain.ClusterRankingReceivedRewardsAsync(
        rankingName: "ranking-0001",
        clusterName: "cluster-0001",
        season: 0L
    ).ToListAsync();
    var domain = gs2.Ranking2.Namespace(
        namespaceName: "namespace-0001"
    ).Me(
        gameSession: GameSession
    );
    var it = domain.ClusterRankingReceivedRewards(
        rankingName: "ranking-0001",
        clusterName: "cluster-0001",
        season: 0L
    );
    List<EzClusterRankingReceivedReward> items = new List<EzClusterRankingReceivedReward>();
    while (it.HasNext())
    {
        yield return it.Next();
        if (it.Error != null)
        {
            onError.Invoke(it.Error, null);
            break;
        }
        if (it.Current != null)
        {
            items.Add(it.Current);
        }
        else
        {
            break;
        }
    }
    const auto Domain = Gs2->Ranking2->Namespace(
        "namespace-0001" // namespaceName
    )->Me(
        GameSession
    );
    const auto It = Domain->ClusterRankingReceivedRewards(
        "ranking-0001", // rankingName
        "cluster-0001", // clusterName
        0L // season
    );
    TArray<Gs2::UE5::Ranking2::Model::FEzClusterRankingReceivedRewardPtr> Result;
    for (auto Item : *It)
    {
        if (Item.IsError())
        {
            return false;
        }
        Result.Add(Item.Current());
    }
Value change event handling
    var domain = gs2.Ranking2.Namespace(
        namespaceName: "namespace-0001"
    ).Me(
        gameSession: GameSession
    );
    
    // Start event handling
    var callbackId = domain.SubscribeClusterRankingReceivedRewards(
        () => {
            // Called when an element of the list changes.
        }
    );

    // Stop event handling
    domain.UnsubscribeClusterRankingReceivedRewards(callbackId);
    var domain = gs2.Ranking2.Namespace(
        namespaceName: "namespace-0001"
    ).Me(
        gameSession: GameSession
    );
    var it = domain.ClusterRankingReceivedRewards(
        rankingName: "ranking-0001",
        clusterName: "cluster-0001",
        season: 0L
    );
    List<EzClusterRankingReceivedReward> items = new List<EzClusterRankingReceivedReward>();
    while (it.HasNext())
    {
        yield return it.Next();
        if (it.Error != null)
        {
            onError.Invoke(it.Error, null);
            break;
        }
        if (it.Current != null)
        {
            items.Add(it.Current);
        }
        else
        {
            break;
        }
    }
    const auto Domain = Gs2->Ranking2->Namespace(
        "namespace-0001" // namespaceName
    )->Me(
        GameSession
    );
    
    // Start event handling
    const auto CallbackId = Domain->SubscribeClusterRankingReceivedRewards(
        []() {
            // Called when an element of the list changes.
        }
    );

    // Stop event handling
    Domain->UnsubscribeClusterRankingReceivedRewards(CallbackId);

getClusterRankingScore

Get Cluster Ranking Score

Request

TypeRequireDefaultLimitationDescription
namespaceNamestring~ 128 charsNamespace name
rankingNamestring~ 128 charsRanking Name
clusterNamestring~ 1024 charsCluster Name
seasonlong~ 9223372036854775805Season
accessTokenstring~ 128 charsUser Id

Result

TypeDescription
itemEzClusterRankingScoreCluster Ranking Score

Implementation Example

    var domain = gs2.Ranking2.Namespace(
        namespaceName: "namespace-0001"
    ).Me(
        gameSession: GameSession
    ).ClusterRankingScore(
        rankingName: "ranking-0001",
        clusterName: "cluster-0001",
        season: 0
    );
    var item = await domain.ModelAsync();
    var domain = gs2.Ranking2.Namespace(
        namespaceName: "namespace-0001"
    ).Me(
        gameSession: GameSession
    ).ClusterRankingScore(
        rankingName: "ranking-0001",
        clusterName: "cluster-0001",
        season: 0
    );
    var future = domain.Model();
    yield return future;
    var item = future.Result;
    const auto Domain = Gs2->Ranking2->Namespace(
        "namespace-0001" // namespaceName
    )->Me(
        GameSession
    )->ClusterRankingScore(
        "ranking-0001", // rankingName
        "cluster-0001", // clusterName
        0 // season
    );
    const auto Future = Domain->Model();
    Future->StartSynchronousTask();
    if (Future->GetTask().IsError())
    {
        return false;
    }
Value change event handling
    var domain = gs2.Ranking2.Namespace(
        namespaceName: "namespace-0001"
    ).Me(
        gameSession: GameSession
    ).ClusterRankingScore(
        rankingName: "ranking-0001",
        clusterName: "cluster-0001",
        season: 0
    );
    
    // Start event handling
    var callbackId = domain.Subscribe(
        value => {
            // Called when the value changes
            // The "value" is passed the value after the change.
        }
    );

    // Stop event handling
    domain.Unsubscribe(callbackId);
    var domain = gs2.Ranking2.Namespace(
        namespaceName: "namespace-0001"
    ).Me(
        gameSession: GameSession
    ).ClusterRankingScore(
        rankingName: "ranking-0001",
        clusterName: "cluster-0001",
        season: 0
    );
    var future = domain.Model();
    yield return future;
    var item = future.Result;
    const auto Domain = Gs2->Ranking2->Namespace(
        "namespace-0001" // namespaceName
    )->Me(
        GameSession
    )->ClusterRankingScore(
        "ranking-0001", // rankingName
        "cluster-0001", // clusterName
        0 // season
    );
    
    // Start event handling
    const auto CallbackId = Domain->Subscribe(
        [](TSharedPtr<Gs2::Ranking2::Model::FClusterRankingScore> value) {
            // Called when the value changes
            // The "value" is passed the value after the change.
        }
    );

    // Stop event handling
    Domain->Unsubscribe(CallbackId);

listClusterRankingScores

List Cluster Ranking Scores

Request

TypeRequireDefaultLimitationDescription
namespaceNamestring~ 128 charsNamespace name
rankingNamestring~ 128 charsRanking Name
clusterNamestring~ 1024 charsCluster Name
seasonlong~ 9223372036854775805Season
accessTokenstring~ 128 charsUser Id
pageTokenstring~ 1024 charsToken specifying the position from which to start acquiring data
limitint301 ~ 1000Number of data acquired

Result

TypeDescription
itemsList<EzClusterRankingScore>List of Cluster Ranking Scores
nextPageTokenstringPage token to retrieve the rest of the listing

Implementation Example

    var domain = gs2.Ranking2.Namespace(
        namespaceName: "namespace-0001"
    ).Me(
        gameSession: GameSession
    );
    var items = await domain.ClusterRankingScoresAsync(
        rankingName: "ranking-0001",
        clusterName: "cluster-0001",
        season: 0L
    ).ToListAsync();
    var domain = gs2.Ranking2.Namespace(
        namespaceName: "namespace-0001"
    ).Me(
        gameSession: GameSession
    );
    var it = domain.ClusterRankingScores(
        rankingName: "ranking-0001",
        clusterName: "cluster-0001",
        season: 0L
    );
    List<EzClusterRankingScore> items = new List<EzClusterRankingScore>();
    while (it.HasNext())
    {
        yield return it.Next();
        if (it.Error != null)
        {
            onError.Invoke(it.Error, null);
            break;
        }
        if (it.Current != null)
        {
            items.Add(it.Current);
        }
        else
        {
            break;
        }
    }
    const auto Domain = Gs2->Ranking2->Namespace(
        "namespace-0001" // namespaceName
    )->Me(
        GameSession
    );
    const auto It = Domain->ClusterRankingScores(
        "ranking-0001", // rankingName
        "cluster-0001", // clusterName
        0L // season
    );
    TArray<Gs2::UE5::Ranking2::Model::FEzClusterRankingScorePtr> Result;
    for (auto Item : *It)
    {
        if (Item.IsError())
        {
            return false;
        }
        Result.Add(Item.Current());
    }
Value change event handling
    var domain = gs2.Ranking2.Namespace(
        namespaceName: "namespace-0001"
    ).Me(
        gameSession: GameSession
    );
    
    // Start event handling
    var callbackId = domain.SubscribeClusterRankingScores(
        () => {
            // Called when an element of the list changes.
        }
    );

    // Stop event handling
    domain.UnsubscribeClusterRankingScores(callbackId);
    var domain = gs2.Ranking2.Namespace(
        namespaceName: "namespace-0001"
    ).Me(
        gameSession: GameSession
    );
    var it = domain.ClusterRankingScores(
        rankingName: "ranking-0001",
        clusterName: "cluster-0001",
        season: 0L
    );
    List<EzClusterRankingScore> items = new List<EzClusterRankingScore>();
    while (it.HasNext())
    {
        yield return it.Next();
        if (it.Error != null)
        {
            onError.Invoke(it.Error, null);
            break;
        }
        if (it.Current != null)
        {
            items.Add(it.Current);
        }
        else
        {
            break;
        }
    }
    const auto Domain = Gs2->Ranking2->Namespace(
        "namespace-0001" // namespaceName
    )->Me(
        GameSession
    );
    
    // Start event handling
    const auto CallbackId = Domain->SubscribeClusterRankingScores(
        []() {
            // Called when an element of the list changes.
        }
    );

    // Stop event handling
    Domain->UnsubscribeClusterRankingScores(CallbackId);

putClusterRanking

Register Cluster Ranking Score

Request

TypeRequireDefaultLimitationDescription
namespaceNamestring~ 128 charsNamespace name
rankingNamestring~ 128 charsRanking Name
clusterNamestring~ 1024 charsCluster Name
accessTokenstring~ 128 charsUser Id
scorelong~ 9223372036854775805Score
metadatastring~ 512 charsmetadata

Result

TypeDescription
itemEzClusterRankingScoreRegistered Cluster Ranking Score

Implementation Example

    var domain = gs2.Ranking2.Namespace(
        namespaceName: "namespace-0001"
    ).Me(
        gameSession: GameSession
    );
    var result = await domain.PutClusterRankingAsync(
        rankingName: "ranking-0001",
        clusterName: "cluster-0001",
        score: 100L,
        metadata: null
    );
    var item = await result.ModelAsync();
    var domain = gs2.Ranking2.Namespace(
        namespaceName: "namespace-0001"
    ).Me(
        gameSession: GameSession
    );
    var future = domain.PutClusterRankingFuture(
        rankingName: "ranking-0001",
        clusterName: "cluster-0001",
        score: 100L,
        metadata: null
    );
    yield return future;
    if (future.Error != null)
    {
        onError.Invoke(future.Error, null);
        yield break;
    }
    var future2 = future.Result.Model();
    yield return future2;
    if (future2.Error != null)
    {
        onError.Invoke(future2.Error, null);
        yield break;
    }
    var result = future2.Result;
    const auto Domain = Gs2->Ranking2->Namespace(
        "namespace-0001" // namespaceName
    )->Me(
        GameSession
    );
    const auto Future = Domain->PutClusterRanking(
        "ranking-0001", // rankingName
        "cluster-0001", // clusterName
        100L // score
        // metadata
    );
    Future->StartSynchronousTask();
    if (Future->GetTask().IsError())
    {
        return false;
    }

    // obtain changed values / result values
    const auto Future2 = Future->GetTask().Result()->Model();
    Future2->StartSynchronousTask();
    if (Future2->GetTask().IsError())
    {
        return Future2->GetTask().Error();
    }
    const auto Result = Future2->GetTask().Result();

getSubscribe

Get Subscribe User

Request

TypeRequireDefaultLimitationDescription
namespaceNamestring~ 128 charsNamespace name
rankingNamestring~ 128 charsRanking Name
accessTokenstring~ 128 charsUser Id
targetUserIdstring~ 128 charsSubscribe Target User ID

Result

TypeDescription
itemEzSubscribeUserSubscribe Target User ID

Implementation Example

    var domain = gs2.Ranking2.Namespace(
        namespaceName: "namespace-0001"
    ).Me(
        gameSession: GameSession
    ).Subscribe(
        rankingName: "ranking-0001"
    ).SubscribeUser(
        targetUserId: "user-0002"
    );
    var result = await domain.GetSubscribeAsync(
    );
    var item = await result.ModelAsync();
    var domain = gs2.Ranking2.Namespace(
        namespaceName: "namespace-0001"
    ).Me(
        gameSession: GameSession
    ).Subscribe(
        rankingName: "ranking-0001"
    ).SubscribeUser(
        targetUserId: "user-0002"
    );
    var future = domain.GetSubscribeFuture(
    );
    yield return future;
    if (future.Error != null)
    {
        onError.Invoke(future.Error, null);
        yield break;
    }
    var future2 = future.Result.Model();
    yield return future2;
    if (future2.Error != null)
    {
        onError.Invoke(future2.Error, null);
        yield break;
    }
    var result = future2.Result;
    const auto Domain = Gs2->Ranking2->Namespace(
        "namespace-0001" // namespaceName
    )->Me(
        GameSession
    )->Subscribe(
        "ranking-0001" // rankingName
    )->SubscribeUser(
        "user-0002" // targetUserId
    );
    const auto Future = Domain->GetSubscribe(
    );
    Future->StartSynchronousTask();
    if (Future->GetTask().IsError())
    {
        return false;
    }

    // obtain changed values / result values
    const auto Future2 = Future->GetTask().Result()->Model();
    Future2->StartSynchronousTask();
    if (Future2->GetTask().IsError())
    {
        return Future2->GetTask().Error();
    }
    const auto Result = Future2->GetTask().Result();

listSubscribes

List Subscribe Users

Request

TypeRequireDefaultLimitationDescription
namespaceNamestring~ 128 charsNamespace name
rankingNamestring~ 128 charsRanking Name
accessTokenstring~ 128 charsUser Id
pageTokenstring~ 1024 charsToken specifying the position from which to start acquiring data
limitint301 ~ 1000Number of data acquired

Result

TypeDescription
itemsList<EzSubscribeUser>List of Subscribe Target User IDs
nextPageTokenstringPage token to retrieve the rest of the listing

Implementation Example

    var domain = gs2.Ranking2.Namespace(
        namespaceName: "namespace-0001"
    ).Me(
        gameSession: GameSession
    );
    var items = await domain.SubscribesAsync(
        rankingName: "ranking-0001"
    ).ToListAsync();
    var domain = gs2.Ranking2.Namespace(
        namespaceName: "namespace-0001"
    ).Me(
        gameSession: GameSession
    );
    var it = domain.Subscribes(
        rankingName: "ranking-0001"
    );
    List<EzSubscribeUser> items = new List<EzSubscribeUser>();
    while (it.HasNext())
    {
        yield return it.Next();
        if (it.Error != null)
        {
            onError.Invoke(it.Error, null);
            break;
        }
        if (it.Current != null)
        {
            items.Add(it.Current);
        }
        else
        {
            break;
        }
    }
    const auto Domain = Gs2->Ranking2->Namespace(
        "namespace-0001" // namespaceName
    )->Me(
        GameSession
    );
    const auto It = Domain->Subscribes(
        "ranking-0001" // rankingName
    );
    TArray<Gs2::UE5::Ranking2::Model::FEzSubscribeUserPtr> Result;
    for (auto Item : *It)
    {
        if (Item.IsError())
        {
            return false;
        }
        Result.Add(Item.Current());
    }
Value change event handling
    var domain = gs2.Ranking2.Namespace(
        namespaceName: "namespace-0001"
    ).Me(
        gameSession: GameSession
    );
    
    // Start event handling
    var callbackId = domain.SubscribeSubscribes(
        () => {
            // Called when an element of the list changes.
        }
    );

    // Stop event handling
    domain.UnsubscribeSubscribes(callbackId);
    var domain = gs2.Ranking2.Namespace(
        namespaceName: "namespace-0001"
    ).Me(
        gameSession: GameSession
    );
    var it = domain.Subscribes(
        rankingName: "ranking-0001"
    );
    List<EzSubscribeUser> items = new List<EzSubscribeUser>();
    while (it.HasNext())
    {
        yield return it.Next();
        if (it.Error != null)
        {
            onError.Invoke(it.Error, null);
            break;
        }
        if (it.Current != null)
        {
            items.Add(it.Current);
        }
        else
        {
            break;
        }
    }
    const auto Domain = Gs2->Ranking2->Namespace(
        "namespace-0001" // namespaceName
    )->Me(
        GameSession
    );
    
    // Start event handling
    const auto CallbackId = Domain->SubscribeSubscribes(
        []() {
            // Called when an element of the list changes.
        }
    );

    // Stop event handling
    Domain->UnsubscribeSubscribes(CallbackId);

getSubscribeRankingRank

Get Subscribe Ranking

Request

TypeRequireDefaultLimitationDescription
namespaceNamestring~ 128 charsNamespace name
rankingNamestring~ 128 charsRanking Name
seasonlong~ 9223372036854775805Season
accessTokenstring~ 128 charsUser Id

Result

TypeDescription
itemEzSubscribeRankingDataSubscribe Ranking

Implementation Example

    var domain = gs2.Ranking2.Namespace(
        namespaceName: "namespace-0001"
    ).Me(
        gameSession: GameSession
    ).SubscribeRankingSeason(
        rankingName: "ranking-0001",
        season: null
    ).SubscribeRankingData(
        scorerUserId: null
    );
    var result = await domain.GetSubscribeRankingRankAsync(
    );
    var item = await result.ModelAsync();
    var domain = gs2.Ranking2.Namespace(
        namespaceName: "namespace-0001"
    ).Me(
        gameSession: GameSession
    ).SubscribeRankingSeason(
        rankingName: "ranking-0001",
        season: null
    ).SubscribeRankingData(
        scorerUserId: null
    );
    var future = domain.GetSubscribeRankingRankFuture(
    );
    yield return future;
    if (future.Error != null)
    {
        onError.Invoke(future.Error, null);
        yield break;
    }
    var future2 = future.Result.Model();
    yield return future2;
    if (future2.Error != null)
    {
        onError.Invoke(future2.Error, null);
        yield break;
    }
    var result = future2.Result;
    const auto Domain = Gs2->Ranking2->Namespace(
        "namespace-0001" // namespaceName
    )->Me(
        GameSession
    )->SubscribeRankingSeason(
        "ranking-0001", // rankingName
        nullptr // season
    )->SubscribeRankingData(
        nullptr // scorerUserId
    );
    const auto Future = Domain->GetSubscribeRankingRank(
    );
    Future->StartSynchronousTask();
    if (Future->GetTask().IsError())
    {
        return false;
    }

    // obtain changed values / result values
    const auto Future2 = Future->GetTask().Result()->Model();
    Future2->StartSynchronousTask();
    if (Future2->GetTask().IsError())
    {
        return Future2->GetTask().Error();
    }
    const auto Result = Future2->GetTask().Result();

listSubscribeRankings

List Subscribe Rankings

Request

TypeRequireDefaultLimitationDescription
namespaceNamestring~ 128 charsNamespace name
rankingNamestring~ 128 charsRanking Name
seasonlong~ 9223372036854775805Season
accessTokenstring~ 128 charsUser Id
pageTokenstring~ 1024 charsToken specifying the position from which to start acquiring data
limitint301 ~ 1000Number of data acquired

Result

TypeDescription
itemsList<EzSubscribeRankingData>List of Subscribe Rankings
nextPageTokenstringPage token to retrieve the rest of the listing

Implementation Example

    var domain = gs2.Ranking2.Namespace(
        namespaceName: "namespace-0001"
    ).Me(
        gameSession: GameSession
    ).SubscribeRankingSeason(
        rankingName: "ranking-0001",
        season: null
    );
    var items = await domain.SubscribeRankingsAsync(
    ).ToListAsync();
    var domain = gs2.Ranking2.Namespace(
        namespaceName: "namespace-0001"
    ).Me(
        gameSession: GameSession
    ).SubscribeRankingSeason(
        rankingName: "ranking-0001",
        season: null
    );
    var it = domain.SubscribeRankings(
    );
    List<EzSubscribeRankingData> items = new List<EzSubscribeRankingData>();
    while (it.HasNext())
    {
        yield return it.Next();
        if (it.Error != null)
        {
            onError.Invoke(it.Error, null);
            break;
        }
        if (it.Current != null)
        {
            items.Add(it.Current);
        }
        else
        {
            break;
        }
    }
    const auto Domain = Gs2->Ranking2->Namespace(
        "namespace-0001" // namespaceName
    )->Me(
        GameSession
    )->SubscribeRankingSeason(
        "ranking-0001", // rankingName
        nullptr // season
    );
    const auto It = Domain->SubscribeRankings(
    );
    TArray<Gs2::UE5::Ranking2::Model::FEzSubscribeRankingDataPtr> Result;
    for (auto Item : *It)
    {
        if (Item.IsError())
        {
            return false;
        }
        Result.Add(Item.Current());
    }

getSubscribeRankingModel

Get Subscribe Ranking Model

Request

TypeRequireDefaultLimitationDescription
namespaceNamestring~ 128 charsNamespace name
rankingNamestring~ 128 charsRanking Name

Result

TypeDescription
itemEzSubscribeRankingModelSubscribe Ranking Model

Implementation Example

    var domain = gs2.Ranking2.Namespace(
        namespaceName: "namespace-0001"
    ).SubscribeRankingModel(
        rankingName: "ranking-0001"
    );
    var item = await domain.ModelAsync();
    var domain = gs2.Ranking2.Namespace(
        namespaceName: "namespace-0001"
    ).SubscribeRankingModel(
        rankingName: "ranking-0001"
    );
    var future = domain.Model();
    yield return future;
    var item = future.Result;
    const auto Domain = Gs2->Ranking2->Namespace(
        "namespace-0001" // namespaceName
    )->SubscribeRankingModel(
        "ranking-0001" // rankingName
    );
    const auto Future = Domain->Model();
    Future->StartSynchronousTask();
    if (Future->GetTask().IsError())
    {
        return false;
    }
Value change event handling
    var domain = gs2.Ranking2.Namespace(
        namespaceName: "namespace-0001"
    ).SubscribeRankingModel(
        rankingName: "ranking-0001"
    );
    
    // Start event handling
    var callbackId = domain.Subscribe(
        value => {
            // Called when the value changes
            // The "value" is passed the value after the change.
        }
    );

    // Stop event handling
    domain.Unsubscribe(callbackId);
    var domain = gs2.Ranking2.Namespace(
        namespaceName: "namespace-0001"
    ).SubscribeRankingModel(
        rankingName: "ranking-0001"
    );
    var future = domain.Model();
    yield return future;
    var item = future.Result;
    const auto Domain = Gs2->Ranking2->Namespace(
        "namespace-0001" // namespaceName
    )->SubscribeRankingModel(
        "ranking-0001" // rankingName
    );
    
    // Start event handling
    const auto CallbackId = Domain->Subscribe(
        [](TSharedPtr<Gs2::Ranking2::Model::FSubscribeRankingModel> value) {
            // Called when the value changes
            // The "value" is passed the value after the change.
        }
    );

    // Stop event handling
    Domain->Unsubscribe(CallbackId);

listSubscribeRankingModels

List Subscribe Ranking Models

Request

TypeRequireDefaultLimitationDescription
namespaceNamestring~ 128 charsNamespace name

Result

TypeDescription
itemsList<EzSubscribeRankingModel>List of Subscribe Ranking Models

Implementation Example

    var domain = gs2.Ranking2.Namespace(
        namespaceName: null
    );
    var items = await domain.SubscribeRankingModelsAsync(
    ).ToListAsync();
    var domain = gs2.Ranking2.Namespace(
        namespaceName: null
    );
    var it = domain.SubscribeRankingModels(
    );
    List<EzSubscribeRankingModel> items = new List<EzSubscribeRankingModel>();
    while (it.HasNext())
    {
        yield return it.Next();
        if (it.Error != null)
        {
            onError.Invoke(it.Error, null);
            break;
        }
        if (it.Current != null)
        {
            items.Add(it.Current);
        }
        else
        {
            break;
        }
    }
    const auto Domain = Gs2->Ranking2->Namespace(
        nullptr // namespaceName
    );
    const auto It = Domain->SubscribeRankingModels(
    );
    TArray<Gs2::UE5::Ranking2::Model::FEzSubscribeRankingModelPtr> Result;
    for (auto Item : *It)
    {
        if (Item.IsError())
        {
            return false;
        }
        Result.Add(Item.Current());
    }
Value change event handling
    var domain = gs2.Ranking2.Namespace(
        namespaceName: null
    );
    
    // Start event handling
    var callbackId = domain.SubscribeSubscribeRankingModels(
        () => {
            // Called when an element of the list changes.
        }
    );

    // Stop event handling
    domain.UnsubscribeSubscribeRankingModels(callbackId);
    var domain = gs2.Ranking2.Namespace(
        namespaceName: null
    );
    var it = domain.SubscribeRankingModels(
    );
    List<EzSubscribeRankingModel> items = new List<EzSubscribeRankingModel>();
    while (it.HasNext())
    {
        yield return it.Next();
        if (it.Error != null)
        {
            onError.Invoke(it.Error, null);
            break;
        }
        if (it.Current != null)
        {
            items.Add(it.Current);
        }
        else
        {
            break;
        }
    }
    const auto Domain = Gs2->Ranking2->Namespace(
        nullptr // namespaceName
    );
    
    // Start event handling
    const auto CallbackId = Domain->SubscribeSubscribeRankingModels(
        []() {
            // Called when an element of the list changes.
        }
    );

    // Stop event handling
    Domain->UnsubscribeSubscribeRankingModels(CallbackId);

getSubscribeRankingScore

Get Subscribe Ranking Score

Request

TypeRequireDefaultLimitationDescription
namespaceNamestring~ 128 charsNamespace name
rankingNamestring~ 128 charsRanking Name
seasonlong~ 9223372036854775805Season
accessTokenstring~ 128 charsUser Id

Result

TypeDescription
itemEzSubscribeRankingScoreSubscribe Ranking Score

Implementation Example

    var domain = gs2.Ranking2.Namespace(
        namespaceName: "namespace-0001"
    ).Me(
        gameSession: GameSession
    ).SubscribeRankingSeason(
        rankingName: "ranking-0001",
        season: 0
    ).SubscribeRankingScore(
    );
    var item = await domain.ModelAsync();
    var domain = gs2.Ranking2.Namespace(
        namespaceName: "namespace-0001"
    ).Me(
        gameSession: GameSession
    ).SubscribeRankingSeason(
        rankingName: "ranking-0001",
        season: 0
    ).SubscribeRankingScore(
    );
    var future = domain.Model();
    yield return future;
    var item = future.Result;
    const auto Domain = Gs2->Ranking2->Namespace(
        "namespace-0001" // namespaceName
    )->Me(
        GameSession
    )->SubscribeRankingSeason(
        "ranking-0001", // rankingName
        0 // season
    )->SubscribeRankingScore(
    );
    const auto Future = Domain->Model();
    Future->StartSynchronousTask();
    if (Future->GetTask().IsError())
    {
        return false;
    }
Value change event handling
    var domain = gs2.Ranking2.Namespace(
        namespaceName: "namespace-0001"
    ).Me(
        gameSession: GameSession
    ).SubscribeRankingSeason(
        rankingName: "ranking-0001",
        season: 0
    ).SubscribeRankingScore(
    );
    
    // Start event handling
    var callbackId = domain.Subscribe(
        value => {
            // Called when the value changes
            // The "value" is passed the value after the change.
        }
    );

    // Stop event handling
    domain.Unsubscribe(callbackId);
    var domain = gs2.Ranking2.Namespace(
        namespaceName: "namespace-0001"
    ).Me(
        gameSession: GameSession
    ).SubscribeRankingSeason(
        rankingName: "ranking-0001",
        season: 0
    ).SubscribeRankingScore(
    );
    var future = domain.Model();
    yield return future;
    var item = future.Result;
    const auto Domain = Gs2->Ranking2->Namespace(
        "namespace-0001" // namespaceName
    )->Me(
        GameSession
    )->SubscribeRankingSeason(
        "ranking-0001", // rankingName
        0 // season
    )->SubscribeRankingScore(
    );
    
    // Start event handling
    const auto CallbackId = Domain->Subscribe(
        [](TSharedPtr<Gs2::Ranking2::Model::FSubscribeRankingScore> value) {
            // Called when the value changes
            // The "value" is passed the value after the change.
        }
    );

    // Stop event handling
    Domain->Unsubscribe(CallbackId);

listSubscribeRankingScores

List Subscribe Ranking Scores

Request

TypeRequireDefaultLimitationDescription
namespaceNamestring~ 128 charsNamespace name
rankingNamestring~ 128 charsRanking Name
accessTokenstring~ 128 charsUser Id
pageTokenstring~ 1024 charsToken specifying the position from which to start acquiring data
limitint301 ~ 1000Number of data acquired

Result

TypeDescription
itemsList<EzSubscribeRankingScore>List of Subscribe Ranking Scores
nextPageTokenstringPage token to retrieve the rest of the listing

Implementation Example

    var domain = gs2.Ranking2.Namespace(
        namespaceName: "namespace-0001"
    ).Me(
        gameSession: GameSession
    ).SubscribeRankingSeason(
        rankingName: "ranking-0001",
        season: 0
    );
    var items = await domain.SubscribeRankingScoresAsync(
    ).ToListAsync();
    var domain = gs2.Ranking2.Namespace(
        namespaceName: "namespace-0001"
    ).Me(
        gameSession: GameSession
    ).SubscribeRankingSeason(
        rankingName: "ranking-0001",
        season: 0
    );
    var it = domain.SubscribeRankingScores(
    );
    List<EzSubscribeRankingScore> items = new List<EzSubscribeRankingScore>();
    while (it.HasNext())
    {
        yield return it.Next();
        if (it.Error != null)
        {
            onError.Invoke(it.Error, null);
            break;
        }
        if (it.Current != null)
        {
            items.Add(it.Current);
        }
        else
        {
            break;
        }
    }
    const auto Domain = Gs2->Ranking2->Namespace(
        "namespace-0001" // namespaceName
    )->Me(
        GameSession
    )->SubscribeRankingSeason(
        "ranking-0001", // rankingName
        0 // season
    );
    const auto It = Domain->SubscribeRankingScores(
    );
    TArray<Gs2::UE5::Ranking2::Model::FEzSubscribeRankingScorePtr> Result;
    for (auto Item : *It)
    {
        if (Item.IsError())
        {
            return false;
        }
        Result.Add(Item.Current());
    }
Value change event handling
    var domain = gs2.Ranking2.Namespace(
        namespaceName: "namespace-0001"
    ).Me(
        gameSession: GameSession
    ).SubscribeRankingSeason(
        rankingName: "ranking-0001",
        season: 0
    );
    
    // Start event handling
    var callbackId = domain.SubscribeSubscribeRankingScores(
        () => {
            // Called when an element of the list changes.
        }
    );

    // Stop event handling
    domain.UnsubscribeSubscribeRankingScores(callbackId);
    var domain = gs2.Ranking2.Namespace(
        namespaceName: "namespace-0001"
    ).Me(
        gameSession: GameSession
    ).SubscribeRankingSeason(
        rankingName: "ranking-0001",
        season: 0
    );
    var it = domain.SubscribeRankingScores(
    );
    List<EzSubscribeRankingScore> items = new List<EzSubscribeRankingScore>();
    while (it.HasNext())
    {
        yield return it.Next();
        if (it.Error != null)
        {
            onError.Invoke(it.Error, null);
            break;
        }
        if (it.Current != null)
        {
            items.Add(it.Current);
        }
        else
        {
            break;
        }
    }
    const auto Domain = Gs2->Ranking2->Namespace(
        "namespace-0001" // namespaceName
    )->Me(
        GameSession
    )->SubscribeRankingSeason(
        "ranking-0001", // rankingName
        0 // season
    );
    
    // Start event handling
    const auto CallbackId = Domain->SubscribeSubscribeRankingScores(
        []() {
            // Called when an element of the list changes.
        }
    );

    // Stop event handling
    Domain->UnsubscribeSubscribeRankingScores(CallbackId);

putSubscribeRanking

Register Subscribe Ranking Score

Request

TypeRequireDefaultLimitationDescription
namespaceNamestring~ 128 charsNamespace name
rankingNamestring~ 128 charsRanking Name
accessTokenstring~ 128 charsUser Id
scorelong~ 9223372036854775805Score
metadatastring~ 512 charsmetadata

Result

TypeDescription
itemEzSubscribeRankingScoreRegistered Subscribe Ranking Score

Implementation Example

    var domain = gs2.Ranking2.Namespace(
        namespaceName: "namespace-0001"
    ).Me(
        gameSession: GameSession
    ).SubscribeRankingSeason(
        rankingName: "ranking-0001",
        season: 0
    );
    var result = await domain.PutSubscribeRankingAsync(
        score: 100L,
        metadata: null
    );
    var item = await result.ModelAsync();
    var domain = gs2.Ranking2.Namespace(
        namespaceName: "namespace-0001"
    ).Me(
        gameSession: GameSession
    ).SubscribeRankingSeason(
        rankingName: "ranking-0001",
        season: 0
    );
    var future = domain.PutSubscribeRankingFuture(
        score: 100L,
        metadata: null
    );
    yield return future;
    if (future.Error != null)
    {
        onError.Invoke(future.Error, null);
        yield break;
    }
    var future2 = future.Result.Model();
    yield return future2;
    if (future2.Error != null)
    {
        onError.Invoke(future2.Error, null);
        yield break;
    }
    var result = future2.Result;
    const auto Domain = Gs2->Ranking2->Namespace(
        "namespace-0001" // namespaceName
    )->Me(
        GameSession
    )->SubscribeRankingSeason(
        "ranking-0001", // rankingName
        0 // season
    );
    const auto Future = Domain->PutSubscribeRanking(
        100L // score
        // metadata
    );
    Future->StartSynchronousTask();
    if (Future->GetTask().IsError())
    {
        return false;
    }

    // obtain changed values / result values
    const auto Future2 = Future->GetTask().Result()->Model();
    Future2->StartSynchronousTask();
    if (Future2->GetTask().IsError())
    {
        return Future2->GetTask().Error();
    }
    const auto Result = Future2->GetTask().Result();