メインコンテンツまでスキップ

クラウドセーブバリデータの紹介

Last updated on May 21, 2025

Overview

This article explains the API contract (Protobuf) used in the Extend Override app for cloud save validator.

service CloudsaveValidatorService {
// game record
rpc BeforeWriteGameRecord(GameRecord) returns (GameRecordValidationResult);
rpc AfterReadGameRecord(GameRecord) returns (GameRecordValidationResult);
rpc AfterBulkReadGameRecord(BulkGameRecord) returns (BulkGameRecordValidationResult);

// player record
rpc BeforeWritePlayerRecord(PlayerRecord) returns (PlayerRecordValidationResult);
rpc AfterReadPlayerRecord(PlayerRecord) returns (PlayerRecordValidationResult);
rpc AfterBulkReadPlayerRecord(BulkPlayerRecord) returns (BulkPlayerRecordValidationResult);

// admin game record
rpc BeforeWriteAdminGameRecord(AdminGameRecord) returns (GameRecordValidationResult);

// admin player record
rpc BeforeWriteAdminPlayerRecord(AdminPlayerRecord) returns (PlayerRecordValidationResult);
}

API Contract

BeforeWriteGameRecord

This method will be called by AccelByte Gaming Services (AGS) before a game record is written into Cloud Save.

In the app, the following function can be found in src/AccelByte.PluginArch.CloudsaveValidator.Demo.Server/Services/CloudSaveValidatorService.cs.

public override Task<GameRecordValidationResult> BeforeWriteGameRecord(GameRecord request, ServerCallContext context)
{
...
}

AfterReadGameRecord

This method will be called by AGS after a game record is read from Cloud Save.

In the app, the following function can be found in src/AccelByte.PluginArch.CloudsaveValidator.Demo.Server/Services/CloudSaveValidatorService.cs.

public override Task<GameRecordValidationResult> AfterReadGameRecord(GameRecord request, ServerCallContext context)
{
...
}

AfterBulkReadGameRecord

This method will be called by AGS after bulk reading game record from Cloud Save.

In the app, the following function can be found in src/AccelByte.PluginArch.CloudsaveValidator.Demo.Server/Services/CloudSaveValidatorService.cs.

public override Task<BulkGameRecordValidationResult> AfterBulkReadGameRecord(BulkGameRecord request, ServerCallContext context)
{
...
}

BeforeWritePlayerRecord

This method will be called by AGS before a player record is written into Cloud Save.

In the app, the following function can be found in src/AccelByte.PluginArch.CloudsaveValidator.Demo.Server/Services/CloudSaveValidatorService.cs.

public override Task<PlayerRecordValidationResult> BeforeWritePlayerRecord(PlayerRecord request, ServerCallContext context)
{
...
}

AfterReadPlayerRecord

This method will be called by AGS after a player record is read from Cloud Save.

In the app, the following function can be found in src/AccelByte.PluginArch.CloudsaveValidator.Demo.Server/Services/CloudSaveValidatorService.cs.

public override Task<PlayerRecordValidationResult> AfterReadPlayerRecord(PlayerRecord request, ServerCallContext context)
{
...
}

AfterBulkReadPlayerRecord

This method will be called by AGS after bulk reading player record from Cloud Save.

In the app, the following function can be found in src/AccelByte.PluginArch.CloudsaveValidator.Demo.Server/Services/CloudSaveValidatorService.cs.

public override Task<BulkPlayerRecordValidationResult> AfterBulkReadPlayerRecord(BulkPlayerRecord request, ServerCallContext context)
{
...
}

BeforeWriteAdminGameRecord

This method will be called by AGS before an admin game record is written to Cloud Save.

In the app, the following function can be found in src/AccelByte.PluginArch.CloudsaveValidator.Demo.Server/Services/CloudSaveValidatorService.cs.

public override Task<GameRecordValidationResult> BeforeWriteAdminGameRecord(AdminGameRecord request, ServerCallContext context)
{
...
}

BeforeWriteAdminPlayerRecord

This method will be called by AGS before an admin player record is written to Cloud Save.

In the app, the following function can be found in src/AccelByte.PluginArch.CloudsaveValidator.Demo.Server/Services/CloudSaveValidatorService.cs.

public override Task<PlayerRecordValidationResult> BeforeWriteAdminPlayerRecord(AdminPlayerRecord request, ServerCallContext context)
{
...
}
備考

You could find more information about gRPC request handling here.