I assume the issue here is you are requesting GetAsync and SetAsync too fast which quickly builds up rate limits (60 + 10 * (player count)), instead of creating multiple keys for each discovery, you can try creating a key for a player (ex. “Player_” … UserID) and loading this key whenever the player first joins the game. You can make changes to this key (assuming it is a table) and save it whenever the player is leaving.
I suggest using ProfileService for this as it is a great module for managing datastores.