question

Kim Strasser avatar image
Kim Strasser asked

Should I create a limit for client update API calls?

I found this in my PlayFab title account:

Limits:

Data Storage:

Player data value updates per 15 seconds
Number of times the same player data value may be updated within a period of 15 seconds.
Current limit: 10 update operations Price: Free

Character data value updates per 15 seconds
Number of times the same character data value may be updated within a period of 15 seconds.
Current limit: 5 update operations Price: Free

Entity profile updates per 15 seconds
Number of times the same entity profile may be updated within a period of 15 seconds.
Current limit: 10 update operations Price: Free

Which API update calls will be counting as Player data value updates, Character data value updates and Entity profile updates? Are all of these API update calls client calls or will admin and server update calls also be counting?

I'm not sure if I should create an update limit in my cloud script so that a client can not call more than 5 or 10 times during 15 seconds PlayFab update API calls.

Normally, it's not possible that the client makes more than 5 update calls during 15 seconds in my game. But would it be possible that a cheater could call the update API calls somehow more frequently? In this case, I would want that the client can not make more than 5 update calls during 15 seconds. How could I do this in cloud script?

Account Managementlimits
10 |1200

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

1 Answer

·
Seth Du avatar image
Seth Du answered

Update related client API:

  • UpdateUserData
  • UpdateUserPublisherData
  • UpdateCharacterData

Update related server API:

  • UpdateCharacterData
  • UpdateCharacterInternalData
  • UpdateCharacterReadOnlyData
  • UpdateUserData
  • UpdateUserInternalData
  • UpdateUserPublisherData

Entity API:

  • SetObject
  • Not sure of others, you may search other update APIs easily in Postman collection.

>> Are all of these API update calls client calls or will admin and server update calls also be counting

Yes, they have the same limits, but when you are using server/admin API, each player shares individual limits since there is PlayFabId property in server API request. Again, you may try it on your own in Restful testing tools like Postman。

>> A cheater could call the update API calls somehow more frequently

It depends what frequent API calls results in. If it is simply Client API from the game client, I don’t think there will be any issues since the client API has limited permission. Meanwhile, if you implement Server API in Cloud Script, you will need additional verification before Server API is called. Store the Timestamp for those updates should be a feasible solution. In terms of “I would want that the client can not make more than 5 update calls during 15 seconds.”, you may write codes on your client sides to make it possible.

2 comments
10 |1200

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Kim Strasser avatar image Kim Strasser commented ·

Is server.UpdatePlayerStatistics also an API call that should not be updated more than 10 times within a period of 15 seconds?

Is there a limit for server.WritePlayerEvent API calls too?

I especially use server.UpdateUserReadOnlyData and server.UpdateUserInternalData in my cloud script code.

The problem is that I always need to call server.UpdateUserInternalData right after server.UpdateUserReadOnlyData to store the timestamp. Then, I already have two Update related server API calls. Is this really the best way to store the timestamps?

What do you think about the following solution? In this solution, I wouldn't need to store the timestamps.

Is it possible to find out in Game Manager-->Data-->Event History if one player or more players call Update related client/server API much more frequently in a certain time interval than the rest of the players? I think it would be possible to identify cheaters if I just could find out in Event History if some players call Update related client/server API much more frequently in a certain time interval. After that, I could ban these players manually.

What is the best and fastest way to find this out in Event History?

0 Likes 0 ·
Seth Du avatar image Seth Du ♦ Kim Strasser commented ·
  • No, I don't think server.UpdatePlayerStatistics has a specified limit.
  • I don't think there are limits to WritePlayerEvent.
  • UpdateUserInternalData and UpdateUserReadOnlyData will have separate limits.
  • Event history will have limited ability for advanced query. Meanwhile, I believe PlayFab Explorer(the tab next to Event History in Game Manager) will be capable of sorting/filtering/counting data.
0 Likes 0 ·

Write an Answer

Hint: Notify or tag a user in this post by typing @username.

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.